From 258b0f049d7ac0c40bed139c988cbaa92514ad5d Mon Sep 17 00:00:00 2001 From: Ionut Trestian Date: Wed, 29 Nov 2017 01:24:21 +0000 Subject: [PATCH] TOTP support and new MFA configuration APIs --- README.md | 36 + dist/amazon-cognito-identity.js | 308 +- dist/amazon-cognito-identity.min.js | 6 +- dist/amazon-cognito-identity.min.js.map | 2 +- dist/aws-cognito-sdk.js | 8492 +++++++++++++++++++---- dist/aws-cognito-sdk.min.js | 23 +- dist/aws-cognito-sdk.min.js.map | 2 +- src/CognitoUser.js | 2 +- src/CognitoUserPool.js | 2 + src/CookieStorage.js | 26 +- 10 files changed, 7341 insertions(+), 1558 deletions(-) diff --git a/README.md b/README.md index 67620f6c..1fe7aaee 100644 --- a/README.md +++ b/README.md @@ -774,9 +774,41 @@ The CookieStorage object receives a map (data) in its constructor that may have totpRequired : function(secretCode) { var challengeAnswer = prompt('Please input the TOTP code.' ,''); cognitoUser.sendMFACode(challengeAnswer, this, 'SOFTWARE_TOKEN_MFA'); + }, + + mfaRequired: function(codeDeliveryDetails) { + var verificationCode = prompt('Please input verification code' ,''); + cognitoUser.sendMFACode(verificationCode, this); + } + }); + +**Use case 28.** Enabling and setting SMS MFA as the preferred MFA method for the user. + + smsMfaSettings = { + PreferredMfa : true, + Enabled : true + }; + cognitoUser.setUserMfaPreference(smsMfaSettings, null, function(err, result) { + if (err) { + alert(err); } + console.log('call result ' + result) }); +**Use case 29.** Enabling and setting TOTP MFA as the preferred MFA method for the user. + + totpMfaSettings = { + PreferredMfa : true, + Enabled : true + }; + cognitoUser.setUserMfaPreference(null, totpMfaSettings, function(err, result) { + if (err) { + alert(err); + } + console.log('call result ' + result) + }); + + ## Network Configuration The Amazon Cognito Identity JavaScript SDK will make requests to the following endpoints * For Amazon Cognito Identity request handling: "https://cognito-idp.us-east-1.amazonaws.com" @@ -790,6 +822,10 @@ In order to authenticate with the Amazon Cognito Identity Service, the client ne ## Change Log +**v1.27.0:** +* What has changed + * Added support for TOTP and new MFA settings APIs. + **v1.26.0:** * What has changed * Fixed typescript typings. diff --git a/dist/amazon-cognito-identity.js b/dist/amazon-cognito-identity.js index 2c18cde1..e44b3731 100644 --- a/dist/amazon-cognito-identity.js +++ b/dist/amazon-cognito-identity.js @@ -1732,7 +1732,8 @@ return /******/ (function(modules) { // webpackBootstrap AuthFlow: 'CUSTOM_AUTH', ClientId: this.pool.getClientId(), AuthParameters: authParameters, - ClientMetadata: authDetails.getValidationData() + ClientMetadata: authDetails.getValidationData(), + UserContextData: this.getUserContextData() }, function (err, data) { if (err) { return callback.onFailure(err); @@ -1798,7 +1799,8 @@ return /******/ (function(modules) { // webpackBootstrap AuthFlow: _this2.authenticationFlowType, ClientId: _this2.pool.getClientId(), AuthParameters: authParameters, - ClientMetadata: authDetails.getValidationData() + ClientMetadata: authDetails.getValidationData(), + UserContextData: _this2.getUserContextData() }, function (err, data) { if (err) { return callback.onFailure(err); @@ -1850,7 +1852,8 @@ return /******/ (function(modules) { // webpackBootstrap ChallengeName: 'PASSWORD_VERIFIER', ClientId: _this2.pool.getClientId(), ChallengeResponses: challengeResponses, - Session: data.Session + Session: data.Session, + UserContextData: _this2.getUserContextData() }, function (errAuthenticate, dataAuthenticate) { if (errAuthenticate) { return callback.onFailure(errAuthenticate); @@ -1908,6 +1911,21 @@ return /******/ (function(modules) { // webpackBootstrap return callback.mfaRequired(challengeName, challengeParameters); } + if (challengeName === 'SELECT_MFA_TYPE') { + this.Session = dataAuthenticate.Session; + return callback.selectMFAType(challengeName, challengeParameters); + } + + if (challengeName === 'MFA_SETUP') { + this.Session = dataAuthenticate.Session; + return callback.mfaSetup(challengeName, challengeParameters); + } + + if (challengeName === 'SOFTWARE_TOKEN_MFA') { + this.Session = dataAuthenticate.Session; + return callback.totpRequired(challengeName, challengeParameters); + } + if (challengeName === 'CUSTOM_CHALLENGE') { this.Session = dataAuthenticate.Session; return callback.customChallenge(challengeParameters); @@ -2000,7 +2018,8 @@ return /******/ (function(modules) { // webpackBootstrap ChallengeName: 'NEW_PASSWORD_REQUIRED', ClientId: this.pool.getClientId(), ChallengeResponses: finalUserAttributes, - Session: this.Session + Session: this.Session, + UserContextData: this.getUserContextData() }, function (errAuthenticate, dataAuthenticate) { if (errAuthenticate) { return callback.onFailure(errAuthenticate); @@ -2043,7 +2062,8 @@ return /******/ (function(modules) { // webpackBootstrap _this5.client.makeUnauthenticatedRequest('respondToAuthChallenge', { ChallengeName: 'DEVICE_SRP_AUTH', ClientId: _this5.pool.getClientId(), - ChallengeResponses: authParameters + ChallengeResponses: authParameters, + UserContextData: _this5.getUserContextData() }, function (err, data) { if (err) { return callback.onFailure(err); @@ -2076,7 +2096,8 @@ return /******/ (function(modules) { // webpackBootstrap ChallengeName: 'DEVICE_PASSWORD_VERIFIER', ClientId: _this5.pool.getClientId(), ChallengeResponses: challengeResponses, - Session: data.Session + Session: data.Session, + UserContextData: _this5.getUserContextData() }, function (errAuthenticate, dataAuthenticate) { if (errAuthenticate) { return callback.onFailure(errAuthenticate); @@ -2110,7 +2131,8 @@ return /******/ (function(modules) { // webpackBootstrap ClientId: this.pool.getClientId(), ConfirmationCode: confirmationCode, Username: this.username, - ForceAliasCreation: forceAliasCreation + ForceAliasCreation: forceAliasCreation, + UserContextData: this.getUserContextData() }, function (err) { if (err) { return callback(err, null); @@ -2142,7 +2164,8 @@ return /******/ (function(modules) { // webpackBootstrap ChallengeName: 'CUSTOM_CHALLENGE', ChallengeResponses: challengeResponses, ClientId: this.pool.getClientId(), - Session: this.Session + Session: this.Session, + UserContextData: this.getUserContextData() }, function (err, data) { if (err) { return callback.onFailure(err); @@ -2165,28 +2188,34 @@ return /******/ (function(modules) { // webpackBootstrap * This is used by the user once he has an MFA code * @param {string} confirmationCode The MFA code entered by the user. * @param {object} callback Result callback map. + * @param {string} mfaType The mfa we are replying to. * @param {onFailure} callback.onFailure Called on any error. * @param {authSuccess} callback.onSuccess Called on success with the new session. * @returns {void} */ - CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback) { + CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType) { var _this7 = this; var challengeResponses = {}; challengeResponses.USERNAME = this.username; challengeResponses.SMS_MFA_CODE = confirmationCode; + var mfaTypeSelection = mfaType || 'SMS_MFA'; + if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') { + challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode; + } if (this.deviceKey != null) { challengeResponses.DEVICE_KEY = this.deviceKey; } this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { - ChallengeName: 'SMS_MFA', + ChallengeName: mfaTypeSelection, ChallengeResponses: challengeResponses, ClientId: this.pool.getClientId(), - Session: this.Session + Session: this.Session, + UserContextData: this.getUserContextData() }, function (err, dataAuthenticate) { if (err) { return callback.onFailure(err); @@ -2302,6 +2331,33 @@ return /******/ (function(modules) { // webpackBootstrap return undefined; }; + /** + * This is used by an authenticated user to enable MFA for himself + * @param {string[]} smsMfaSettings the sms mfa settings + * @param {string[]} softwareTokenMfaSettings the software token mfa settings + * @param {nodeCallback} callback Called on success or error. + * @returns {void} + */ + + + CognitoUser.prototype.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) { + if (this.signInUserSession == null || !this.signInUserSession.isValid()) { + return callback(new Error('User is not authenticated'), null); + } + + this.client.makeUnauthenticatedRequest('setUserMFAPreference', { + SMSMfaSettings: smsMfaSettings, + SoftwareTokenMfaSettings: softwareTokenMfaSettings, + AccessToken: this.signInUserSession.getAccessToken().getJwtToken() + }, function (err) { + if (err) { + return callback(err, null); + } + return callback(null, 'SUCCESS'); + }); + return undefined; + }; + /** * This is used by an authenticated user to disable MFA for himself * @param {nodeCallback} callback Called on success or error. @@ -2476,7 +2532,8 @@ return /******/ (function(modules) { // webpackBootstrap CognitoUser.prototype.resendConfirmationCode = function resendConfirmationCode(callback) { this.client.makeUnauthenticatedRequest('resendConfirmationCode', { ClientId: this.pool.getClientId(), - Username: this.username + Username: this.username, + UserContextData: this.getUserContextData() }, function (err, result) { if (err) { return callback(err, null); @@ -2571,7 +2628,8 @@ return /******/ (function(modules) { // webpackBootstrap this.client.makeUnauthenticatedRequest('initiateAuth', { ClientId: this.pool.getClientId(), AuthFlow: 'REFRESH_TOKEN_AUTH', - AuthParameters: authParameters + AuthParameters: authParameters, + UserContextData: this.getUserContextData() }, function (err, authResult) { if (err) { if (err.code === 'NotAuthorizedException') { @@ -2721,7 +2779,8 @@ return /******/ (function(modules) { // webpackBootstrap CognitoUser.prototype.forgotPassword = function forgotPassword(callback) { this.client.makeUnauthenticatedRequest('forgotPassword', { ClientId: this.pool.getClientId(), - Username: this.username + Username: this.username, + UserContextData: this.getUserContextData() }, function (err, data) { if (err) { return callback.onFailure(err); @@ -2749,7 +2808,8 @@ return /******/ (function(modules) { // webpackBootstrap ClientId: this.pool.getClientId(), Username: this.username, ConfirmationCode: confirmationCode, - Password: newPassword + Password: newPassword, + UserContextData: this.getUserContextData() }, function (err) { if (err) { return callback.onFailure(err); @@ -3017,6 +3077,158 @@ return /******/ (function(modules) { // webpackBootstrap this.clearCachedTokens(); }; + /** + * This is used by a user trying to select a given MFA + * @param {string} answerChallenge the mfa the user wants + * @param {nodeCallback} callback Called on success or error. + * @returns {void} + */ + + + CognitoUser.prototype.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) { + var _this12 = this; + + var challengeResponses = {}; + challengeResponses.USERNAME = this.username; + challengeResponses.ANSWER = answerChallenge; + + this.client.makeUnauthenticatedRequest('respondToAuthChallenge', { + ChallengeName: 'SELECT_MFA_TYPE', + ChallengeResponses: challengeResponses, + ClientId: this.pool.getClientId(), + Session: this.Session, + UserContextData: this.getUserContextData() + }, function (err, data) { + if (err) { + return callback.onFailure(err); + } + _this12.Session = data.Session; + if (answerChallenge === 'SMS_MFA') { + return callback.mfaRequired(data.challengeName, data.challengeParameters); + } + if (answerChallenge === 'SOFTWARE_TOKEN_MFA') { + return callback.totpRequired(data.challengeName, data.challengeParameters); + } + return undefined; + }); + }; + + /** + * This returns the user context data for advanced security feature. + * @returns {void} + */ + + + CognitoUser.prototype.getUserContextData = function getUserContextData() { + var pool = this.pool; + return pool.getUserContextData(this.username); + }; + + /** + * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA + * @param {nodeCallback} callback Called on success or error. + * @returns {void} + */ + + + CognitoUser.prototype.associateSoftwareToken = function associateSoftwareToken(callback) { + var _this13 = this; + + if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { + this.client.makeUnauthenticatedRequest('associateSoftwareToken', { + Session: this.Session + }, function (err, data) { + if (err) { + return callback.onFailure(err); + } + _this13.Session = data.Session; + return callback.associateSecretCode(data.SecretCode); + }); + } else { + this.client.makeUnauthenticatedRequest('associateSoftwareToken', { + AccessToken: this.signInUserSession.getAccessToken().getJwtToken() + }, function (err, data) { + if (err) { + return callback.onFailure(err); + } + return callback.associateSecretCode(data.SecretCode); + }); + } + }; + + /** + * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA + * @param {string} totpCode The MFA code entered by the user. + * @param {string} friendlyDeviceName The device name we are assigning to the device. + * @param {nodeCallback} callback Called on success or error. + * @returns {void} + */ + + + CognitoUser.prototype.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) { + var _this14 = this; + + if (!(this.signInUserSession != null && this.signInUserSession.isValid())) { + this.client.makeUnauthenticatedRequest('verifySoftwareToken', { + Session: this.Session, + UserCode: totpCode, + FriendlyDeviceName: friendlyDeviceName + }, function (err, data) { + if (err) { + return callback.onFailure(err); + } + _this14.Session = data.Session; + var challengeResponses = {}; + challengeResponses.USERNAME = _this14.username; + + _this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', { + ChallengeName: 'MFA_SETUP', + ClientId: _this14.pool.getClientId(), + ChallengeResponses: challengeResponses, + Session: _this14.Session, + UserContextData: _this14.getUserContextData() + }, function (errRespond, dataRespond) { + if (errRespond) { + return callback.onFailure(errRespond); + } + _this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult); + _this14.cacheTokens(); + return callback.onSuccess(_this14.signInUserSession); + }); + return undefined; + }); + } else { + this.client.makeUnauthenticatedRequest('verifySoftwareToken', { + AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), + UserCode: totpCode, + FriendlyDeviceName: friendlyDeviceName + }, function (err, data) { + if (err) { + return callback.onFailure(err); + } + _this14.Session = data.Session; + var challengeResponses = {}; + challengeResponses.USERNAME = _this14.username; + + _this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', { + ChallengeName: 'MFA_SETUP', + ClientId: _this14.pool.getClientId(), + ChallengeResponses: challengeResponses, + Session: _this14.Session, + UserContextData: _this14.getUserContextData() + }, function (errRespond, dataRespond) { + if (errRespond) { + return callback.onFailure(errRespond); + } + _this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult); + _this14.cacheTokens(); + return callback.onSuccess(_this14.signInUserSession); + }); + return undefined; + }); + } + }; + return CognitoUser; }(); @@ -3598,6 +3810,10 @@ return /******/ (function(modules) { // webpackBootstrap * @param {string} data.UserPoolId Cognito user pool id. * @param {string} data.ClientId User pool application client id. * @param {object} data.Storage Optional storage object. + * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional: + * boolean flag indicating if the data collection is enabled + * to support cognito advanced security features. By default, this + * flag is set to true. */ function CognitoUserPool(data) { _classCallCheck(this, CognitoUserPool); @@ -3605,7 +3821,8 @@ return /******/ (function(modules) { // webpackBootstrap var _ref = data || {}, UserPoolId = _ref.UserPoolId, ClientId = _ref.ClientId, - endpoint = _ref.endpoint; + endpoint = _ref.endpoint, + AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag; if (!UserPoolId || !ClientId) { throw new Error('Both UserPoolId and ClientId are required.'); @@ -3624,6 +3841,14 @@ return /******/ (function(modules) { // webpackBootstrap endpoint: endpoint }); + /** + * By default, AdvancedSecurityDataCollectionFlag is set to true, + * if no input value is provided. + */ + this.advancedSecurityDataCollectionFlag = true; + if (AdvancedSecurityDataCollectionFlag) { + this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag; + } this.storage = data.Storage || new _StorageHelper2.default().getStorage(); } @@ -3669,7 +3894,8 @@ return /******/ (function(modules) { // webpackBootstrap Username: username, Password: password, UserAttributes: userAttributes, - ValidationData: validationData + ValidationData: validationData, + UserContextData: this.getUserContextData(username) }, function (err, data) { if (err) { return callback(err, null); @@ -3715,6 +3941,36 @@ return /******/ (function(modules) { // webpackBootstrap return null; }; + /** + * This method returns the encoded data string used for cognito advanced security feature. + * This would be generated only when developer has included the JS used for collecting the + * data on their client. Please refer to documentation to know more about using AdvancedSecurity + * features + * @param {string} username the username for the context data + * @returns {string} the user context data + **/ + + + CognitoUserPool.prototype.getUserContextData = function getUserContextData(username) { + if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { + return {}; + } + /* eslint-disable */ + var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; + /* eslint-enable */ + + if (this.advancedSecurityDataCollectionFlag) { + var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId); + if (advancedSecurityData) { + var userContextData = { + EncodedData: advancedSecurityData + }; + return userContextData; + } + } + return {}; + }; + return CognitoUserPool; }(); @@ -3756,12 +4012,12 @@ return /******/ (function(modules) { // webpackBootstrap } else { this.path = '/'; } - if (data.expire) { + if (Object.prototype.hasOwnProperty.call(data, 'expires')) { this.expires = data.expires; } else { this.expires = 365; } - if (data.hasOwnProperty('secure')) { + if (Object.prototype.hasOwnProperty.call(data, 'secure')) { this.secure = data.secure; } else { this.secure = true; @@ -3777,7 +4033,11 @@ return /******/ (function(modules) { // webpackBootstrap CookieStorage.prototype.setItem = function setItem(key, value) { - Cookies.set(key, value, { path: this.path, expires: this.expires, domain: this.domain }); + Cookies.set(key, value, { + path: this.path, + expires: this.expires, + domain: this.domain + }); return Cookies.get(key); }; @@ -3801,7 +4061,11 @@ return /******/ (function(modules) { // webpackBootstrap CookieStorage.prototype.removeItem = function removeItem(key) { - return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure }); + return Cookies.remove(key, { + path: this.path, + domain: this.domain, + secure: this.secure + }); }; /** @@ -3812,7 +4076,7 @@ return /******/ (function(modules) { // webpackBootstrap CookieStorage.prototype.clear = function clear() { var cookies = Cookies.get(); - var index; + var index = void 0; for (index = 0; index < cookies.length; ++index) { Cookies.remove(cookies[index]); } diff --git a/dist/amazon-cognito-identity.min.js b/dist/amazon-cognito-identity.min.js index af321192..e273011c 100644 --- a/dist/amazon-cognito-identity.min.js +++ b/dist/amazon-cognito-identity.min.js @@ -14,7 +14,7 @@ * for the specific language governing permissions and * limitations under the License. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):"function"==typeof define&&define.amd?define(["aws-sdk/global","aws-sdk/clients/cognitoidentityserviceprovider"],t):"object"==typeof exports?exports.AmazonCognitoIdentity=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):e.AmazonCognitoIdentity=t(e.AWSCognito,e.AWSCognito.CognitoIdentityServiceProvider)}(this,function(e,t){return function(e){function t(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(17);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var r=n(13),a=s(r),u=i(o);Object.keys(u).forEach(function(e){a.default[e]=u[e]})},function(t,n){t.exports=e},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",c="userAttributes.",l=function(){function e(t){s(this,e),this.N=new a.default(u,16),this.g=new a.default("2",16),this.k=new a.default(this.hexHash("00"+this.N.toString(16)+"0"+this.g.toString(16)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=new o.util.Buffer("Caldera Derived Key","utf8"),this.poolName=t}return e.prototype.getSmallAValue=function(){return this.smallAValue},e.prototype.getLargeAValue=function(e){var t=this;this.largeAValue?e(null,this.largeAValue):this.calculateA(this.smallAValue,function(n,i){n&&e(n,null),t.largeAValue=i,e(null,t.largeAValue)})},e.prototype.generateRandomSmallA=function(){var e=o.util.crypto.lib.randomBytes(128).toString("hex"),t=new a.default(e,16),n=t.mod(this.N);return n},e.prototype.generateRandomString=function(){return o.util.crypto.lib.randomBytes(40).toString("base64")},e.prototype.getRandomPassword=function(){return this.randomPassword},e.prototype.getSaltDevices=function(){return this.SaltToHashDevices},e.prototype.getVerifierDevices=function(){return this.verifierDevices},e.prototype.generateHashDevice=function(e,t,n){var i=this;this.randomPassword=this.generateRandomString();var s=""+e+t+":"+this.randomPassword,r=this.hash(s),u=o.util.crypto.lib.randomBytes(16).toString("hex");this.SaltToHashDevices=this.padHex(new a.default(u,16)),this.g.modPow(new a.default(this.hexHash(this.SaltToHashDevices+r),16),this.N,function(e,t){e&&n(e,null),i.verifierDevices=i.padHex(t),n(null,null)})},e.prototype.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,function(e,i){e&&t(e,null),i.mod(n.N).equals(a.default.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,i)})},e.prototype.calculateU=function(e,t){this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t));var n=new a.default(this.UHexHash,16);return n},e.prototype.hash=function(e){var t=o.util.crypto.sha256(e,"hex");return new Array(64-t.length).join("0")+t},e.prototype.hexHash=function(e){return this.hash(new o.util.Buffer(e,"hex"))},e.prototype.computehkdf=function(e,t){var n=o.util.crypto.hmac(t,e,"buffer","sha256"),i=o.util.buffer.concat([this.infoBits,new o.util.Buffer(String.fromCharCode(1),"utf8")]),s=o.util.crypto.hmac(n,i,"buffer","sha256");return s.slice(0,16)},e.prototype.getPasswordAuthenticationKey=function(e,t,n,i,s){var r=this;if(n.mod(this.N).equals(a.default.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(a.default.ZERO))throw new Error("U cannot be zero.");var u=""+this.poolName+e+":"+t,c=this.hash(u),l=new a.default(this.hexHash(this.padHex(i)+c),16);this.calculateS(l,n,function(e,t){e&&s(e,null);var n=r.computehkdf(new o.util.Buffer(r.padHex(t),"hex"),new o.util.Buffer(r.padHex(r.UValue.toString(16)),"hex"));s(null,n)})},e.prototype.calculateS=function(e,t,n){var i=this;this.g.modPow(e,this.N,function(s,o){s&&n(s,null);var r=t.subtract(i.k.multiply(o));r.modPow(i.smallAValue.add(i.UValue.multiply(e)),i.N,function(e,t){e&&n(e,null),n(null,t.mod(i.N))})})},e.prototype.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return c},e.prototype.padHex=function(e){var t=e.toString(16);return t.length%2===1?t="0"+t:"89ABCDEFabcdef".indexOf(t[0])!==-1&&(t="00"+t),t},e}();t.default=l},function(e,t){"use strict";function n(e,t){null!=e&&this.fromString(e,t)}function i(){return new n(null)}function s(e,t,n,i,s,o){for(;--o>=0;){var r=t*this[e++]+n[i]+s;s=Math.floor(r/67108864),n[i++]=67108863&r}return s}function o(e,t,n,i,s,o){for(var r=32767&t,a=t>>15;--o>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*r;u=r*u+((32767&l)<<15)+n[i]+(1073741823&s),s=(u>>>30)+(l>>>15)+a*c+(s>>>30),n[i++]=1073741823&u}return s}function r(e,t,n,i,s,o){for(var r=16383&t,a=t>>14;--o>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*r;u=r*u+((16383&l)<<14)+n[i]+s,s=(u>>28)+(l>>14)+a*c,n[i++]=268435455&u}return s}function a(e){return z.charAt(e)}function u(e,t){var n=Q[e.charCodeAt(t)];return null==n?-1:n}function c(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function l(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function h(e){var t=i();return t.fromInt(e),t}function f(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");i=2}this.t=0,this.s=0;for(var s=e.length,o=!1,r=0;--s>=0;){var a=u(e,s);a<0?"-"==e.charAt(s)&&(o=!0):(o=!1,0==r?this[this.t++]=a:r+i>this.DB?(this[this.t-1]|=(a&(1<>this.DB-r):this[this.t-1]|=a<=this.DB&&(r-=this.DB))}this.clamp(),o&&n.ZERO.subTo(this,this)}function d(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function p(e){if(this.s<0)return"-"+this.negate().toString();var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");t=2}var n,i=(1<0)for(u>u)>0&&(s=!0,o=a(n));r>=0;)u>(u+=this.DB-t)):(n=this[r]>>(u-=t)&i,u<=0&&(u+=this.DB,--r)),n>0&&(s=!0),s&&(o+=a(n));return s?o:"0"}function g(){var e=i();return n.ZERO.subTo(this,e),e}function v(){return this.s<0?this.negate():this}function m(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function S(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function y(){return this.t<=0?0:this.DB*(this.t-1)+S(this[this.t-1]^this.s&this.DM)}function C(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function w(e,t){for(var n=e;n=0;--n)t[n+r+1]=this[n]>>s|a,a=(this[n]&o)<=0;--n)t[n]=0;t[r]=a,t.t=this.t+r+1,t.s=this.s,t.clamp()}function U(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var i=e%this.DB,s=this.DB-i,o=(1<>i;for(var r=n+1;r>i;i>0&&(t[this.t-n-1]|=(this.s&o)<>=this.DB;if(e.t>=this.DB;i+=this.s}else{for(i+=this.s;n>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()}function I(e,t){var i=this.abs(),s=e.abs(),o=i.t;for(t.t=o+s.t;--o>=0;)t[o]=0;for(o=0;o=0;)e[n]=0;for(n=0;n=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function E(e,t,s){var o=e.abs();if(!(o.t<=0)){var r=this.abs();if(r.t0?(o.lShiftTo(l,a),r.lShiftTo(l,s)):(o.copyTo(a),r.copyTo(s));var h=a.t,f=a[h-1];if(0!=f){var d=f*(1<1?a[h-2]>>this.F2:0),p=this.FV/d,g=(1<=0&&(s[s.t++]=1,s.subTo(C,s)),n.ONE.dlShiftTo(h,C),C.subTo(a,a);a.t=0;){var w=s[--m]==f?this.DM:Math.floor(s[m]*p+(s[m-1]+v)*g);if((s[m]+=a.am(0,w,s,y,0,h))0&&s.rShiftTo(l,s),u<0&&n.ZERO.subTo(s,s)}}}function k(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t}function R(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function b(e){return 0==this.compareTo(e)}function F(e,t){for(var n=0,i=0,s=Math.min(e.t,this.t);n>=this.DB;if(e.t>=this.DB;i+=this.s}else{for(i+=this.s;n>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()}function P(e){var t=i();return this.addTo(e,t),t}function _(e){var t=i();return this.subTo(e,t),t}function B(e){var t=i();return this.multiplyTo(e,t),t}function M(e){var t=i();return this.divRemTo(e,t,null),t}function N(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(t,t),t}function O(e){var t=i();return e.copyTo(t),this.reduce(t),t}function K(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function x(e,t){e.squareTo(t),this.reduce(t)}function q(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function H(e,t,n){var s,o=e.bitLength(),r=h(1),a=new N(t);if(o<=0)return r;s=o<18?1:o<48?3:o<144?4:o<768?5:6;var u=new Array,c=3,l=s-1,f=(1<1){var d=i();for(a.sqrTo(u[1],d);c<=f;)u[c]=i(),a.mulTo(d,u[c-2],u[c]),c+=2}var p,g,v=e.t-1,m=!0,y=i();for(o=S(e[v])-1;v>=0;){for(o>=l?p=e[v]>>o-l&f:(p=(e[v]&(1<0&&(p|=e[v-1]>>this.DB+o-l)),c=s;0==(1&p);)p>>=1,--c;if((o-=c)<0&&(o+=this.DB,--v),m)u[p].copyTo(r),m=!1;else{for(;c>1;)a.sqrTo(r,y),a.sqrTo(y,r),c-=2;c>0?a.sqrTo(r,y):(g=r,r=y,y=g),a.mulTo(y,u[p],r)}for(;v>=0&&0==(e[v]&1<0&&void 0!==arguments[0]?arguments[0]:{},i=n.AccessToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var a=n(6),u=i(a),c=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.IdToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var s=n(1),o=function(){function e(t){i(this,e),this.jwtToken=t||"",this.payload=this.decodePayload()}return e.prototype.getJwtToken=function(){return this.jwtToken},e.prototype.getExpiration=function(){return this.payload.exp},e.prototype.getIssuedAt=function(){return this.payload.iat},e.prototype.decodePayload=function(){var e=this.jwtToken.split(".")[1];try{return JSON.parse(s.util.base64.decode(e).toString("utf8"))}catch(e){return{}}},e}();t.default=o},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;/*! +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):"function"==typeof define&&define.amd?define(["aws-sdk/global","aws-sdk/clients/cognitoidentityserviceprovider"],t):"object"==typeof exports?exports.AmazonCognitoIdentity=t(require("aws-sdk/global"),require("aws-sdk/clients/cognitoidentityserviceprovider")):e.AmazonCognitoIdentity=t(e.AWSCognito,e.AWSCognito.CognitoIdentityServiceProvider)}(this,function(e,t){return function(e){function t(i){if(n[i])return n[i].exports;var s=n[i]={exports:{},id:i,loaded:!1};return e[i].call(s.exports,s,s.exports,t),s.loaded=!0,s.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function i(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t.default=e,t}function s(e){return e&&e.__esModule?e:{default:e}}t.__esModule=!0;var o=n(17);Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(t,e,{enumerable:!0,get:function(){return o[e]}})});var r=n(13),a=s(r),u=i(o);Object.keys(u).forEach(function(e){a.default[e]=u[e]})},function(t,n){t.exports=e},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u="FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6BF12FFA06D98A0864D87602733EC86A64521F2B18177B200CBBE117577A615D6C770988C0BAD946E208E24FA074E5AB3143DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF",c="userAttributes.",l=function(){function e(t){s(this,e),this.N=new a.default(u,16),this.g=new a.default("2",16),this.k=new a.default(this.hexHash("00"+this.N.toString(16)+"0"+this.g.toString(16)),16),this.smallAValue=this.generateRandomSmallA(),this.getLargeAValue(function(){}),this.infoBits=new o.util.Buffer("Caldera Derived Key","utf8"),this.poolName=t}return e.prototype.getSmallAValue=function(){return this.smallAValue},e.prototype.getLargeAValue=function(e){var t=this;this.largeAValue?e(null,this.largeAValue):this.calculateA(this.smallAValue,function(n,i){n&&e(n,null),t.largeAValue=i,e(null,t.largeAValue)})},e.prototype.generateRandomSmallA=function(){var e=o.util.crypto.lib.randomBytes(128).toString("hex"),t=new a.default(e,16),n=t.mod(this.N);return n},e.prototype.generateRandomString=function(){return o.util.crypto.lib.randomBytes(40).toString("base64")},e.prototype.getRandomPassword=function(){return this.randomPassword},e.prototype.getSaltDevices=function(){return this.SaltToHashDevices},e.prototype.getVerifierDevices=function(){return this.verifierDevices},e.prototype.generateHashDevice=function(e,t,n){var i=this;this.randomPassword=this.generateRandomString();var s=""+e+t+":"+this.randomPassword,r=this.hash(s),u=o.util.crypto.lib.randomBytes(16).toString("hex");this.SaltToHashDevices=this.padHex(new a.default(u,16)),this.g.modPow(new a.default(this.hexHash(this.SaltToHashDevices+r),16),this.N,function(e,t){e&&n(e,null),i.verifierDevices=i.padHex(t),n(null,null)})},e.prototype.calculateA=function(e,t){var n=this;this.g.modPow(e,this.N,function(e,i){e&&t(e,null),i.mod(n.N).equals(a.default.ZERO)&&t(new Error("Illegal paramater. A mod N cannot be 0."),null),t(null,i)})},e.prototype.calculateU=function(e,t){this.UHexHash=this.hexHash(this.padHex(e)+this.padHex(t));var n=new a.default(this.UHexHash,16);return n},e.prototype.hash=function(e){var t=o.util.crypto.sha256(e,"hex");return new Array(64-t.length).join("0")+t},e.prototype.hexHash=function(e){return this.hash(new o.util.Buffer(e,"hex"))},e.prototype.computehkdf=function(e,t){var n=o.util.crypto.hmac(t,e,"buffer","sha256"),i=o.util.buffer.concat([this.infoBits,new o.util.Buffer(String.fromCharCode(1),"utf8")]),s=o.util.crypto.hmac(n,i,"buffer","sha256");return s.slice(0,16)},e.prototype.getPasswordAuthenticationKey=function(e,t,n,i,s){var r=this;if(n.mod(this.N).equals(a.default.ZERO))throw new Error("B cannot be zero.");if(this.UValue=this.calculateU(this.largeAValue,n),this.UValue.equals(a.default.ZERO))throw new Error("U cannot be zero.");var u=""+this.poolName+e+":"+t,c=this.hash(u),l=new a.default(this.hexHash(this.padHex(i)+c),16);this.calculateS(l,n,function(e,t){e&&s(e,null);var n=r.computehkdf(new o.util.Buffer(r.padHex(t),"hex"),new o.util.Buffer(r.padHex(r.UValue.toString(16)),"hex"));s(null,n)})},e.prototype.calculateS=function(e,t,n){var i=this;this.g.modPow(e,this.N,function(s,o){s&&n(s,null);var r=t.subtract(i.k.multiply(o));r.modPow(i.smallAValue.add(i.UValue.multiply(e)),i.N,function(e,t){e&&n(e,null),n(null,t.mod(i.N))})})},e.prototype.getNewPasswordRequiredChallengeUserAttributePrefix=function(){return c},e.prototype.padHex=function(e){var t=e.toString(16);return t.length%2===1?t="0"+t:"89ABCDEFabcdef".indexOf(t[0])!==-1&&(t="00"+t),t},e}();t.default=l},function(e,t){"use strict";function n(e,t){null!=e&&this.fromString(e,t)}function i(){return new n(null)}function s(e,t,n,i,s,o){for(;--o>=0;){var r=t*this[e++]+n[i]+s;s=Math.floor(r/67108864),n[i++]=67108863&r}return s}function o(e,t,n,i,s,o){for(var r=32767&t,a=t>>15;--o>=0;){var u=32767&this[e],c=this[e++]>>15,l=a*u+c*r;u=r*u+((32767&l)<<15)+n[i]+(1073741823&s),s=(u>>>30)+(l>>>15)+a*c+(s>>>30),n[i++]=1073741823&u}return s}function r(e,t,n,i,s,o){for(var r=16383&t,a=t>>14;--o>=0;){var u=16383&this[e],c=this[e++]>>14,l=a*u+c*r;u=r*u+((16383&l)<<14)+n[i]+s,s=(u>>28)+(l>>14)+a*c,n[i++]=268435455&u}return s}function a(e){return z.charAt(e)}function u(e,t){var n=Q[e.charCodeAt(t)];return null==n?-1:n}function c(e){for(var t=this.t-1;t>=0;--t)e[t]=this[t];e.t=this.t,e.s=this.s}function l(e){this.t=1,this.s=e<0?-1:0,e>0?this[0]=e:e<-1?this[0]=e+this.DV:this.t=0}function h(e){var t=i();return t.fromInt(e),t}function f(e,t){var i;if(16==t)i=4;else if(8==t)i=3;else if(2==t)i=1;else if(32==t)i=5;else{if(4!=t)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");i=2}this.t=0,this.s=0;for(var s=e.length,o=!1,r=0;--s>=0;){var a=u(e,s);a<0?"-"==e.charAt(s)&&(o=!0):(o=!1,0==r?this[this.t++]=a:r+i>this.DB?(this[this.t-1]|=(a&(1<>this.DB-r):this[this.t-1]|=a<=this.DB&&(r-=this.DB))}this.clamp(),o&&n.ZERO.subTo(this,this)}function d(){for(var e=this.s&this.DM;this.t>0&&this[this.t-1]==e;)--this.t}function p(e){if(this.s<0)return"-"+this.negate().toString();var t;if(16==e)t=4;else if(8==e)t=3;else if(2==e)t=1;else if(32==e)t=5;else{if(4!=e)throw new Error("Only radix 2, 4, 8, 16, 32 are supported");t=2}var n,i=(1<0)for(u>u)>0&&(s=!0,o=a(n));r>=0;)u>(u+=this.DB-t)):(n=this[r]>>(u-=t)&i,u<=0&&(u+=this.DB,--r)),n>0&&(s=!0),s&&(o+=a(n));return s?o:"0"}function g(){var e=i();return n.ZERO.subTo(this,e),e}function S(){return this.s<0?this.negate():this}function v(e){var t=this.s-e.s;if(0!=t)return t;var n=this.t;if(t=n-e.t,0!=t)return this.s<0?-t:t;for(;--n>=0;)if(0!=(t=this[n]-e[n]))return t;return 0}function m(e){var t,n=1;return 0!=(t=e>>>16)&&(e=t,n+=16),0!=(t=e>>8)&&(e=t,n+=8),0!=(t=e>>4)&&(e=t,n+=4),0!=(t=e>>2)&&(e=t,n+=2),0!=(t=e>>1)&&(e=t,n+=1),n}function C(){return this.t<=0?0:this.DB*(this.t-1)+m(this[this.t-1]^this.s&this.DM)}function y(e,t){var n;for(n=this.t-1;n>=0;--n)t[n+e]=this[n];for(n=e-1;n>=0;--n)t[n]=0;t.t=this.t+e,t.s=this.s}function U(e,t){for(var n=e;n=0;--n)t[n+r+1]=this[n]>>s|a,a=(this[n]&o)<=0;--n)t[n]=0;t[r]=a,t.t=this.t+r+1,t.s=this.s,t.clamp()}function w(e,t){t.s=this.s;var n=Math.floor(e/this.DB);if(n>=this.t)return void(t.t=0);var i=e%this.DB,s=this.DB-i,o=(1<>i;for(var r=n+1;r>i;i>0&&(t[this.t-n-1]|=(this.s&o)<>=this.DB;if(e.t>=this.DB;i+=this.s}else{for(i+=this.s;n>=this.DB;i-=e.s}t.s=i<0?-1:0,i<-1?t[n++]=this.DV+i:i>0&&(t[n++]=i),t.t=n,t.clamp()}function D(e,t){var i=this.abs(),s=e.abs(),o=i.t;for(t.t=o+s.t;--o>=0;)t[o]=0;for(o=0;o=0;)e[n]=0;for(n=0;n=t.DV&&(e[n+t.t]-=t.DV,e[n+t.t+1]=1)}e.t>0&&(e[e.t-1]+=t.am(n,t[n],e,2*n,0,1)),e.s=0,e.clamp()}function E(e,t,s){var o=e.abs();if(!(o.t<=0)){var r=this.abs();if(r.t0?(o.lShiftTo(l,a),r.lShiftTo(l,s)):(o.copyTo(a),r.copyTo(s));var h=a.t,f=a[h-1];if(0!=f){var d=f*(1<1?a[h-2]>>this.F2:0),p=this.FV/d,g=(1<=0&&(s[s.t++]=1,s.subTo(y,s)),n.ONE.dlShiftTo(h,y),y.subTo(a,a);a.t=0;){var U=s[--v]==f?this.DM:Math.floor(s[v]*p+(s[v-1]+S)*g);if((s[v]+=a.am(0,U,s,C,0,h))0&&s.rShiftTo(l,s),u<0&&n.ZERO.subTo(s,s)}}}function k(e){var t=i();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(n.ZERO)>0&&e.subTo(t,t),t}function R(){if(this.t<1)return 0;var e=this[0];if(0==(1&e))return 0;var t=3&e;return t=t*(2-(15&e)*t)&15,t=t*(2-(255&e)*t)&255,t=t*(2-((65535&e)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function F(e){return 0==this.compareTo(e)}function P(e,t){for(var n=0,i=0,s=Math.min(e.t,this.t);n>=this.DB;if(e.t>=this.DB;i+=this.s}else{for(i+=this.s;n>=this.DB;i+=e.s}t.s=i<0?-1:0,i>0?t[n++]=i:i<-1&&(t[n++]=this.DV+i),t.t=n,t.clamp()}function b(e){var t=i();return this.addTo(e,t),t}function _(e){var t=i();return this.subTo(e,t),t}function M(e){var t=i();return this.multiplyTo(e,t),t}function N(e){var t=i();return this.divRemTo(e,t,null),t}function B(e){this.m=e,this.mp=e.invDigit(),this.mpl=32767&this.mp,this.mph=this.mp>>15,this.um=(1<0&&this.m.subTo(t,t),t}function O(e){var t=i();return e.copyTo(t),this.reduce(t),t}function V(e){for(;e.t<=this.mt2;)e[e.t++]=0;for(var t=0;t>15)*this.mpl&this.um)<<15)&e.DM;for(n=t+this.m.t,e[n]+=this.m.am(0,i,e,t,0,this.m.t);e[n]>=e.DV;)e[n]-=e.DV,e[++n]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function K(e,t){e.squareTo(t),this.reduce(t)}function q(e,t,n){e.multiplyTo(t,n),this.reduce(n)}function j(e,t,n){var s,o=e.bitLength(),r=h(1),a=new B(t);if(o<=0)return r;s=o<18?1:o<48?3:o<144?4:o<768?5:6;var u=new Array,c=3,l=s-1,f=(1<1){var d=i();for(a.sqrTo(u[1],d);c<=f;)u[c]=i(),a.mulTo(d,u[c-2],u[c]),c+=2}var p,g,S=e.t-1,v=!0,C=i();for(o=m(e[S])-1;S>=0;){for(o>=l?p=e[S]>>o-l&f:(p=(e[S]&(1<0&&(p|=e[S-1]>>this.DB+o-l)),c=s;0==(1&p);)p>>=1,--c;if((o-=c)<0&&(o+=this.DB,--S),v)u[p].copyTo(r),v=!1;else{for(;c>1;)a.sqrTo(r,C),a.sqrTo(C,r),c-=2;c>0?a.sqrTo(r,C):(g=r,r=C,C=g),a.mulTo(C,u[p],r)}for(;S>=0&&0==(e[S]&1<0&&void 0!==arguments[0]?arguments[0]:{},i=n.AccessToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0;var a=n(6),u=i(a),c=function(e){function t(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=n.IdToken;return s(this,t),o(this,e.call(this,i||""))}return r(t,e),t}(u.default);t.default=c},function(e,t,n){"use strict";function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var s=n(1),o=function(){function e(t){i(this,e),this.jwtToken=t||"",this.payload=this.decodePayload()}return e.prototype.getJwtToken=function(){return this.jwtToken},e.prototype.getExpiration=function(){return this.payload.exp},e.prototype.getIssuedAt=function(){return this.payload.iat},e.prototype.decodePayload=function(){var e=this.jwtToken.split(".")[1];try{return JSON.parse(s.util.base64.decode(e).toString("utf8"))}catch(e){return{}}},e}();t.default=o},function(e,t){"use strict";function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;/*! * Copyright 2016 Amazon.com, * Inc. or its affiliates. All Rights Reserved. * @@ -30,7 +30,7 @@ * for the specific language governing permissions and * limitations under the License. */ -var i=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},i=t.RefreshToken;n(this,e),this.token=i||""}return e.prototype.getToken=function(){return this.token},e}();t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u=n(2),c=i(u),l=n(4),h=i(l),f=n(5),d=i(f),p=n(7),g=i(p),v=n(10),m=i(v),S=n(11),y=i(S),C=n(9),w=i(C),A=n(12),U=i(A),T=function(){function e(t){if(s(this,e),null==t||null==t.Username||null==t.Pool)throw new Error("Username and pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||(new U.default).getStorage()}return e.prototype.setSignInUserSession=function(e){this.clearCachedTokens(),this.signInUserSession=e,this.cacheTokens()},e.prototype.getSignInUserSession=function(){return this.signInUserSession},e.prototype.getUsername=function(){return this.username},e.prototype.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.prototype.setAuthenticationFlowType=function(e){this.authenticationFlowType=e},e.prototype.initiateAuth=function(e,t){var n=this,i=e.getAuthParameters();i.USERNAME=this.username,this.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:i,ClientMetadata:e.getValidationData()},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName,o=i.ChallengeParameters;return"CUSTOM_CHALLENGE"===s?(n.Session=i.Session,t.customChallenge(o)):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))})},e.prototype.authenticateUser=function(e,t){var n=this,i=new c.default(this.pool.getUserPoolId().split("_")[1]),s=new y.default,r=void 0,u=void 0,l={};null!=this.deviceKey&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,i.getLargeAValue(function(c,h){c&&t.onFailure(c),l.SRP_A=h.toString(16),"CUSTOM_AUTH"===n.authenticationFlowType&&(l.CHALLENGE_NAME="SRP_A"),n.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:n.authenticationFlowType,ClientId:n.pool.getClientId(),AuthParameters:l,ClientMetadata:e.getValidationData()},function(c,l){if(c)return t.onFailure(c);var h=l.ChallengeParameters;n.username=h.USER_ID_FOR_SRP,r=new a.default(h.SRP_B,16),u=new a.default(h.SALT,16),n.getCachedDeviceKeyAndPassword(),i.getPasswordAuthenticationKey(n.username,e.getPassword(),r,u,function(e,r){e&&t.onFailure(e);var a=s.getNowString(),u=o.util.crypto.hmac(r,o.util.buffer.concat([new o.util.Buffer(n.pool.getUserPoolId().split("_")[1],"utf8"),new o.util.Buffer(n.username,"utf8"),new o.util.Buffer(h.SECRET_BLOCK,"base64"),new o.util.Buffer(a,"utf8")]),"base64","sha256"),c={};c.USERNAME=n.username,c.PASSWORD_CLAIM_SECRET_BLOCK=h.SECRET_BLOCK,c.TIMESTAMP=a,c.PASSWORD_CLAIM_SIGNATURE=u,null!=n.deviceKey&&(c.DEVICE_KEY=n.deviceKey);var f=function e(t,i){return n.client.makeUnauthenticatedRequest("respondToAuthChallenge",t,function(s,o){return s&&"ResourceNotFoundException"===s.code&&s.message.toLowerCase().indexOf("device")!==-1?(c.DEVICE_KEY=null,n.deviceKey=null,n.randomPassword=null,n.deviceGroupKey=null,n.clearCachedDeviceKeyAndPassword(),e(t,i)):i(s,o)})};f({ChallengeName:"PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:c,Session:l.Session},function(e,s){if(e)return t.onFailure(e);var o=s.ChallengeName;if("NEW_PASSWORD_REQUIRED"===o){n.Session=s.Session;var r=null,a=null,u=[],c=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(s.ChallengeParameters&&(r=JSON.parse(s.ChallengeParameters.userAttributes),a=JSON.parse(s.ChallengeParameters.requiredAttributes)),a)for(var l=0;l0&&void 0!==arguments[0]?arguments[0]:{},i=t.RefreshToken;n(this,e),this.token=i||""}return e.prototype.getToken=function(){return this.token},e}();t.default=i},function(e,t,n){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}t.__esModule=!0;var o=n(1),r=n(3),a=i(r),u=n(2),c=i(u),l=n(4),h=i(l),f=n(5),d=i(f),p=n(7),g=i(p),S=n(10),v=i(S),m=n(11),C=i(m),y=n(9),U=i(y),A=n(12),w=i(A),T=function(){function e(t){if(s(this,e),null==t||null==t.Username||null==t.Pool)throw new Error("Username and pool information are required.");this.username=t.Username||"",this.pool=t.Pool,this.Session=null,this.client=t.Pool.client,this.signInUserSession=null,this.authenticationFlowType="USER_SRP_AUTH",this.storage=t.Storage||(new w.default).getStorage()}return e.prototype.setSignInUserSession=function(e){this.clearCachedTokens(),this.signInUserSession=e,this.cacheTokens()},e.prototype.getSignInUserSession=function(){return this.signInUserSession},e.prototype.getUsername=function(){return this.username},e.prototype.getAuthenticationFlowType=function(){return this.authenticationFlowType},e.prototype.setAuthenticationFlowType=function(e){this.authenticationFlowType=e},e.prototype.initiateAuth=function(e,t){var n=this,i=e.getAuthParameters();i.USERNAME=this.username,this.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:"CUSTOM_AUTH",ClientId:this.pool.getClientId(),AuthParameters:i,ClientMetadata:e.getValidationData(),UserContextData:this.getUserContextData()},function(e,i){if(e)return t.onFailure(e);var s=i.ChallengeName,o=i.ChallengeParameters;return"CUSTOM_CHALLENGE"===s?(n.Session=i.Session,t.customChallenge(o)):(n.signInUserSession=n.getCognitoUserSession(i.AuthenticationResult),n.cacheTokens(),t.onSuccess(n.signInUserSession))})},e.prototype.authenticateUser=function(e,t){var n=this,i=new c.default(this.pool.getUserPoolId().split("_")[1]),s=new C.default,r=void 0,u=void 0,l={};null!=this.deviceKey&&(l.DEVICE_KEY=this.deviceKey),l.USERNAME=this.username,i.getLargeAValue(function(c,h){c&&t.onFailure(c),l.SRP_A=h.toString(16),"CUSTOM_AUTH"===n.authenticationFlowType&&(l.CHALLENGE_NAME="SRP_A"),n.client.makeUnauthenticatedRequest("initiateAuth",{AuthFlow:n.authenticationFlowType,ClientId:n.pool.getClientId(),AuthParameters:l,ClientMetadata:e.getValidationData(),UserContextData:n.getUserContextData()},function(c,l){if(c)return t.onFailure(c);var h=l.ChallengeParameters;n.username=h.USER_ID_FOR_SRP,r=new a.default(h.SRP_B,16),u=new a.default(h.SALT,16),n.getCachedDeviceKeyAndPassword(),i.getPasswordAuthenticationKey(n.username,e.getPassword(),r,u,function(e,r){e&&t.onFailure(e);var a=s.getNowString(),u=o.util.crypto.hmac(r,o.util.buffer.concat([new o.util.Buffer(n.pool.getUserPoolId().split("_")[1],"utf8"),new o.util.Buffer(n.username,"utf8"),new o.util.Buffer(h.SECRET_BLOCK,"base64"),new o.util.Buffer(a,"utf8")]),"base64","sha256"),c={};c.USERNAME=n.username,c.PASSWORD_CLAIM_SECRET_BLOCK=h.SECRET_BLOCK,c.TIMESTAMP=a,c.PASSWORD_CLAIM_SIGNATURE=u,null!=n.deviceKey&&(c.DEVICE_KEY=n.deviceKey);var f=function e(t,i){return n.client.makeUnauthenticatedRequest("respondToAuthChallenge",t,function(s,o){return s&&"ResourceNotFoundException"===s.code&&s.message.toLowerCase().indexOf("device")!==-1?(c.DEVICE_KEY=null,n.deviceKey=null,n.randomPassword=null,n.deviceGroupKey=null,n.clearCachedDeviceKeyAndPassword(),e(t,i)):i(s,o)})};f({ChallengeName:"PASSWORD_VERIFIER",ClientId:n.pool.getClientId(),ChallengeResponses:c,Session:l.Session,UserContextData:n.getUserContextData()},function(e,s){if(e)return t.onFailure(e);var o=s.ChallengeName;if("NEW_PASSWORD_REQUIRED"===o){n.Session=s.Session;var r=null,a=null,u=[],c=i.getNewPasswordRequiredChallengeUserAttributePrefix();if(s.ChallengeParameters&&(r=JSON.parse(s.ChallengeParameters.userAttributes),a=JSON.parse(s.ChallengeParameters.requiredAttributes)),a)for(var l=0;l1){if(o=e({path:"/"},i.defaults,o),"number"==typeof o.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*o.expires),o.expires=a}o.expires=o.expires?o.expires.toUTCString():"";try{r=JSON.stringify(s),/^[\{\[]/.test(r)&&(s=r)}catch(e){}s=n.write?n.write(s,t):encodeURIComponent(String(s)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape);var u="";for(var c in o)o[c]&&(u+="; "+c,o[c]!==!0&&(u+="="+o[c]));return document.cookie=t+"="+s+u}t||(r={});for(var l=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,f=0;f1){if(o=e({path:"/"},i.defaults,o),"number"==typeof o.expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*o.expires),o.expires=a}o.expires=o.expires?o.expires.toUTCString():"";try{r=JSON.stringify(s),/^[\{\[]/.test(r)&&(s=r)}catch(e){}s=n.write?n.write(s,t):encodeURIComponent(String(s)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),t=encodeURIComponent(String(t)),t=t.replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent),t=t.replace(/[\(\)]/g,escape);var u="";for(var c in o)o[c]&&(u+="; "+c,o[c]!==!0&&(u+="="+o[c]));return document.cookie=t+"="+s+u}t||(r={});for(var l=document.cookie?document.cookie.split("; "):[],h=/(%[0-9A-Z]{2})+/g,f=0;f} callback Called with (err, largeAValue)\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getLargeAValue = function getLargeAValue(callback) {\n\t var _this = this;\n\t\n\t if (this.largeAValue) {\n\t callback(null, this.largeAValue);\n\t } else {\n\t this.calculateA(this.smallAValue, function (err, largeAValue) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t _this.largeAValue = largeAValue;\n\t callback(null, _this.largeAValue);\n\t });\n\t }\n\t };\n\t\n\t /**\n\t * helper function to generate a random big integer\n\t * @returns {BigInteger} a random value.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.generateRandomSmallA = function generateRandomSmallA() {\n\t var hexRandom = _global.util.crypto.lib.randomBytes(128).toString('hex');\n\t\n\t var randomBigInt = new _BigInteger2.default(hexRandom, 16);\n\t var smallABigInt = randomBigInt.mod(this.N);\n\t\n\t return smallABigInt;\n\t };\n\t\n\t /**\n\t * helper function to generate a random string\n\t * @returns {string} a random value.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.generateRandomString = function generateRandomString() {\n\t return _global.util.crypto.lib.randomBytes(40).toString('base64');\n\t };\n\t\n\t /**\n\t * @returns {string} Generated random value included in password hash.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getRandomPassword = function getRandomPassword() {\n\t return this.randomPassword;\n\t };\n\t\n\t /**\n\t * @returns {string} Generated random value included in devices hash.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getSaltDevices = function getSaltDevices() {\n\t return this.SaltToHashDevices;\n\t };\n\t\n\t /**\n\t * @returns {string} Value used to verify devices.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getVerifierDevices = function getVerifierDevices() {\n\t return this.verifierDevices;\n\t };\n\t\n\t /**\n\t * Generate salts and compute verifier.\n\t * @param {string} deviceGroupKey Devices to generate verifier for.\n\t * @param {string} username User to generate verifier for.\n\t * @param {nodeCallback} callback Called with (err, null)\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n\t var _this2 = this;\n\t\n\t this.randomPassword = this.generateRandomString();\n\t var combinedString = '' + deviceGroupKey + username + ':' + this.randomPassword;\n\t var hashedString = this.hash(combinedString);\n\t\n\t var hexRandom = _global.util.crypto.lib.randomBytes(16).toString('hex');\n\t this.SaltToHashDevices = this.padHex(new _BigInteger2.default(hexRandom, 16));\n\t\n\t this.g.modPow(new _BigInteger2.default(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n\t callback(null, null);\n\t });\n\t };\n\t\n\t /**\n\t * Calculate the client's public value A = g^a%N\n\t * with the generated random number a\n\t * @param {BigInteger} a Randomly generated small A.\n\t * @param {nodeCallback} callback Called with (err, largeAValue)\n\t * @returns {void}\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.calculateA = function calculateA(a, callback) {\n\t var _this3 = this;\n\t\n\t this.g.modPow(a, this.N, function (err, A) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t if (A.mod(_this3.N).equals(_BigInteger2.default.ZERO)) {\n\t callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n\t }\n\t\n\t callback(null, A);\n\t });\n\t };\n\t\n\t /**\n\t * Calculate the client's value U which is the hash of A and B\n\t * @param {BigInteger} A Large A value.\n\t * @param {BigInteger} B Server B value.\n\t * @returns {BigInteger} Computed U value.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.calculateU = function calculateU(A, B) {\n\t this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n\t var finalU = new _BigInteger2.default(this.UHexHash, 16);\n\t\n\t return finalU;\n\t };\n\t\n\t /**\n\t * Calculate a hash from a bitArray\n\t * @param {Buffer} buf Value to hash.\n\t * @returns {String} Hex-encoded hash.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.hash = function hash(buf) {\n\t var hashHex = _global.util.crypto.sha256(buf, 'hex');\n\t return new Array(64 - hashHex.length).join('0') + hashHex;\n\t };\n\t\n\t /**\n\t * Calculate a hash from a hex string\n\t * @param {String} hexStr Value to hash.\n\t * @returns {String} Hex-encoded hash.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.hexHash = function hexHash(hexStr) {\n\t return this.hash(new _global.util.Buffer(hexStr, 'hex'));\n\t };\n\t\n\t /**\n\t * Standard hkdf algorithm\n\t * @param {Buffer} ikm Input key material.\n\t * @param {Buffer} salt Salt value.\n\t * @returns {Buffer} Strong key material.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.computehkdf = function computehkdf(ikm, salt) {\n\t var prk = _global.util.crypto.hmac(salt, ikm, 'buffer', 'sha256');\n\t var infoBitsUpdate = _global.util.buffer.concat([this.infoBits, new _global.util.Buffer(String.fromCharCode(1), 'utf8')]);\n\t var hmac = _global.util.crypto.hmac(prk, infoBitsUpdate, 'buffer', 'sha256');\n\t return hmac.slice(0, 16);\n\t };\n\t\n\t /**\n\t * Calculates the final hkdf based on computed S value, and computed U value and the key\n\t * @param {String} username Username.\n\t * @param {String} password Password.\n\t * @param {BigInteger} serverBValue Server B value.\n\t * @param {BigInteger} salt Generated salt.\n\t * @param {nodeCallback} callback Called with (err, hkdfValue)\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n\t var _this4 = this;\n\t\n\t if (serverBValue.mod(this.N).equals(_BigInteger2.default.ZERO)) {\n\t throw new Error('B cannot be zero.');\n\t }\n\t\n\t this.UValue = this.calculateU(this.largeAValue, serverBValue);\n\t\n\t if (this.UValue.equals(_BigInteger2.default.ZERO)) {\n\t throw new Error('U cannot be zero.');\n\t }\n\t\n\t var usernamePassword = '' + this.poolName + username + ':' + password;\n\t var usernamePasswordHash = this.hash(usernamePassword);\n\t\n\t var xValue = new _BigInteger2.default(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n\t this.calculateS(xValue, serverBValue, function (err, sValue) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t var hkdf = _this4.computehkdf(new _global.util.Buffer(_this4.padHex(sValue), 'hex'), new _global.util.Buffer(_this4.padHex(_this4.UValue.toString(16)), 'hex'));\n\t\n\t callback(null, hkdf);\n\t });\n\t };\n\t\n\t /**\n\t * Calculates the S value used in getPasswordAuthenticationKey\n\t * @param {BigInteger} xValue Salted password hash value.\n\t * @param {BigInteger} serverBValue Server B value.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.calculateS = function calculateS(xValue, serverBValue, callback) {\n\t var _this5 = this;\n\t\n\t this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n\t intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n\t if (err2) {\n\t callback(err2, null);\n\t }\n\t\n\t callback(null, result.mod(_this5.N));\n\t });\n\t });\n\t };\n\t\n\t /**\n\t * Return constant newPasswordRequiredChallengeUserAttributePrefix\n\t * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n\t return newPasswordRequiredChallengeUserAttributePrefix;\n\t };\n\t\n\t /**\n\t * Converts a BigInteger (or hex string) to hex format padded with zeroes for hashing\n\t * @param {BigInteger|String} bigInt Number or string to pad.\n\t * @returns {String} Padded hex string.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.padHex = function padHex(bigInt) {\n\t var hashStr = bigInt.toString(16);\n\t if (hashStr.length % 2 === 1) {\n\t hashStr = '0' + hashStr;\n\t } else if ('89ABCDEFabcdef'.indexOf(hashStr[0]) !== -1) {\n\t hashStr = '00' + hashStr;\n\t }\n\t return hashStr;\n\t };\n\t\n\t return AuthenticationHelper;\n\t}();\n\t\n\texports.default = AuthenticationHelper;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n\t//\n\t// All public methods have been removed except the following:\n\t// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n\t// toString (only radix 2, 4, 8, 16 and 32 supported)\n\t// negate\n\t// abs\n\t// compareTo\n\t// bitLength\n\t// mod\n\t// equals\n\t// add\n\t// subtract\n\t// multiply\n\t// divide\n\t// modPow\n\t\n\texports.default = BigInteger;\n\t\n\t/*\n\t * Copyright (c) 2003-2005 Tom Wu\n\t * All Rights Reserved.\n\t *\n\t * Permission is hereby granted, free of charge, to any person obtaining\n\t * a copy of this software and associated documentation files (the\n\t * \"Software\"), to deal in the Software without restriction, including\n\t * without limitation the rights to use, copy, modify, merge, publish,\n\t * distribute, sublicense, and/or sell copies of the Software, and to\n\t * permit persons to whom the Software is furnished to do so, subject to\n\t * the following conditions:\n\t *\n\t * The above copyright notice and this permission notice shall be\n\t * included in all copies or substantial portions of the Software.\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n\t * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n\t * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n\t *\n\t * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n\t * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n\t * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n\t * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n\t * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\t *\n\t * In addition, the following condition applies:\n\t *\n\t * All redistributions must retain an intact copy of this copyright notice\n\t * and disclaimer.\n\t */\n\t\n\t// (public) Constructor\n\t\n\tfunction BigInteger(a, b) {\n\t if (a != null) this.fromString(a, b);\n\t}\n\t\n\t// return new, unset BigInteger\n\tfunction nbi() {\n\t return new BigInteger(null);\n\t}\n\t\n\t// Bits per digit\n\tvar dbits;\n\t\n\t// JavaScript engine analysis\n\tvar canary = 0xdeadbeefcafe;\n\tvar j_lm = (canary & 0xffffff) == 0xefcafe;\n\t\n\t// am: Compute w_j += (x*this_i), propagate carries,\n\t// c is initial carry, returns final carry.\n\t// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n\t// We need to select the fastest one that works in this environment.\n\t\n\t// am1: use a single mult and divide to get the high bits,\n\t// max digit bits should be 26 because\n\t// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n\tfunction am1(i, x, w, j, c, n) {\n\t while (--n >= 0) {\n\t var v = x * this[i++] + w[j] + c;\n\t c = Math.floor(v / 0x4000000);\n\t w[j++] = v & 0x3ffffff;\n\t }\n\t return c;\n\t}\n\t// am2 avoids a big mult-and-extract completely.\n\t// Max digit bits should be <= 30 because we do bitwise ops\n\t// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n\tfunction am2(i, x, w, j, c, n) {\n\t var xl = x & 0x7fff,\n\t xh = x >> 15;\n\t while (--n >= 0) {\n\t var l = this[i] & 0x7fff;\n\t var h = this[i++] >> 15;\n\t var m = xh * l + h * xl;\n\t l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n\t c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n\t w[j++] = l & 0x3fffffff;\n\t }\n\t return c;\n\t}\n\t// Alternately, set max digit bits to 28 since some\n\t// browsers slow down when dealing with 32-bit numbers.\n\tfunction am3(i, x, w, j, c, n) {\n\t var xl = x & 0x3fff,\n\t xh = x >> 14;\n\t while (--n >= 0) {\n\t var l = this[i] & 0x3fff;\n\t var h = this[i++] >> 14;\n\t var m = xh * l + h * xl;\n\t l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n\t c = (l >> 28) + (m >> 14) + xh * h;\n\t w[j++] = l & 0xfffffff;\n\t }\n\t return c;\n\t}\n\tvar inBrowser = typeof navigator !== \"undefined\";\n\tif (inBrowser && j_lm && navigator.appName == \"Microsoft Internet Explorer\") {\n\t BigInteger.prototype.am = am2;\n\t dbits = 30;\n\t} else if (inBrowser && j_lm && navigator.appName != \"Netscape\") {\n\t BigInteger.prototype.am = am1;\n\t dbits = 26;\n\t} else {\n\t // Mozilla/Netscape seems to prefer am3\n\t BigInteger.prototype.am = am3;\n\t dbits = 28;\n\t}\n\t\n\tBigInteger.prototype.DB = dbits;\n\tBigInteger.prototype.DM = (1 << dbits) - 1;\n\tBigInteger.prototype.DV = 1 << dbits;\n\t\n\tvar BI_FP = 52;\n\tBigInteger.prototype.FV = Math.pow(2, BI_FP);\n\tBigInteger.prototype.F1 = BI_FP - dbits;\n\tBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n\t\n\t// Digit conversions\n\tvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\n\tvar BI_RC = new Array();\n\tvar rr, vv;\n\trr = \"0\".charCodeAt(0);\n\tfor (vv = 0; vv <= 9; ++vv) {\n\t BI_RC[rr++] = vv;\n\t}rr = \"a\".charCodeAt(0);\n\tfor (vv = 10; vv < 36; ++vv) {\n\t BI_RC[rr++] = vv;\n\t}rr = \"A\".charCodeAt(0);\n\tfor (vv = 10; vv < 36; ++vv) {\n\t BI_RC[rr++] = vv;\n\t}function int2char(n) {\n\t return BI_RM.charAt(n);\n\t}\n\tfunction intAt(s, i) {\n\t var c = BI_RC[s.charCodeAt(i)];\n\t return c == null ? -1 : c;\n\t}\n\t\n\t// (protected) copy this to r\n\tfunction bnpCopyTo(r) {\n\t for (var i = this.t - 1; i >= 0; --i) {\n\t r[i] = this[i];\n\t }r.t = this.t;\n\t r.s = this.s;\n\t}\n\t\n\t// (protected) set from integer value x, -DV <= x < DV\n\tfunction bnpFromInt(x) {\n\t this.t = 1;\n\t this.s = x < 0 ? -1 : 0;\n\t if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n\t}\n\t\n\t// return bigint initialized to value\n\tfunction nbv(i) {\n\t var r = nbi();\n\t\n\t r.fromInt(i);\n\t\n\t return r;\n\t}\n\t\n\t// (protected) set from string and radix\n\tfunction bnpFromString(s, b) {\n\t var k;\n\t 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\t this.t = 0;\n\t this.s = 0;\n\t var i = s.length,\n\t mi = false,\n\t sh = 0;\n\t while (--i >= 0) {\n\t var x = intAt(s, i);\n\t if (x < 0) {\n\t if (s.charAt(i) == \"-\") mi = true;\n\t continue;\n\t }\n\t mi = false;\n\t if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n\t this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n\t this[this.t++] = x >> this.DB - sh;\n\t } else this[this.t - 1] |= x << sh;\n\t sh += k;\n\t if (sh >= this.DB) sh -= this.DB;\n\t }\n\t this.clamp();\n\t if (mi) BigInteger.ZERO.subTo(this, this);\n\t}\n\t\n\t// (protected) clamp off excess high words\n\tfunction bnpClamp() {\n\t var c = this.s & this.DM;\n\t while (this.t > 0 && this[this.t - 1] == c) {\n\t --this.t;\n\t }\n\t}\n\t\n\t// (public) return string representation in given radix\n\tfunction bnToString(b) {\n\t if (this.s < 0) return \"-\" + this.negate().toString();\n\t var k;\n\t 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\t var km = (1 << k) - 1,\n\t d,\n\t m = false,\n\t r = \"\",\n\t i = this.t;\n\t var p = this.DB - i * this.DB % k;\n\t if (i-- > 0) {\n\t if (p < this.DB && (d = this[i] >> p) > 0) {\n\t m = true;\n\t r = int2char(d);\n\t }\n\t while (i >= 0) {\n\t if (p < k) {\n\t d = (this[i] & (1 << p) - 1) << k - p;\n\t d |= this[--i] >> (p += this.DB - k);\n\t } else {\n\t d = this[i] >> (p -= k) & km;\n\t if (p <= 0) {\n\t p += this.DB;\n\t --i;\n\t }\n\t }\n\t if (d > 0) m = true;\n\t if (m) r += int2char(d);\n\t }\n\t }\n\t return m ? r : \"0\";\n\t}\n\t\n\t// (public) -this\n\tfunction bnNegate() {\n\t var r = nbi();\n\t\n\t BigInteger.ZERO.subTo(this, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) |this|\n\tfunction bnAbs() {\n\t return this.s < 0 ? this.negate() : this;\n\t}\n\t\n\t// (public) return + if this > a, - if this < a, 0 if equal\n\tfunction bnCompareTo(a) {\n\t var r = this.s - a.s;\n\t if (r != 0) return r;\n\t var i = this.t;\n\t r = i - a.t;\n\t if (r != 0) return this.s < 0 ? -r : r;\n\t while (--i >= 0) {\n\t if ((r = this[i] - a[i]) != 0) return r;\n\t }return 0;\n\t}\n\t\n\t// returns bit length of the integer x\n\tfunction nbits(x) {\n\t var r = 1,\n\t t;\n\t if ((t = x >>> 16) != 0) {\n\t x = t;\n\t r += 16;\n\t }\n\t if ((t = x >> 8) != 0) {\n\t x = t;\n\t r += 8;\n\t }\n\t if ((t = x >> 4) != 0) {\n\t x = t;\n\t r += 4;\n\t }\n\t if ((t = x >> 2) != 0) {\n\t x = t;\n\t r += 2;\n\t }\n\t if ((t = x >> 1) != 0) {\n\t x = t;\n\t r += 1;\n\t }\n\t return r;\n\t}\n\t\n\t// (public) return the number of bits in \"this\"\n\tfunction bnBitLength() {\n\t if (this.t <= 0) return 0;\n\t return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n\t}\n\t\n\t// (protected) r = this << n*DB\n\tfunction bnpDLShiftTo(n, r) {\n\t var i;\n\t for (i = this.t - 1; i >= 0; --i) {\n\t r[i + n] = this[i];\n\t }for (i = n - 1; i >= 0; --i) {\n\t r[i] = 0;\n\t }r.t = this.t + n;\n\t r.s = this.s;\n\t}\n\t\n\t// (protected) r = this >> n*DB\n\tfunction bnpDRShiftTo(n, r) {\n\t for (var i = n; i < this.t; ++i) {\n\t r[i - n] = this[i];\n\t }r.t = Math.max(this.t - n, 0);\n\t r.s = this.s;\n\t}\n\t\n\t// (protected) r = this << n\n\tfunction bnpLShiftTo(n, r) {\n\t var bs = n % this.DB;\n\t var cbs = this.DB - bs;\n\t var bm = (1 << cbs) - 1;\n\t var ds = Math.floor(n / this.DB),\n\t c = this.s << bs & this.DM,\n\t i;\n\t for (i = this.t - 1; i >= 0; --i) {\n\t r[i + ds + 1] = this[i] >> cbs | c;\n\t c = (this[i] & bm) << bs;\n\t }\n\t for (i = ds - 1; i >= 0; --i) {\n\t r[i] = 0;\n\t }r[ds] = c;\n\t r.t = this.t + ds + 1;\n\t r.s = this.s;\n\t r.clamp();\n\t}\n\t\n\t// (protected) r = this >> n\n\tfunction bnpRShiftTo(n, r) {\n\t r.s = this.s;\n\t var ds = Math.floor(n / this.DB);\n\t if (ds >= this.t) {\n\t r.t = 0;\n\t return;\n\t }\n\t var bs = n % this.DB;\n\t var cbs = this.DB - bs;\n\t var bm = (1 << bs) - 1;\n\t r[0] = this[ds] >> bs;\n\t for (var i = ds + 1; i < this.t; ++i) {\n\t r[i - ds - 1] |= (this[i] & bm) << cbs;\n\t r[i - ds] = this[i] >> bs;\n\t }\n\t if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n\t r.t = this.t - ds;\n\t r.clamp();\n\t}\n\t\n\t// (protected) r = this - a\n\tfunction bnpSubTo(a, r) {\n\t var i = 0,\n\t c = 0,\n\t m = Math.min(a.t, this.t);\n\t while (i < m) {\n\t c += this[i] - a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t if (a.t < this.t) {\n\t c -= a.s;\n\t while (i < this.t) {\n\t c += this[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c += this.s;\n\t } else {\n\t c += this.s;\n\t while (i < a.t) {\n\t c -= a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c -= a.s;\n\t }\n\t r.s = c < 0 ? -1 : 0;\n\t if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n\t r.t = i;\n\t r.clamp();\n\t}\n\t\n\t// (protected) r = this * a, r != this,a (HAC 14.12)\n\t// \"this\" should be the larger one if appropriate.\n\tfunction bnpMultiplyTo(a, r) {\n\t var x = this.abs(),\n\t y = a.abs();\n\t var i = x.t;\n\t r.t = i + y.t;\n\t while (--i >= 0) {\n\t r[i] = 0;\n\t }for (i = 0; i < y.t; ++i) {\n\t r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n\t }r.s = 0;\n\t r.clamp();\n\t if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n\t}\n\t\n\t// (protected) r = this^2, r != this (HAC 14.16)\n\tfunction bnpSquareTo(r) {\n\t var x = this.abs();\n\t var i = r.t = 2 * x.t;\n\t while (--i >= 0) {\n\t r[i] = 0;\n\t }for (i = 0; i < x.t - 1; ++i) {\n\t var c = x.am(i, x[i], r, 2 * i, 0, 1);\n\t if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n\t r[i + x.t] -= x.DV;\n\t r[i + x.t + 1] = 1;\n\t }\n\t }\n\t if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n\t r.s = 0;\n\t r.clamp();\n\t}\n\t\n\t// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n\t// r != q, this != m. q or r may be null.\n\tfunction bnpDivRemTo(m, q, r) {\n\t var pm = m.abs();\n\t if (pm.t <= 0) return;\n\t var pt = this.abs();\n\t if (pt.t < pm.t) {\n\t if (q != null) q.fromInt(0);\n\t if (r != null) this.copyTo(r);\n\t return;\n\t }\n\t if (r == null) r = nbi();\n\t var y = nbi(),\n\t ts = this.s,\n\t ms = m.s;\n\t var nsh = this.DB - nbits(pm[pm.t - 1]);\n\t // normalize modulus\n\t if (nsh > 0) {\n\t pm.lShiftTo(nsh, y);\n\t pt.lShiftTo(nsh, r);\n\t } else {\n\t pm.copyTo(y);\n\t pt.copyTo(r);\n\t }\n\t var ys = y.t;\n\t var y0 = y[ys - 1];\n\t if (y0 == 0) return;\n\t var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n\t var d1 = this.FV / yt,\n\t d2 = (1 << this.F1) / yt,\n\t e = 1 << this.F2;\n\t var i = r.t,\n\t j = i - ys,\n\t t = q == null ? nbi() : q;\n\t y.dlShiftTo(j, t);\n\t if (r.compareTo(t) >= 0) {\n\t r[r.t++] = 1;\n\t r.subTo(t, r);\n\t }\n\t BigInteger.ONE.dlShiftTo(ys, t);\n\t t.subTo(y, y);\n\t // \"negative\" y so we can replace sub with am later\n\t while (y.t < ys) {\n\t y[y.t++] = 0;\n\t }while (--j >= 0) {\n\t // Estimate quotient digit\n\t var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n\t if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n\t // Try it out\n\t y.dlShiftTo(j, t);\n\t r.subTo(t, r);\n\t while (r[i] < --qd) {\n\t r.subTo(t, r);\n\t }\n\t }\n\t }\n\t if (q != null) {\n\t r.drShiftTo(ys, q);\n\t if (ts != ms) BigInteger.ZERO.subTo(q, q);\n\t }\n\t r.t = ys;\n\t r.clamp();\n\t if (nsh > 0) r.rShiftTo(nsh, r);\n\t // Denormalize remainder\n\t if (ts < 0) BigInteger.ZERO.subTo(r, r);\n\t}\n\t\n\t// (public) this mod a\n\tfunction bnMod(a) {\n\t var r = nbi();\n\t this.abs().divRemTo(a, null, r);\n\t if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n\t return r;\n\t}\n\t\n\t// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n\t// justification:\n\t// xy == 1 (mod m)\n\t// xy = 1+km\n\t// xy(2-xy) = (1+km)(1-km)\n\t// x[y(2-xy)] = 1-k^2m^2\n\t// x[y(2-xy)] == 1 (mod m^2)\n\t// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n\t// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n\t// JS multiply \"overflows\" differently from C/C++, so care is needed here.\n\tfunction bnpInvDigit() {\n\t if (this.t < 1) return 0;\n\t var x = this[0];\n\t if ((x & 1) == 0) return 0;\n\t var y = x & 3;\n\t // y == 1/x mod 2^2\n\t y = y * (2 - (x & 0xf) * y) & 0xf;\n\t // y == 1/x mod 2^4\n\t y = y * (2 - (x & 0xff) * y) & 0xff;\n\t // y == 1/x mod 2^8\n\t y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n\t // y == 1/x mod 2^16\n\t // last step - calculate inverse mod DV directly;\n\t // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n\t y = y * (2 - x * y % this.DV) % this.DV;\n\t // y == 1/x mod 2^dbits\n\t // we really want the negative inverse, and -DV < y < DV\n\t return y > 0 ? this.DV - y : -y;\n\t}\n\t\n\tfunction bnEquals(a) {\n\t return this.compareTo(a) == 0;\n\t}\n\t\n\t// (protected) r = this + a\n\tfunction bnpAddTo(a, r) {\n\t var i = 0,\n\t c = 0,\n\t m = Math.min(a.t, this.t);\n\t while (i < m) {\n\t c += this[i] + a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t if (a.t < this.t) {\n\t c += a.s;\n\t while (i < this.t) {\n\t c += this[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c += this.s;\n\t } else {\n\t c += this.s;\n\t while (i < a.t) {\n\t c += a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c += a.s;\n\t }\n\t r.s = c < 0 ? -1 : 0;\n\t if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n\t r.t = i;\n\t r.clamp();\n\t}\n\t\n\t// (public) this + a\n\tfunction bnAdd(a) {\n\t var r = nbi();\n\t\n\t this.addTo(a, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) this - a\n\tfunction bnSubtract(a) {\n\t var r = nbi();\n\t\n\t this.subTo(a, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) this * a\n\tfunction bnMultiply(a) {\n\t var r = nbi();\n\t\n\t this.multiplyTo(a, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) this / a\n\tfunction bnDivide(a) {\n\t var r = nbi();\n\t\n\t this.divRemTo(a, r, null);\n\t\n\t return r;\n\t}\n\t\n\t// Montgomery reduction\n\tfunction Montgomery(m) {\n\t this.m = m;\n\t this.mp = m.invDigit();\n\t this.mpl = this.mp & 0x7fff;\n\t this.mph = this.mp >> 15;\n\t this.um = (1 << m.DB - 15) - 1;\n\t this.mt2 = 2 * m.t;\n\t}\n\t\n\t// xR mod m\n\tfunction montConvert(x) {\n\t var r = nbi();\n\t x.abs().dlShiftTo(this.m.t, r);\n\t r.divRemTo(this.m, null, r);\n\t if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n\t return r;\n\t}\n\t\n\t// x/R mod m\n\tfunction montRevert(x) {\n\t var r = nbi();\n\t x.copyTo(r);\n\t this.reduce(r);\n\t return r;\n\t}\n\t\n\t// x = x/R mod m (HAC 14.32)\n\tfunction montReduce(x) {\n\t while (x.t <= this.mt2) {\n\t // pad x so am has enough room later\n\t x[x.t++] = 0;\n\t }for (var i = 0; i < this.m.t; ++i) {\n\t // faster way of calculating u0 = x[i]*mp mod DV\n\t var j = x[i] & 0x7fff;\n\t var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n\t // use am to combine the multiply-shift-add into one call\n\t j = i + this.m.t;\n\t x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n\t // propagate carry\n\t while (x[j] >= x.DV) {\n\t x[j] -= x.DV;\n\t x[++j]++;\n\t }\n\t }\n\t x.clamp();\n\t x.drShiftTo(this.m.t, x);\n\t if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n\t}\n\t\n\t// r = \"x^2/R mod m\"; x != r\n\tfunction montSqrTo(x, r) {\n\t x.squareTo(r);\n\t\n\t this.reduce(r);\n\t}\n\t\n\t// r = \"xy/R mod m\"; x,y != r\n\tfunction montMulTo(x, y, r) {\n\t x.multiplyTo(y, r);\n\t\n\t this.reduce(r);\n\t}\n\t\n\tMontgomery.prototype.convert = montConvert;\n\tMontgomery.prototype.revert = montRevert;\n\tMontgomery.prototype.reduce = montReduce;\n\tMontgomery.prototype.mulTo = montMulTo;\n\tMontgomery.prototype.sqrTo = montSqrTo;\n\t\n\t// (public) this^e % m (HAC 14.85)\n\tfunction bnModPow(e, m, callback) {\n\t var i = e.bitLength(),\n\t k,\n\t r = nbv(1),\n\t z = new Montgomery(m);\n\t 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;\n\t\n\t // precomputation\n\t var g = new Array(),\n\t n = 3,\n\t k1 = k - 1,\n\t km = (1 << k) - 1;\n\t g[1] = z.convert(this);\n\t if (k > 1) {\n\t var g2 = nbi();\n\t z.sqrTo(g[1], g2);\n\t while (n <= km) {\n\t g[n] = nbi();\n\t z.mulTo(g2, g[n - 2], g[n]);\n\t n += 2;\n\t }\n\t }\n\t\n\t var j = e.t - 1,\n\t w,\n\t is1 = true,\n\t r2 = nbi(),\n\t t;\n\t i = nbits(e[j]) - 1;\n\t while (j >= 0) {\n\t if (i >= k1) w = e[j] >> i - k1 & km;else {\n\t w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n\t if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n\t }\n\t\n\t n = k;\n\t while ((w & 1) == 0) {\n\t w >>= 1;\n\t --n;\n\t }\n\t if ((i -= n) < 0) {\n\t i += this.DB;\n\t --j;\n\t }\n\t if (is1) {\n\t // ret == 1, don't bother squaring or multiplying it\n\t g[w].copyTo(r);\n\t is1 = false;\n\t } else {\n\t while (n > 1) {\n\t z.sqrTo(r, r2);\n\t z.sqrTo(r2, r);\n\t n -= 2;\n\t }\n\t if (n > 0) z.sqrTo(r, r2);else {\n\t t = r;\n\t r = r2;\n\t r2 = t;\n\t }\n\t z.mulTo(r2, g[w], r);\n\t }\n\t\n\t while (j >= 0 && (e[j] & 1 << i) == 0) {\n\t z.sqrTo(r, r2);\n\t t = r;\n\t r = r2;\n\t r2 = t;\n\t if (--i < 0) {\n\t i = this.DB - 1;\n\t --j;\n\t }\n\t }\n\t }\n\t var result = z.revert(r);\n\t callback(null, result);\n\t return result;\n\t}\n\t\n\t// protected\n\tBigInteger.prototype.copyTo = bnpCopyTo;\n\tBigInteger.prototype.fromInt = bnpFromInt;\n\tBigInteger.prototype.fromString = bnpFromString;\n\tBigInteger.prototype.clamp = bnpClamp;\n\tBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n\tBigInteger.prototype.drShiftTo = bnpDRShiftTo;\n\tBigInteger.prototype.lShiftTo = bnpLShiftTo;\n\tBigInteger.prototype.rShiftTo = bnpRShiftTo;\n\tBigInteger.prototype.subTo = bnpSubTo;\n\tBigInteger.prototype.multiplyTo = bnpMultiplyTo;\n\tBigInteger.prototype.squareTo = bnpSquareTo;\n\tBigInteger.prototype.divRemTo = bnpDivRemTo;\n\tBigInteger.prototype.invDigit = bnpInvDigit;\n\tBigInteger.prototype.addTo = bnpAddTo;\n\t\n\t// public\n\tBigInteger.prototype.toString = bnToString;\n\tBigInteger.prototype.negate = bnNegate;\n\tBigInteger.prototype.abs = bnAbs;\n\tBigInteger.prototype.compareTo = bnCompareTo;\n\tBigInteger.prototype.bitLength = bnBitLength;\n\tBigInteger.prototype.mod = bnMod;\n\tBigInteger.prototype.equals = bnEquals;\n\tBigInteger.prototype.add = bnAdd;\n\tBigInteger.prototype.subtract = bnSubtract;\n\tBigInteger.prototype.multiply = bnMultiply;\n\tBigInteger.prototype.divide = bnDivide;\n\tBigInteger.prototype.modPow = bnModPow;\n\t\n\t// \"constants\"\n\tBigInteger.ZERO = nbv(0);\n\tBigInteger.ONE = nbv(1);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _CognitoJwtToken2 = __webpack_require__(6);\n\t\n\tvar _CognitoJwtToken3 = _interopRequireDefault(_CognitoJwtToken2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoAccessToken = function (_CognitoJwtToken) {\n\t _inherits(CognitoAccessToken, _CognitoJwtToken);\n\t\n\t /**\n\t * Constructs a new CognitoAccessToken object\n\t * @param {string=} AccessToken The JWT access token.\n\t */\n\t function CognitoAccessToken() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t AccessToken = _ref.AccessToken;\n\t\n\t _classCallCheck(this, CognitoAccessToken);\n\t\n\t return _possibleConstructorReturn(this, _CognitoJwtToken.call(this, AccessToken || ''));\n\t }\n\t\n\t return CognitoAccessToken;\n\t}(_CognitoJwtToken3.default);\n\t\n\texports.default = CognitoAccessToken;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _CognitoJwtToken2 = __webpack_require__(6);\n\t\n\tvar _CognitoJwtToken3 = _interopRequireDefault(_CognitoJwtToken2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoIdToken = function (_CognitoJwtToken) {\n\t _inherits(CognitoIdToken, _CognitoJwtToken);\n\t\n\t /**\n\t * Constructs a new CognitoIdToken object\n\t * @param {string=} IdToken The JWT Id token\n\t */\n\t function CognitoIdToken() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t IdToken = _ref.IdToken;\n\t\n\t _classCallCheck(this, CognitoIdToken);\n\t\n\t return _possibleConstructorReturn(this, _CognitoJwtToken.call(this, IdToken || ''));\n\t }\n\t\n\t return CognitoIdToken;\n\t}(_CognitoJwtToken3.default);\n\t\n\texports.default = CognitoIdToken;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _global = __webpack_require__(1);\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoJwtToken = function () {\n\t /**\n\t * Constructs a new CognitoJwtToken object\n\t * @param {string=} token The JWT token.\n\t */\n\t function CognitoJwtToken(token) {\n\t _classCallCheck(this, CognitoJwtToken);\n\t\n\t // Assign object\n\t this.jwtToken = token || '';\n\t this.payload = this.decodePayload();\n\t }\n\t\n\t /**\n\t * @returns {string} the record's token.\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.getJwtToken = function getJwtToken() {\n\t return this.jwtToken;\n\t };\n\t\n\t /**\n\t * @returns {int} the token's expiration (exp member).\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.getExpiration = function getExpiration() {\n\t return this.payload.exp;\n\t };\n\t\n\t /**\n\t * @returns {int} the token's \"issued at\" (iat member).\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.getIssuedAt = function getIssuedAt() {\n\t return this.payload.iat;\n\t };\n\t\n\t /**\n\t * @returns {object} the token's payload.\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.decodePayload = function decodePayload() {\n\t var payload = this.jwtToken.split('.')[1];\n\t try {\n\t return JSON.parse(_global.util.base64.decode(payload).toString('utf8'));\n\t } catch (err) {\n\t return {};\n\t }\n\t };\n\t\n\t return CognitoJwtToken;\n\t}();\n\t\n\texports.default = CognitoJwtToken;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoRefreshToken = function () {\n\t /**\n\t * Constructs a new CognitoRefreshToken object\n\t * @param {string=} RefreshToken The JWT refresh token.\n\t */\n\t function CognitoRefreshToken() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t RefreshToken = _ref.RefreshToken;\n\t\n\t _classCallCheck(this, CognitoRefreshToken);\n\t\n\t // Assign object\n\t this.token = RefreshToken || '';\n\t }\n\t\n\t /**\n\t * @returns {string} the record's token.\n\t */\n\t\n\t\n\t CognitoRefreshToken.prototype.getToken = function getToken() {\n\t return this.token;\n\t };\n\t\n\t return CognitoRefreshToken;\n\t}();\n\t\n\texports.default = CognitoRefreshToken;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _global = __webpack_require__(1);\n\t\n\tvar _BigInteger = __webpack_require__(3);\n\t\n\tvar _BigInteger2 = _interopRequireDefault(_BigInteger);\n\t\n\tvar _AuthenticationHelper = __webpack_require__(2);\n\t\n\tvar _AuthenticationHelper2 = _interopRequireDefault(_AuthenticationHelper);\n\t\n\tvar _CognitoAccessToken = __webpack_require__(4);\n\t\n\tvar _CognitoAccessToken2 = _interopRequireDefault(_CognitoAccessToken);\n\t\n\tvar _CognitoIdToken = __webpack_require__(5);\n\t\n\tvar _CognitoIdToken2 = _interopRequireDefault(_CognitoIdToken);\n\t\n\tvar _CognitoRefreshToken = __webpack_require__(7);\n\t\n\tvar _CognitoRefreshToken2 = _interopRequireDefault(_CognitoRefreshToken);\n\t\n\tvar _CognitoUserSession = __webpack_require__(10);\n\t\n\tvar _CognitoUserSession2 = _interopRequireDefault(_CognitoUserSession);\n\t\n\tvar _DateHelper = __webpack_require__(11);\n\t\n\tvar _DateHelper2 = _interopRequireDefault(_DateHelper);\n\t\n\tvar _CognitoUserAttribute = __webpack_require__(9);\n\t\n\tvar _CognitoUserAttribute2 = _interopRequireDefault(_CognitoUserAttribute);\n\t\n\tvar _StorageHelper = __webpack_require__(12);\n\t\n\tvar _StorageHelper2 = _interopRequireDefault(_StorageHelper);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/**\n\t * @callback nodeCallback\n\t * @template T result\n\t * @param {*} err The operation failure reason, or null.\n\t * @param {T} result The operation result.\n\t */\n\t\n\t/**\n\t * @callback onFailure\n\t * @param {*} err Failure reason.\n\t */\n\t\n\t/**\n\t * @callback onSuccess\n\t * @template T result\n\t * @param {T} result The operation result.\n\t */\n\t\n\t/**\n\t * @callback mfaRequired\n\t * @param {*} details MFA challenge details.\n\t */\n\t\n\t/**\n\t * @callback customChallenge\n\t * @param {*} details Custom challenge details.\n\t */\n\t\n\t/**\n\t * @callback inputVerificationCode\n\t * @param {*} data Server response.\n\t */\n\t\n\t/**\n\t * @callback authSuccess\n\t * @param {CognitoUserSession} session The new session.\n\t * @param {bool=} userConfirmationNecessary User must be confirmed.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUser = function () {\n\t /**\n\t * Constructs a new CognitoUser object\n\t * @param {object} data Creation options\n\t * @param {string} data.Username The user's username.\n\t * @param {CognitoUserPool} data.Pool Pool containing the user.\n\t * @param {object} data.Storage Optional storage object.\n\t */\n\t function CognitoUser(data) {\n\t _classCallCheck(this, CognitoUser);\n\t\n\t if (data == null || data.Username == null || data.Pool == null) {\n\t throw new Error('Username and pool information are required.');\n\t }\n\t\n\t this.username = data.Username || '';\n\t this.pool = data.Pool;\n\t this.Session = null;\n\t\n\t this.client = data.Pool.client;\n\t\n\t this.signInUserSession = null;\n\t this.authenticationFlowType = 'USER_SRP_AUTH';\n\t\n\t this.storage = data.Storage || new _StorageHelper2.default().getStorage();\n\t }\n\t\n\t /**\n\t * Sets the session for this user\n\t * @param {CognitoUserSession} signInUserSession the session\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n\t this.clearCachedTokens();\n\t this.signInUserSession = signInUserSession;\n\t this.cacheTokens();\n\t };\n\t\n\t /**\n\t * @returns {CognitoUserSession} the current session for this user\n\t */\n\t\n\t\n\t CognitoUser.prototype.getSignInUserSession = function getSignInUserSession() {\n\t return this.signInUserSession;\n\t };\n\t\n\t /**\n\t * @returns {string} the user's username\n\t */\n\t\n\t\n\t CognitoUser.prototype.getUsername = function getUsername() {\n\t return this.username;\n\t };\n\t\n\t /**\n\t * @returns {String} the authentication flow type\n\t */\n\t\n\t\n\t CognitoUser.prototype.getAuthenticationFlowType = function getAuthenticationFlowType() {\n\t return this.authenticationFlowType;\n\t };\n\t\n\t /**\n\t * sets authentication flow type\n\t * @param {string} authenticationFlowType New value.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n\t this.authenticationFlowType = authenticationFlowType;\n\t };\n\t\n\t /**\n\t * This is used for authenticating the user through the custom authentication flow.\n\t * @param {AuthenticationDetails} authDetails Contains the authentication data\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {customChallenge} callback.customChallenge Custom challenge\n\t * response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.initiateAuth = function initiateAuth(authDetails, callback) {\n\t var _this = this;\n\t\n\t var authParameters = authDetails.getAuthParameters();\n\t authParameters.USERNAME = this.username;\n\t\n\t this.client.makeUnauthenticatedRequest('initiateAuth', {\n\t AuthFlow: 'CUSTOM_AUTH',\n\t ClientId: this.pool.getClientId(),\n\t AuthParameters: authParameters,\n\t ClientMetadata: authDetails.getValidationData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t var challengeName = data.ChallengeName;\n\t var challengeParameters = data.ChallengeParameters;\n\t\n\t if (challengeName === 'CUSTOM_CHALLENGE') {\n\t _this.Session = data.Session;\n\t return callback.customChallenge(challengeParameters);\n\t }\n\t _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n\t _this.cacheTokens();\n\t return callback.onSuccess(_this.signInUserSession);\n\t });\n\t };\n\t\n\t /**\n\t * This is used for authenticating the user. it calls the AuthenticationHelper for SRP related\n\t * stuff\n\t * @param {AuthenticationDetails} authDetails Contains the authentication data\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {newPasswordRequired} callback.newPasswordRequired new\n\t * password and any required attributes are required to continue\n\t * @param {mfaRequired} callback.mfaRequired MFA code\n\t * required to continue.\n\t * @param {customChallenge} callback.customChallenge Custom challenge\n\t * response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.authenticateUser = function authenticateUser(authDetails, callback) {\n\t var _this2 = this;\n\t\n\t var authenticationHelper = new _AuthenticationHelper2.default(this.pool.getUserPoolId().split('_')[1]);\n\t var dateHelper = new _DateHelper2.default();\n\t\n\t var serverBValue = void 0;\n\t var salt = void 0;\n\t var authParameters = {};\n\t\n\t if (this.deviceKey != null) {\n\t authParameters.DEVICE_KEY = this.deviceKey;\n\t }\n\t\n\t authParameters.USERNAME = this.username;\n\t authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n\t // getLargeAValue callback start\n\t if (errOnAValue) {\n\t callback.onFailure(errOnAValue);\n\t }\n\t\n\t authParameters.SRP_A = aValue.toString(16);\n\t\n\t if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n\t authParameters.CHALLENGE_NAME = 'SRP_A';\n\t }\n\t\n\t _this2.client.makeUnauthenticatedRequest('initiateAuth', {\n\t AuthFlow: _this2.authenticationFlowType,\n\t ClientId: _this2.pool.getClientId(),\n\t AuthParameters: authParameters,\n\t ClientMetadata: authDetails.getValidationData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeParameters = data.ChallengeParameters;\n\t\n\t _this2.username = challengeParameters.USER_ID_FOR_SRP;\n\t serverBValue = new _BigInteger2.default(challengeParameters.SRP_B, 16);\n\t salt = new _BigInteger2.default(challengeParameters.SALT, 16);\n\t _this2.getCachedDeviceKeyAndPassword();\n\t\n\t authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n\t // getPasswordAuthenticationKey callback start\n\t if (errOnHkdf) {\n\t callback.onFailure(errOnHkdf);\n\t }\n\t\n\t var dateNow = dateHelper.getNowString();\n\t\n\t var signatureString = _global.util.crypto.hmac(hkdf, _global.util.buffer.concat([new _global.util.Buffer(_this2.pool.getUserPoolId().split('_')[1], 'utf8'), new _global.util.Buffer(_this2.username, 'utf8'), new _global.util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'), new _global.util.Buffer(dateNow, 'utf8')]), 'base64', 'sha256');\n\t\n\t var challengeResponses = {};\n\t\n\t challengeResponses.USERNAME = _this2.username;\n\t challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n\t challengeResponses.TIMESTAMP = dateNow;\n\t challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\t\n\t if (_this2.deviceKey != null) {\n\t challengeResponses.DEVICE_KEY = _this2.deviceKey;\n\t }\n\t\n\t var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n\t return _this2.client.makeUnauthenticatedRequest('respondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n\t if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n\t challengeResponses.DEVICE_KEY = null;\n\t _this2.deviceKey = null;\n\t _this2.randomPassword = null;\n\t _this2.deviceGroupKey = null;\n\t _this2.clearCachedDeviceKeyAndPassword();\n\t return respondToAuthChallenge(challenge, challengeCallback);\n\t }\n\t return challengeCallback(errChallenge, dataChallenge);\n\t });\n\t };\n\t\n\t respondToAuthChallenge({\n\t ChallengeName: 'PASSWORD_VERIFIER',\n\t ClientId: _this2.pool.getClientId(),\n\t ChallengeResponses: challengeResponses,\n\t Session: data.Session\n\t }, function (errAuthenticate, dataAuthenticate) {\n\t if (errAuthenticate) {\n\t return callback.onFailure(errAuthenticate);\n\t }\n\t\n\t var challengeName = dataAuthenticate.ChallengeName;\n\t if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n\t _this2.Session = dataAuthenticate.Session;\n\t var userAttributes = null;\n\t var rawRequiredAttributes = null;\n\t var requiredAttributes = [];\n\t var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n\t\n\t if (dataAuthenticate.ChallengeParameters) {\n\t userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n\t rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n\t }\n\t\n\t if (rawRequiredAttributes) {\n\t for (var i = 0; i < rawRequiredAttributes.length; i++) {\n\t requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n\t }\n\t }\n\t return callback.newPasswordRequired(userAttributes, requiredAttributes);\n\t }\n\t return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n\t });\n\t return undefined;\n\t // getPasswordAuthenticationKey callback end\n\t });\n\t return undefined;\n\t });\n\t // getLargeAValue callback end\n\t });\n\t };\n\t\n\t /**\n\t * PRIVATE ONLY: This is an internal only method and should not\n\t * be directly called by the consumers.\n\t * @param {object} dataAuthenticate authentication data\n\t * @param {object} authenticationHelper helper created\n\t * @param {callback} callback passed on from caller\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n\t var _this3 = this;\n\t\n\t var challengeName = dataAuthenticate.ChallengeName;\n\t var challengeParameters = dataAuthenticate.ChallengeParameters;\n\t\n\t if (challengeName === 'SMS_MFA') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.mfaRequired(challengeName, challengeParameters);\n\t }\n\t\n\t if (challengeName === 'CUSTOM_CHALLENGE') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.customChallenge(challengeParameters);\n\t }\n\t\n\t if (challengeName === 'DEVICE_SRP_AUTH') {\n\t this.getDeviceResponse(callback);\n\t return undefined;\n\t }\n\t\n\t this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\t this.cacheTokens();\n\t\n\t var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n\t if (newDeviceMetadata == null) {\n\t return callback.onSuccess(this.signInUserSession);\n\t }\n\t\n\t authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n\t if (errGenHash) {\n\t return callback.onFailure(errGenHash);\n\t }\n\t\n\t var deviceSecretVerifierConfig = {\n\t Salt: new _global.util.Buffer(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n\t PasswordVerifier: new _global.util.Buffer(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n\t };\n\t\n\t _this3.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n\t _this3.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n\t _this3.randomPassword = authenticationHelper.getRandomPassword();\n\t\n\t _this3.client.makeUnauthenticatedRequest('confirmDevice', {\n\t DeviceKey: newDeviceMetadata.DeviceKey,\n\t AccessToken: _this3.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n\t DeviceName: navigator.userAgent\n\t }, function (errConfirm, dataConfirm) {\n\t if (errConfirm) {\n\t return callback.onFailure(errConfirm);\n\t }\n\t\n\t _this3.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\t _this3.cacheDeviceKeyAndPassword();\n\t if (dataConfirm.UserConfirmationNecessary === true) {\n\t return callback.onSuccess(_this3.signInUserSession, dataConfirm.UserConfirmationNecessary);\n\t }\n\t return callback.onSuccess(_this3.signInUserSession);\n\t });\n\t return undefined;\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n\t * Pass the new password with any new user attributes to be updated.\n\t * User attribute keys must be of format userAttributes..\n\t * @param {string} newPassword new password for this user\n\t * @param {object} requiredAttributeData map with values for all required attributes\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n\t * @param {customChallenge} callback.customChallenge Custom challenge\n\t * response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback) {\n\t var _this4 = this;\n\t\n\t if (!newPassword) {\n\t return callback.onFailure(new Error('New password is required.'));\n\t }\n\t var authenticationHelper = new _AuthenticationHelper2.default(this.pool.getUserPoolId().split('_')[1]);\n\t var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n\t\n\t var finalUserAttributes = {};\n\t if (requiredAttributeData) {\n\t Object.keys(requiredAttributeData).forEach(function (key) {\n\t finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n\t });\n\t }\n\t\n\t finalUserAttributes.NEW_PASSWORD = newPassword;\n\t finalUserAttributes.USERNAME = this.username;\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'NEW_PASSWORD_REQUIRED',\n\t ClientId: this.pool.getClientId(),\n\t ChallengeResponses: finalUserAttributes,\n\t Session: this.Session\n\t }, function (errAuthenticate, dataAuthenticate) {\n\t if (errAuthenticate) {\n\t return callback.onFailure(errAuthenticate);\n\t }\n\t return _this4.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to get a session using device authentication. It is called at the end of user\n\t * authentication\n\t *\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t * @private\n\t */\n\t\n\t\n\t CognitoUser.prototype.getDeviceResponse = function getDeviceResponse(callback) {\n\t var _this5 = this;\n\t\n\t var authenticationHelper = new _AuthenticationHelper2.default(this.deviceGroupKey);\n\t var dateHelper = new _DateHelper2.default();\n\t\n\t var authParameters = {};\n\t\n\t authParameters.USERNAME = this.username;\n\t authParameters.DEVICE_KEY = this.deviceKey;\n\t authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n\t // getLargeAValue callback start\n\t if (errAValue) {\n\t callback.onFailure(errAValue);\n\t }\n\t\n\t authParameters.SRP_A = aValue.toString(16);\n\t\n\t _this5.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'DEVICE_SRP_AUTH',\n\t ClientId: _this5.pool.getClientId(),\n\t ChallengeResponses: authParameters\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeParameters = data.ChallengeParameters;\n\t\n\t var serverBValue = new _BigInteger2.default(challengeParameters.SRP_B, 16);\n\t var salt = new _BigInteger2.default(challengeParameters.SALT, 16);\n\t\n\t authenticationHelper.getPasswordAuthenticationKey(_this5.deviceKey, _this5.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n\t // getPasswordAuthenticationKey callback start\n\t if (errHkdf) {\n\t return callback.onFailure(errHkdf);\n\t }\n\t\n\t var dateNow = dateHelper.getNowString();\n\t\n\t var signatureString = _global.util.crypto.hmac(hkdf, _global.util.buffer.concat([new _global.util.Buffer(_this5.deviceGroupKey, 'utf8'), new _global.util.Buffer(_this5.deviceKey, 'utf8'), new _global.util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'), new _global.util.Buffer(dateNow, 'utf8')]), 'base64', 'sha256');\n\t\n\t var challengeResponses = {};\n\t\n\t challengeResponses.USERNAME = _this5.username;\n\t challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n\t challengeResponses.TIMESTAMP = dateNow;\n\t challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\t challengeResponses.DEVICE_KEY = _this5.deviceKey;\n\t\n\t _this5.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n\t ClientId: _this5.pool.getClientId(),\n\t ChallengeResponses: challengeResponses,\n\t Session: data.Session\n\t }, function (errAuthenticate, dataAuthenticate) {\n\t if (errAuthenticate) {\n\t return callback.onFailure(errAuthenticate);\n\t }\n\t\n\t _this5.signInUserSession = _this5.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\t _this5.cacheTokens();\n\t\n\t return callback.onSuccess(_this5.signInUserSession);\n\t });\n\t return undefined;\n\t // getPasswordAuthenticationKey callback end\n\t });\n\t return undefined;\n\t });\n\t // getLargeAValue callback end\n\t });\n\t };\n\t\n\t /**\n\t * This is used for a certain user to confirm the registration by using a confirmation code\n\t * @param {string} confirmationCode Code entered by user.\n\t * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback) {\n\t this.client.makeUnauthenticatedRequest('confirmSignUp', {\n\t ClientId: this.pool.getClientId(),\n\t ConfirmationCode: confirmationCode,\n\t Username: this.username,\n\t ForceAliasCreation: forceAliasCreation\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t };\n\t\n\t /**\n\t * This is used by the user once he has the responses to a custom challenge\n\t * @param {string} answerChallenge The custom challange answer.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {customChallenge} callback.customChallenge\n\t * Custom challenge response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback) {\n\t var _this6 = this;\n\t\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = this.username;\n\t challengeResponses.ANSWER = answerChallenge;\n\t\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'CUSTOM_CHALLENGE',\n\t ChallengeResponses: challengeResponses,\n\t ClientId: this.pool.getClientId(),\n\t Session: this.Session\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeName = data.ChallengeName;\n\t\n\t if (challengeName === 'CUSTOM_CHALLENGE') {\n\t _this6.Session = data.Session;\n\t return callback.customChallenge(data.ChallengeParameters);\n\t }\n\t\n\t _this6.signInUserSession = _this6.getCognitoUserSession(data.AuthenticationResult);\n\t _this6.cacheTokens();\n\t return callback.onSuccess(_this6.signInUserSession);\n\t });\n\t };\n\t\n\t /**\n\t * This is used by the user once he has an MFA code\n\t * @param {string} confirmationCode The MFA code entered by the user.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback) {\n\t var _this7 = this;\n\t\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = this.username;\n\t challengeResponses.SMS_MFA_CODE = confirmationCode;\n\t\n\t if (this.deviceKey != null) {\n\t challengeResponses.DEVICE_KEY = this.deviceKey;\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'SMS_MFA',\n\t ChallengeResponses: challengeResponses,\n\t ClientId: this.pool.getClientId(),\n\t Session: this.Session\n\t }, function (err, dataAuthenticate) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeName = dataAuthenticate.ChallengeName;\n\t\n\t if (challengeName === 'DEVICE_SRP_AUTH') {\n\t _this7.getDeviceResponse(callback);\n\t return undefined;\n\t }\n\t\n\t _this7.signInUserSession = _this7.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\t _this7.cacheTokens();\n\t\n\t if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n\t return callback.onSuccess(_this7.signInUserSession);\n\t }\n\t\n\t var authenticationHelper = new _AuthenticationHelper2.default(_this7.pool.getUserPoolId().split('_')[1]);\n\t authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n\t if (errGenHash) {\n\t return callback.onFailure(errGenHash);\n\t }\n\t\n\t var deviceSecretVerifierConfig = {\n\t Salt: new _global.util.Buffer(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n\t PasswordVerifier: new _global.util.Buffer(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n\t };\n\t\n\t _this7.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n\t _this7.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n\t _this7.randomPassword = authenticationHelper.getRandomPassword();\n\t\n\t _this7.client.makeUnauthenticatedRequest('confirmDevice', {\n\t DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n\t AccessToken: _this7.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n\t DeviceName: navigator.userAgent\n\t }, function (errConfirm, dataConfirm) {\n\t if (errConfirm) {\n\t return callback.onFailure(errConfirm);\n\t }\n\t\n\t _this7.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\t _this7.cacheDeviceKeyAndPassword();\n\t if (dataConfirm.UserConfirmationNecessary === true) {\n\t return callback.onSuccess(_this7.signInUserSession, dataConfirm.UserConfirmationNecessary);\n\t }\n\t return callback.onSuccess(_this7.signInUserSession);\n\t });\n\t return undefined;\n\t });\n\t return undefined;\n\t });\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to change the current password\n\t * @param {string} oldUserPassword The current password.\n\t * @param {string} newUserPassword The requested new password.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.changePassword = function changePassword(oldUserPassword, newUserPassword, callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('changePassword', {\n\t PreviousPassword: oldUserPassword,\n\t ProposedPassword: newUserPassword,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to enable MFA for himself\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.enableMFA = function enableMFA(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t var mfaOptions = [];\n\t var mfaEnabled = {\n\t DeliveryMedium: 'SMS',\n\t AttributeName: 'phone_number'\n\t };\n\t mfaOptions.push(mfaEnabled);\n\t\n\t this.client.makeUnauthenticatedRequest('setUserSettings', {\n\t MFAOptions: mfaOptions,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to disable MFA for himself\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.disableMFA = function disableMFA(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t var mfaOptions = [];\n\t\n\t this.client.makeUnauthenticatedRequest('setUserSettings', {\n\t MFAOptions: mfaOptions,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to delete himself\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.deleteUser = function deleteUser(callback) {\n\t var _this8 = this;\n\t\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('deleteUser', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t _this8.clearCachedTokens();\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n\t */\n\t /**\n\t * This is used by an authenticated user to change a list of attributes\n\t * @param {AttributeArg[]} attributes A list of the new user attributes.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.updateAttributes = function updateAttributes(attributes, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('updateUserAttributes', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t UserAttributes: attributes\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to get a list of attributes\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getUserAttributes = function getUserAttributes(callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getUser', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, userData) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t\n\t var attributeList = [];\n\t\n\t for (var i = 0; i < userData.UserAttributes.length; i++) {\n\t var attribute = {\n\t Name: userData.UserAttributes[i].Name,\n\t Value: userData.UserAttributes[i].Value\n\t };\n\t var userAttribute = new _CognitoUserAttribute2.default(attribute);\n\t attributeList.push(userAttribute);\n\t }\n\t\n\t return callback(null, attributeList);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to get the MFAOptions\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getMFAOptions = function getMFAOptions(callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getUser', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, userData) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t\n\t return callback(null, userData.MFAOptions);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to delete a list of attributes\n\t * @param {string[]} attributeList Names of the attributes to delete.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.deleteAttributes = function deleteAttributes(attributeList, callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('deleteUserAttributes', {\n\t UserAttributeNames: attributeList,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by a user to resend a confirmation code\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.resendConfirmationCode = function resendConfirmationCode(callback) {\n\t this.client.makeUnauthenticatedRequest('resendConfirmationCode', {\n\t ClientId: this.pool.getClientId(),\n\t Username: this.username\n\t }, function (err, result) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, result);\n\t });\n\t };\n\t\n\t /**\n\t * This is used to get a session, either from the session object\n\t * or from the local storage, or by using a refresh token\n\t *\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getSession = function getSession(callback) {\n\t if (this.username == null) {\n\t return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n\t }\n\t\n\t if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n\t return callback(null, this.signInUserSession);\n\t }\n\t\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var idTokenKey = keyPrefix + '.idToken';\n\t var accessTokenKey = keyPrefix + '.accessToken';\n\t var refreshTokenKey = keyPrefix + '.refreshToken';\n\t var clockDriftKey = keyPrefix + '.clockDrift';\n\t\n\t if (this.storage.getItem(idTokenKey)) {\n\t var idToken = new _CognitoIdToken2.default({\n\t IdToken: this.storage.getItem(idTokenKey)\n\t });\n\t var accessToken = new _CognitoAccessToken2.default({\n\t AccessToken: this.storage.getItem(accessTokenKey)\n\t });\n\t var refreshToken = new _CognitoRefreshToken2.default({\n\t RefreshToken: this.storage.getItem(refreshTokenKey)\n\t });\n\t var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n\t\n\t var sessionData = {\n\t IdToken: idToken,\n\t AccessToken: accessToken,\n\t RefreshToken: refreshToken,\n\t ClockDrift: clockDrift\n\t };\n\t var cachedSession = new _CognitoUserSession2.default(sessionData);\n\t if (cachedSession.isValid()) {\n\t this.signInUserSession = cachedSession;\n\t return callback(null, this.signInUserSession);\n\t }\n\t\n\t if (refreshToken.getToken() == null) {\n\t return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n\t }\n\t\n\t this.refreshSession(refreshToken, callback);\n\t } else {\n\t callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n\t }\n\t\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This uses the refreshToken to retrieve a new session\n\t * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.refreshSession = function refreshSession(refreshToken, callback) {\n\t var _this9 = this;\n\t\n\t var authParameters = {};\n\t authParameters.REFRESH_TOKEN = refreshToken.getToken();\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId();\n\t var lastUserKey = keyPrefix + '.LastAuthUser';\n\t\n\t if (this.storage.getItem(lastUserKey)) {\n\t this.username = this.storage.getItem(lastUserKey);\n\t var deviceKeyKey = keyPrefix + '.' + this.username + '.deviceKey';\n\t this.deviceKey = this.storage.getItem(deviceKeyKey);\n\t authParameters.DEVICE_KEY = this.deviceKey;\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('initiateAuth', {\n\t ClientId: this.pool.getClientId(),\n\t AuthFlow: 'REFRESH_TOKEN_AUTH',\n\t AuthParameters: authParameters\n\t }, function (err, authResult) {\n\t if (err) {\n\t if (err.code === 'NotAuthorizedException') {\n\t _this9.clearCachedTokens();\n\t }\n\t return callback(err, null);\n\t }\n\t if (authResult) {\n\t var authenticationResult = authResult.AuthenticationResult;\n\t if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n\t authenticationResult.RefreshToken = refreshToken.getToken();\n\t }\n\t _this9.signInUserSession = _this9.getCognitoUserSession(authenticationResult);\n\t _this9.cacheTokens();\n\t return callback(null, _this9.signInUserSession);\n\t }\n\t return undefined;\n\t });\n\t };\n\t\n\t /**\n\t * This is used to save the session tokens to local storage\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.cacheTokens = function cacheTokens() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId();\n\t var idTokenKey = keyPrefix + '.' + this.username + '.idToken';\n\t var accessTokenKey = keyPrefix + '.' + this.username + '.accessToken';\n\t var refreshTokenKey = keyPrefix + '.' + this.username + '.refreshToken';\n\t var clockDriftKey = keyPrefix + '.' + this.username + '.clockDrift';\n\t var lastUserKey = keyPrefix + '.LastAuthUser';\n\t\n\t this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n\t this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n\t this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n\t this.storage.setItem(clockDriftKey, '' + this.signInUserSession.getClockDrift());\n\t this.storage.setItem(lastUserKey, this.username);\n\t };\n\t\n\t /**\n\t * This is used to cache the device key and device group and device password\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var deviceKeyKey = keyPrefix + '.deviceKey';\n\t var randomPasswordKey = keyPrefix + '.randomPasswordKey';\n\t var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey';\n\t\n\t this.storage.setItem(deviceKeyKey, this.deviceKey);\n\t this.storage.setItem(randomPasswordKey, this.randomPassword);\n\t this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n\t };\n\t\n\t /**\n\t * This is used to get current device key and device group and device password\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var deviceKeyKey = keyPrefix + '.deviceKey';\n\t var randomPasswordKey = keyPrefix + '.randomPasswordKey';\n\t var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey';\n\t\n\t if (this.storage.getItem(deviceKeyKey)) {\n\t this.deviceKey = this.storage.getItem(deviceKeyKey);\n\t this.randomPassword = this.storage.getItem(randomPasswordKey);\n\t this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n\t }\n\t };\n\t\n\t /**\n\t * This is used to clear the device key info from local storage\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var deviceKeyKey = keyPrefix + '.deviceKey';\n\t var randomPasswordKey = keyPrefix + '.randomPasswordKey';\n\t var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey';\n\t\n\t this.storage.removeItem(deviceKeyKey);\n\t this.storage.removeItem(randomPasswordKey);\n\t this.storage.removeItem(deviceGroupKeyKey);\n\t };\n\t\n\t /**\n\t * This is used to clear the session tokens from local storage\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.clearCachedTokens = function clearCachedTokens() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId();\n\t var idTokenKey = keyPrefix + '.' + this.username + '.idToken';\n\t var accessTokenKey = keyPrefix + '.' + this.username + '.accessToken';\n\t var refreshTokenKey = keyPrefix + '.' + this.username + '.refreshToken';\n\t var lastUserKey = keyPrefix + '.LastAuthUser';\n\t\n\t this.storage.removeItem(idTokenKey);\n\t this.storage.removeItem(accessTokenKey);\n\t this.storage.removeItem(refreshTokenKey);\n\t this.storage.removeItem(lastUserKey);\n\t };\n\t\n\t /**\n\t * This is used to build a user session from tokens retrieved in the authentication result\n\t * @param {object} authResult Successful auth response from server.\n\t * @returns {CognitoUserSession} The new user session.\n\t * @private\n\t */\n\t\n\t\n\t CognitoUser.prototype.getCognitoUserSession = function getCognitoUserSession(authResult) {\n\t var idToken = new _CognitoIdToken2.default(authResult);\n\t var accessToken = new _CognitoAccessToken2.default(authResult);\n\t var refreshToken = new _CognitoRefreshToken2.default(authResult);\n\t\n\t var sessionData = {\n\t IdToken: idToken,\n\t AccessToken: accessToken,\n\t RefreshToken: refreshToken\n\t };\n\t\n\t return new _CognitoUserSession2.default(sessionData);\n\t };\n\t\n\t /**\n\t * This is used to initiate a forgot password request\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {inputVerificationCode?} callback.inputVerificationCode\n\t * Optional callback raised instead of onSuccess with response data.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.forgotPassword = function forgotPassword(callback) {\n\t this.client.makeUnauthenticatedRequest('forgotPassword', {\n\t ClientId: this.pool.getClientId(),\n\t Username: this.username\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t if (typeof callback.inputVerificationCode === 'function') {\n\t return callback.inputVerificationCode(data);\n\t }\n\t return callback.onSuccess(data);\n\t });\n\t };\n\t\n\t /**\n\t * This is used to confirm a new password using a confirmationCode\n\t * @param {string} confirmationCode Code entered by user.\n\t * @param {string} newPassword Confirm new password.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback) {\n\t this.client.makeUnauthenticatedRequest('confirmForgotPassword', {\n\t ClientId: this.pool.getClientId(),\n\t Username: this.username,\n\t ConfirmationCode: confirmationCode,\n\t Password: newPassword\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess();\n\t });\n\t };\n\t\n\t /**\n\t * This is used to initiate an attribute confirmation request\n\t * @param {string} attributeName User attribute that needs confirmation.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getUserAttributeVerificationCode', {\n\t AttributeName: attributeName,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t if (typeof callback.inputVerificationCode === 'function') {\n\t return callback.inputVerificationCode(data);\n\t }\n\t return callback.onSuccess();\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to confirm an attribute using a confirmation code\n\t * @param {string} attributeName Attribute being confirmed.\n\t * @param {string} confirmationCode Code entered by user.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('verifyUserAttribute', {\n\t AttributeName: attributeName,\n\t Code: confirmationCode,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to get the device information using the current device key\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getDevice = function getDevice(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getDevice', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: this.deviceKey\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess(data);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to forget a specific device\n\t * @param {string} deviceKey Device key.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('forgetDevice', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: deviceKey\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to forget the current device\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.forgetDevice = function forgetDevice(callback) {\n\t var _this10 = this;\n\t\n\t this.forgetSpecificDevice(this.deviceKey, {\n\t onFailure: callback.onFailure,\n\t onSuccess: function onSuccess(result) {\n\t _this10.deviceKey = null;\n\t _this10.deviceGroupKey = null;\n\t _this10.randomPassword = null;\n\t _this10.clearCachedDeviceKeyAndPassword();\n\t return callback.onSuccess(result);\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * This is used to set the device status as remembered\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: this.deviceKey,\n\t DeviceRememberedStatus: 'remembered'\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to set the device status as not remembered\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: this.deviceKey,\n\t DeviceRememberedStatus: 'not_remembered'\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to list all devices for a user\n\t *\n\t * @param {int} limit the number of devices returned in a call\n\t * @param {string} paginationToken the pagination token in case any was returned before\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.listDevices = function listDevices(limit, paginationToken, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('listDevices', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t Limit: limit,\n\t PaginationToken: paginationToken\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess(data);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to globally revoke all tokens issued to a user\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.globalSignOut = function globalSignOut(callback) {\n\t var _this11 = this;\n\t\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('globalSignOut', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t _this11.clearCachedTokens();\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used for the user to signOut of the application and clear the cached tokens.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.signOut = function signOut() {\n\t this.signInUserSession = null;\n\t this.clearCachedTokens();\n\t };\n\t\n\t return CognitoUser;\n\t}();\n\t\n\texports.default = CognitoUser;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUserAttribute = function () {\n\t /**\n\t * Constructs a new CognitoUserAttribute object\n\t * @param {string=} Name The record's name\n\t * @param {string=} Value The record's value\n\t */\n\t function CognitoUserAttribute() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t Name = _ref.Name,\n\t Value = _ref.Value;\n\t\n\t _classCallCheck(this, CognitoUserAttribute);\n\t\n\t this.Name = Name || '';\n\t this.Value = Value || '';\n\t }\n\t\n\t /**\n\t * @returns {string} the record's value.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.getValue = function getValue() {\n\t return this.Value;\n\t };\n\t\n\t /**\n\t * Sets the record's value.\n\t * @param {string} value The new value.\n\t * @returns {CognitoUserAttribute} The record for method chaining.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.setValue = function setValue(value) {\n\t this.Value = value;\n\t return this;\n\t };\n\t\n\t /**\n\t * @returns {string} the record's name.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.getName = function getName() {\n\t return this.Name;\n\t };\n\t\n\t /**\n\t * Sets the record's name\n\t * @param {string} name The new name.\n\t * @returns {CognitoUserAttribute} The record for method chaining.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.setName = function setName(name) {\n\t this.Name = name;\n\t return this;\n\t };\n\t\n\t /**\n\t * @returns {string} a string representation of the record.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.toString = function toString() {\n\t return JSON.stringify(this);\n\t };\n\t\n\t /**\n\t * @returns {object} a flat object representing the record.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.toJSON = function toJSON() {\n\t return {\n\t Name: this.Name,\n\t Value: this.Value\n\t };\n\t };\n\t\n\t return CognitoUserAttribute;\n\t}();\n\t\n\texports.default = CognitoUserAttribute;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUserSession = function () {\n\t /**\n\t * Constructs a new CognitoUserSession object\n\t * @param {CognitoIdToken} IdToken The session's Id token.\n\t * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n\t * @param {CognitoAccessToken} AccessToken The session's access token.\n\t * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n\t */\n\t function CognitoUserSession() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t IdToken = _ref.IdToken,\n\t RefreshToken = _ref.RefreshToken,\n\t AccessToken = _ref.AccessToken,\n\t ClockDrift = _ref.ClockDrift;\n\t\n\t _classCallCheck(this, CognitoUserSession);\n\t\n\t if (AccessToken == null || IdToken == null) {\n\t throw new Error('Id token and Access Token must be present.');\n\t }\n\t\n\t this.idToken = IdToken;\n\t this.refreshToken = RefreshToken;\n\t this.accessToken = AccessToken;\n\t this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n\t }\n\t\n\t /**\n\t * @returns {CognitoIdToken} the session's Id token\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getIdToken = function getIdToken() {\n\t return this.idToken;\n\t };\n\t\n\t /**\n\t * @returns {CognitoRefreshToken} the session's refresh token\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getRefreshToken = function getRefreshToken() {\n\t return this.refreshToken;\n\t };\n\t\n\t /**\n\t * @returns {CognitoAccessToken} the session's access token\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getAccessToken = function getAccessToken() {\n\t return this.accessToken;\n\t };\n\t\n\t /**\n\t * @returns {int} the session's clock drift\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getClockDrift = function getClockDrift() {\n\t return this.clockDrift;\n\t };\n\t\n\t /**\n\t * @returns {int} the computer's clock drift\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.calculateClockDrift = function calculateClockDrift() {\n\t var now = Math.floor(new Date() / 1000);\n\t var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n\t\n\t return now - iat;\n\t };\n\t\n\t /**\n\t * Checks to see if the session is still valid based on session expiry information found\n\t * in tokens and the current time (adjusted with clock drift)\n\t * @returns {boolean} if the session is still valid\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.isValid = function isValid() {\n\t var now = Math.floor(new Date() / 1000);\n\t var adjusted = now - this.clockDrift;\n\t\n\t return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n\t };\n\t\n\t return CognitoUserSession;\n\t}();\n\t\n\texports.default = CognitoUserSession;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\tvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\tvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\t\n\t/** @class */\n\t\n\tvar DateHelper = function () {\n\t function DateHelper() {\n\t _classCallCheck(this, DateHelper);\n\t }\n\t\n\t /**\n\t * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n\t */\n\t DateHelper.prototype.getNowString = function getNowString() {\n\t var now = new Date();\n\t\n\t var weekDay = weekNames[now.getUTCDay()];\n\t var month = monthNames[now.getUTCMonth()];\n\t var day = now.getUTCDate();\n\t\n\t var hours = now.getUTCHours();\n\t if (hours < 10) {\n\t hours = '0' + hours;\n\t }\n\t\n\t var minutes = now.getUTCMinutes();\n\t if (minutes < 10) {\n\t minutes = '0' + minutes;\n\t }\n\t\n\t var seconds = now.getUTCSeconds();\n\t if (seconds < 10) {\n\t seconds = '0' + seconds;\n\t }\n\t\n\t var year = now.getUTCFullYear();\n\t\n\t // ddd MMM D HH:mm:ss UTC YYYY\n\t var dateNow = weekDay + ' ' + month + ' ' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' UTC ' + year;\n\t\n\t return dateNow;\n\t };\n\t\n\t return DateHelper;\n\t}();\n\t\n\texports.default = DateHelper;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\tvar dataMemory = {};\n\t\n\t/** @class */\n\t\n\tvar MemoryStorage = function () {\n\t function MemoryStorage() {\n\t _classCallCheck(this, MemoryStorage);\n\t }\n\t\n\t /**\n\t * This is used to set a specific item in storage\n\t * @param {string} key - the key for the item\n\t * @param {object} value - the value\n\t * @returns {string} value that was set\n\t */\n\t MemoryStorage.setItem = function setItem(key, value) {\n\t dataMemory[key] = value;\n\t return dataMemory[key];\n\t };\n\t\n\t /**\n\t * This is used to get a specific key from storage\n\t * @param {string} key - the key for the item\n\t * This is used to clear the storage\n\t * @returns {string} the data item\n\t */\n\t\n\t\n\t MemoryStorage.getItem = function getItem(key) {\n\t return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n\t };\n\t\n\t /**\n\t * This is used to remove an item from storage\n\t * @param {string} key - the key being set\n\t * @returns {string} value - value that was deleted\n\t */\n\t\n\t\n\t MemoryStorage.removeItem = function removeItem(key) {\n\t return delete dataMemory[key];\n\t };\n\t\n\t /**\n\t * This is used to clear the storage\n\t * @returns {string} nothing\n\t */\n\t\n\t\n\t MemoryStorage.clear = function clear() {\n\t dataMemory = {};\n\t return dataMemory;\n\t };\n\t\n\t return MemoryStorage;\n\t}();\n\t\n\t/** @class */\n\t\n\t\n\tvar StorageHelper = function () {\n\t\n\t /**\n\t * This is used to get a storage object\n\t * @returns {object} the storage\n\t */\n\t function StorageHelper() {\n\t _classCallCheck(this, StorageHelper);\n\t\n\t try {\n\t this.storageWindow = window.localStorage;\n\t this.storageWindow.setItem('aws.cognito.test-ls', 1);\n\t this.storageWindow.removeItem('aws.cognito.test-ls');\n\t } catch (exception) {\n\t this.storageWindow = MemoryStorage;\n\t }\n\t }\n\t\n\t /**\n\t * This is used to return the storage\n\t * @returns {object} the storage\n\t */\n\t\n\t\n\t StorageHelper.prototype.getStorage = function getStorage() {\n\t return this.storageWindow;\n\t };\n\t\n\t return StorageHelper;\n\t}();\n\t\n\texports.default = StorageHelper;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar AuthenticationDetails = function () {\n\t /**\n\t * Constructs a new AuthenticationDetails object\n\t * @param {object=} data Creation options.\n\t * @param {string} data.Username User being authenticated.\n\t * @param {string} data.Password Plain-text password to authenticate with.\n\t * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n\t * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n\t */\n\t function AuthenticationDetails(data) {\n\t _classCallCheck(this, AuthenticationDetails);\n\t\n\t var _ref = data || {},\n\t ValidationData = _ref.ValidationData,\n\t Username = _ref.Username,\n\t Password = _ref.Password,\n\t AuthParameters = _ref.AuthParameters;\n\t\n\t this.validationData = ValidationData || [];\n\t this.authParameters = AuthParameters || [];\n\t this.username = Username;\n\t this.password = Password;\n\t }\n\t\n\t /**\n\t * @returns {string} the record's username\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getUsername = function getUsername() {\n\t return this.username;\n\t };\n\t\n\t /**\n\t * @returns {string} the record's password\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getPassword = function getPassword() {\n\t return this.password;\n\t };\n\t\n\t /**\n\t * @returns {Array} the record's validationData\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getValidationData = function getValidationData() {\n\t return this.validationData;\n\t };\n\t\n\t /**\n\t * @returns {Array} the record's authParameters\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getAuthParameters = function getAuthParameters() {\n\t return this.authParameters;\n\t };\n\t\n\t return AuthenticationDetails;\n\t}();\n\t\n\texports.default = AuthenticationDetails;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _cognitoidentityserviceprovider = __webpack_require__(13);\n\t\n\tvar _cognitoidentityserviceprovider2 = _interopRequireDefault(_cognitoidentityserviceprovider);\n\t\n\tvar _CognitoUser = __webpack_require__(8);\n\t\n\tvar _CognitoUser2 = _interopRequireDefault(_CognitoUser);\n\t\n\tvar _StorageHelper = __webpack_require__(12);\n\t\n\tvar _StorageHelper2 = _interopRequireDefault(_StorageHelper);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUserPool = function () {\n\t /**\n\t * Constructs a new CognitoUserPool object\n\t * @param {object} data Creation options.\n\t * @param {string} data.UserPoolId Cognito user pool id.\n\t * @param {string} data.ClientId User pool application client id.\n\t * @param {object} data.Storage Optional storage object.\n\t */\n\t function CognitoUserPool(data) {\n\t _classCallCheck(this, CognitoUserPool);\n\t\n\t var _ref = data || {},\n\t UserPoolId = _ref.UserPoolId,\n\t ClientId = _ref.ClientId,\n\t endpoint = _ref.endpoint;\n\t\n\t if (!UserPoolId || !ClientId) {\n\t throw new Error('Both UserPoolId and ClientId are required.');\n\t }\n\t if (!/^[\\w-]+_.+$/.test(UserPoolId)) {\n\t throw new Error('Invalid UserPoolId format.');\n\t }\n\t var region = UserPoolId.split('_')[0];\n\t\n\t this.userPoolId = UserPoolId;\n\t this.clientId = ClientId;\n\t\n\t this.client = new _cognitoidentityserviceprovider2.default({\n\t apiVersion: '2016-04-19',\n\t region: region,\n\t endpoint: endpoint\n\t });\n\t\n\t this.storage = data.Storage || new _StorageHelper2.default().getStorage();\n\t }\n\t\n\t /**\n\t * @returns {string} the user pool id\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.getUserPoolId = function getUserPoolId() {\n\t return this.userPoolId;\n\t };\n\t\n\t /**\n\t * @returns {string} the client id\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.getClientId = function getClientId() {\n\t return this.clientId;\n\t };\n\t\n\t /**\n\t * @typedef {object} SignUpResult\n\t * @property {CognitoUser} user New user.\n\t * @property {bool} userConfirmed If the user is already confirmed.\n\t */\n\t /**\n\t * method for signing up a user\n\t * @param {string} username User's username.\n\t * @param {string} password Plain-text initial password entered by user.\n\t * @param {(AttributeArg[])=} userAttributes New user attributes.\n\t * @param {(AttributeArg[])=} validationData Application metadata.\n\t * @param {nodeCallback} callback Called on error or with the new user.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.signUp = function signUp(username, password, userAttributes, validationData, callback) {\n\t var _this = this;\n\t\n\t this.client.makeUnauthenticatedRequest('signUp', {\n\t ClientId: this.clientId,\n\t Username: username,\n\t Password: password,\n\t UserAttributes: userAttributes,\n\t ValidationData: validationData\n\t }, function (err, data) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t\n\t var cognitoUser = {\n\t Username: username,\n\t Pool: _this,\n\t Storage: _this.storage\n\t };\n\t\n\t var returnData = {\n\t user: new _CognitoUser2.default(cognitoUser),\n\t userConfirmed: data.UserConfirmed,\n\t userSub: data.UserSub\n\t };\n\t\n\t return callback(null, returnData);\n\t });\n\t };\n\t\n\t /**\n\t * method for getting the current user of the application from the local storage\n\t *\n\t * @returns {CognitoUser} the user retrieved from storage\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.getCurrentUser = function getCurrentUser() {\n\t var lastUserKey = 'CognitoIdentityServiceProvider.' + this.clientId + '.LastAuthUser';\n\t\n\t var lastAuthUser = this.storage.getItem(lastUserKey);\n\t if (lastAuthUser) {\n\t var cognitoUser = {\n\t Username: lastAuthUser,\n\t Pool: this,\n\t Storage: this.storage\n\t };\n\t\n\t return new _CognitoUser2.default(cognitoUser);\n\t }\n\t\n\t return null;\n\t };\n\t\n\t return CognitoUserPool;\n\t}();\n\t\n\texports.default = CognitoUserPool;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _jsCookie = __webpack_require__(18);\n\t\n\tvar Cookies = _interopRequireWildcard(_jsCookie);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/** @class */\n\tvar CookieStorage = function () {\n\t\n\t /**\n\t * Constructs a new CookieStorage object\n\t * @param {object} data Creation options.\n\t * @param {string} data.domain Cookies domain (mandatory).\n\t * @param {string} data.path Cookies path (default: '/')\n\t * @param {integer} data.expires Cookie expiration (in days, default: 365)\n\t * @param {boolean} data.secure Cookie secure flag (default: true)\n\t */\n\t function CookieStorage(data) {\n\t _classCallCheck(this, CookieStorage);\n\t\n\t this.domain = data.domain;\n\t if (data.path) {\n\t this.path = data.path;\n\t } else {\n\t this.path = '/';\n\t }\n\t if (data.expire) {\n\t this.expires = data.expires;\n\t } else {\n\t this.expires = 365;\n\t }\n\t if (data.hasOwnProperty('secure')) {\n\t this.secure = data.secure;\n\t } else {\n\t this.secure = true;\n\t }\n\t }\n\t\n\t /**\n\t * This is used to set a specific item in storage\n\t * @param {string} key - the key for the item\n\t * @param {object} value - the value\n\t * @returns {string} value that was set\n\t */\n\t\n\t\n\t CookieStorage.prototype.setItem = function setItem(key, value) {\n\t Cookies.set(key, value, { path: this.path, expires: this.expires, domain: this.domain });\n\t return Cookies.get(key);\n\t };\n\t\n\t /**\n\t * This is used to get a specific key from storage\n\t * @param {string} key - the key for the item\n\t * This is used to clear the storage\n\t * @returns {string} the data item\n\t */\n\t\n\t\n\t CookieStorage.prototype.getItem = function getItem(key) {\n\t return Cookies.get(key);\n\t };\n\t\n\t /**\n\t * This is used to remove an item from storage\n\t * @param {string} key - the key being set\n\t * @returns {string} value - value that was deleted\n\t */\n\t\n\t\n\t CookieStorage.prototype.removeItem = function removeItem(key) {\n\t return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure });\n\t };\n\t\n\t /**\n\t * This is used to clear the storage\n\t * @returns {string} nothing\n\t */\n\t\n\t\n\t CookieStorage.prototype.clear = function clear() {\n\t var cookies = Cookies.get();\n\t var index;\n\t for (index = 0; index < cookies.length; ++index) {\n\t Cookies.remove(cookies[index]);\n\t }\n\t return {};\n\t };\n\t\n\t return CookieStorage;\n\t}();\n\t\n\texports.default = CookieStorage;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _AuthenticationDetails = __webpack_require__(14);\n\t\n\tObject.defineProperty(exports, 'AuthenticationDetails', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_AuthenticationDetails).default;\n\t }\n\t});\n\t\n\tvar _AuthenticationHelper = __webpack_require__(2);\n\t\n\tObject.defineProperty(exports, 'AuthenticationHelper', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_AuthenticationHelper).default;\n\t }\n\t});\n\t\n\tvar _CognitoAccessToken = __webpack_require__(4);\n\t\n\tObject.defineProperty(exports, 'CognitoAccessToken', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoAccessToken).default;\n\t }\n\t});\n\t\n\tvar _CognitoIdToken = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'CognitoIdToken', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoIdToken).default;\n\t }\n\t});\n\t\n\tvar _CognitoRefreshToken = __webpack_require__(7);\n\t\n\tObject.defineProperty(exports, 'CognitoRefreshToken', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoRefreshToken).default;\n\t }\n\t});\n\t\n\tvar _CognitoUser = __webpack_require__(8);\n\t\n\tObject.defineProperty(exports, 'CognitoUser', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUser).default;\n\t }\n\t});\n\t\n\tvar _CognitoUserAttribute = __webpack_require__(9);\n\t\n\tObject.defineProperty(exports, 'CognitoUserAttribute', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUserAttribute).default;\n\t }\n\t});\n\t\n\tvar _CognitoUserPool = __webpack_require__(15);\n\t\n\tObject.defineProperty(exports, 'CognitoUserPool', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUserPool).default;\n\t }\n\t});\n\t\n\tvar _CognitoUserSession = __webpack_require__(10);\n\t\n\tObject.defineProperty(exports, 'CognitoUserSession', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUserSession).default;\n\t }\n\t});\n\t\n\tvar _CookieStorage = __webpack_require__(16);\n\t\n\tObject.defineProperty(exports, 'CookieStorage', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CookieStorage).default;\n\t }\n\t});\n\t\n\tvar _DateHelper = __webpack_require__(11);\n\t\n\tObject.defineProperty(exports, 'DateHelper', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_DateHelper).default;\n\t }\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t// The version of crypto-browserify included by aws-sdk only\n\t// checks for window.crypto, not window.msCrypto as used by\n\t// IE 11 – so we set it explicitly here\n\tif (typeof window !== 'undefined' && !window.crypto && window.msCrypto) {\n\t window.crypto = window.msCrypto;\n\t}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * JavaScript Cookie v2.2.0\n\t * https://github.com/js-cookie/js-cookie\n\t *\n\t * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n\t * Released under the MIT license\n\t */\n\t;(function (factory) {\n\t\tvar registeredInModuleLoader = false;\n\t\tif (true) {\n\t\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (true) {\n\t\t\tmodule.exports = factory();\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (!registeredInModuleLoader) {\n\t\t\tvar OldCookies = window.Cookies;\n\t\t\tvar api = window.Cookies = factory();\n\t\t\tapi.noConflict = function () {\n\t\t\t\twindow.Cookies = OldCookies;\n\t\t\t\treturn api;\n\t\t\t};\n\t\t}\n\t}(function () {\n\t\tfunction extend () {\n\t\t\tvar i = 0;\n\t\t\tvar result = {};\n\t\t\tfor (; i < arguments.length; i++) {\n\t\t\t\tvar attributes = arguments[ i ];\n\t\t\t\tfor (var key in attributes) {\n\t\t\t\t\tresult[key] = attributes[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\n\t\tfunction init (converter) {\n\t\t\tfunction api (key, value, attributes) {\n\t\t\t\tvar result;\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\t// Write\n\t\n\t\t\t\tif (arguments.length > 1) {\n\t\t\t\t\tattributes = extend({\n\t\t\t\t\t\tpath: '/'\n\t\t\t\t\t}, api.defaults, attributes);\n\t\n\t\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {}\n\t\n\t\t\t\t\tif (!converter.write) {\n\t\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\t\n\t\t\t\t\tvar stringifiedAttributes = '';\n\t\n\t\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t\t}\n\t\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t\t}\n\t\n\t\t\t\t// Read\n\t\n\t\t\t\tif (!key) {\n\t\t\t\t\tresult = {};\n\t\t\t\t}\n\t\n\t\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t\t// calling \"get()\"\n\t\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\t\tvar i = 0;\n\t\n\t\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\t\tvar cookie = parts.slice(1).join('=');\n\t\n\t\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t\t}\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\t\n\t\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (!key) {\n\t\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\n\t\t\t\treturn result;\n\t\t\t}\n\t\n\t\t\tapi.set = api;\n\t\t\tapi.get = function (key) {\n\t\t\t\treturn api.call(api, key);\n\t\t\t};\n\t\t\tapi.getJSON = function () {\n\t\t\t\treturn api.apply({\n\t\t\t\t\tjson: true\n\t\t\t\t}, [].slice.call(arguments));\n\t\t\t};\n\t\t\tapi.defaults = {};\n\t\n\t\t\tapi.remove = function (key, attributes) {\n\t\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\t\texpires: -1\n\t\t\t\t}));\n\t\t\t};\n\t\n\t\t\tapi.withConverter = init;\n\t\n\t\t\treturn api;\n\t\t}\n\t\n\t\treturn init(function () {});\n\t}));\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// amazon-cognito-identity.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f523cd2429f5592a06ac","import CognitoIdentityServiceProvider from 'aws-sdk/clients/cognitoidentityserviceprovider';\nimport * as enhancements from './src';\n\nexport * from './src';\n\nObject.keys(enhancements).forEach(key => {\n CognitoIdentityServiceProvider[key] = enhancements[key];\n});\n\n\n\n// WEBPACK FOOTER //\n// ./enhance.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":[\"AWSCognito\"],\"commonjs2\":\"aws-sdk/global\",\"commonjs\":\"aws-sdk/global\",\"amd\":\"aws-sdk/global\"}\n// module id = 1\n// module chunks = 0","/*!\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\nimport { util } from 'aws-sdk/global';\n\nimport BigInteger from './BigInteger';\n\nconst initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1'\n + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD'\n + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245'\n + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED'\n + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D'\n + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F'\n + '83655D23DCA3AD961C62F356208552BB9ED529077096966D'\n + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B'\n + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9'\n + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510'\n + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64'\n + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7'\n + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B'\n + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C'\n + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31'\n + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\n\nconst newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\n/** @class */\nexport default class AuthenticationHelper {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n constructor(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(`00${this.N.toString(16)}0${this.g.toString(16)}`), 16);\n\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(() => {});\n\n this.infoBits = new util.Buffer('Caldera Derived Key', 'utf8');\n\n this.poolName = PoolName;\n }\n\n /**\n * @returns {BigInteger} small A, a random number\n */\n getSmallAValue() {\n return this.smallAValue;\n }\n\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */\n getLargeAValue(callback) {\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, (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 /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */\n generateRandomSmallA() {\n const hexRandom = util.crypto.lib.randomBytes(128).toString('hex');\n\n const randomBigInt = new BigInteger(hexRandom, 16);\n const smallABigInt = randomBigInt.mod(this.N);\n\n return smallABigInt;\n }\n\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */\n generateRandomString() {\n return util.crypto.lib.randomBytes(40).toString('base64');\n }\n\n /**\n * @returns {string} Generated random value included in password hash.\n */\n getRandomPassword() {\n return this.randomPassword;\n }\n\n /**\n * @returns {string} Generated random value included in devices hash.\n */\n getSaltDevices() {\n return this.SaltToHashDevices;\n }\n\n /**\n * @returns {string} Value used to verify devices.\n */\n getVerifierDevices() {\n return this.verifierDevices;\n }\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} callback Called with (err, null)\n * @returns {void}\n */\n generateHashDevice(deviceGroupKey, username, callback) {\n this.randomPassword = this.generateRandomString();\n const combinedString = `${deviceGroupKey}${username}:${this.randomPassword}`;\n const hashedString = this.hash(combinedString);\n\n const hexRandom = util.crypto.lib.randomBytes(16).toString('hex');\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n\n this.g.modPow(\n new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16),\n this.N,\n (err, verifierDevicesNotPadded) => {\n if (err) {\n callback(err, null);\n }\n\n this.verifierDevices = this.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\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} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */\n calculateA(a, callback) {\n this.g.modPow(a, this.N, (err, A) => {\n if (err) {\n callback(err, null);\n }\n\n if (A.mod(this.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 /**\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 calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n const finalU = new BigInteger(this.UHexHash, 16);\n\n return finalU;\n }\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 hash(buf) {\n const hashHex = util.crypto.sha256(buf, 'hex');\n return (new Array(64 - hashHex.length).join('0')) + hashHex;\n }\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 hexHash(hexStr) {\n return this.hash(new util.Buffer(hexStr, 'hex'));\n }\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 computehkdf(ikm, salt) {\n const prk = util.crypto.hmac(salt, ikm, 'buffer', 'sha256');\n const infoBitsUpdate = util.buffer.concat([\n this.infoBits,\n new util.Buffer(String.fromCharCode(1), 'utf8'),\n ]);\n const hmac = util.crypto.hmac(prk, infoBitsUpdate, 'buffer', 'sha256');\n return hmac.slice(0, 16);\n }\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} callback Called with (err, hkdfValue)\n * @returns {void}\n */\n getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\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 const usernamePassword = `${this.poolName}${username}:${password}`;\n const usernamePasswordHash = this.hash(usernamePassword);\n\n const xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, (err, sValue) => {\n if (err) {\n callback(err, null);\n }\n\n const hkdf = this.computehkdf(\n new util.Buffer(this.padHex(sValue), 'hex'),\n new util.Buffer(this.padHex(this.UValue.toString(16)), 'hex'));\n\n callback(null, hkdf);\n });\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} callback Called on success or error.\n * @returns {void}\n */\n calculateS(xValue, serverBValue, callback) {\n this.g.modPow(xValue, this.N, (err, gModPowXN) => {\n if (err) {\n callback(err, null);\n }\n\n const intValue2 = serverBValue.subtract(this.k.multiply(gModPowXN));\n intValue2.modPow(\n this.smallAValue.add(this.UValue.multiply(xValue)),\n this.N,\n (err2, result) => {\n if (err2) {\n callback(err2, null);\n }\n\n callback(null, result.mod(this.N));\n }\n );\n });\n }\n\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */\n getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n\n /**\n * Converts a BigInteger (or hex string) to hex format padded with zeroes for hashing\n * @param {BigInteger|String} bigInt Number or string to pad.\n * @returns {String} Padded hex string.\n */\n padHex(bigInt) {\n let hashStr = bigInt.toString(16);\n if (hashStr.length % 2 === 1) {\n hashStr = `0${hashStr}`;\n } else if ('89ABCDEFabcdef'.indexOf(hashStr[0]) !== -1) {\n hashStr = `00${hashStr}`;\n }\n return hashStr;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/AuthenticationHelper.js","// 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\n\nexport default BigInteger;\n\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\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n}\n\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary&0xffffff)==0xefcafe);\n\n// 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\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)\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 return c;\n}\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)\nfunction am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\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 return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\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 return c;\n}\nvar inBrowser = typeof navigator !== \"undefined\";\nif(inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if(inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse { // 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;\n\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;\n\n// Digit conversions\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nvar BI_RC = new Array();\nvar rr, vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv)\n BI_RC[rr++] = vv;\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\n\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i)\n r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;\n else if (x < -1) this[0] = x + this.DV;\n else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n\n r.fromInt(i);\n\n return r;\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;\n else if (b == 8) k = 3;\n else if (b == 2) k = 1;\n else if (b == 32) k = 5;\n else if (b == 4) k = 2;\n 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, mi = false, sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if (sh == 0) this[this.t++] = x;\n 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 this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c)\n --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0) return \"-\" + this.negate().toString();\n var k;\n if (b == 16) k = 4;\n else if (b == 8) k = 3;\n else if (b == 2) k = 1;\n else if (b == 32) k = 5;\n else if (b == 4) k = 2;\n else throw new Error(\"Only radix 2, 4, 8, 16, 32 are supported\");\n var km = (1 << k) - 1, d, m = false, r = \"\", i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\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 if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n return m ? r : \"0\";\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n\n BigInteger.ZERO.subTo(this, r);\n\n return r;\n}\n\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\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 while (--i >= 0)\n if ((r = this[i] - a[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\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}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i)\n r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i)\n r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i)\n r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n\n// (protected) r = this << 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), c = this.s << bs & this.DM, i;\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 for (i = ds - 1; i >= 0; --i)\n r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\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 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 if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var i = 0, c = 0, m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;\n else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < y.t; ++i)\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if (\n (r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=\n x.DV\n ) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\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}\n\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.\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n if (r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\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 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, d2 = (1 << this.F1) / yt, e = 1 << this.F2;\n var i = r.t, j = i - ys, t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys)\n y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0\n ? this.DM\n : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\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 while (r[i] < --qd) r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n}\n\n// (public) this mod a\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}\n\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.\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;\n // y == 1/x mod 2^2\n y = y * (2 - (x & 0xf) * y) & 0xf;\n // y == 1/x mod 2^4\n y = y * (2 - (x & 0xff) * y) & 0xff;\n // y == 1/x mod 2^8\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n // 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 y = y * (2 - x * y % this.DV) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\n\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var i = 0, c = 0, m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;\n else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n\n this.addTo(a, r);\n\n return r;\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n\n this.subTo(a, r);\n\n return r;\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n\n this.multiplyTo(a, r);\n\n return r;\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n\n this.divRemTo(a, r, null);\n\n return r;\n}\n\n// Montgomery reduction\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}\n\n// xR mod m\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}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\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 +\n ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) &\n x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\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}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n\n this.reduce(r);\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n\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;\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(), k, r = nbv(1), z = new Montgomery(m);\n if (i <= 0) return r;\n else if (i < 18) k = 1;\n else if (i < 48) k = 3;\n else if (i < 144) k = 4;\n else if (i < 768) k = 5;\n else k = 6;\n\n // precomputation\n var g = new Array(), n = 3, k1 = k - 1, km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\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, w, is1 = true, r2 = nbi(), t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;\n 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 n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\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 if (n > 0) z.sqrTo(r, r2);\n 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 if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n callback(null, result);\n return result;\n}\n\n// protected\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;\n\n// public\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;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/BigInteger.js","/*\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\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nexport default class CognitoAccessToken extends CognitoJwtToken {\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n constructor({ AccessToken } = {}) {\n super(AccessToken || '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoAccessToken.js","/*!\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\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nexport default class CognitoIdToken extends CognitoJwtToken {\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n constructor({ IdToken } = {}) {\n super(IdToken || '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoIdToken.js","/*!\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\nimport { util } from 'aws-sdk/global';\n\n/** @class */\nexport default class CognitoJwtToken {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n constructor(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n\n /**\n * @returns {string} the record's token.\n */\n getJwtToken() {\n return this.jwtToken;\n }\n\n /**\n * @returns {int} the token's expiration (exp member).\n */\n getExpiration() {\n return this.payload.exp;\n }\n\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */\n getIssuedAt() {\n return this.payload.iat;\n }\n\n /**\n * @returns {object} the token's payload.\n */\n decodePayload() {\n const payload = this.jwtToken.split('.')[1];\n try {\n return JSON.parse(util.base64.decode(payload).toString('utf8'));\n } catch (err) {\n return {};\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoJwtToken.js","/*!\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 */\nexport default class CognitoRefreshToken {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n constructor({ RefreshToken } = {}) {\n // Assign object\n this.token = RefreshToken || '';\n }\n\n /**\n * @returns {string} the record's token.\n */\n getToken() {\n return this.token;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoRefreshToken.js","/*!\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\nimport { util } from 'aws-sdk/global';\n\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\n\n/** @class */\nexport default class CognitoUser {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n constructor(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and pool information are required.');\n }\n\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n\n this.client = data.Pool.client;\n\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n\n this.storage = data.Storage || new StorageHelper().getStorage();\n }\n\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n setSignInUserSession(signInUserSession) {\n this.clearCachedTokens();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n\n /**\n * @returns {CognitoUserSession} the current session for this user\n */\n getSignInUserSession() {\n return this.signInUserSession;\n }\n\n /**\n * @returns {string} the user's username\n */\n getUsername() {\n return this.username;\n }\n\n /**\n * @returns {String} the authentication flow type\n */\n getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */\n setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n\n\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n initiateAuth(authDetails, callback) {\n const authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n\n this.client.makeUnauthenticatedRequest('initiateAuth', {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: authDetails.getValidationData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n const challengeName = data.ChallengeName;\n const challengeParameters = data.ChallengeParameters;\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n this.signInUserSession = this.getCognitoUserSession(data.AuthenticationResult);\n this.cacheTokens();\n return callback.onSuccess(this.signInUserSession);\n });\n }\n\n /**\n * This is used for authenticating the user. it calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n authenticateUser(authDetails, callback) {\n const authenticationHelper = new AuthenticationHelper(\n this.pool.getUserPoolId().split('_')[1]);\n const dateHelper = new DateHelper();\n\n let serverBValue;\n let salt;\n const authParameters = {};\n\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue((errOnAValue, aValue) => {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n\n authParameters.SRP_A = aValue.toString(16);\n\n if (this.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n\n this.client.makeUnauthenticatedRequest('initiateAuth', {\n AuthFlow: this.authenticationFlowType,\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: authDetails.getValidationData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeParameters = data.ChallengeParameters;\n\n this.username = challengeParameters.USER_ID_FOR_SRP;\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n this.getCachedDeviceKeyAndPassword();\n\n authenticationHelper.getPasswordAuthenticationKey(\n this.username,\n authDetails.getPassword(),\n serverBValue,\n salt,\n (errOnHkdf, hkdf) => {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n\n const dateNow = dateHelper.getNowString();\n\n const signatureString = util.crypto.hmac(hkdf, util.buffer.concat([\n new util.Buffer(this.pool.getUserPoolId().split('_')[1], 'utf8'),\n new util.Buffer(this.username, 'utf8'),\n new util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'),\n new util.Buffer(dateNow, 'utf8'),\n ]), 'base64', 'sha256');\n\n const challengeResponses = {};\n\n challengeResponses.USERNAME = this.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n const respondToAuthChallenge = (challenge, challengeCallback) =>\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', challenge,\n (errChallenge, dataChallenge) => {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' &&\n errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n this.deviceKey = null;\n this.randomPassword = null;\n this.deviceGroupKey = null;\n this.clearCachedDeviceKeyAndPassword();\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n return challengeCallback(errChallenge, dataChallenge);\n });\n\n respondToAuthChallenge({\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n }, (errAuthenticate, dataAuthenticate) => {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n const challengeName = dataAuthenticate.ChallengeName;\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n let userAttributes = null;\n let rawRequiredAttributes = null;\n const requiredAttributes = [];\n const userAttributesPrefix = authenticationHelper\n .getNewPasswordRequiredChallengeUserAttributePrefix();\n\n if (dataAuthenticate.ChallengeParameters) {\n userAttributes = JSON.parse(\n dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(\n dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n\n if (rawRequiredAttributes) {\n for (let i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(\n userAttributesPrefix.length\n );\n }\n }\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n return this.authenticateUserInternal(\n dataAuthenticate,\n authenticationHelper,\n callback\n );\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */\n authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n const challengeName = dataAuthenticate.ChallengeName;\n const challengeParameters = dataAuthenticate.ChallengeParameters;\n\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.getDeviceResponse(callback);\n return undefined;\n }\n\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.cacheTokens();\n\n const newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n\n authenticationHelper.generateHashDevice(\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n (errGenHash) => {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n\n const deviceSecretVerifierConfig = {\n Salt: new util.Buffer(\n authenticationHelper.getSaltDevices(), 'hex'\n ).toString('base64'),\n PasswordVerifier: new util.Buffer(\n authenticationHelper.getVerifierDevices(), 'hex'\n ).toString('base64'),\n };\n\n this.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n this.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n this.randomPassword = authenticationHelper.getRandomPassword();\n\n this.client.makeUnauthenticatedRequest('confirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: navigator.userAgent,\n }, (errConfirm, dataConfirm) => {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n\n this.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n this.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(\n this.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n }\n\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes..\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n completeNewPasswordChallenge(newPassword, requiredAttributeData, callback) {\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n const authenticationHelper = new AuthenticationHelper(\n this.pool.getUserPoolId().split('_')[1]);\n const userAttributesPrefix = authenticationHelper\n .getNewPasswordRequiredChallengeUserAttributePrefix();\n\n const finalUserAttributes = {};\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach((key) => {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n }, (errAuthenticate, dataAuthenticate) => {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return this.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n * @private\n */\n getDeviceResponse(callback) {\n const authenticationHelper = new AuthenticationHelper(\n this.deviceGroupKey);\n const dateHelper = new DateHelper();\n\n const authParameters = {};\n\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue((errAValue, aValue) => {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n\n authParameters.SRP_A = aValue.toString(16);\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: authParameters,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeParameters = data.ChallengeParameters;\n\n const serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n const salt = new BigInteger(challengeParameters.SALT, 16);\n\n authenticationHelper.getPasswordAuthenticationKey(\n this.deviceKey,\n this.randomPassword,\n serverBValue,\n salt,\n (errHkdf, hkdf) => {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n\n const dateNow = dateHelper.getNowString();\n\n const signatureString = util.crypto.hmac(hkdf, util.buffer.concat([\n new util.Buffer(this.deviceGroupKey, 'utf8'),\n new util.Buffer(this.deviceKey, 'utf8'),\n new util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'),\n new util.Buffer(dateNow, 'utf8'),\n ]), 'base64', 'sha256');\n\n const challengeResponses = {};\n\n challengeResponses.USERNAME = this.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = this.deviceKey;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n }, (errAuthenticate, dataAuthenticate) => {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n this.signInUserSession = this.getCognitoUserSession(\n dataAuthenticate.AuthenticationResult\n );\n this.cacheTokens();\n\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n confirmRegistration(confirmationCode, forceAliasCreation, callback) {\n this.client.makeUnauthenticatedRequest('confirmSignUp', {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n }\n\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challange answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n sendCustomChallengeAnswer(answerChallenge, callback) {\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeName = data.ChallengeName;\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = data.Session;\n return callback.customChallenge(data.ChallengeParameters);\n }\n\n this.signInUserSession = this.getCognitoUserSession(data.AuthenticationResult);\n this.cacheTokens();\n return callback.onSuccess(this.signInUserSession);\n });\n }\n\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n sendMFACode(confirmationCode, callback) {\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'SMS_MFA',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n }, (err, dataAuthenticate) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeName = dataAuthenticate.ChallengeName;\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.getDeviceResponse(callback);\n return undefined;\n }\n\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.cacheTokens();\n\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n\n const authenticationHelper = new AuthenticationHelper(\n this.pool.getUserPoolId().split('_')[1]);\n authenticationHelper.generateHashDevice(\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n (errGenHash) => {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n\n const deviceSecretVerifierConfig = {\n Salt: new util.Buffer(\n authenticationHelper.getSaltDevices(), 'hex'\n ).toString('base64'),\n PasswordVerifier: new util.Buffer(\n authenticationHelper.getVerifierDevices(), 'hex'\n ).toString('base64'),\n };\n\n this.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n this.deviceGroupKey = dataAuthenticate.AuthenticationResult\n .NewDeviceMetadata.DeviceGroupKey;\n this.randomPassword = authenticationHelper.getRandomPassword();\n\n this.client.makeUnauthenticatedRequest('confirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: navigator.userAgent,\n }, (errConfirm, dataConfirm) => {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n\n this.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n this.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(\n this.signInUserSession,\n dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n });\n }\n\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n changePassword(oldUserPassword, newUserPassword, callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('changePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for himself\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n const mfaOptions = [];\n const mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number',\n };\n mfaOptions.push(mfaEnabled);\n\n this.client.makeUnauthenticatedRequest('setUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to disable MFA for himself\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n const mfaOptions = [];\n\n this.client.makeUnauthenticatedRequest('setUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n\n /**\n * This is used by an authenticated user to delete himself\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n deleteUser(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('deleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n this.clearCachedTokens();\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n updateAttributes(attributes, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('updateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('getUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, userData) => {\n if (err) {\n return callback(err, null);\n }\n\n const attributeList = [];\n\n for (let i = 0; i < userData.UserAttributes.length; i++) {\n const attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value,\n };\n const userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n\n return callback(null, attributeList);\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get the MFAOptions\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('getUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, userData) => {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n deleteAttributes(attributeList, callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('deleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n resendConfirmationCode(callback) {\n this.client.makeUnauthenticatedRequest('resendConfirmationCode', {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n }, (err, result) => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, result);\n });\n }\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n getSession(callback) {\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const idTokenKey = `${keyPrefix}.idToken`;\n const accessTokenKey = `${keyPrefix}.accessToken`;\n const refreshTokenKey = `${keyPrefix}.refreshToken`;\n const clockDriftKey = `${keyPrefix}.clockDrift`;\n\n if (this.storage.getItem(idTokenKey)) {\n const idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey),\n });\n const accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey),\n });\n const refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey),\n });\n const clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n\n const sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift,\n };\n const cachedSession = new CognitoUserSession(sessionData);\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n\n if (refreshToken.getToken() == null) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n\n this.refreshSession(refreshToken, callback);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n\n return undefined;\n }\n\n\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n refreshSession(refreshToken, callback) {\n const authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}`;\n const lastUserKey = `${keyPrefix}.LastAuthUser`;\n\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n const deviceKeyKey = `${keyPrefix}.${this.username}.deviceKey`;\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n this.client.makeUnauthenticatedRequest('initiateAuth', {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n }, (err, authResult) => {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n this.clearCachedTokens();\n }\n return callback(err, null);\n }\n if (authResult) {\n const authenticationResult = authResult.AuthenticationResult;\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n this.signInUserSession = this.getCognitoUserSession(authenticationResult);\n this.cacheTokens();\n return callback(null, this.signInUserSession);\n }\n return undefined;\n });\n }\n\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */\n cacheTokens() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}`;\n const idTokenKey = `${keyPrefix}.${this.username}.idToken`;\n const accessTokenKey = `${keyPrefix}.${this.username}.accessToken`;\n const refreshTokenKey = `${keyPrefix}.${this.username}.refreshToken`;\n const clockDriftKey = `${keyPrefix}.${this.username}.clockDrift`;\n const lastUserKey = `${keyPrefix}.LastAuthUser`;\n\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, `${this.signInUserSession.getClockDrift()}`);\n this.storage.setItem(lastUserKey, this.username);\n }\n\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */\n cacheDeviceKeyAndPassword() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const deviceKeyKey = `${keyPrefix}.deviceKey`;\n const randomPasswordKey = `${keyPrefix}.randomPasswordKey`;\n const deviceGroupKeyKey = `${keyPrefix}.deviceGroupKey`;\n\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */\n getCachedDeviceKeyAndPassword() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const deviceKeyKey = `${keyPrefix}.deviceKey`;\n const randomPasswordKey = `${keyPrefix}.randomPasswordKey`;\n const deviceGroupKeyKey = `${keyPrefix}.deviceGroupKey`;\n\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */\n clearCachedDeviceKeyAndPassword() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const deviceKeyKey = `${keyPrefix}.deviceKey`;\n const randomPasswordKey = `${keyPrefix}.randomPasswordKey`;\n const deviceGroupKeyKey = `${keyPrefix}.deviceGroupKey`;\n\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */\n clearCachedTokens() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}`;\n const idTokenKey = `${keyPrefix}.${this.username}.idToken`;\n const accessTokenKey = `${keyPrefix}.${this.username}.accessToken`;\n const refreshTokenKey = `${keyPrefix}.${this.username}.refreshToken`;\n const lastUserKey = `${keyPrefix}.LastAuthUser`;\n\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n }\n\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */\n getCognitoUserSession(authResult) {\n const idToken = new CognitoIdToken(authResult);\n const accessToken = new CognitoAccessToken(authResult);\n const refreshToken = new CognitoRefreshToken(authResult);\n\n const sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n };\n\n return new CognitoUserSession(sessionData);\n }\n\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n forgotPassword(callback) {\n this.client.makeUnauthenticatedRequest('forgotPassword', {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess(data);\n });\n }\n\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n confirmPassword(confirmationCode, newPassword, callback) {\n this.client.makeUnauthenticatedRequest('confirmForgotPassword', {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess();\n });\n }\n\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @returns {void}\n */\n getAttributeVerificationCode(attributeName, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('getUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess();\n });\n return undefined;\n }\n\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('verifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */\n getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('getDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('forgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey,\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n forgetDevice(callback) {\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: result => {\n this.deviceKey = null;\n this.deviceGroupKey = null;\n this.randomPassword = null;\n this.clearCachedDeviceKeyAndPassword();\n return callback.onSuccess(result);\n },\n });\n }\n\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered',\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered',\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */\n listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('listDevices', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit,\n PaginationToken: paginationToken,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n globalSignOut(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('globalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n this.clearCachedTokens();\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */\n signOut() {\n this.signInUserSession = null;\n this.clearCachedTokens();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUser.js","/*!\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 */\nexport default class CognitoUserAttribute {\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 constructor({ Name, Value } = {}) {\n this.Name = Name || '';\n this.Value = Value || '';\n }\n\n /**\n * @returns {string} the record's value.\n */\n getValue() {\n return this.Value;\n }\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 setValue(value) {\n this.Value = value;\n return this;\n }\n\n /**\n * @returns {string} the record's name.\n */\n getName() {\n return this.Name;\n }\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 setName(name) {\n this.Name = name;\n return this;\n }\n\n /**\n * @returns {string} a string representation of the record.\n */\n toString() {\n return JSON.stringify(this);\n }\n\n /**\n * @returns {object} a flat object representing the record.\n */\n toJSON() {\n return {\n Name: this.Name,\n Value: this.Value,\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUserAttribute.js","/*!\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 */\nexport default class CognitoUserSession {\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 constructor({ IdToken, RefreshToken, AccessToken, ClockDrift } = {}) {\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 /**\n * @returns {CognitoIdToken} the session's Id token\n */\n getIdToken() {\n return this.idToken;\n }\n\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */\n getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * @returns {CognitoAccessToken} the session's access token\n */\n getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * @returns {int} the session's clock drift\n */\n getClockDrift() {\n return this.clockDrift;\n }\n\n /**\n * @returns {int} the computer's clock drift\n */\n calculateClockDrift() {\n const now = Math.floor(new Date() / 1000);\n const iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n\n return now - iat;\n }\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 isValid() {\n const now = Math.floor(new Date() / 1000);\n const adjusted = now - this.clockDrift;\n\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUserSession.js","/*!\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\nconst monthNames =\n ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/** @class */\nexport default class DateHelper {\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n getNowString() {\n const now = new Date();\n\n const weekDay = weekNames[now.getUTCDay()];\n const month = monthNames[now.getUTCMonth()];\n const day = now.getUTCDate();\n\n let hours = now.getUTCHours();\n if (hours < 10) {\n hours = `0${hours}`;\n }\n\n let minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n\n let seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n\n const year = now.getUTCFullYear();\n\n // ddd MMM D HH:mm:ss UTC YYYY\n const dateNow = `${weekDay} ${month} ${day} ${hours}:${minutes}:${seconds} UTC ${year}`;\n\n return dateNow;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/DateHelper.js","/*!\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\nlet dataMemory = {};\n\n/** @class */\nclass 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 static setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\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 static getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\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 static removeItem(key) {\n return delete dataMemory[key];\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n static clear() {\n dataMemory = {};\n return dataMemory;\n }\n}\n\n/** @class */\nexport default class StorageHelper {\n\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n constructor() {\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 /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n getStorage() {\n return this.storageWindow;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/StorageHelper.js","module.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":[\"AWSCognito\",\"CognitoIdentityServiceProvider\"],\"commonjs2\":\"aws-sdk/clients/cognitoidentityserviceprovider\",\"commonjs\":\"aws-sdk/clients/cognitoidentityserviceprovider\",\"amd\":\"aws-sdk/clients/cognitoidentityserviceprovider\"}\n// module id = 13\n// module chunks = 0","/*!\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 */\nexport default class AuthenticationDetails {\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 constructor(data) {\n const { ValidationData, Username, Password, AuthParameters } = data || {};\n this.validationData = ValidationData || [];\n this.authParameters = AuthParameters || [];\n this.username = Username;\n this.password = Password;\n }\n\n /**\n * @returns {string} the record's username\n */\n getUsername() {\n return this.username;\n }\n\n /**\n * @returns {string} the record's password\n */\n getPassword() {\n return this.password;\n }\n\n /**\n * @returns {Array} the record's validationData\n */\n getValidationData() {\n return this.validationData;\n }\n\n /**\n * @returns {Array} the record's authParameters\n */\n getAuthParameters() {\n return this.authParameters;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/AuthenticationDetails.js","/*!\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\nimport CognitoIdentityServiceProvider from 'aws-sdk/clients/cognitoidentityserviceprovider';\n\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\n\n/** @class */\nexport default class CognitoUserPool {\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 {object} data.Storage Optional storage object.\n */\n constructor(data) {\n const { UserPoolId, ClientId, endpoint } = data || {};\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n if (!/^[\\w-]+_.+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n const region = UserPoolId.split('_')[0];\n\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n\n this.client = new CognitoIdentityServiceProvider({\n apiVersion: '2016-04-19',\n region,\n endpoint,\n });\n\n this.storage = data.Storage || new StorageHelper().getStorage();\n }\n\n /**\n * @returns {string} the user pool id\n */\n getUserPoolId() {\n return this.userPoolId;\n }\n\n /**\n * @returns {string} the client id\n */\n getClientId() {\n return this.clientId;\n }\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 * 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 {nodeCallback} callback Called on error or with the new user.\n * @returns {void}\n */\n signUp(username, password, userAttributes, validationData, callback) {\n this.client.makeUnauthenticatedRequest('signUp', {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n }, (err, data) => {\n if (err) {\n return callback(err, null);\n }\n\n const cognitoUser = {\n Username: username,\n Pool: this,\n Storage: this.storage,\n };\n\n const returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n };\n\n return callback(null, returnData);\n });\n }\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 getCurrentUser() {\n const lastUserKey = `CognitoIdentityServiceProvider.${this.clientId}.LastAuthUser`;\n\n const lastAuthUser = this.storage.getItem(lastUserKey);\n if (lastAuthUser) {\n const cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage,\n };\n\n return new CognitoUser(cognitoUser);\n }\n\n return null;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUserPool.js","\nimport * as Cookies from \"js-cookie\";\n\n/** @class */\nexport default class CookieStorage {\n\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 */\n constructor(data) {\n this.domain = data.domain;\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n if (data.expire){\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n if (data.hasOwnProperty('secure')){\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\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 setItem(key, value) {\n Cookies.set(key, value, {path: this.path, expires: this.expires, domain: this.domain});\n return Cookies.get(key);\n }\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 getItem(key) {\n return Cookies.get(key)\n }\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 removeItem(key) {\n return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure});\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n clear() {\n var cookies = Cookies.get();\n var index;\n for (index = 0; index < cookies.length; ++index) {\n Cookies.remove(cookies[index]);\n }\n return {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CookieStorage.js","/*!\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\nexport { default as AuthenticationDetails } from './AuthenticationDetails';\nexport { default as AuthenticationHelper } from './AuthenticationHelper';\nexport { default as CognitoAccessToken } from './CognitoAccessToken';\nexport { default as CognitoIdToken } from './CognitoIdToken';\nexport { default as CognitoRefreshToken } from './CognitoRefreshToken';\nexport { default as CognitoUser } from './CognitoUser';\nexport { default as CognitoUserAttribute } from './CognitoUserAttribute';\nexport { default as CognitoUserPool } from './CognitoUserPool';\nexport { default as CognitoUserSession } from './CognitoUserSession';\nexport { default as CookieStorage } from './CookieStorage';\nexport { default as DateHelper } from './DateHelper';\n\n// The version of crypto-browserify included by aws-sdk only\n// checks for window.crypto, not window.msCrypto as used by\n// IE 11 – so we set it explicitly here\nif (typeof window !== 'undefined' && !window.crypto && window.msCrypto) {\n window.crypto = window.msCrypto;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/js-cookie/src/js.cookie.js\n// module id = 18\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///amazon-cognito-identity.min.js","webpack:///webpack/bootstrap a0e7901a24cb0df307dd","webpack:///./enhance.js","webpack:///external {\"root\":[\"AWSCognito\"],\"commonjs2\":\"aws-sdk/global\",\"commonjs\":\"aws-sdk/global\",\"amd\":\"aws-sdk/global\"}","webpack:///./src/AuthenticationHelper.js","webpack:///./src/BigInteger.js","webpack:///./src/CognitoAccessToken.js","webpack:///./src/CognitoIdToken.js","webpack:///./src/CognitoJwtToken.js","webpack:///./src/CognitoRefreshToken.js","webpack:///./src/CognitoUser.js","webpack:///./src/CognitoUserAttribute.js","webpack:///./src/CognitoUserSession.js","webpack:///./src/DateHelper.js","webpack:///./src/StorageHelper.js","webpack:///external {\"root\":[\"AWSCognito\",\"CognitoIdentityServiceProvider\"],\"commonjs2\":\"aws-sdk/clients/cognitoidentityserviceprovider\",\"commonjs\":\"aws-sdk/clients/cognitoidentityserviceprovider\",\"amd\":\"aws-sdk/clients/cognitoidentityserviceprovider\"}","webpack:///./src/AuthenticationDetails.js","webpack:///./src/CognitoUserPool.js","webpack:///./src/CookieStorage.js","webpack:///./src/index.js","webpack:///./~/js-cookie/src/js.cookie.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_13__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","_interopRequireWildcard","obj","__esModule","newObj","key","Object","prototype","hasOwnProperty","default","_interopRequireDefault","_src","keys","forEach","defineProperty","enumerable","get","_cognitoidentityserviceprovider","_cognitoidentityserviceprovider2","enhancements","_classCallCheck","instance","Constructor","TypeError","_global","_BigInteger","_BigInteger2","initN","newPasswordRequiredChallengeUserAttributePrefix","AuthenticationHelper","PoolName","N","g","k","hexHash","toString","smallAValue","generateRandomSmallA","getLargeAValue","infoBits","util","Buffer","poolName","getSmallAValue","callback","_this","largeAValue","calculateA","err","hexRandom","crypto","lib","randomBytes","randomBigInt","smallABigInt","mod","generateRandomString","getRandomPassword","randomPassword","getSaltDevices","SaltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","username","_this2","combinedString","hashedString","hash","padHex","modPow","verifierDevicesNotPadded","a","_this3","A","equals","ZERO","Error","calculateU","B","UHexHash","finalU","buf","hashHex","sha256","Array","length","join","hexStr","computehkdf","ikm","salt","prk","hmac","infoBitsUpdate","buffer","concat","String","fromCharCode","slice","getPasswordAuthenticationKey","password","serverBValue","_this4","UValue","usernamePassword","usernamePasswordHash","xValue","calculateS","sValue","hkdf","_this5","gModPowXN","intValue2","subtract","multiply","add","err2","result","getNewPasswordRequiredChallengeUserAttributePrefix","bigInt","hashStr","indexOf","BigInteger","b","fromString","nbi","am1","i","x","w","j","n","v","Math","floor","am2","xl","xh","l","h","am3","int2char","BI_RM","charAt","intAt","s","BI_RC","charCodeAt","bnpCopyTo","r","t","bnpFromInt","DV","nbv","fromInt","bnpFromString","mi","sh","DB","clamp","subTo","bnpClamp","DM","bnToString","negate","d","km","bnNegate","bnAbs","bnCompareTo","nbits","bnBitLength","bnpDLShiftTo","bnpDRShiftTo","max","bnpLShiftTo","bs","cbs","bm","ds","bnpRShiftTo","bnpSubTo","min","bnpMultiplyTo","abs","y","am","bnpSquareTo","bnpDivRemTo","q","pm","pt","copyTo","ts","ms","nsh","lShiftTo","ys","y0","yt","F1","F2","d1","FV","d2","e","dlShiftTo","compareTo","ONE","qd","drShiftTo","rShiftTo","bnMod","divRemTo","bnpInvDigit","bnEquals","bnpAddTo","bnAdd","addTo","bnSubtract","bnMultiply","multiplyTo","bnDivide","Montgomery","mp","invDigit","mpl","mph","um","mt2","montConvert","montRevert","reduce","montReduce","u0","montSqrTo","squareTo","montMulTo","bnModPow","bitLength","z","k1","convert","g2","sqrTo","mulTo","is1","r2","revert","dbits","canary","j_lm","inBrowser","navigator","appName","BI_FP","pow","rr","vv","divide","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","create","constructor","value","writable","configurable","setPrototypeOf","__proto__","_CognitoJwtToken2","_CognitoJwtToken3","CognitoAccessToken","_CognitoJwtToken","_ref","arguments","undefined","AccessToken","CognitoIdToken","IdToken","CognitoJwtToken","token","jwtToken","payload","decodePayload","getJwtToken","getExpiration","exp","getIssuedAt","iat","split","JSON","parse","base64","decode","CognitoRefreshToken","RefreshToken","getToken","_AuthenticationHelper","_AuthenticationHelper2","_CognitoAccessToken","_CognitoAccessToken2","_CognitoIdToken","_CognitoIdToken2","_CognitoRefreshToken","_CognitoRefreshToken2","_CognitoUserSession","_CognitoUserSession2","_DateHelper","_DateHelper2","_CognitoUserAttribute","_CognitoUserAttribute2","_StorageHelper","_StorageHelper2","CognitoUser","data","Username","Pool","pool","Session","client","signInUserSession","authenticationFlowType","storage","Storage","getStorage","setSignInUserSession","clearCachedTokens","cacheTokens","getSignInUserSession","getUsername","getAuthenticationFlowType","setAuthenticationFlowType","initiateAuth","authDetails","authParameters","getAuthParameters","USERNAME","makeUnauthenticatedRequest","AuthFlow","ClientId","getClientId","AuthParameters","ClientMetadata","getValidationData","UserContextData","getUserContextData","onFailure","challengeName","ChallengeName","challengeParameters","ChallengeParameters","customChallenge","getCognitoUserSession","AuthenticationResult","onSuccess","authenticateUser","authenticationHelper","getUserPoolId","dateHelper","deviceKey","DEVICE_KEY","errOnAValue","aValue","SRP_A","CHALLENGE_NAME","USER_ID_FOR_SRP","SRP_B","SALT","getCachedDeviceKeyAndPassword","getPassword","errOnHkdf","dateNow","getNowString","signatureString","SECRET_BLOCK","challengeResponses","PASSWORD_CLAIM_SECRET_BLOCK","TIMESTAMP","PASSWORD_CLAIM_SIGNATURE","respondToAuthChallenge","challenge","challengeCallback","errChallenge","dataChallenge","code","message","toLowerCase","clearCachedDeviceKeyAndPassword","ChallengeResponses","errAuthenticate","dataAuthenticate","userAttributes","rawRequiredAttributes","requiredAttributes","userAttributesPrefix","substr","newPasswordRequired","authenticateUserInternal","mfaRequired","selectMFAType","mfaSetup","totpRequired","getDeviceResponse","newDeviceMetadata","NewDeviceMetadata","DeviceGroupKey","DeviceKey","errGenHash","deviceSecretVerifierConfig","Salt","PasswordVerifier","getAccessToken","DeviceSecretVerifierConfig","DeviceName","userAgent","errConfirm","dataConfirm","cacheDeviceKeyAndPassword","UserConfirmationNecessary","completeNewPasswordChallenge","newPassword","requiredAttributeData","finalUserAttributes","NEW_PASSWORD","errAValue","errHkdf","confirmRegistration","confirmationCode","forceAliasCreation","ConfirmationCode","ForceAliasCreation","sendCustomChallengeAnswer","answerChallenge","_this6","ANSWER","sendMFACode","mfaType","_this7","SMS_MFA_CODE","mfaTypeSelection","SOFTWARE_TOKEN_MFA_CODE","changePassword","oldUserPassword","newUserPassword","isValid","PreviousPassword","ProposedPassword","enableMFA","mfaOptions","mfaEnabled","DeliveryMedium","AttributeName","push","MFAOptions","setUserMfaPreference","smsMfaSettings","softwareTokenMfaSettings","SMSMfaSettings","SoftwareTokenMfaSettings","disableMFA","deleteUser","_this8","updateAttributes","attributes","UserAttributes","getUserAttributes","userData","attributeList","attribute","Name","Value","userAttribute","getMFAOptions","deleteAttributes","UserAttributeNames","resendConfirmationCode","getSession","keyPrefix","idTokenKey","accessTokenKey","refreshTokenKey","clockDriftKey","getItem","idToken","accessToken","refreshToken","clockDrift","parseInt","sessionData","ClockDrift","cachedSession","refreshSession","_this9","REFRESH_TOKEN","lastUserKey","deviceKeyKey","authResult","authenticationResult","setItem","getIdToken","getRefreshToken","getClockDrift","randomPasswordKey","deviceGroupKeyKey","removeItem","forgotPassword","inputVerificationCode","confirmPassword","Password","getAttributeVerificationCode","attributeName","verifyAttribute","Code","getDevice","forgetSpecificDevice","forgetDevice","_this10","setDeviceStatusRemembered","DeviceRememberedStatus","setDeviceStatusNotRemembered","listDevices","limit","paginationToken","Limit","PaginationToken","globalSignOut","_this11","signOut","sendMFASelectionAnswer","_this12","associateSoftwareToken","_this13","associateSecretCode","SecretCode","verifySoftwareToken","totpCode","friendlyDeviceName","_this14","UserCode","FriendlyDeviceName","errRespond","dataRespond","CognitoUserAttribute","getValue","setValue","getName","setName","name","stringify","toJSON","CognitoUserSession","calculateClockDrift","now","Date","adjusted","monthNames","weekNames","DateHelper","weekDay","getUTCDay","month","getUTCMonth","day","getUTCDate","hours","getUTCHours","minutes","getUTCMinutes","seconds","getUTCSeconds","year","getUTCFullYear","dataMemory","MemoryStorage","clear","StorageHelper","storageWindow","window","localStorage","exception","AuthenticationDetails","ValidationData","validationData","_CognitoUser","_CognitoUser2","CognitoUserPool","UserPoolId","endpoint","AdvancedSecurityDataCollectionFlag","test","region","userPoolId","clientId","apiVersion","advancedSecurityDataCollectionFlag","signUp","cognitoUser","returnData","user","userConfirmed","UserConfirmed","userSub","UserSub","getCurrentUser","lastAuthUser","AmazonCognitoAdvancedSecurityData","amazonCognitoAdvancedSecurityDataConst","advancedSecurityData","getData","userContextData","EncodedData","_jsCookie","Cookies","CookieStorage","domain","path","expires","secure","set","remove","cookies","index","_AuthenticationDetails","_CognitoUserPool","_CookieStorage","msCrypto","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","registeredInModuleLoader","OldCookies","api","noConflict","extend","init","converter","document","defaults","setMilliseconds","getMilliseconds","toUTCString","write","encodeURIComponent","replace","decodeURIComponent","escape","stringifiedAttributes","cookie","rdecode","parts","json","read","getJSON","apply","withConverter"],"mappings":"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","file":"amazon-cognito-identity.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"aws-sdk/global\"), require(\"aws-sdk/clients/cognitoidentityserviceprovider\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"aws-sdk/global\", \"aws-sdk/clients/cognitoidentityserviceprovider\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AmazonCognitoIdentity\"] = factory(require(\"aws-sdk/global\"), require(\"aws-sdk/clients/cognitoidentityserviceprovider\"));\n\telse\n\t\troot[\"AmazonCognitoIdentity\"] = factory(root[\"AWSCognito\"], root[\"AWSCognito\"][\"CognitoIdentityServiceProvider\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_13__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition","/*!\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\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"aws-sdk/global\"), require(\"aws-sdk/clients/cognitoidentityserviceprovider\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"aws-sdk/global\", \"aws-sdk/clients/cognitoidentityserviceprovider\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"AmazonCognitoIdentity\"] = factory(require(\"aws-sdk/global\"), require(\"aws-sdk/clients/cognitoidentityserviceprovider\"));\n\telse\n\t\troot[\"AmazonCognitoIdentity\"] = factory(root[\"AWSCognito\"], root[\"AWSCognito\"][\"CognitoIdentityServiceProvider\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_13__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _src = __webpack_require__(17);\n\t\n\tObject.keys(_src).forEach(function (key) {\n\t if (key === \"default\" || key === \"__esModule\") return;\n\t Object.defineProperty(exports, key, {\n\t enumerable: true,\n\t get: function get() {\n\t return _src[key];\n\t }\n\t });\n\t});\n\t\n\tvar _cognitoidentityserviceprovider = __webpack_require__(13);\n\t\n\tvar _cognitoidentityserviceprovider2 = _interopRequireDefault(_cognitoidentityserviceprovider);\n\t\n\tvar enhancements = _interopRequireWildcard(_src);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tObject.keys(enhancements).forEach(function (key) {\n\t _cognitoidentityserviceprovider2.default[key] = enhancements[key];\n\t});\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _global = __webpack_require__(1);\n\t\n\tvar _BigInteger = __webpack_require__(3);\n\t\n\tvar _BigInteger2 = _interopRequireDefault(_BigInteger);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\tvar initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' + '83655D23DCA3AD961C62F356208552BB9ED529077096966D' + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\n\t\n\tvar newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\t\n\t/** @class */\n\t\n\tvar AuthenticationHelper = function () {\n\t /**\n\t * Constructs a new AuthenticationHelper object\n\t * @param {string} PoolName Cognito user pool name.\n\t */\n\t function AuthenticationHelper(PoolName) {\n\t _classCallCheck(this, AuthenticationHelper);\n\t\n\t this.N = new _BigInteger2.default(initN, 16);\n\t this.g = new _BigInteger2.default('2', 16);\n\t this.k = new _BigInteger2.default(this.hexHash('00' + this.N.toString(16) + '0' + this.g.toString(16)), 16);\n\t\n\t this.smallAValue = this.generateRandomSmallA();\n\t this.getLargeAValue(function () {});\n\t\n\t this.infoBits = new _global.util.Buffer('Caldera Derived Key', 'utf8');\n\t\n\t this.poolName = PoolName;\n\t }\n\t\n\t /**\n\t * @returns {BigInteger} small A, a random number\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getSmallAValue = function getSmallAValue() {\n\t return this.smallAValue;\n\t };\n\t\n\t /**\n\t * @param {nodeCallback} callback Called with (err, largeAValue)\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getLargeAValue = function getLargeAValue(callback) {\n\t var _this = this;\n\t\n\t if (this.largeAValue) {\n\t callback(null, this.largeAValue);\n\t } else {\n\t this.calculateA(this.smallAValue, function (err, largeAValue) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t _this.largeAValue = largeAValue;\n\t callback(null, _this.largeAValue);\n\t });\n\t }\n\t };\n\t\n\t /**\n\t * helper function to generate a random big integer\n\t * @returns {BigInteger} a random value.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.generateRandomSmallA = function generateRandomSmallA() {\n\t var hexRandom = _global.util.crypto.lib.randomBytes(128).toString('hex');\n\t\n\t var randomBigInt = new _BigInteger2.default(hexRandom, 16);\n\t var smallABigInt = randomBigInt.mod(this.N);\n\t\n\t return smallABigInt;\n\t };\n\t\n\t /**\n\t * helper function to generate a random string\n\t * @returns {string} a random value.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.generateRandomString = function generateRandomString() {\n\t return _global.util.crypto.lib.randomBytes(40).toString('base64');\n\t };\n\t\n\t /**\n\t * @returns {string} Generated random value included in password hash.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getRandomPassword = function getRandomPassword() {\n\t return this.randomPassword;\n\t };\n\t\n\t /**\n\t * @returns {string} Generated random value included in devices hash.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getSaltDevices = function getSaltDevices() {\n\t return this.SaltToHashDevices;\n\t };\n\t\n\t /**\n\t * @returns {string} Value used to verify devices.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getVerifierDevices = function getVerifierDevices() {\n\t return this.verifierDevices;\n\t };\n\t\n\t /**\n\t * Generate salts and compute verifier.\n\t * @param {string} deviceGroupKey Devices to generate verifier for.\n\t * @param {string} username User to generate verifier for.\n\t * @param {nodeCallback} callback Called with (err, null)\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.generateHashDevice = function generateHashDevice(deviceGroupKey, username, callback) {\n\t var _this2 = this;\n\t\n\t this.randomPassword = this.generateRandomString();\n\t var combinedString = '' + deviceGroupKey + username + ':' + this.randomPassword;\n\t var hashedString = this.hash(combinedString);\n\t\n\t var hexRandom = _global.util.crypto.lib.randomBytes(16).toString('hex');\n\t this.SaltToHashDevices = this.padHex(new _BigInteger2.default(hexRandom, 16));\n\t\n\t this.g.modPow(new _BigInteger2.default(this.hexHash(this.SaltToHashDevices + hashedString), 16), this.N, function (err, verifierDevicesNotPadded) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t _this2.verifierDevices = _this2.padHex(verifierDevicesNotPadded);\n\t callback(null, null);\n\t });\n\t };\n\t\n\t /**\n\t * Calculate the client's public value A = g^a%N\n\t * with the generated random number a\n\t * @param {BigInteger} a Randomly generated small A.\n\t * @param {nodeCallback} callback Called with (err, largeAValue)\n\t * @returns {void}\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.calculateA = function calculateA(a, callback) {\n\t var _this3 = this;\n\t\n\t this.g.modPow(a, this.N, function (err, A) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t if (A.mod(_this3.N).equals(_BigInteger2.default.ZERO)) {\n\t callback(new Error('Illegal paramater. A mod N cannot be 0.'), null);\n\t }\n\t\n\t callback(null, A);\n\t });\n\t };\n\t\n\t /**\n\t * Calculate the client's value U which is the hash of A and B\n\t * @param {BigInteger} A Large A value.\n\t * @param {BigInteger} B Server B value.\n\t * @returns {BigInteger} Computed U value.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.calculateU = function calculateU(A, B) {\n\t this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n\t var finalU = new _BigInteger2.default(this.UHexHash, 16);\n\t\n\t return finalU;\n\t };\n\t\n\t /**\n\t * Calculate a hash from a bitArray\n\t * @param {Buffer} buf Value to hash.\n\t * @returns {String} Hex-encoded hash.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.hash = function hash(buf) {\n\t var hashHex = _global.util.crypto.sha256(buf, 'hex');\n\t return new Array(64 - hashHex.length).join('0') + hashHex;\n\t };\n\t\n\t /**\n\t * Calculate a hash from a hex string\n\t * @param {String} hexStr Value to hash.\n\t * @returns {String} Hex-encoded hash.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.hexHash = function hexHash(hexStr) {\n\t return this.hash(new _global.util.Buffer(hexStr, 'hex'));\n\t };\n\t\n\t /**\n\t * Standard hkdf algorithm\n\t * @param {Buffer} ikm Input key material.\n\t * @param {Buffer} salt Salt value.\n\t * @returns {Buffer} Strong key material.\n\t * @private\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.computehkdf = function computehkdf(ikm, salt) {\n\t var prk = _global.util.crypto.hmac(salt, ikm, 'buffer', 'sha256');\n\t var infoBitsUpdate = _global.util.buffer.concat([this.infoBits, new _global.util.Buffer(String.fromCharCode(1), 'utf8')]);\n\t var hmac = _global.util.crypto.hmac(prk, infoBitsUpdate, 'buffer', 'sha256');\n\t return hmac.slice(0, 16);\n\t };\n\t\n\t /**\n\t * Calculates the final hkdf based on computed S value, and computed U value and the key\n\t * @param {String} username Username.\n\t * @param {String} password Password.\n\t * @param {BigInteger} serverBValue Server B value.\n\t * @param {BigInteger} salt Generated salt.\n\t * @param {nodeCallback} callback Called with (err, hkdfValue)\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getPasswordAuthenticationKey = function getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\n\t var _this4 = this;\n\t\n\t if (serverBValue.mod(this.N).equals(_BigInteger2.default.ZERO)) {\n\t throw new Error('B cannot be zero.');\n\t }\n\t\n\t this.UValue = this.calculateU(this.largeAValue, serverBValue);\n\t\n\t if (this.UValue.equals(_BigInteger2.default.ZERO)) {\n\t throw new Error('U cannot be zero.');\n\t }\n\t\n\t var usernamePassword = '' + this.poolName + username + ':' + password;\n\t var usernamePasswordHash = this.hash(usernamePassword);\n\t\n\t var xValue = new _BigInteger2.default(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n\t this.calculateS(xValue, serverBValue, function (err, sValue) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t var hkdf = _this4.computehkdf(new _global.util.Buffer(_this4.padHex(sValue), 'hex'), new _global.util.Buffer(_this4.padHex(_this4.UValue.toString(16)), 'hex'));\n\t\n\t callback(null, hkdf);\n\t });\n\t };\n\t\n\t /**\n\t * Calculates the S value used in getPasswordAuthenticationKey\n\t * @param {BigInteger} xValue Salted password hash value.\n\t * @param {BigInteger} serverBValue Server B value.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.calculateS = function calculateS(xValue, serverBValue, callback) {\n\t var _this5 = this;\n\t\n\t this.g.modPow(xValue, this.N, function (err, gModPowXN) {\n\t if (err) {\n\t callback(err, null);\n\t }\n\t\n\t var intValue2 = serverBValue.subtract(_this5.k.multiply(gModPowXN));\n\t intValue2.modPow(_this5.smallAValue.add(_this5.UValue.multiply(xValue)), _this5.N, function (err2, result) {\n\t if (err2) {\n\t callback(err2, null);\n\t }\n\t\n\t callback(null, result.mod(_this5.N));\n\t });\n\t });\n\t };\n\t\n\t /**\n\t * Return constant newPasswordRequiredChallengeUserAttributePrefix\n\t * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.getNewPasswordRequiredChallengeUserAttributePrefix = function getNewPasswordRequiredChallengeUserAttributePrefix() {\n\t return newPasswordRequiredChallengeUserAttributePrefix;\n\t };\n\t\n\t /**\n\t * Converts a BigInteger (or hex string) to hex format padded with zeroes for hashing\n\t * @param {BigInteger|String} bigInt Number or string to pad.\n\t * @returns {String} Padded hex string.\n\t */\n\t\n\t\n\t AuthenticationHelper.prototype.padHex = function padHex(bigInt) {\n\t var hashStr = bigInt.toString(16);\n\t if (hashStr.length % 2 === 1) {\n\t hashStr = '0' + hashStr;\n\t } else if ('89ABCDEFabcdef'.indexOf(hashStr[0]) !== -1) {\n\t hashStr = '00' + hashStr;\n\t }\n\t return hashStr;\n\t };\n\t\n\t return AuthenticationHelper;\n\t}();\n\t\n\texports.default = AuthenticationHelper;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n\t//\n\t// All public methods have been removed except the following:\n\t// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n\t// toString (only radix 2, 4, 8, 16 and 32 supported)\n\t// negate\n\t// abs\n\t// compareTo\n\t// bitLength\n\t// mod\n\t// equals\n\t// add\n\t// subtract\n\t// multiply\n\t// divide\n\t// modPow\n\t\n\texports.default = BigInteger;\n\t\n\t/*\n\t * Copyright (c) 2003-2005 Tom Wu\n\t * All Rights Reserved.\n\t *\n\t * Permission is hereby granted, free of charge, to any person obtaining\n\t * a copy of this software and associated documentation files (the\n\t * \"Software\"), to deal in the Software without restriction, including\n\t * without limitation the rights to use, copy, modify, merge, publish,\n\t * distribute, sublicense, and/or sell copies of the Software, and to\n\t * permit persons to whom the Software is furnished to do so, subject to\n\t * the following conditions:\n\t *\n\t * The above copyright notice and this permission notice shall be\n\t * included in all copies or substantial portions of the Software.\n\t *\n\t * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n\t * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n\t * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n\t *\n\t * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n\t * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n\t * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n\t * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n\t * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\t *\n\t * In addition, the following condition applies:\n\t *\n\t * All redistributions must retain an intact copy of this copyright notice\n\t * and disclaimer.\n\t */\n\t\n\t// (public) Constructor\n\t\n\tfunction BigInteger(a, b) {\n\t if (a != null) this.fromString(a, b);\n\t}\n\t\n\t// return new, unset BigInteger\n\tfunction nbi() {\n\t return new BigInteger(null);\n\t}\n\t\n\t// Bits per digit\n\tvar dbits;\n\t\n\t// JavaScript engine analysis\n\tvar canary = 0xdeadbeefcafe;\n\tvar j_lm = (canary & 0xffffff) == 0xefcafe;\n\t\n\t// am: Compute w_j += (x*this_i), propagate carries,\n\t// c is initial carry, returns final carry.\n\t// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n\t// We need to select the fastest one that works in this environment.\n\t\n\t// am1: use a single mult and divide to get the high bits,\n\t// max digit bits should be 26 because\n\t// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\n\tfunction am1(i, x, w, j, c, n) {\n\t while (--n >= 0) {\n\t var v = x * this[i++] + w[j] + c;\n\t c = Math.floor(v / 0x4000000);\n\t w[j++] = v & 0x3ffffff;\n\t }\n\t return c;\n\t}\n\t// am2 avoids a big mult-and-extract completely.\n\t// Max digit bits should be <= 30 because we do bitwise ops\n\t// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\n\tfunction am2(i, x, w, j, c, n) {\n\t var xl = x & 0x7fff,\n\t xh = x >> 15;\n\t while (--n >= 0) {\n\t var l = this[i] & 0x7fff;\n\t var h = this[i++] >> 15;\n\t var m = xh * l + h * xl;\n\t l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n\t c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n\t w[j++] = l & 0x3fffffff;\n\t }\n\t return c;\n\t}\n\t// Alternately, set max digit bits to 28 since some\n\t// browsers slow down when dealing with 32-bit numbers.\n\tfunction am3(i, x, w, j, c, n) {\n\t var xl = x & 0x3fff,\n\t xh = x >> 14;\n\t while (--n >= 0) {\n\t var l = this[i] & 0x3fff;\n\t var h = this[i++] >> 14;\n\t var m = xh * l + h * xl;\n\t l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n\t c = (l >> 28) + (m >> 14) + xh * h;\n\t w[j++] = l & 0xfffffff;\n\t }\n\t return c;\n\t}\n\tvar inBrowser = typeof navigator !== \"undefined\";\n\tif (inBrowser && j_lm && navigator.appName == \"Microsoft Internet Explorer\") {\n\t BigInteger.prototype.am = am2;\n\t dbits = 30;\n\t} else if (inBrowser && j_lm && navigator.appName != \"Netscape\") {\n\t BigInteger.prototype.am = am1;\n\t dbits = 26;\n\t} else {\n\t // Mozilla/Netscape seems to prefer am3\n\t BigInteger.prototype.am = am3;\n\t dbits = 28;\n\t}\n\t\n\tBigInteger.prototype.DB = dbits;\n\tBigInteger.prototype.DM = (1 << dbits) - 1;\n\tBigInteger.prototype.DV = 1 << dbits;\n\t\n\tvar BI_FP = 52;\n\tBigInteger.prototype.FV = Math.pow(2, BI_FP);\n\tBigInteger.prototype.F1 = BI_FP - dbits;\n\tBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n\t\n\t// Digit conversions\n\tvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\n\tvar BI_RC = new Array();\n\tvar rr, vv;\n\trr = \"0\".charCodeAt(0);\n\tfor (vv = 0; vv <= 9; ++vv) {\n\t BI_RC[rr++] = vv;\n\t}rr = \"a\".charCodeAt(0);\n\tfor (vv = 10; vv < 36; ++vv) {\n\t BI_RC[rr++] = vv;\n\t}rr = \"A\".charCodeAt(0);\n\tfor (vv = 10; vv < 36; ++vv) {\n\t BI_RC[rr++] = vv;\n\t}function int2char(n) {\n\t return BI_RM.charAt(n);\n\t}\n\tfunction intAt(s, i) {\n\t var c = BI_RC[s.charCodeAt(i)];\n\t return c == null ? -1 : c;\n\t}\n\t\n\t// (protected) copy this to r\n\tfunction bnpCopyTo(r) {\n\t for (var i = this.t - 1; i >= 0; --i) {\n\t r[i] = this[i];\n\t }r.t = this.t;\n\t r.s = this.s;\n\t}\n\t\n\t// (protected) set from integer value x, -DV <= x < DV\n\tfunction bnpFromInt(x) {\n\t this.t = 1;\n\t this.s = x < 0 ? -1 : 0;\n\t if (x > 0) this[0] = x;else if (x < -1) this[0] = x + this.DV;else this.t = 0;\n\t}\n\t\n\t// return bigint initialized to value\n\tfunction nbv(i) {\n\t var r = nbi();\n\t\n\t r.fromInt(i);\n\t\n\t return r;\n\t}\n\t\n\t// (protected) set from string and radix\n\tfunction bnpFromString(s, b) {\n\t var k;\n\t 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\t this.t = 0;\n\t this.s = 0;\n\t var i = s.length,\n\t mi = false,\n\t sh = 0;\n\t while (--i >= 0) {\n\t var x = intAt(s, i);\n\t if (x < 0) {\n\t if (s.charAt(i) == \"-\") mi = true;\n\t continue;\n\t }\n\t mi = false;\n\t if (sh == 0) this[this.t++] = x;else if (sh + k > this.DB) {\n\t this[this.t - 1] |= (x & (1 << this.DB - sh) - 1) << sh;\n\t this[this.t++] = x >> this.DB - sh;\n\t } else this[this.t - 1] |= x << sh;\n\t sh += k;\n\t if (sh >= this.DB) sh -= this.DB;\n\t }\n\t this.clamp();\n\t if (mi) BigInteger.ZERO.subTo(this, this);\n\t}\n\t\n\t// (protected) clamp off excess high words\n\tfunction bnpClamp() {\n\t var c = this.s & this.DM;\n\t while (this.t > 0 && this[this.t - 1] == c) {\n\t --this.t;\n\t }\n\t}\n\t\n\t// (public) return string representation in given radix\n\tfunction bnToString(b) {\n\t if (this.s < 0) return \"-\" + this.negate().toString();\n\t var k;\n\t 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\t var km = (1 << k) - 1,\n\t d,\n\t m = false,\n\t r = \"\",\n\t i = this.t;\n\t var p = this.DB - i * this.DB % k;\n\t if (i-- > 0) {\n\t if (p < this.DB && (d = this[i] >> p) > 0) {\n\t m = true;\n\t r = int2char(d);\n\t }\n\t while (i >= 0) {\n\t if (p < k) {\n\t d = (this[i] & (1 << p) - 1) << k - p;\n\t d |= this[--i] >> (p += this.DB - k);\n\t } else {\n\t d = this[i] >> (p -= k) & km;\n\t if (p <= 0) {\n\t p += this.DB;\n\t --i;\n\t }\n\t }\n\t if (d > 0) m = true;\n\t if (m) r += int2char(d);\n\t }\n\t }\n\t return m ? r : \"0\";\n\t}\n\t\n\t// (public) -this\n\tfunction bnNegate() {\n\t var r = nbi();\n\t\n\t BigInteger.ZERO.subTo(this, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) |this|\n\tfunction bnAbs() {\n\t return this.s < 0 ? this.negate() : this;\n\t}\n\t\n\t// (public) return + if this > a, - if this < a, 0 if equal\n\tfunction bnCompareTo(a) {\n\t var r = this.s - a.s;\n\t if (r != 0) return r;\n\t var i = this.t;\n\t r = i - a.t;\n\t if (r != 0) return this.s < 0 ? -r : r;\n\t while (--i >= 0) {\n\t if ((r = this[i] - a[i]) != 0) return r;\n\t }return 0;\n\t}\n\t\n\t// returns bit length of the integer x\n\tfunction nbits(x) {\n\t var r = 1,\n\t t;\n\t if ((t = x >>> 16) != 0) {\n\t x = t;\n\t r += 16;\n\t }\n\t if ((t = x >> 8) != 0) {\n\t x = t;\n\t r += 8;\n\t }\n\t if ((t = x >> 4) != 0) {\n\t x = t;\n\t r += 4;\n\t }\n\t if ((t = x >> 2) != 0) {\n\t x = t;\n\t r += 2;\n\t }\n\t if ((t = x >> 1) != 0) {\n\t x = t;\n\t r += 1;\n\t }\n\t return r;\n\t}\n\t\n\t// (public) return the number of bits in \"this\"\n\tfunction bnBitLength() {\n\t if (this.t <= 0) return 0;\n\t return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ this.s & this.DM);\n\t}\n\t\n\t// (protected) r = this << n*DB\n\tfunction bnpDLShiftTo(n, r) {\n\t var i;\n\t for (i = this.t - 1; i >= 0; --i) {\n\t r[i + n] = this[i];\n\t }for (i = n - 1; i >= 0; --i) {\n\t r[i] = 0;\n\t }r.t = this.t + n;\n\t r.s = this.s;\n\t}\n\t\n\t// (protected) r = this >> n*DB\n\tfunction bnpDRShiftTo(n, r) {\n\t for (var i = n; i < this.t; ++i) {\n\t r[i - n] = this[i];\n\t }r.t = Math.max(this.t - n, 0);\n\t r.s = this.s;\n\t}\n\t\n\t// (protected) r = this << n\n\tfunction bnpLShiftTo(n, r) {\n\t var bs = n % this.DB;\n\t var cbs = this.DB - bs;\n\t var bm = (1 << cbs) - 1;\n\t var ds = Math.floor(n / this.DB),\n\t c = this.s << bs & this.DM,\n\t i;\n\t for (i = this.t - 1; i >= 0; --i) {\n\t r[i + ds + 1] = this[i] >> cbs | c;\n\t c = (this[i] & bm) << bs;\n\t }\n\t for (i = ds - 1; i >= 0; --i) {\n\t r[i] = 0;\n\t }r[ds] = c;\n\t r.t = this.t + ds + 1;\n\t r.s = this.s;\n\t r.clamp();\n\t}\n\t\n\t// (protected) r = this >> n\n\tfunction bnpRShiftTo(n, r) {\n\t r.s = this.s;\n\t var ds = Math.floor(n / this.DB);\n\t if (ds >= this.t) {\n\t r.t = 0;\n\t return;\n\t }\n\t var bs = n % this.DB;\n\t var cbs = this.DB - bs;\n\t var bm = (1 << bs) - 1;\n\t r[0] = this[ds] >> bs;\n\t for (var i = ds + 1; i < this.t; ++i) {\n\t r[i - ds - 1] |= (this[i] & bm) << cbs;\n\t r[i - ds] = this[i] >> bs;\n\t }\n\t if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n\t r.t = this.t - ds;\n\t r.clamp();\n\t}\n\t\n\t// (protected) r = this - a\n\tfunction bnpSubTo(a, r) {\n\t var i = 0,\n\t c = 0,\n\t m = Math.min(a.t, this.t);\n\t while (i < m) {\n\t c += this[i] - a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t if (a.t < this.t) {\n\t c -= a.s;\n\t while (i < this.t) {\n\t c += this[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c += this.s;\n\t } else {\n\t c += this.s;\n\t while (i < a.t) {\n\t c -= a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c -= a.s;\n\t }\n\t r.s = c < 0 ? -1 : 0;\n\t if (c < -1) r[i++] = this.DV + c;else if (c > 0) r[i++] = c;\n\t r.t = i;\n\t r.clamp();\n\t}\n\t\n\t// (protected) r = this * a, r != this,a (HAC 14.12)\n\t// \"this\" should be the larger one if appropriate.\n\tfunction bnpMultiplyTo(a, r) {\n\t var x = this.abs(),\n\t y = a.abs();\n\t var i = x.t;\n\t r.t = i + y.t;\n\t while (--i >= 0) {\n\t r[i] = 0;\n\t }for (i = 0; i < y.t; ++i) {\n\t r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n\t }r.s = 0;\n\t r.clamp();\n\t if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n\t}\n\t\n\t// (protected) r = this^2, r != this (HAC 14.16)\n\tfunction bnpSquareTo(r) {\n\t var x = this.abs();\n\t var i = r.t = 2 * x.t;\n\t while (--i >= 0) {\n\t r[i] = 0;\n\t }for (i = 0; i < x.t - 1; ++i) {\n\t var c = x.am(i, x[i], r, 2 * i, 0, 1);\n\t if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >= x.DV) {\n\t r[i + x.t] -= x.DV;\n\t r[i + x.t + 1] = 1;\n\t }\n\t }\n\t if (r.t > 0) r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n\t r.s = 0;\n\t r.clamp();\n\t}\n\t\n\t// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n\t// r != q, this != m. q or r may be null.\n\tfunction bnpDivRemTo(m, q, r) {\n\t var pm = m.abs();\n\t if (pm.t <= 0) return;\n\t var pt = this.abs();\n\t if (pt.t < pm.t) {\n\t if (q != null) q.fromInt(0);\n\t if (r != null) this.copyTo(r);\n\t return;\n\t }\n\t if (r == null) r = nbi();\n\t var y = nbi(),\n\t ts = this.s,\n\t ms = m.s;\n\t var nsh = this.DB - nbits(pm[pm.t - 1]);\n\t // normalize modulus\n\t if (nsh > 0) {\n\t pm.lShiftTo(nsh, y);\n\t pt.lShiftTo(nsh, r);\n\t } else {\n\t pm.copyTo(y);\n\t pt.copyTo(r);\n\t }\n\t var ys = y.t;\n\t var y0 = y[ys - 1];\n\t if (y0 == 0) return;\n\t var yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n\t var d1 = this.FV / yt,\n\t d2 = (1 << this.F1) / yt,\n\t e = 1 << this.F2;\n\t var i = r.t,\n\t j = i - ys,\n\t t = q == null ? nbi() : q;\n\t y.dlShiftTo(j, t);\n\t if (r.compareTo(t) >= 0) {\n\t r[r.t++] = 1;\n\t r.subTo(t, r);\n\t }\n\t BigInteger.ONE.dlShiftTo(ys, t);\n\t t.subTo(y, y);\n\t // \"negative\" y so we can replace sub with am later\n\t while (y.t < ys) {\n\t y[y.t++] = 0;\n\t }while (--j >= 0) {\n\t // Estimate quotient digit\n\t var qd = r[--i] == y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n\t if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n\t // Try it out\n\t y.dlShiftTo(j, t);\n\t r.subTo(t, r);\n\t while (r[i] < --qd) {\n\t r.subTo(t, r);\n\t }\n\t }\n\t }\n\t if (q != null) {\n\t r.drShiftTo(ys, q);\n\t if (ts != ms) BigInteger.ZERO.subTo(q, q);\n\t }\n\t r.t = ys;\n\t r.clamp();\n\t if (nsh > 0) r.rShiftTo(nsh, r);\n\t // Denormalize remainder\n\t if (ts < 0) BigInteger.ZERO.subTo(r, r);\n\t}\n\t\n\t// (public) this mod a\n\tfunction bnMod(a) {\n\t var r = nbi();\n\t this.abs().divRemTo(a, null, r);\n\t if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0) a.subTo(r, r);\n\t return r;\n\t}\n\t\n\t// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n\t// justification:\n\t// xy == 1 (mod m)\n\t// xy = 1+km\n\t// xy(2-xy) = (1+km)(1-km)\n\t// x[y(2-xy)] = 1-k^2m^2\n\t// x[y(2-xy)] == 1 (mod m^2)\n\t// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n\t// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n\t// JS multiply \"overflows\" differently from C/C++, so care is needed here.\n\tfunction bnpInvDigit() {\n\t if (this.t < 1) return 0;\n\t var x = this[0];\n\t if ((x & 1) == 0) return 0;\n\t var y = x & 3;\n\t // y == 1/x mod 2^2\n\t y = y * (2 - (x & 0xf) * y) & 0xf;\n\t // y == 1/x mod 2^4\n\t y = y * (2 - (x & 0xff) * y) & 0xff;\n\t // y == 1/x mod 2^8\n\t y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n\t // y == 1/x mod 2^16\n\t // last step - calculate inverse mod DV directly;\n\t // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n\t y = y * (2 - x * y % this.DV) % this.DV;\n\t // y == 1/x mod 2^dbits\n\t // we really want the negative inverse, and -DV < y < DV\n\t return y > 0 ? this.DV - y : -y;\n\t}\n\t\n\tfunction bnEquals(a) {\n\t return this.compareTo(a) == 0;\n\t}\n\t\n\t// (protected) r = this + a\n\tfunction bnpAddTo(a, r) {\n\t var i = 0,\n\t c = 0,\n\t m = Math.min(a.t, this.t);\n\t while (i < m) {\n\t c += this[i] + a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t if (a.t < this.t) {\n\t c += a.s;\n\t while (i < this.t) {\n\t c += this[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c += this.s;\n\t } else {\n\t c += this.s;\n\t while (i < a.t) {\n\t c += a[i];\n\t r[i++] = c & this.DM;\n\t c >>= this.DB;\n\t }\n\t c += a.s;\n\t }\n\t r.s = c < 0 ? -1 : 0;\n\t if (c > 0) r[i++] = c;else if (c < -1) r[i++] = this.DV + c;\n\t r.t = i;\n\t r.clamp();\n\t}\n\t\n\t// (public) this + a\n\tfunction bnAdd(a) {\n\t var r = nbi();\n\t\n\t this.addTo(a, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) this - a\n\tfunction bnSubtract(a) {\n\t var r = nbi();\n\t\n\t this.subTo(a, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) this * a\n\tfunction bnMultiply(a) {\n\t var r = nbi();\n\t\n\t this.multiplyTo(a, r);\n\t\n\t return r;\n\t}\n\t\n\t// (public) this / a\n\tfunction bnDivide(a) {\n\t var r = nbi();\n\t\n\t this.divRemTo(a, r, null);\n\t\n\t return r;\n\t}\n\t\n\t// Montgomery reduction\n\tfunction Montgomery(m) {\n\t this.m = m;\n\t this.mp = m.invDigit();\n\t this.mpl = this.mp & 0x7fff;\n\t this.mph = this.mp >> 15;\n\t this.um = (1 << m.DB - 15) - 1;\n\t this.mt2 = 2 * m.t;\n\t}\n\t\n\t// xR mod m\n\tfunction montConvert(x) {\n\t var r = nbi();\n\t x.abs().dlShiftTo(this.m.t, r);\n\t r.divRemTo(this.m, null, r);\n\t if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0) this.m.subTo(r, r);\n\t return r;\n\t}\n\t\n\t// x/R mod m\n\tfunction montRevert(x) {\n\t var r = nbi();\n\t x.copyTo(r);\n\t this.reduce(r);\n\t return r;\n\t}\n\t\n\t// x = x/R mod m (HAC 14.32)\n\tfunction montReduce(x) {\n\t while (x.t <= this.mt2) {\n\t // pad x so am has enough room later\n\t x[x.t++] = 0;\n\t }for (var i = 0; i < this.m.t; ++i) {\n\t // faster way of calculating u0 = x[i]*mp mod DV\n\t var j = x[i] & 0x7fff;\n\t var u0 = j * this.mpl + ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) & x.DM;\n\t // use am to combine the multiply-shift-add into one call\n\t j = i + this.m.t;\n\t x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n\t // propagate carry\n\t while (x[j] >= x.DV) {\n\t x[j] -= x.DV;\n\t x[++j]++;\n\t }\n\t }\n\t x.clamp();\n\t x.drShiftTo(this.m.t, x);\n\t if (x.compareTo(this.m) >= 0) x.subTo(this.m, x);\n\t}\n\t\n\t// r = \"x^2/R mod m\"; x != r\n\tfunction montSqrTo(x, r) {\n\t x.squareTo(r);\n\t\n\t this.reduce(r);\n\t}\n\t\n\t// r = \"xy/R mod m\"; x,y != r\n\tfunction montMulTo(x, y, r) {\n\t x.multiplyTo(y, r);\n\t\n\t this.reduce(r);\n\t}\n\t\n\tMontgomery.prototype.convert = montConvert;\n\tMontgomery.prototype.revert = montRevert;\n\tMontgomery.prototype.reduce = montReduce;\n\tMontgomery.prototype.mulTo = montMulTo;\n\tMontgomery.prototype.sqrTo = montSqrTo;\n\t\n\t// (public) this^e % m (HAC 14.85)\n\tfunction bnModPow(e, m, callback) {\n\t var i = e.bitLength(),\n\t k,\n\t r = nbv(1),\n\t z = new Montgomery(m);\n\t 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;\n\t\n\t // precomputation\n\t var g = new Array(),\n\t n = 3,\n\t k1 = k - 1,\n\t km = (1 << k) - 1;\n\t g[1] = z.convert(this);\n\t if (k > 1) {\n\t var g2 = nbi();\n\t z.sqrTo(g[1], g2);\n\t while (n <= km) {\n\t g[n] = nbi();\n\t z.mulTo(g2, g[n - 2], g[n]);\n\t n += 2;\n\t }\n\t }\n\t\n\t var j = e.t - 1,\n\t w,\n\t is1 = true,\n\t r2 = nbi(),\n\t t;\n\t i = nbits(e[j]) - 1;\n\t while (j >= 0) {\n\t if (i >= k1) w = e[j] >> i - k1 & km;else {\n\t w = (e[j] & (1 << i + 1) - 1) << k1 - i;\n\t if (j > 0) w |= e[j - 1] >> this.DB + i - k1;\n\t }\n\t\n\t n = k;\n\t while ((w & 1) == 0) {\n\t w >>= 1;\n\t --n;\n\t }\n\t if ((i -= n) < 0) {\n\t i += this.DB;\n\t --j;\n\t }\n\t if (is1) {\n\t // ret == 1, don't bother squaring or multiplying it\n\t g[w].copyTo(r);\n\t is1 = false;\n\t } else {\n\t while (n > 1) {\n\t z.sqrTo(r, r2);\n\t z.sqrTo(r2, r);\n\t n -= 2;\n\t }\n\t if (n > 0) z.sqrTo(r, r2);else {\n\t t = r;\n\t r = r2;\n\t r2 = t;\n\t }\n\t z.mulTo(r2, g[w], r);\n\t }\n\t\n\t while (j >= 0 && (e[j] & 1 << i) == 0) {\n\t z.sqrTo(r, r2);\n\t t = r;\n\t r = r2;\n\t r2 = t;\n\t if (--i < 0) {\n\t i = this.DB - 1;\n\t --j;\n\t }\n\t }\n\t }\n\t var result = z.revert(r);\n\t callback(null, result);\n\t return result;\n\t}\n\t\n\t// protected\n\tBigInteger.prototype.copyTo = bnpCopyTo;\n\tBigInteger.prototype.fromInt = bnpFromInt;\n\tBigInteger.prototype.fromString = bnpFromString;\n\tBigInteger.prototype.clamp = bnpClamp;\n\tBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\n\tBigInteger.prototype.drShiftTo = bnpDRShiftTo;\n\tBigInteger.prototype.lShiftTo = bnpLShiftTo;\n\tBigInteger.prototype.rShiftTo = bnpRShiftTo;\n\tBigInteger.prototype.subTo = bnpSubTo;\n\tBigInteger.prototype.multiplyTo = bnpMultiplyTo;\n\tBigInteger.prototype.squareTo = bnpSquareTo;\n\tBigInteger.prototype.divRemTo = bnpDivRemTo;\n\tBigInteger.prototype.invDigit = bnpInvDigit;\n\tBigInteger.prototype.addTo = bnpAddTo;\n\t\n\t// public\n\tBigInteger.prototype.toString = bnToString;\n\tBigInteger.prototype.negate = bnNegate;\n\tBigInteger.prototype.abs = bnAbs;\n\tBigInteger.prototype.compareTo = bnCompareTo;\n\tBigInteger.prototype.bitLength = bnBitLength;\n\tBigInteger.prototype.mod = bnMod;\n\tBigInteger.prototype.equals = bnEquals;\n\tBigInteger.prototype.add = bnAdd;\n\tBigInteger.prototype.subtract = bnSubtract;\n\tBigInteger.prototype.multiply = bnMultiply;\n\tBigInteger.prototype.divide = bnDivide;\n\tBigInteger.prototype.modPow = bnModPow;\n\t\n\t// \"constants\"\n\tBigInteger.ZERO = nbv(0);\n\tBigInteger.ONE = nbv(1);\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _CognitoJwtToken2 = __webpack_require__(6);\n\t\n\tvar _CognitoJwtToken3 = _interopRequireDefault(_CognitoJwtToken2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoAccessToken = function (_CognitoJwtToken) {\n\t _inherits(CognitoAccessToken, _CognitoJwtToken);\n\t\n\t /**\n\t * Constructs a new CognitoAccessToken object\n\t * @param {string=} AccessToken The JWT access token.\n\t */\n\t function CognitoAccessToken() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t AccessToken = _ref.AccessToken;\n\t\n\t _classCallCheck(this, CognitoAccessToken);\n\t\n\t return _possibleConstructorReturn(this, _CognitoJwtToken.call(this, AccessToken || ''));\n\t }\n\t\n\t return CognitoAccessToken;\n\t}(_CognitoJwtToken3.default);\n\t\n\texports.default = CognitoAccessToken;\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _CognitoJwtToken2 = __webpack_require__(6);\n\t\n\tvar _CognitoJwtToken3 = _interopRequireDefault(_CognitoJwtToken2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoIdToken = function (_CognitoJwtToken) {\n\t _inherits(CognitoIdToken, _CognitoJwtToken);\n\t\n\t /**\n\t * Constructs a new CognitoIdToken object\n\t * @param {string=} IdToken The JWT Id token\n\t */\n\t function CognitoIdToken() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t IdToken = _ref.IdToken;\n\t\n\t _classCallCheck(this, CognitoIdToken);\n\t\n\t return _possibleConstructorReturn(this, _CognitoJwtToken.call(this, IdToken || ''));\n\t }\n\t\n\t return CognitoIdToken;\n\t}(_CognitoJwtToken3.default);\n\t\n\texports.default = CognitoIdToken;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _global = __webpack_require__(1);\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoJwtToken = function () {\n\t /**\n\t * Constructs a new CognitoJwtToken object\n\t * @param {string=} token The JWT token.\n\t */\n\t function CognitoJwtToken(token) {\n\t _classCallCheck(this, CognitoJwtToken);\n\t\n\t // Assign object\n\t this.jwtToken = token || '';\n\t this.payload = this.decodePayload();\n\t }\n\t\n\t /**\n\t * @returns {string} the record's token.\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.getJwtToken = function getJwtToken() {\n\t return this.jwtToken;\n\t };\n\t\n\t /**\n\t * @returns {int} the token's expiration (exp member).\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.getExpiration = function getExpiration() {\n\t return this.payload.exp;\n\t };\n\t\n\t /**\n\t * @returns {int} the token's \"issued at\" (iat member).\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.getIssuedAt = function getIssuedAt() {\n\t return this.payload.iat;\n\t };\n\t\n\t /**\n\t * @returns {object} the token's payload.\n\t */\n\t\n\t\n\t CognitoJwtToken.prototype.decodePayload = function decodePayload() {\n\t var payload = this.jwtToken.split('.')[1];\n\t try {\n\t return JSON.parse(_global.util.base64.decode(payload).toString('utf8'));\n\t } catch (err) {\n\t return {};\n\t }\n\t };\n\t\n\t return CognitoJwtToken;\n\t}();\n\t\n\texports.default = CognitoJwtToken;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoRefreshToken = function () {\n\t /**\n\t * Constructs a new CognitoRefreshToken object\n\t * @param {string=} RefreshToken The JWT refresh token.\n\t */\n\t function CognitoRefreshToken() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t RefreshToken = _ref.RefreshToken;\n\t\n\t _classCallCheck(this, CognitoRefreshToken);\n\t\n\t // Assign object\n\t this.token = RefreshToken || '';\n\t }\n\t\n\t /**\n\t * @returns {string} the record's token.\n\t */\n\t\n\t\n\t CognitoRefreshToken.prototype.getToken = function getToken() {\n\t return this.token;\n\t };\n\t\n\t return CognitoRefreshToken;\n\t}();\n\t\n\texports.default = CognitoRefreshToken;\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _global = __webpack_require__(1);\n\t\n\tvar _BigInteger = __webpack_require__(3);\n\t\n\tvar _BigInteger2 = _interopRequireDefault(_BigInteger);\n\t\n\tvar _AuthenticationHelper = __webpack_require__(2);\n\t\n\tvar _AuthenticationHelper2 = _interopRequireDefault(_AuthenticationHelper);\n\t\n\tvar _CognitoAccessToken = __webpack_require__(4);\n\t\n\tvar _CognitoAccessToken2 = _interopRequireDefault(_CognitoAccessToken);\n\t\n\tvar _CognitoIdToken = __webpack_require__(5);\n\t\n\tvar _CognitoIdToken2 = _interopRequireDefault(_CognitoIdToken);\n\t\n\tvar _CognitoRefreshToken = __webpack_require__(7);\n\t\n\tvar _CognitoRefreshToken2 = _interopRequireDefault(_CognitoRefreshToken);\n\t\n\tvar _CognitoUserSession = __webpack_require__(10);\n\t\n\tvar _CognitoUserSession2 = _interopRequireDefault(_CognitoUserSession);\n\t\n\tvar _DateHelper = __webpack_require__(11);\n\t\n\tvar _DateHelper2 = _interopRequireDefault(_DateHelper);\n\t\n\tvar _CognitoUserAttribute = __webpack_require__(9);\n\t\n\tvar _CognitoUserAttribute2 = _interopRequireDefault(_CognitoUserAttribute);\n\t\n\tvar _StorageHelper = __webpack_require__(12);\n\t\n\tvar _StorageHelper2 = _interopRequireDefault(_StorageHelper);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/**\n\t * @callback nodeCallback\n\t * @template T result\n\t * @param {*} err The operation failure reason, or null.\n\t * @param {T} result The operation result.\n\t */\n\t\n\t/**\n\t * @callback onFailure\n\t * @param {*} err Failure reason.\n\t */\n\t\n\t/**\n\t * @callback onSuccess\n\t * @template T result\n\t * @param {T} result The operation result.\n\t */\n\t\n\t/**\n\t * @callback mfaRequired\n\t * @param {*} details MFA challenge details.\n\t */\n\t\n\t/**\n\t * @callback customChallenge\n\t * @param {*} details Custom challenge details.\n\t */\n\t\n\t/**\n\t * @callback inputVerificationCode\n\t * @param {*} data Server response.\n\t */\n\t\n\t/**\n\t * @callback authSuccess\n\t * @param {CognitoUserSession} session The new session.\n\t * @param {bool=} userConfirmationNecessary User must be confirmed.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUser = function () {\n\t /**\n\t * Constructs a new CognitoUser object\n\t * @param {object} data Creation options\n\t * @param {string} data.Username The user's username.\n\t * @param {CognitoUserPool} data.Pool Pool containing the user.\n\t * @param {object} data.Storage Optional storage object.\n\t */\n\t function CognitoUser(data) {\n\t _classCallCheck(this, CognitoUser);\n\t\n\t if (data == null || data.Username == null || data.Pool == null) {\n\t throw new Error('Username and pool information are required.');\n\t }\n\t\n\t this.username = data.Username || '';\n\t this.pool = data.Pool;\n\t this.Session = null;\n\t\n\t this.client = data.Pool.client;\n\t\n\t this.signInUserSession = null;\n\t this.authenticationFlowType = 'USER_SRP_AUTH';\n\t\n\t this.storage = data.Storage || new _StorageHelper2.default().getStorage();\n\t }\n\t\n\t /**\n\t * Sets the session for this user\n\t * @param {CognitoUserSession} signInUserSession the session\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setSignInUserSession = function setSignInUserSession(signInUserSession) {\n\t this.clearCachedTokens();\n\t this.signInUserSession = signInUserSession;\n\t this.cacheTokens();\n\t };\n\t\n\t /**\n\t * @returns {CognitoUserSession} the current session for this user\n\t */\n\t\n\t\n\t CognitoUser.prototype.getSignInUserSession = function getSignInUserSession() {\n\t return this.signInUserSession;\n\t };\n\t\n\t /**\n\t * @returns {string} the user's username\n\t */\n\t\n\t\n\t CognitoUser.prototype.getUsername = function getUsername() {\n\t return this.username;\n\t };\n\t\n\t /**\n\t * @returns {String} the authentication flow type\n\t */\n\t\n\t\n\t CognitoUser.prototype.getAuthenticationFlowType = function getAuthenticationFlowType() {\n\t return this.authenticationFlowType;\n\t };\n\t\n\t /**\n\t * sets authentication flow type\n\t * @param {string} authenticationFlowType New value.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setAuthenticationFlowType = function setAuthenticationFlowType(authenticationFlowType) {\n\t this.authenticationFlowType = authenticationFlowType;\n\t };\n\t\n\t /**\n\t * This is used for authenticating the user through the custom authentication flow.\n\t * @param {AuthenticationDetails} authDetails Contains the authentication data\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {customChallenge} callback.customChallenge Custom challenge\n\t * response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.initiateAuth = function initiateAuth(authDetails, callback) {\n\t var _this = this;\n\t\n\t var authParameters = authDetails.getAuthParameters();\n\t authParameters.USERNAME = this.username;\n\t\n\t this.client.makeUnauthenticatedRequest('initiateAuth', {\n\t AuthFlow: 'CUSTOM_AUTH',\n\t ClientId: this.pool.getClientId(),\n\t AuthParameters: authParameters,\n\t ClientMetadata: authDetails.getValidationData(),\n\t UserContextData: this.getUserContextData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t var challengeName = data.ChallengeName;\n\t var challengeParameters = data.ChallengeParameters;\n\t\n\t if (challengeName === 'CUSTOM_CHALLENGE') {\n\t _this.Session = data.Session;\n\t return callback.customChallenge(challengeParameters);\n\t }\n\t _this.signInUserSession = _this.getCognitoUserSession(data.AuthenticationResult);\n\t _this.cacheTokens();\n\t return callback.onSuccess(_this.signInUserSession);\n\t });\n\t };\n\t\n\t /**\n\t * This is used for authenticating the user. it calls the AuthenticationHelper for SRP related\n\t * stuff\n\t * @param {AuthenticationDetails} authDetails Contains the authentication data\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {newPasswordRequired} callback.newPasswordRequired new\n\t * password and any required attributes are required to continue\n\t * @param {mfaRequired} callback.mfaRequired MFA code\n\t * required to continue.\n\t * @param {customChallenge} callback.customChallenge Custom challenge\n\t * response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.authenticateUser = function authenticateUser(authDetails, callback) {\n\t var _this2 = this;\n\t\n\t var authenticationHelper = new _AuthenticationHelper2.default(this.pool.getUserPoolId().split('_')[1]);\n\t var dateHelper = new _DateHelper2.default();\n\t\n\t var serverBValue = void 0;\n\t var salt = void 0;\n\t var authParameters = {};\n\t\n\t if (this.deviceKey != null) {\n\t authParameters.DEVICE_KEY = this.deviceKey;\n\t }\n\t\n\t authParameters.USERNAME = this.username;\n\t authenticationHelper.getLargeAValue(function (errOnAValue, aValue) {\n\t // getLargeAValue callback start\n\t if (errOnAValue) {\n\t callback.onFailure(errOnAValue);\n\t }\n\t\n\t authParameters.SRP_A = aValue.toString(16);\n\t\n\t if (_this2.authenticationFlowType === 'CUSTOM_AUTH') {\n\t authParameters.CHALLENGE_NAME = 'SRP_A';\n\t }\n\t\n\t _this2.client.makeUnauthenticatedRequest('initiateAuth', {\n\t AuthFlow: _this2.authenticationFlowType,\n\t ClientId: _this2.pool.getClientId(),\n\t AuthParameters: authParameters,\n\t ClientMetadata: authDetails.getValidationData(),\n\t UserContextData: _this2.getUserContextData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeParameters = data.ChallengeParameters;\n\t\n\t _this2.username = challengeParameters.USER_ID_FOR_SRP;\n\t serverBValue = new _BigInteger2.default(challengeParameters.SRP_B, 16);\n\t salt = new _BigInteger2.default(challengeParameters.SALT, 16);\n\t _this2.getCachedDeviceKeyAndPassword();\n\t\n\t authenticationHelper.getPasswordAuthenticationKey(_this2.username, authDetails.getPassword(), serverBValue, salt, function (errOnHkdf, hkdf) {\n\t // getPasswordAuthenticationKey callback start\n\t if (errOnHkdf) {\n\t callback.onFailure(errOnHkdf);\n\t }\n\t\n\t var dateNow = dateHelper.getNowString();\n\t\n\t var signatureString = _global.util.crypto.hmac(hkdf, _global.util.buffer.concat([new _global.util.Buffer(_this2.pool.getUserPoolId().split('_')[1], 'utf8'), new _global.util.Buffer(_this2.username, 'utf8'), new _global.util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'), new _global.util.Buffer(dateNow, 'utf8')]), 'base64', 'sha256');\n\t\n\t var challengeResponses = {};\n\t\n\t challengeResponses.USERNAME = _this2.username;\n\t challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n\t challengeResponses.TIMESTAMP = dateNow;\n\t challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\t\n\t if (_this2.deviceKey != null) {\n\t challengeResponses.DEVICE_KEY = _this2.deviceKey;\n\t }\n\t\n\t var respondToAuthChallenge = function respondToAuthChallenge(challenge, challengeCallback) {\n\t return _this2.client.makeUnauthenticatedRequest('respondToAuthChallenge', challenge, function (errChallenge, dataChallenge) {\n\t if (errChallenge && errChallenge.code === 'ResourceNotFoundException' && errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n\t challengeResponses.DEVICE_KEY = null;\n\t _this2.deviceKey = null;\n\t _this2.randomPassword = null;\n\t _this2.deviceGroupKey = null;\n\t _this2.clearCachedDeviceKeyAndPassword();\n\t return respondToAuthChallenge(challenge, challengeCallback);\n\t }\n\t return challengeCallback(errChallenge, dataChallenge);\n\t });\n\t };\n\t\n\t respondToAuthChallenge({\n\t ChallengeName: 'PASSWORD_VERIFIER',\n\t ClientId: _this2.pool.getClientId(),\n\t ChallengeResponses: challengeResponses,\n\t Session: data.Session,\n\t UserContextData: _this2.getUserContextData()\n\t }, function (errAuthenticate, dataAuthenticate) {\n\t if (errAuthenticate) {\n\t return callback.onFailure(errAuthenticate);\n\t }\n\t\n\t var challengeName = dataAuthenticate.ChallengeName;\n\t if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n\t _this2.Session = dataAuthenticate.Session;\n\t var userAttributes = null;\n\t var rawRequiredAttributes = null;\n\t var requiredAttributes = [];\n\t var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n\t\n\t if (dataAuthenticate.ChallengeParameters) {\n\t userAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.userAttributes);\n\t rawRequiredAttributes = JSON.parse(dataAuthenticate.ChallengeParameters.requiredAttributes);\n\t }\n\t\n\t if (rawRequiredAttributes) {\n\t for (var i = 0; i < rawRequiredAttributes.length; i++) {\n\t requiredAttributes[i] = rawRequiredAttributes[i].substr(userAttributesPrefix.length);\n\t }\n\t }\n\t return callback.newPasswordRequired(userAttributes, requiredAttributes);\n\t }\n\t return _this2.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n\t });\n\t return undefined;\n\t // getPasswordAuthenticationKey callback end\n\t });\n\t return undefined;\n\t });\n\t // getLargeAValue callback end\n\t });\n\t };\n\t\n\t /**\n\t * PRIVATE ONLY: This is an internal only method and should not\n\t * be directly called by the consumers.\n\t * @param {object} dataAuthenticate authentication data\n\t * @param {object} authenticationHelper helper created\n\t * @param {callback} callback passed on from caller\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.authenticateUserInternal = function authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n\t var _this3 = this;\n\t\n\t var challengeName = dataAuthenticate.ChallengeName;\n\t var challengeParameters = dataAuthenticate.ChallengeParameters;\n\t\n\t if (challengeName === 'SMS_MFA') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.mfaRequired(challengeName, challengeParameters);\n\t }\n\t\n\t if (challengeName === 'SELECT_MFA_TYPE') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.selectMFAType(challengeName, challengeParameters);\n\t }\n\t\n\t if (challengeName === 'MFA_SETUP') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.mfaSetup(challengeName, challengeParameters);\n\t }\n\t\n\t if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.totpRequired(challengeName, challengeParameters);\n\t }\n\t\n\t if (challengeName === 'CUSTOM_CHALLENGE') {\n\t this.Session = dataAuthenticate.Session;\n\t return callback.customChallenge(challengeParameters);\n\t }\n\t\n\t if (challengeName === 'DEVICE_SRP_AUTH') {\n\t this.getDeviceResponse(callback);\n\t return undefined;\n\t }\n\t\n\t this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\t this.cacheTokens();\n\t\n\t var newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n\t if (newDeviceMetadata == null) {\n\t return callback.onSuccess(this.signInUserSession);\n\t }\n\t\n\t authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n\t if (errGenHash) {\n\t return callback.onFailure(errGenHash);\n\t }\n\t\n\t var deviceSecretVerifierConfig = {\n\t Salt: new _global.util.Buffer(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n\t PasswordVerifier: new _global.util.Buffer(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n\t };\n\t\n\t _this3.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n\t _this3.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n\t _this3.randomPassword = authenticationHelper.getRandomPassword();\n\t\n\t _this3.client.makeUnauthenticatedRequest('confirmDevice', {\n\t DeviceKey: newDeviceMetadata.DeviceKey,\n\t AccessToken: _this3.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n\t DeviceName: navigator.userAgent\n\t }, function (errConfirm, dataConfirm) {\n\t if (errConfirm) {\n\t return callback.onFailure(errConfirm);\n\t }\n\t\n\t _this3.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\t _this3.cacheDeviceKeyAndPassword();\n\t if (dataConfirm.UserConfirmationNecessary === true) {\n\t return callback.onSuccess(_this3.signInUserSession, dataConfirm.UserConfirmationNecessary);\n\t }\n\t return callback.onSuccess(_this3.signInUserSession);\n\t });\n\t return undefined;\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n\t * Pass the new password with any new user attributes to be updated.\n\t * User attribute keys must be of format userAttributes..\n\t * @param {string} newPassword new password for this user\n\t * @param {object} requiredAttributeData map with values for all required attributes\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n\t * @param {customChallenge} callback.customChallenge Custom challenge\n\t * response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.completeNewPasswordChallenge = function completeNewPasswordChallenge(newPassword, requiredAttributeData, callback) {\n\t var _this4 = this;\n\t\n\t if (!newPassword) {\n\t return callback.onFailure(new Error('New password is required.'));\n\t }\n\t var authenticationHelper = new _AuthenticationHelper2.default(this.pool.getUserPoolId().split('_')[1]);\n\t var userAttributesPrefix = authenticationHelper.getNewPasswordRequiredChallengeUserAttributePrefix();\n\t\n\t var finalUserAttributes = {};\n\t if (requiredAttributeData) {\n\t Object.keys(requiredAttributeData).forEach(function (key) {\n\t finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n\t });\n\t }\n\t\n\t finalUserAttributes.NEW_PASSWORD = newPassword;\n\t finalUserAttributes.USERNAME = this.username;\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'NEW_PASSWORD_REQUIRED',\n\t ClientId: this.pool.getClientId(),\n\t ChallengeResponses: finalUserAttributes,\n\t Session: this.Session,\n\t UserContextData: this.getUserContextData()\n\t }, function (errAuthenticate, dataAuthenticate) {\n\t if (errAuthenticate) {\n\t return callback.onFailure(errAuthenticate);\n\t }\n\t return _this4.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to get a session using device authentication. It is called at the end of user\n\t * authentication\n\t *\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t * @private\n\t */\n\t\n\t\n\t CognitoUser.prototype.getDeviceResponse = function getDeviceResponse(callback) {\n\t var _this5 = this;\n\t\n\t var authenticationHelper = new _AuthenticationHelper2.default(this.deviceGroupKey);\n\t var dateHelper = new _DateHelper2.default();\n\t\n\t var authParameters = {};\n\t\n\t authParameters.USERNAME = this.username;\n\t authParameters.DEVICE_KEY = this.deviceKey;\n\t authenticationHelper.getLargeAValue(function (errAValue, aValue) {\n\t // getLargeAValue callback start\n\t if (errAValue) {\n\t callback.onFailure(errAValue);\n\t }\n\t\n\t authParameters.SRP_A = aValue.toString(16);\n\t\n\t _this5.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'DEVICE_SRP_AUTH',\n\t ClientId: _this5.pool.getClientId(),\n\t ChallengeResponses: authParameters,\n\t UserContextData: _this5.getUserContextData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeParameters = data.ChallengeParameters;\n\t\n\t var serverBValue = new _BigInteger2.default(challengeParameters.SRP_B, 16);\n\t var salt = new _BigInteger2.default(challengeParameters.SALT, 16);\n\t\n\t authenticationHelper.getPasswordAuthenticationKey(_this5.deviceKey, _this5.randomPassword, serverBValue, salt, function (errHkdf, hkdf) {\n\t // getPasswordAuthenticationKey callback start\n\t if (errHkdf) {\n\t return callback.onFailure(errHkdf);\n\t }\n\t\n\t var dateNow = dateHelper.getNowString();\n\t\n\t var signatureString = _global.util.crypto.hmac(hkdf, _global.util.buffer.concat([new _global.util.Buffer(_this5.deviceGroupKey, 'utf8'), new _global.util.Buffer(_this5.deviceKey, 'utf8'), new _global.util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'), new _global.util.Buffer(dateNow, 'utf8')]), 'base64', 'sha256');\n\t\n\t var challengeResponses = {};\n\t\n\t challengeResponses.USERNAME = _this5.username;\n\t challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n\t challengeResponses.TIMESTAMP = dateNow;\n\t challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\t challengeResponses.DEVICE_KEY = _this5.deviceKey;\n\t\n\t _this5.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n\t ClientId: _this5.pool.getClientId(),\n\t ChallengeResponses: challengeResponses,\n\t Session: data.Session,\n\t UserContextData: _this5.getUserContextData()\n\t }, function (errAuthenticate, dataAuthenticate) {\n\t if (errAuthenticate) {\n\t return callback.onFailure(errAuthenticate);\n\t }\n\t\n\t _this5.signInUserSession = _this5.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\t _this5.cacheTokens();\n\t\n\t return callback.onSuccess(_this5.signInUserSession);\n\t });\n\t return undefined;\n\t // getPasswordAuthenticationKey callback end\n\t });\n\t return undefined;\n\t });\n\t // getLargeAValue callback end\n\t });\n\t };\n\t\n\t /**\n\t * This is used for a certain user to confirm the registration by using a confirmation code\n\t * @param {string} confirmationCode Code entered by user.\n\t * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.confirmRegistration = function confirmRegistration(confirmationCode, forceAliasCreation, callback) {\n\t this.client.makeUnauthenticatedRequest('confirmSignUp', {\n\t ClientId: this.pool.getClientId(),\n\t ConfirmationCode: confirmationCode,\n\t Username: this.username,\n\t ForceAliasCreation: forceAliasCreation,\n\t UserContextData: this.getUserContextData()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t };\n\t\n\t /**\n\t * This is used by the user once he has the responses to a custom challenge\n\t * @param {string} answerChallenge The custom challange answer.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {customChallenge} callback.customChallenge\n\t * Custom challenge response required to continue.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.sendCustomChallengeAnswer = function sendCustomChallengeAnswer(answerChallenge, callback) {\n\t var _this6 = this;\n\t\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = this.username;\n\t challengeResponses.ANSWER = answerChallenge;\n\t\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'CUSTOM_CHALLENGE',\n\t ChallengeResponses: challengeResponses,\n\t ClientId: this.pool.getClientId(),\n\t Session: this.Session,\n\t UserContextData: this.getUserContextData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeName = data.ChallengeName;\n\t\n\t if (challengeName === 'CUSTOM_CHALLENGE') {\n\t _this6.Session = data.Session;\n\t return callback.customChallenge(data.ChallengeParameters);\n\t }\n\t\n\t _this6.signInUserSession = _this6.getCognitoUserSession(data.AuthenticationResult);\n\t _this6.cacheTokens();\n\t return callback.onSuccess(_this6.signInUserSession);\n\t });\n\t };\n\t\n\t /**\n\t * This is used by the user once he has an MFA code\n\t * @param {string} confirmationCode The MFA code entered by the user.\n\t * @param {object} callback Result callback map.\n\t * @param {string} mfaType The mfa we are replying to.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {authSuccess} callback.onSuccess Called on success with the new session.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.sendMFACode = function sendMFACode(confirmationCode, callback, mfaType) {\n\t var _this7 = this;\n\t\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = this.username;\n\t challengeResponses.SMS_MFA_CODE = confirmationCode;\n\t var mfaTypeSelection = mfaType || 'SMS_MFA';\n\t if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n\t challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n\t }\n\t\n\t if (this.deviceKey != null) {\n\t challengeResponses.DEVICE_KEY = this.deviceKey;\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: mfaTypeSelection,\n\t ChallengeResponses: challengeResponses,\n\t ClientId: this.pool.getClientId(),\n\t Session: this.Session,\n\t UserContextData: this.getUserContextData()\n\t }, function (err, dataAuthenticate) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t\n\t var challengeName = dataAuthenticate.ChallengeName;\n\t\n\t if (challengeName === 'DEVICE_SRP_AUTH') {\n\t _this7.getDeviceResponse(callback);\n\t return undefined;\n\t }\n\t\n\t _this7.signInUserSession = _this7.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n\t _this7.cacheTokens();\n\t\n\t if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n\t return callback.onSuccess(_this7.signInUserSession);\n\t }\n\t\n\t var authenticationHelper = new _AuthenticationHelper2.default(_this7.pool.getUserPoolId().split('_')[1]);\n\t authenticationHelper.generateHashDevice(dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey, dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey, function (errGenHash) {\n\t if (errGenHash) {\n\t return callback.onFailure(errGenHash);\n\t }\n\t\n\t var deviceSecretVerifierConfig = {\n\t Salt: new _global.util.Buffer(authenticationHelper.getSaltDevices(), 'hex').toString('base64'),\n\t PasswordVerifier: new _global.util.Buffer(authenticationHelper.getVerifierDevices(), 'hex').toString('base64')\n\t };\n\t\n\t _this7.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n\t _this7.deviceGroupKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey;\n\t _this7.randomPassword = authenticationHelper.getRandomPassword();\n\t\n\t _this7.client.makeUnauthenticatedRequest('confirmDevice', {\n\t DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n\t AccessToken: _this7.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n\t DeviceName: navigator.userAgent\n\t }, function (errConfirm, dataConfirm) {\n\t if (errConfirm) {\n\t return callback.onFailure(errConfirm);\n\t }\n\t\n\t _this7.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n\t _this7.cacheDeviceKeyAndPassword();\n\t if (dataConfirm.UserConfirmationNecessary === true) {\n\t return callback.onSuccess(_this7.signInUserSession, dataConfirm.UserConfirmationNecessary);\n\t }\n\t return callback.onSuccess(_this7.signInUserSession);\n\t });\n\t return undefined;\n\t });\n\t return undefined;\n\t });\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to change the current password\n\t * @param {string} oldUserPassword The current password.\n\t * @param {string} newUserPassword The requested new password.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.changePassword = function changePassword(oldUserPassword, newUserPassword, callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('changePassword', {\n\t PreviousPassword: oldUserPassword,\n\t ProposedPassword: newUserPassword,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to enable MFA for himself\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.enableMFA = function enableMFA(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t var mfaOptions = [];\n\t var mfaEnabled = {\n\t DeliveryMedium: 'SMS',\n\t AttributeName: 'phone_number'\n\t };\n\t mfaOptions.push(mfaEnabled);\n\t\n\t this.client.makeUnauthenticatedRequest('setUserSettings', {\n\t MFAOptions: mfaOptions,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to enable MFA for himself\n\t * @param {string[]} smsMfaSettings the sms mfa settings\n\t * @param {string[]} softwareTokenMfaSettings the software token mfa settings\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setUserMfaPreference = function setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('setUserMFAPreference', {\n\t SMSMfaSettings: smsMfaSettings,\n\t SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to disable MFA for himself\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.disableMFA = function disableMFA(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t var mfaOptions = [];\n\t\n\t this.client.makeUnauthenticatedRequest('setUserSettings', {\n\t MFAOptions: mfaOptions,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to delete himself\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.deleteUser = function deleteUser(callback) {\n\t var _this8 = this;\n\t\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('deleteUser', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t _this8.clearCachedTokens();\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n\t */\n\t /**\n\t * This is used by an authenticated user to change a list of attributes\n\t * @param {AttributeArg[]} attributes A list of the new user attributes.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.updateAttributes = function updateAttributes(attributes, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('updateUserAttributes', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t UserAttributes: attributes\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to get a list of attributes\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getUserAttributes = function getUserAttributes(callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getUser', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, userData) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t\n\t var attributeList = [];\n\t\n\t for (var i = 0; i < userData.UserAttributes.length; i++) {\n\t var attribute = {\n\t Name: userData.UserAttributes[i].Name,\n\t Value: userData.UserAttributes[i].Value\n\t };\n\t var userAttribute = new _CognitoUserAttribute2.default(attribute);\n\t attributeList.push(userAttribute);\n\t }\n\t\n\t return callback(null, attributeList);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to get the MFAOptions\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getMFAOptions = function getMFAOptions(callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getUser', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, userData) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t\n\t return callback(null, userData.MFAOptions);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by an authenticated user to delete a list of attributes\n\t * @param {string[]} attributeList Names of the attributes to delete.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.deleteAttributes = function deleteAttributes(attributeList, callback) {\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t return callback(new Error('User is not authenticated'), null);\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('deleteUserAttributes', {\n\t UserAttributeNames: attributeList,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, 'SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used by a user to resend a confirmation code\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.resendConfirmationCode = function resendConfirmationCode(callback) {\n\t this.client.makeUnauthenticatedRequest('resendConfirmationCode', {\n\t ClientId: this.pool.getClientId(),\n\t Username: this.username,\n\t UserContextData: this.getUserContextData()\n\t }, function (err, result) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t return callback(null, result);\n\t });\n\t };\n\t\n\t /**\n\t * This is used to get a session, either from the session object\n\t * or from the local storage, or by using a refresh token\n\t *\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getSession = function getSession(callback) {\n\t if (this.username == null) {\n\t return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n\t }\n\t\n\t if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n\t return callback(null, this.signInUserSession);\n\t }\n\t\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var idTokenKey = keyPrefix + '.idToken';\n\t var accessTokenKey = keyPrefix + '.accessToken';\n\t var refreshTokenKey = keyPrefix + '.refreshToken';\n\t var clockDriftKey = keyPrefix + '.clockDrift';\n\t\n\t if (this.storage.getItem(idTokenKey)) {\n\t var idToken = new _CognitoIdToken2.default({\n\t IdToken: this.storage.getItem(idTokenKey)\n\t });\n\t var accessToken = new _CognitoAccessToken2.default({\n\t AccessToken: this.storage.getItem(accessTokenKey)\n\t });\n\t var refreshToken = new _CognitoRefreshToken2.default({\n\t RefreshToken: this.storage.getItem(refreshTokenKey)\n\t });\n\t var clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n\t\n\t var sessionData = {\n\t IdToken: idToken,\n\t AccessToken: accessToken,\n\t RefreshToken: refreshToken,\n\t ClockDrift: clockDrift\n\t };\n\t var cachedSession = new _CognitoUserSession2.default(sessionData);\n\t if (cachedSession.isValid()) {\n\t this.signInUserSession = cachedSession;\n\t return callback(null, this.signInUserSession);\n\t }\n\t\n\t if (refreshToken.getToken() == null) {\n\t return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n\t }\n\t\n\t this.refreshSession(refreshToken, callback);\n\t } else {\n\t callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n\t }\n\t\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This uses the refreshToken to retrieve a new session\n\t * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.refreshSession = function refreshSession(refreshToken, callback) {\n\t var _this9 = this;\n\t\n\t var authParameters = {};\n\t authParameters.REFRESH_TOKEN = refreshToken.getToken();\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId();\n\t var lastUserKey = keyPrefix + '.LastAuthUser';\n\t\n\t if (this.storage.getItem(lastUserKey)) {\n\t this.username = this.storage.getItem(lastUserKey);\n\t var deviceKeyKey = keyPrefix + '.' + this.username + '.deviceKey';\n\t this.deviceKey = this.storage.getItem(deviceKeyKey);\n\t authParameters.DEVICE_KEY = this.deviceKey;\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('initiateAuth', {\n\t ClientId: this.pool.getClientId(),\n\t AuthFlow: 'REFRESH_TOKEN_AUTH',\n\t AuthParameters: authParameters,\n\t UserContextData: this.getUserContextData()\n\t }, function (err, authResult) {\n\t if (err) {\n\t if (err.code === 'NotAuthorizedException') {\n\t _this9.clearCachedTokens();\n\t }\n\t return callback(err, null);\n\t }\n\t if (authResult) {\n\t var authenticationResult = authResult.AuthenticationResult;\n\t if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n\t authenticationResult.RefreshToken = refreshToken.getToken();\n\t }\n\t _this9.signInUserSession = _this9.getCognitoUserSession(authenticationResult);\n\t _this9.cacheTokens();\n\t return callback(null, _this9.signInUserSession);\n\t }\n\t return undefined;\n\t });\n\t };\n\t\n\t /**\n\t * This is used to save the session tokens to local storage\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.cacheTokens = function cacheTokens() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId();\n\t var idTokenKey = keyPrefix + '.' + this.username + '.idToken';\n\t var accessTokenKey = keyPrefix + '.' + this.username + '.accessToken';\n\t var refreshTokenKey = keyPrefix + '.' + this.username + '.refreshToken';\n\t var clockDriftKey = keyPrefix + '.' + this.username + '.clockDrift';\n\t var lastUserKey = keyPrefix + '.LastAuthUser';\n\t\n\t this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n\t this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n\t this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n\t this.storage.setItem(clockDriftKey, '' + this.signInUserSession.getClockDrift());\n\t this.storage.setItem(lastUserKey, this.username);\n\t };\n\t\n\t /**\n\t * This is used to cache the device key and device group and device password\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.cacheDeviceKeyAndPassword = function cacheDeviceKeyAndPassword() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var deviceKeyKey = keyPrefix + '.deviceKey';\n\t var randomPasswordKey = keyPrefix + '.randomPasswordKey';\n\t var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey';\n\t\n\t this.storage.setItem(deviceKeyKey, this.deviceKey);\n\t this.storage.setItem(randomPasswordKey, this.randomPassword);\n\t this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n\t };\n\t\n\t /**\n\t * This is used to get current device key and device group and device password\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getCachedDeviceKeyAndPassword = function getCachedDeviceKeyAndPassword() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var deviceKeyKey = keyPrefix + '.deviceKey';\n\t var randomPasswordKey = keyPrefix + '.randomPasswordKey';\n\t var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey';\n\t\n\t if (this.storage.getItem(deviceKeyKey)) {\n\t this.deviceKey = this.storage.getItem(deviceKeyKey);\n\t this.randomPassword = this.storage.getItem(randomPasswordKey);\n\t this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n\t }\n\t };\n\t\n\t /**\n\t * This is used to clear the device key info from local storage\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.clearCachedDeviceKeyAndPassword = function clearCachedDeviceKeyAndPassword() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId() + '.' + this.username;\n\t var deviceKeyKey = keyPrefix + '.deviceKey';\n\t var randomPasswordKey = keyPrefix + '.randomPasswordKey';\n\t var deviceGroupKeyKey = keyPrefix + '.deviceGroupKey';\n\t\n\t this.storage.removeItem(deviceKeyKey);\n\t this.storage.removeItem(randomPasswordKey);\n\t this.storage.removeItem(deviceGroupKeyKey);\n\t };\n\t\n\t /**\n\t * This is used to clear the session tokens from local storage\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.clearCachedTokens = function clearCachedTokens() {\n\t var keyPrefix = 'CognitoIdentityServiceProvider.' + this.pool.getClientId();\n\t var idTokenKey = keyPrefix + '.' + this.username + '.idToken';\n\t var accessTokenKey = keyPrefix + '.' + this.username + '.accessToken';\n\t var refreshTokenKey = keyPrefix + '.' + this.username + '.refreshToken';\n\t var lastUserKey = keyPrefix + '.LastAuthUser';\n\t\n\t this.storage.removeItem(idTokenKey);\n\t this.storage.removeItem(accessTokenKey);\n\t this.storage.removeItem(refreshTokenKey);\n\t this.storage.removeItem(lastUserKey);\n\t };\n\t\n\t /**\n\t * This is used to build a user session from tokens retrieved in the authentication result\n\t * @param {object} authResult Successful auth response from server.\n\t * @returns {CognitoUserSession} The new user session.\n\t * @private\n\t */\n\t\n\t\n\t CognitoUser.prototype.getCognitoUserSession = function getCognitoUserSession(authResult) {\n\t var idToken = new _CognitoIdToken2.default(authResult);\n\t var accessToken = new _CognitoAccessToken2.default(authResult);\n\t var refreshToken = new _CognitoRefreshToken2.default(authResult);\n\t\n\t var sessionData = {\n\t IdToken: idToken,\n\t AccessToken: accessToken,\n\t RefreshToken: refreshToken\n\t };\n\t\n\t return new _CognitoUserSession2.default(sessionData);\n\t };\n\t\n\t /**\n\t * This is used to initiate a forgot password request\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {inputVerificationCode?} callback.inputVerificationCode\n\t * Optional callback raised instead of onSuccess with response data.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.forgotPassword = function forgotPassword(callback) {\n\t this.client.makeUnauthenticatedRequest('forgotPassword', {\n\t ClientId: this.pool.getClientId(),\n\t Username: this.username,\n\t UserContextData: this.getUserContextData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t if (typeof callback.inputVerificationCode === 'function') {\n\t return callback.inputVerificationCode(data);\n\t }\n\t return callback.onSuccess(data);\n\t });\n\t };\n\t\n\t /**\n\t * This is used to confirm a new password using a confirmationCode\n\t * @param {string} confirmationCode Code entered by user.\n\t * @param {string} newPassword Confirm new password.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.confirmPassword = function confirmPassword(confirmationCode, newPassword, callback) {\n\t this.client.makeUnauthenticatedRequest('confirmForgotPassword', {\n\t ClientId: this.pool.getClientId(),\n\t Username: this.username,\n\t ConfirmationCode: confirmationCode,\n\t Password: newPassword,\n\t UserContextData: this.getUserContextData()\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess();\n\t });\n\t };\n\t\n\t /**\n\t * This is used to initiate an attribute confirmation request\n\t * @param {string} attributeName User attribute that needs confirmation.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getAttributeVerificationCode = function getAttributeVerificationCode(attributeName, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getUserAttributeVerificationCode', {\n\t AttributeName: attributeName,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t if (typeof callback.inputVerificationCode === 'function') {\n\t return callback.inputVerificationCode(data);\n\t }\n\t return callback.onSuccess();\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to confirm an attribute using a confirmation code\n\t * @param {string} attributeName Attribute being confirmed.\n\t * @param {string} confirmationCode Code entered by user.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.verifyAttribute = function verifyAttribute(attributeName, confirmationCode, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('verifyUserAttribute', {\n\t AttributeName: attributeName,\n\t Code: confirmationCode,\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to get the device information using the current device key\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getDevice = function getDevice(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('getDevice', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: this.deviceKey\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess(data);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to forget a specific device\n\t * @param {string} deviceKey Device key.\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.forgetSpecificDevice = function forgetSpecificDevice(deviceKey, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('forgetDevice', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: deviceKey\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to forget the current device\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.forgetDevice = function forgetDevice(callback) {\n\t var _this10 = this;\n\t\n\t this.forgetSpecificDevice(this.deviceKey, {\n\t onFailure: callback.onFailure,\n\t onSuccess: function onSuccess(result) {\n\t _this10.deviceKey = null;\n\t _this10.deviceGroupKey = null;\n\t _this10.randomPassword = null;\n\t _this10.clearCachedDeviceKeyAndPassword();\n\t return callback.onSuccess(result);\n\t }\n\t });\n\t };\n\t\n\t /**\n\t * This is used to set the device status as remembered\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setDeviceStatusRemembered = function setDeviceStatusRemembered(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: this.deviceKey,\n\t DeviceRememberedStatus: 'remembered'\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to set the device status as not remembered\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.setDeviceStatusNotRemembered = function setDeviceStatusNotRemembered(callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t DeviceKey: this.deviceKey,\n\t DeviceRememberedStatus: 'not_remembered'\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to list all devices for a user\n\t *\n\t * @param {int} limit the number of devices returned in a call\n\t * @param {string} paginationToken the pagination token in case any was returned before\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.listDevices = function listDevices(limit, paginationToken, callback) {\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('listDevices', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t Limit: limit,\n\t PaginationToken: paginationToken\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.onSuccess(data);\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used to globally revoke all tokens issued to a user\n\t * @param {object} callback Result callback map.\n\t * @param {onFailure} callback.onFailure Called on any error.\n\t * @param {onSuccess} callback.onSuccess Called on success.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.globalSignOut = function globalSignOut(callback) {\n\t var _this11 = this;\n\t\n\t if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n\t return callback.onFailure(new Error('User is not authenticated'));\n\t }\n\t\n\t this.client.makeUnauthenticatedRequest('globalSignOut', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t _this11.clearCachedTokens();\n\t return callback.onSuccess('SUCCESS');\n\t });\n\t return undefined;\n\t };\n\t\n\t /**\n\t * This is used for the user to signOut of the application and clear the cached tokens.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.signOut = function signOut() {\n\t this.signInUserSession = null;\n\t this.clearCachedTokens();\n\t };\n\t\n\t /**\n\t * This is used by a user trying to select a given MFA\n\t * @param {string} answerChallenge the mfa the user wants\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.sendMFASelectionAnswer = function sendMFASelectionAnswer(answerChallenge, callback) {\n\t var _this12 = this;\n\t\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = this.username;\n\t challengeResponses.ANSWER = answerChallenge;\n\t\n\t this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'SELECT_MFA_TYPE',\n\t ChallengeResponses: challengeResponses,\n\t ClientId: this.pool.getClientId(),\n\t Session: this.Session,\n\t UserContextData: this.getUserContextData()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t _this12.Session = data.Session;\n\t if (answerChallenge === 'SMS_MFA') {\n\t return callback.mfaRequired(data.challengeName, data.challengeParameters);\n\t }\n\t if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n\t return callback.totpRequired(data.challengeName, data.challengeParameters);\n\t }\n\t return undefined;\n\t });\n\t };\n\t\n\t /**\n\t * This returns the user context data for advanced security feature.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.getUserContextData = function getUserContextData() {\n\t var pool = this.pool;\n\t return pool.getUserContextData(this.username);\n\t };\n\t\n\t /**\n\t * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.associateSoftwareToken = function associateSoftwareToken(callback) {\n\t var _this13 = this;\n\t\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t this.client.makeUnauthenticatedRequest('associateSoftwareToken', {\n\t Session: this.Session\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t _this13.Session = data.Session;\n\t return callback.associateSecretCode(data.SecretCode);\n\t });\n\t } else {\n\t this.client.makeUnauthenticatedRequest('associateSoftwareToken', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken()\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t return callback.associateSecretCode(data.SecretCode);\n\t });\n\t }\n\t };\n\t\n\t /**\n\t * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n\t * @param {string} totpCode The MFA code entered by the user.\n\t * @param {string} friendlyDeviceName The device name we are assigning to the device.\n\t * @param {nodeCallback} callback Called on success or error.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUser.prototype.verifySoftwareToken = function verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n\t var _this14 = this;\n\t\n\t if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n\t this.client.makeUnauthenticatedRequest('verifySoftwareToken', {\n\t Session: this.Session,\n\t UserCode: totpCode,\n\t FriendlyDeviceName: friendlyDeviceName\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t _this14.Session = data.Session;\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = _this14.username;\n\t\n\t _this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'MFA_SETUP',\n\t ClientId: _this14.pool.getClientId(),\n\t ChallengeResponses: challengeResponses,\n\t Session: _this14.Session,\n\t UserContextData: _this14.getUserContextData()\n\t }, function (errRespond, dataRespond) {\n\t if (errRespond) {\n\t return callback.onFailure(errRespond);\n\t }\n\t _this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult);\n\t _this14.cacheTokens();\n\t return callback.onSuccess(_this14.signInUserSession);\n\t });\n\t return undefined;\n\t });\n\t } else {\n\t this.client.makeUnauthenticatedRequest('verifySoftwareToken', {\n\t AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n\t UserCode: totpCode,\n\t FriendlyDeviceName: friendlyDeviceName\n\t }, function (err, data) {\n\t if (err) {\n\t return callback.onFailure(err);\n\t }\n\t _this14.Session = data.Session;\n\t var challengeResponses = {};\n\t challengeResponses.USERNAME = _this14.username;\n\t\n\t _this14.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n\t ChallengeName: 'MFA_SETUP',\n\t ClientId: _this14.pool.getClientId(),\n\t ChallengeResponses: challengeResponses,\n\t Session: _this14.Session,\n\t UserContextData: _this14.getUserContextData()\n\t }, function (errRespond, dataRespond) {\n\t if (errRespond) {\n\t return callback.onFailure(errRespond);\n\t }\n\t _this14.signInUserSession = _this14.getCognitoUserSession(dataRespond.AuthenticationResult);\n\t _this14.cacheTokens();\n\t return callback.onSuccess(_this14.signInUserSession);\n\t });\n\t return undefined;\n\t });\n\t }\n\t };\n\t\n\t return CognitoUser;\n\t}();\n\t\n\texports.default = CognitoUser;\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUserAttribute = function () {\n\t /**\n\t * Constructs a new CognitoUserAttribute object\n\t * @param {string=} Name The record's name\n\t * @param {string=} Value The record's value\n\t */\n\t function CognitoUserAttribute() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t Name = _ref.Name,\n\t Value = _ref.Value;\n\t\n\t _classCallCheck(this, CognitoUserAttribute);\n\t\n\t this.Name = Name || '';\n\t this.Value = Value || '';\n\t }\n\t\n\t /**\n\t * @returns {string} the record's value.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.getValue = function getValue() {\n\t return this.Value;\n\t };\n\t\n\t /**\n\t * Sets the record's value.\n\t * @param {string} value The new value.\n\t * @returns {CognitoUserAttribute} The record for method chaining.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.setValue = function setValue(value) {\n\t this.Value = value;\n\t return this;\n\t };\n\t\n\t /**\n\t * @returns {string} the record's name.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.getName = function getName() {\n\t return this.Name;\n\t };\n\t\n\t /**\n\t * Sets the record's name\n\t * @param {string} name The new name.\n\t * @returns {CognitoUserAttribute} The record for method chaining.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.setName = function setName(name) {\n\t this.Name = name;\n\t return this;\n\t };\n\t\n\t /**\n\t * @returns {string} a string representation of the record.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.toString = function toString() {\n\t return JSON.stringify(this);\n\t };\n\t\n\t /**\n\t * @returns {object} a flat object representing the record.\n\t */\n\t\n\t\n\t CognitoUserAttribute.prototype.toJSON = function toJSON() {\n\t return {\n\t Name: this.Name,\n\t Value: this.Value\n\t };\n\t };\n\t\n\t return CognitoUserAttribute;\n\t}();\n\t\n\texports.default = CognitoUserAttribute;\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUserSession = function () {\n\t /**\n\t * Constructs a new CognitoUserSession object\n\t * @param {CognitoIdToken} IdToken The session's Id token.\n\t * @param {CognitoRefreshToken=} RefreshToken The session's refresh token.\n\t * @param {CognitoAccessToken} AccessToken The session's access token.\n\t * @param {int} ClockDrift The saved computer's clock drift or undefined to force calculation.\n\t */\n\t function CognitoUserSession() {\n\t var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n\t IdToken = _ref.IdToken,\n\t RefreshToken = _ref.RefreshToken,\n\t AccessToken = _ref.AccessToken,\n\t ClockDrift = _ref.ClockDrift;\n\t\n\t _classCallCheck(this, CognitoUserSession);\n\t\n\t if (AccessToken == null || IdToken == null) {\n\t throw new Error('Id token and Access Token must be present.');\n\t }\n\t\n\t this.idToken = IdToken;\n\t this.refreshToken = RefreshToken;\n\t this.accessToken = AccessToken;\n\t this.clockDrift = ClockDrift === undefined ? this.calculateClockDrift() : ClockDrift;\n\t }\n\t\n\t /**\n\t * @returns {CognitoIdToken} the session's Id token\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getIdToken = function getIdToken() {\n\t return this.idToken;\n\t };\n\t\n\t /**\n\t * @returns {CognitoRefreshToken} the session's refresh token\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getRefreshToken = function getRefreshToken() {\n\t return this.refreshToken;\n\t };\n\t\n\t /**\n\t * @returns {CognitoAccessToken} the session's access token\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getAccessToken = function getAccessToken() {\n\t return this.accessToken;\n\t };\n\t\n\t /**\n\t * @returns {int} the session's clock drift\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.getClockDrift = function getClockDrift() {\n\t return this.clockDrift;\n\t };\n\t\n\t /**\n\t * @returns {int} the computer's clock drift\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.calculateClockDrift = function calculateClockDrift() {\n\t var now = Math.floor(new Date() / 1000);\n\t var iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n\t\n\t return now - iat;\n\t };\n\t\n\t /**\n\t * Checks to see if the session is still valid based on session expiry information found\n\t * in tokens and the current time (adjusted with clock drift)\n\t * @returns {boolean} if the session is still valid\n\t */\n\t\n\t\n\t CognitoUserSession.prototype.isValid = function isValid() {\n\t var now = Math.floor(new Date() / 1000);\n\t var adjusted = now - this.clockDrift;\n\t\n\t return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n\t };\n\t\n\t return CognitoUserSession;\n\t}();\n\t\n\texports.default = CognitoUserSession;\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\tvar monthNames = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\n\tvar weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\t\n\t/** @class */\n\t\n\tvar DateHelper = function () {\n\t function DateHelper() {\n\t _classCallCheck(this, DateHelper);\n\t }\n\t\n\t /**\n\t * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n\t */\n\t DateHelper.prototype.getNowString = function getNowString() {\n\t var now = new Date();\n\t\n\t var weekDay = weekNames[now.getUTCDay()];\n\t var month = monthNames[now.getUTCMonth()];\n\t var day = now.getUTCDate();\n\t\n\t var hours = now.getUTCHours();\n\t if (hours < 10) {\n\t hours = '0' + hours;\n\t }\n\t\n\t var minutes = now.getUTCMinutes();\n\t if (minutes < 10) {\n\t minutes = '0' + minutes;\n\t }\n\t\n\t var seconds = now.getUTCSeconds();\n\t if (seconds < 10) {\n\t seconds = '0' + seconds;\n\t }\n\t\n\t var year = now.getUTCFullYear();\n\t\n\t // ddd MMM D HH:mm:ss UTC YYYY\n\t var dateNow = weekDay + ' ' + month + ' ' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' UTC ' + year;\n\t\n\t return dateNow;\n\t };\n\t\n\t return DateHelper;\n\t}();\n\t\n\texports.default = DateHelper;\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\tvar dataMemory = {};\n\t\n\t/** @class */\n\t\n\tvar MemoryStorage = function () {\n\t function MemoryStorage() {\n\t _classCallCheck(this, MemoryStorage);\n\t }\n\t\n\t /**\n\t * This is used to set a specific item in storage\n\t * @param {string} key - the key for the item\n\t * @param {object} value - the value\n\t * @returns {string} value that was set\n\t */\n\t MemoryStorage.setItem = function setItem(key, value) {\n\t dataMemory[key] = value;\n\t return dataMemory[key];\n\t };\n\t\n\t /**\n\t * This is used to get a specific key from storage\n\t * @param {string} key - the key for the item\n\t * This is used to clear the storage\n\t * @returns {string} the data item\n\t */\n\t\n\t\n\t MemoryStorage.getItem = function getItem(key) {\n\t return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n\t };\n\t\n\t /**\n\t * This is used to remove an item from storage\n\t * @param {string} key - the key being set\n\t * @returns {string} value - value that was deleted\n\t */\n\t\n\t\n\t MemoryStorage.removeItem = function removeItem(key) {\n\t return delete dataMemory[key];\n\t };\n\t\n\t /**\n\t * This is used to clear the storage\n\t * @returns {string} nothing\n\t */\n\t\n\t\n\t MemoryStorage.clear = function clear() {\n\t dataMemory = {};\n\t return dataMemory;\n\t };\n\t\n\t return MemoryStorage;\n\t}();\n\t\n\t/** @class */\n\t\n\t\n\tvar StorageHelper = function () {\n\t\n\t /**\n\t * This is used to get a storage object\n\t * @returns {object} the storage\n\t */\n\t function StorageHelper() {\n\t _classCallCheck(this, StorageHelper);\n\t\n\t try {\n\t this.storageWindow = window.localStorage;\n\t this.storageWindow.setItem('aws.cognito.test-ls', 1);\n\t this.storageWindow.removeItem('aws.cognito.test-ls');\n\t } catch (exception) {\n\t this.storageWindow = MemoryStorage;\n\t }\n\t }\n\t\n\t /**\n\t * This is used to return the storage\n\t * @returns {object} the storage\n\t */\n\t\n\t\n\t StorageHelper.prototype.getStorage = function getStorage() {\n\t return this.storageWindow;\n\t };\n\t\n\t return StorageHelper;\n\t}();\n\t\n\texports.default = StorageHelper;\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\texports.__esModule = true;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar AuthenticationDetails = function () {\n\t /**\n\t * Constructs a new AuthenticationDetails object\n\t * @param {object=} data Creation options.\n\t * @param {string} data.Username User being authenticated.\n\t * @param {string} data.Password Plain-text password to authenticate with.\n\t * @param {(AttributeArg[])?} data.ValidationData Application extra metadata.\n\t * @param {(AttributeArg[])?} data.AuthParamaters Authentication paramaters for custom auth.\n\t */\n\t function AuthenticationDetails(data) {\n\t _classCallCheck(this, AuthenticationDetails);\n\t\n\t var _ref = data || {},\n\t ValidationData = _ref.ValidationData,\n\t Username = _ref.Username,\n\t Password = _ref.Password,\n\t AuthParameters = _ref.AuthParameters;\n\t\n\t this.validationData = ValidationData || [];\n\t this.authParameters = AuthParameters || [];\n\t this.username = Username;\n\t this.password = Password;\n\t }\n\t\n\t /**\n\t * @returns {string} the record's username\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getUsername = function getUsername() {\n\t return this.username;\n\t };\n\t\n\t /**\n\t * @returns {string} the record's password\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getPassword = function getPassword() {\n\t return this.password;\n\t };\n\t\n\t /**\n\t * @returns {Array} the record's validationData\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getValidationData = function getValidationData() {\n\t return this.validationData;\n\t };\n\t\n\t /**\n\t * @returns {Array} the record's authParameters\n\t */\n\t\n\t\n\t AuthenticationDetails.prototype.getAuthParameters = function getAuthParameters() {\n\t return this.authParameters;\n\t };\n\t\n\t return AuthenticationDetails;\n\t}();\n\t\n\texports.default = AuthenticationDetails;\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _cognitoidentityserviceprovider = __webpack_require__(13);\n\t\n\tvar _cognitoidentityserviceprovider2 = _interopRequireDefault(_cognitoidentityserviceprovider);\n\t\n\tvar _CognitoUser = __webpack_require__(8);\n\t\n\tvar _CognitoUser2 = _interopRequireDefault(_CognitoUser);\n\t\n\tvar _StorageHelper = __webpack_require__(12);\n\t\n\tvar _StorageHelper2 = _interopRequireDefault(_StorageHelper);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } } /*!\n\t * Copyright 2016 Amazon.com,\n\t * Inc. or its affiliates. All Rights Reserved.\n\t *\n\t * Licensed under the Amazon Software License (the \"License\").\n\t * You may not use this file except in compliance with the\n\t * License. A copy of the License is located at\n\t *\n\t * http://aws.amazon.com/asl/\n\t *\n\t * or in the \"license\" file accompanying this file. This file is\n\t * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\n\t * CONDITIONS OF ANY KIND, express or implied. See the License\n\t * for the specific language governing permissions and\n\t * limitations under the License.\n\t */\n\t\n\t/** @class */\n\tvar CognitoUserPool = function () {\n\t /**\n\t * Constructs a new CognitoUserPool object\n\t * @param {object} data Creation options.\n\t * @param {string} data.UserPoolId Cognito user pool id.\n\t * @param {string} data.ClientId User pool application client id.\n\t * @param {object} data.Storage Optional storage object.\n\t * @param {boolean} data.AdvancedSecurityDataCollectionFlag Optional:\n\t * boolean flag indicating if the data collection is enabled\n\t * to support cognito advanced security features. By default, this\n\t * flag is set to true.\n\t */\n\t function CognitoUserPool(data) {\n\t _classCallCheck(this, CognitoUserPool);\n\t\n\t var _ref = data || {},\n\t UserPoolId = _ref.UserPoolId,\n\t ClientId = _ref.ClientId,\n\t endpoint = _ref.endpoint,\n\t AdvancedSecurityDataCollectionFlag = _ref.AdvancedSecurityDataCollectionFlag;\n\t\n\t if (!UserPoolId || !ClientId) {\n\t throw new Error('Both UserPoolId and ClientId are required.');\n\t }\n\t if (!/^[\\w-]+_.+$/.test(UserPoolId)) {\n\t throw new Error('Invalid UserPoolId format.');\n\t }\n\t var region = UserPoolId.split('_')[0];\n\t\n\t this.userPoolId = UserPoolId;\n\t this.clientId = ClientId;\n\t\n\t this.client = new _cognitoidentityserviceprovider2.default({\n\t apiVersion: '2016-04-19',\n\t region: region,\n\t endpoint: endpoint\n\t });\n\t\n\t /**\n\t * By default, AdvancedSecurityDataCollectionFlag is set to true,\n\t * if no input value is provided.\n\t */\n\t this.advancedSecurityDataCollectionFlag = true;\n\t if (AdvancedSecurityDataCollectionFlag) {\n\t this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag;\n\t }\n\t this.storage = data.Storage || new _StorageHelper2.default().getStorage();\n\t }\n\t\n\t /**\n\t * @returns {string} the user pool id\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.getUserPoolId = function getUserPoolId() {\n\t return this.userPoolId;\n\t };\n\t\n\t /**\n\t * @returns {string} the client id\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.getClientId = function getClientId() {\n\t return this.clientId;\n\t };\n\t\n\t /**\n\t * @typedef {object} SignUpResult\n\t * @property {CognitoUser} user New user.\n\t * @property {bool} userConfirmed If the user is already confirmed.\n\t */\n\t /**\n\t * method for signing up a user\n\t * @param {string} username User's username.\n\t * @param {string} password Plain-text initial password entered by user.\n\t * @param {(AttributeArg[])=} userAttributes New user attributes.\n\t * @param {(AttributeArg[])=} validationData Application metadata.\n\t * @param {nodeCallback} callback Called on error or with the new user.\n\t * @returns {void}\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.signUp = function signUp(username, password, userAttributes, validationData, callback) {\n\t var _this = this;\n\t\n\t this.client.makeUnauthenticatedRequest('signUp', {\n\t ClientId: this.clientId,\n\t Username: username,\n\t Password: password,\n\t UserAttributes: userAttributes,\n\t ValidationData: validationData,\n\t UserContextData: this.getUserContextData(username)\n\t }, function (err, data) {\n\t if (err) {\n\t return callback(err, null);\n\t }\n\t\n\t var cognitoUser = {\n\t Username: username,\n\t Pool: _this,\n\t Storage: _this.storage\n\t };\n\t\n\t var returnData = {\n\t user: new _CognitoUser2.default(cognitoUser),\n\t userConfirmed: data.UserConfirmed,\n\t userSub: data.UserSub\n\t };\n\t\n\t return callback(null, returnData);\n\t });\n\t };\n\t\n\t /**\n\t * method for getting the current user of the application from the local storage\n\t *\n\t * @returns {CognitoUser} the user retrieved from storage\n\t */\n\t\n\t\n\t CognitoUserPool.prototype.getCurrentUser = function getCurrentUser() {\n\t var lastUserKey = 'CognitoIdentityServiceProvider.' + this.clientId + '.LastAuthUser';\n\t\n\t var lastAuthUser = this.storage.getItem(lastUserKey);\n\t if (lastAuthUser) {\n\t var cognitoUser = {\n\t Username: lastAuthUser,\n\t Pool: this,\n\t Storage: this.storage\n\t };\n\t\n\t return new _CognitoUser2.default(cognitoUser);\n\t }\n\t\n\t return null;\n\t };\n\t\n\t /**\n\t * This method returns the encoded data string used for cognito advanced security feature.\n\t * This would be generated only when developer has included the JS used for collecting the\n\t * data on their client. Please refer to documentation to know more about using AdvancedSecurity\n\t * features\n\t * @param {string} username the username for the context data\n\t * @returns {string} the user context data\n\t **/\n\t\n\t\n\t CognitoUserPool.prototype.getUserContextData = function getUserContextData(username) {\n\t if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n\t return {};\n\t }\n\t /* eslint-disable */\n\t var amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n\t /* eslint-enable */\n\t\n\t if (this.advancedSecurityDataCollectionFlag) {\n\t var advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, this.userPoolId, this.clientId);\n\t if (advancedSecurityData) {\n\t var userContextData = {\n\t EncodedData: advancedSecurityData\n\t };\n\t return userContextData;\n\t }\n\t }\n\t return {};\n\t };\n\t\n\t return CognitoUserPool;\n\t}();\n\t\n\texports.default = CognitoUserPool;\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _jsCookie = __webpack_require__(18);\n\t\n\tvar Cookies = _interopRequireWildcard(_jsCookie);\n\t\n\tfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\t/** @class */\n\tvar CookieStorage = function () {\n\t\n\t /**\n\t * Constructs a new CookieStorage object\n\t * @param {object} data Creation options.\n\t * @param {string} data.domain Cookies domain (mandatory).\n\t * @param {string} data.path Cookies path (default: '/')\n\t * @param {integer} data.expires Cookie expiration (in days, default: 365)\n\t * @param {boolean} data.secure Cookie secure flag (default: true)\n\t */\n\t function CookieStorage(data) {\n\t _classCallCheck(this, CookieStorage);\n\t\n\t this.domain = data.domain;\n\t if (data.path) {\n\t this.path = data.path;\n\t } else {\n\t this.path = '/';\n\t }\n\t if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n\t this.expires = data.expires;\n\t } else {\n\t this.expires = 365;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n\t this.secure = data.secure;\n\t } else {\n\t this.secure = true;\n\t }\n\t }\n\t\n\t /**\n\t * This is used to set a specific item in storage\n\t * @param {string} key - the key for the item\n\t * @param {object} value - the value\n\t * @returns {string} value that was set\n\t */\n\t\n\t\n\t CookieStorage.prototype.setItem = function setItem(key, value) {\n\t Cookies.set(key, value, {\n\t path: this.path,\n\t expires: this.expires,\n\t domain: this.domain\n\t });\n\t return Cookies.get(key);\n\t };\n\t\n\t /**\n\t * This is used to get a specific key from storage\n\t * @param {string} key - the key for the item\n\t * This is used to clear the storage\n\t * @returns {string} the data item\n\t */\n\t\n\t\n\t CookieStorage.prototype.getItem = function getItem(key) {\n\t return Cookies.get(key);\n\t };\n\t\n\t /**\n\t * This is used to remove an item from storage\n\t * @param {string} key - the key being set\n\t * @returns {string} value - value that was deleted\n\t */\n\t\n\t\n\t CookieStorage.prototype.removeItem = function removeItem(key) {\n\t return Cookies.remove(key, {\n\t path: this.path,\n\t domain: this.domain,\n\t secure: this.secure\n\t });\n\t };\n\t\n\t /**\n\t * This is used to clear the storage\n\t * @returns {string} nothing\n\t */\n\t\n\t\n\t CookieStorage.prototype.clear = function clear() {\n\t var cookies = Cookies.get();\n\t var index = void 0;\n\t for (index = 0; index < cookies.length; ++index) {\n\t Cookies.remove(cookies[index]);\n\t }\n\t return {};\n\t };\n\t\n\t return CookieStorage;\n\t}();\n\t\n\texports.default = CookieStorage;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\t\n\tvar _AuthenticationDetails = __webpack_require__(14);\n\t\n\tObject.defineProperty(exports, 'AuthenticationDetails', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_AuthenticationDetails).default;\n\t }\n\t});\n\t\n\tvar _AuthenticationHelper = __webpack_require__(2);\n\t\n\tObject.defineProperty(exports, 'AuthenticationHelper', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_AuthenticationHelper).default;\n\t }\n\t});\n\t\n\tvar _CognitoAccessToken = __webpack_require__(4);\n\t\n\tObject.defineProperty(exports, 'CognitoAccessToken', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoAccessToken).default;\n\t }\n\t});\n\t\n\tvar _CognitoIdToken = __webpack_require__(5);\n\t\n\tObject.defineProperty(exports, 'CognitoIdToken', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoIdToken).default;\n\t }\n\t});\n\t\n\tvar _CognitoRefreshToken = __webpack_require__(7);\n\t\n\tObject.defineProperty(exports, 'CognitoRefreshToken', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoRefreshToken).default;\n\t }\n\t});\n\t\n\tvar _CognitoUser = __webpack_require__(8);\n\t\n\tObject.defineProperty(exports, 'CognitoUser', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUser).default;\n\t }\n\t});\n\t\n\tvar _CognitoUserAttribute = __webpack_require__(9);\n\t\n\tObject.defineProperty(exports, 'CognitoUserAttribute', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUserAttribute).default;\n\t }\n\t});\n\t\n\tvar _CognitoUserPool = __webpack_require__(15);\n\t\n\tObject.defineProperty(exports, 'CognitoUserPool', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUserPool).default;\n\t }\n\t});\n\t\n\tvar _CognitoUserSession = __webpack_require__(10);\n\t\n\tObject.defineProperty(exports, 'CognitoUserSession', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CognitoUserSession).default;\n\t }\n\t});\n\t\n\tvar _CookieStorage = __webpack_require__(16);\n\t\n\tObject.defineProperty(exports, 'CookieStorage', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_CookieStorage).default;\n\t }\n\t});\n\t\n\tvar _DateHelper = __webpack_require__(11);\n\t\n\tObject.defineProperty(exports, 'DateHelper', {\n\t enumerable: true,\n\t get: function get() {\n\t return _interopRequireDefault(_DateHelper).default;\n\t }\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\t// The version of crypto-browserify included by aws-sdk only\n\t// checks for window.crypto, not window.msCrypto as used by\n\t// IE 11 – so we set it explicitly here\n\tif (typeof window !== 'undefined' && !window.crypto && window.msCrypto) {\n\t window.crypto = window.msCrypto;\n\t}\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t * JavaScript Cookie v2.2.0\n\t * https://github.com/js-cookie/js-cookie\n\t *\n\t * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n\t * Released under the MIT license\n\t */\n\t;(function (factory) {\n\t\tvar registeredInModuleLoader = false;\n\t\tif (true) {\n\t\t\t!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (true) {\n\t\t\tmodule.exports = factory();\n\t\t\tregisteredInModuleLoader = true;\n\t\t}\n\t\tif (!registeredInModuleLoader) {\n\t\t\tvar OldCookies = window.Cookies;\n\t\t\tvar api = window.Cookies = factory();\n\t\t\tapi.noConflict = function () {\n\t\t\t\twindow.Cookies = OldCookies;\n\t\t\t\treturn api;\n\t\t\t};\n\t\t}\n\t}(function () {\n\t\tfunction extend () {\n\t\t\tvar i = 0;\n\t\t\tvar result = {};\n\t\t\tfor (; i < arguments.length; i++) {\n\t\t\t\tvar attributes = arguments[ i ];\n\t\t\t\tfor (var key in attributes) {\n\t\t\t\t\tresult[key] = attributes[key];\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t\n\t\tfunction init (converter) {\n\t\t\tfunction api (key, value, attributes) {\n\t\t\t\tvar result;\n\t\t\t\tif (typeof document === 'undefined') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\n\t\t\t\t// Write\n\t\n\t\t\t\tif (arguments.length > 1) {\n\t\t\t\t\tattributes = extend({\n\t\t\t\t\t\tpath: '/'\n\t\t\t\t\t}, api.defaults, attributes);\n\t\n\t\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {}\n\t\n\t\t\t\t\tif (!converter.write) {\n\t\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t\t}\n\t\n\t\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\t\n\t\t\t\t\tvar stringifiedAttributes = '';\n\t\n\t\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t\t}\n\t\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t\t}\n\t\n\t\t\t\t// Read\n\t\n\t\t\t\tif (!key) {\n\t\t\t\t\tresult = {};\n\t\t\t\t}\n\t\n\t\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t\t// calling \"get()\"\n\t\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\t\tvar i = 0;\n\t\n\t\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\t\tvar cookie = parts.slice(1).join('=');\n\t\n\t\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t\t}\n\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\t\n\t\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\n\t\t\t\t\t\tif (!key) {\n\t\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (e) {}\n\t\t\t\t}\n\t\n\t\t\t\treturn result;\n\t\t\t}\n\t\n\t\t\tapi.set = api;\n\t\t\tapi.get = function (key) {\n\t\t\t\treturn api.call(api, key);\n\t\t\t};\n\t\t\tapi.getJSON = function () {\n\t\t\t\treturn api.apply({\n\t\t\t\t\tjson: true\n\t\t\t\t}, [].slice.call(arguments));\n\t\t\t};\n\t\t\tapi.defaults = {};\n\t\n\t\t\tapi.remove = function (key, attributes) {\n\t\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\t\texpires: -1\n\t\t\t\t}));\n\t\t\t};\n\t\n\t\t\tapi.withConverter = init;\n\t\n\t\t\treturn api;\n\t\t}\n\t\n\t\treturn init(function () {});\n\t}));\n\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// amazon-cognito-identity.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap a0e7901a24cb0df307dd","import CognitoIdentityServiceProvider from 'aws-sdk/clients/cognitoidentityserviceprovider';\nimport * as enhancements from './src';\n\nexport * from './src';\n\nObject.keys(enhancements).forEach(key => {\n CognitoIdentityServiceProvider[key] = enhancements[key];\n});\n\n\n\n// WEBPACK FOOTER //\n// ./enhance.js","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":[\"AWSCognito\"],\"commonjs2\":\"aws-sdk/global\",\"commonjs\":\"aws-sdk/global\",\"amd\":\"aws-sdk/global\"}\n// module id = 1\n// module chunks = 0","/*!\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\nimport { util } from 'aws-sdk/global';\n\nimport BigInteger from './BigInteger';\n\nconst initN = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1'\n + '29024E088A67CC74020BBEA63B139B22514A08798E3404DD'\n + 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245'\n + 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED'\n + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D'\n + 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F'\n + '83655D23DCA3AD961C62F356208552BB9ED529077096966D'\n + '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B'\n + 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9'\n + 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510'\n + '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64'\n + 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7'\n + 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B'\n + 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C'\n + 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31'\n + '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\n\nconst newPasswordRequiredChallengeUserAttributePrefix = 'userAttributes.';\n\n/** @class */\nexport default class AuthenticationHelper {\n /**\n * Constructs a new AuthenticationHelper object\n * @param {string} PoolName Cognito user pool name.\n */\n constructor(PoolName) {\n this.N = new BigInteger(initN, 16);\n this.g = new BigInteger('2', 16);\n this.k = new BigInteger(this.hexHash(`00${this.N.toString(16)}0${this.g.toString(16)}`), 16);\n\n this.smallAValue = this.generateRandomSmallA();\n this.getLargeAValue(() => {});\n\n this.infoBits = new util.Buffer('Caldera Derived Key', 'utf8');\n\n this.poolName = PoolName;\n }\n\n /**\n * @returns {BigInteger} small A, a random number\n */\n getSmallAValue() {\n return this.smallAValue;\n }\n\n /**\n * @param {nodeCallback} callback Called with (err, largeAValue)\n * @returns {void}\n */\n getLargeAValue(callback) {\n if (this.largeAValue) {\n callback(null, this.largeAValue);\n } else {\n this.calculateA(this.smallAValue, (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 /**\n * helper function to generate a random big integer\n * @returns {BigInteger} a random value.\n * @private\n */\n generateRandomSmallA() {\n const hexRandom = util.crypto.lib.randomBytes(128).toString('hex');\n\n const randomBigInt = new BigInteger(hexRandom, 16);\n const smallABigInt = randomBigInt.mod(this.N);\n\n return smallABigInt;\n }\n\n /**\n * helper function to generate a random string\n * @returns {string} a random value.\n * @private\n */\n generateRandomString() {\n return util.crypto.lib.randomBytes(40).toString('base64');\n }\n\n /**\n * @returns {string} Generated random value included in password hash.\n */\n getRandomPassword() {\n return this.randomPassword;\n }\n\n /**\n * @returns {string} Generated random value included in devices hash.\n */\n getSaltDevices() {\n return this.SaltToHashDevices;\n }\n\n /**\n * @returns {string} Value used to verify devices.\n */\n getVerifierDevices() {\n return this.verifierDevices;\n }\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} callback Called with (err, null)\n * @returns {void}\n */\n generateHashDevice(deviceGroupKey, username, callback) {\n this.randomPassword = this.generateRandomString();\n const combinedString = `${deviceGroupKey}${username}:${this.randomPassword}`;\n const hashedString = this.hash(combinedString);\n\n const hexRandom = util.crypto.lib.randomBytes(16).toString('hex');\n this.SaltToHashDevices = this.padHex(new BigInteger(hexRandom, 16));\n\n this.g.modPow(\n new BigInteger(this.hexHash(this.SaltToHashDevices + hashedString), 16),\n this.N,\n (err, verifierDevicesNotPadded) => {\n if (err) {\n callback(err, null);\n }\n\n this.verifierDevices = this.padHex(verifierDevicesNotPadded);\n callback(null, null);\n });\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} callback Called with (err, largeAValue)\n * @returns {void}\n * @private\n */\n calculateA(a, callback) {\n this.g.modPow(a, this.N, (err, A) => {\n if (err) {\n callback(err, null);\n }\n\n if (A.mod(this.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 /**\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 calculateU(A, B) {\n this.UHexHash = this.hexHash(this.padHex(A) + this.padHex(B));\n const finalU = new BigInteger(this.UHexHash, 16);\n\n return finalU;\n }\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 hash(buf) {\n const hashHex = util.crypto.sha256(buf, 'hex');\n return (new Array(64 - hashHex.length).join('0')) + hashHex;\n }\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 hexHash(hexStr) {\n return this.hash(new util.Buffer(hexStr, 'hex'));\n }\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 computehkdf(ikm, salt) {\n const prk = util.crypto.hmac(salt, ikm, 'buffer', 'sha256');\n const infoBitsUpdate = util.buffer.concat([\n this.infoBits,\n new util.Buffer(String.fromCharCode(1), 'utf8'),\n ]);\n const hmac = util.crypto.hmac(prk, infoBitsUpdate, 'buffer', 'sha256');\n return hmac.slice(0, 16);\n }\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} callback Called with (err, hkdfValue)\n * @returns {void}\n */\n getPasswordAuthenticationKey(username, password, serverBValue, salt, callback) {\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 const usernamePassword = `${this.poolName}${username}:${password}`;\n const usernamePasswordHash = this.hash(usernamePassword);\n\n const xValue = new BigInteger(this.hexHash(this.padHex(salt) + usernamePasswordHash), 16);\n this.calculateS(xValue, serverBValue, (err, sValue) => {\n if (err) {\n callback(err, null);\n }\n\n const hkdf = this.computehkdf(\n new util.Buffer(this.padHex(sValue), 'hex'),\n new util.Buffer(this.padHex(this.UValue.toString(16)), 'hex'));\n\n callback(null, hkdf);\n });\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} callback Called on success or error.\n * @returns {void}\n */\n calculateS(xValue, serverBValue, callback) {\n this.g.modPow(xValue, this.N, (err, gModPowXN) => {\n if (err) {\n callback(err, null);\n }\n\n const intValue2 = serverBValue.subtract(this.k.multiply(gModPowXN));\n intValue2.modPow(\n this.smallAValue.add(this.UValue.multiply(xValue)),\n this.N,\n (err2, result) => {\n if (err2) {\n callback(err2, null);\n }\n\n callback(null, result.mod(this.N));\n }\n );\n });\n }\n\n /**\n * Return constant newPasswordRequiredChallengeUserAttributePrefix\n * @return {newPasswordRequiredChallengeUserAttributePrefix} constant prefix value\n */\n getNewPasswordRequiredChallengeUserAttributePrefix() {\n return newPasswordRequiredChallengeUserAttributePrefix;\n }\n\n /**\n * Converts a BigInteger (or hex string) to hex format padded with zeroes for hashing\n * @param {BigInteger|String} bigInt Number or string to pad.\n * @returns {String} Padded hex string.\n */\n padHex(bigInt) {\n let hashStr = bigInt.toString(16);\n if (hashStr.length % 2 === 1) {\n hashStr = `0${hashStr}`;\n } else if ('89ABCDEFabcdef'.indexOf(hashStr[0]) !== -1) {\n hashStr = `00${hashStr}`;\n }\n return hashStr;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/AuthenticationHelper.js","// 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\n\nexport default BigInteger;\n\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\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null) this.fromString(a, b);\n}\n\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null);\n}\n\n// Bits per digit\nvar dbits;\n\n// JavaScript engine analysis\nvar canary = 0xdeadbeefcafe;\nvar j_lm = ((canary&0xffffff)==0xefcafe);\n\n// 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\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)\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 return c;\n}\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)\nfunction am2(i,x,w,j,c,n) {\n var xl = x&0x7fff, xh = x>>15;\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 return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i,x,w,j,c,n) {\n var xl = x&0x3fff, xh = x>>14;\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 return c;\n}\nvar inBrowser = typeof navigator !== \"undefined\";\nif(inBrowser && j_lm && (navigator.appName == \"Microsoft Internet Explorer\")) {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if(inBrowser && j_lm && (navigator.appName != \"Netscape\")) {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse { // 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;\n\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;\n\n// Digit conversions\nvar BI_RM = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nvar BI_RC = new Array();\nvar rr, vv;\nrr = \"0\".charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv)\n BI_RC[rr++] = vv;\nrr = \"a\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nrr = \"A\".charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\n\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n var c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (var i = this.t - 1; i >= 0; --i)\n r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0) this[0] = x;\n else if (x < -1) this[0] = x + this.DV;\n else this.t = 0;\n}\n\n// return bigint initialized to value\nfunction nbv(i) {\n var r = nbi();\n\n r.fromInt(i);\n\n return r;\n}\n\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n var k;\n if (b == 16) k = 4;\n else if (b == 8) k = 3;\n else if (b == 2) k = 1;\n else if (b == 32) k = 5;\n else if (b == 4) k = 2;\n 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, mi = false, sh = 0;\n while (--i >= 0) {\n var x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) == \"-\") mi = true;\n continue;\n }\n mi = false;\n if (sh == 0) this[this.t++] = x;\n 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 this.clamp();\n if (mi) BigInteger.ZERO.subTo(this, this);\n}\n\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n var c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c)\n --this.t;\n}\n\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0) return \"-\" + this.negate().toString();\n var k;\n if (b == 16) k = 4;\n else if (b == 8) k = 3;\n else if (b == 2) k = 1;\n else if (b == 32) k = 5;\n else if (b == 4) k = 2;\n else throw new Error(\"Only radix 2, 4, 8, 16, 32 are supported\");\n var km = (1 << k) - 1, d, m = false, r = \"\", i = this.t;\n var p = this.DB - i * this.DB % k;\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\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 if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0) m = true;\n if (m) r += int2char(d);\n }\n }\n return m ? r : \"0\";\n}\n\n// (public) -this\nfunction bnNegate() {\n var r = nbi();\n\n BigInteger.ZERO.subTo(this, r);\n\n return r;\n}\n\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n\n// (public) return + if this > a, - if this < a, 0 if equal\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 while (--i >= 0)\n if ((r = this[i] - a[i]) != 0) return r;\n return 0;\n}\n\n// returns bit length of the integer x\nfunction nbits(x) {\n var r = 1, t;\n if ((t = x >>> 16) != 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) != 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) != 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) != 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) != 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n\n// (public) return the number of bits in \"this\"\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}\n\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n var i;\n for (i = this.t - 1; i >= 0; --i)\n r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i)\n r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (var i = n; i < this.t; ++i)\n r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n\n// (protected) r = this << 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), c = this.s << bs & this.DM, i;\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 for (i = ds - 1; i >= 0; --i)\n r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n var ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\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 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 if (bs > 0) r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n var i = 0, c = 0, m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1) r[i++] = this.DV + c;\n else if (c > 0) r[i++] = c;\n r.t = i;\n r.clamp();\n}\n\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n var x = this.abs(), y = a.abs();\n var i = x.t;\n r.t = i + y.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < y.t; ++i)\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s != a.s) BigInteger.ZERO.subTo(r, r);\n}\n\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n var x = this.abs();\n var i = r.t = 2 * x.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n var c = x.am(i, x[i], r, 2 * i, 0, 1);\n if (\n (r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=\n x.DV\n ) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\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}\n\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.\nfunction bnpDivRemTo(m, q, r) {\n var pm = m.abs();\n if (pm.t <= 0) return;\n var pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null) q.fromInt(0);\n if (r != null) this.copyTo(r);\n return;\n }\n if (r == null) r = nbi();\n var y = nbi(), ts = this.s, ms = m.s;\n var nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\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 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, d2 = (1 << this.F1) / yt, e = 1 << this.F2;\n var i = r.t, j = i - ys, t = q == null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys)\n y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n var qd = r[--i] == y0\n ? this.DM\n : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\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 while (r[i] < --qd) r.subTo(t, r);\n }\n }\n if (q != null) {\n r.drShiftTo(ys, q);\n if (ts != ms) BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0) r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0) BigInteger.ZERO.subTo(r, r);\n}\n\n// (public) this mod a\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}\n\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.\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;\n // y == 1/x mod 2^2\n y = y * (2 - (x & 0xf) * y) & 0xf;\n // y == 1/x mod 2^4\n y = y * (2 - (x & 0xff) * y) & 0xff;\n // y == 1/x mod 2^8\n y = y * (2 - ((x & 0xffff) * y & 0xffff)) & 0xffff;\n // 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 y = y * (2 - x * y % this.DV) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\n\nfunction bnEquals(a) {\n return this.compareTo(a) == 0;\n}\n\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n var i = 0, c = 0, m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n } else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0) r[i++] = c;\n else if (c < -1) r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n\n// (public) this + a\nfunction bnAdd(a) {\n var r = nbi();\n\n this.addTo(a, r);\n\n return r;\n}\n\n// (public) this - a\nfunction bnSubtract(a) {\n var r = nbi();\n\n this.subTo(a, r);\n\n return r;\n}\n\n// (public) this * a\nfunction bnMultiply(a) {\n var r = nbi();\n\n this.multiplyTo(a, r);\n\n return r;\n}\n\n// (public) this / a\nfunction bnDivide(a) {\n var r = nbi();\n\n this.divRemTo(a, r, null);\n\n return r;\n}\n\n// Montgomery reduction\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}\n\n// xR mod m\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}\n\n// x/R mod m\nfunction montRevert(x) {\n var r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\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 +\n ((j * this.mph + (x[i] >> 15) * this.mpl & this.um) << 15) &\n x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\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}\n\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n\n this.reduce(r);\n}\n\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n\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;\n\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n var i = e.bitLength(), k, r = nbv(1), z = new Montgomery(m);\n if (i <= 0) return r;\n else if (i < 18) k = 1;\n else if (i < 48) k = 3;\n else if (i < 144) k = 4;\n else if (i < 768) k = 5;\n else k = 6;\n\n // precomputation\n var g = new Array(), n = 3, k1 = k - 1, km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n var g2 = nbi();\n z.sqrTo(g[1], g2);\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, w, is1 = true, r2 = nbi(), t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1) w = e[j] >> i - k1 & km;\n 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 n = k;\n while ((w & 1) == 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\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 if (n > 0) z.sqrTo(r, r2);\n 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 if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n var result = z.revert(r);\n callback(null, result);\n return result;\n}\n\n// protected\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;\n\n// public\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;\n\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n\n\n\n\n// WEBPACK FOOTER //\n// ./src/BigInteger.js","/*\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\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nexport default class CognitoAccessToken extends CognitoJwtToken {\n /**\n * Constructs a new CognitoAccessToken object\n * @param {string=} AccessToken The JWT access token.\n */\n constructor({ AccessToken } = {}) {\n super(AccessToken || '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoAccessToken.js","/*!\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\nimport CognitoJwtToken from './CognitoJwtToken';\n\n/** @class */\nexport default class CognitoIdToken extends CognitoJwtToken {\n /**\n * Constructs a new CognitoIdToken object\n * @param {string=} IdToken The JWT Id token\n */\n constructor({ IdToken } = {}) {\n super(IdToken || '');\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoIdToken.js","/*!\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\nimport { util } from 'aws-sdk/global';\n\n/** @class */\nexport default class CognitoJwtToken {\n /**\n * Constructs a new CognitoJwtToken object\n * @param {string=} token The JWT token.\n */\n constructor(token) {\n // Assign object\n this.jwtToken = token || '';\n this.payload = this.decodePayload();\n }\n\n /**\n * @returns {string} the record's token.\n */\n getJwtToken() {\n return this.jwtToken;\n }\n\n /**\n * @returns {int} the token's expiration (exp member).\n */\n getExpiration() {\n return this.payload.exp;\n }\n\n /**\n * @returns {int} the token's \"issued at\" (iat member).\n */\n getIssuedAt() {\n return this.payload.iat;\n }\n\n /**\n * @returns {object} the token's payload.\n */\n decodePayload() {\n const payload = this.jwtToken.split('.')[1];\n try {\n return JSON.parse(util.base64.decode(payload).toString('utf8'));\n } catch (err) {\n return {};\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoJwtToken.js","/*!\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 */\nexport default class CognitoRefreshToken {\n /**\n * Constructs a new CognitoRefreshToken object\n * @param {string=} RefreshToken The JWT refresh token.\n */\n constructor({ RefreshToken } = {}) {\n // Assign object\n this.token = RefreshToken || '';\n }\n\n /**\n * @returns {string} the record's token.\n */\n getToken() {\n return this.token;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoRefreshToken.js","/*!\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\nimport { util } from 'aws-sdk/global';\n\nimport BigInteger from './BigInteger';\nimport AuthenticationHelper from './AuthenticationHelper';\nimport CognitoAccessToken from './CognitoAccessToken';\nimport CognitoIdToken from './CognitoIdToken';\nimport CognitoRefreshToken from './CognitoRefreshToken';\nimport CognitoUserSession from './CognitoUserSession';\nimport DateHelper from './DateHelper';\nimport CognitoUserAttribute from './CognitoUserAttribute';\nimport StorageHelper from './StorageHelper';\n\n/**\n * @callback nodeCallback\n * @template T result\n * @param {*} err The operation failure reason, or null.\n * @param {T} result The operation result.\n */\n\n/**\n * @callback onFailure\n * @param {*} err Failure reason.\n */\n\n/**\n * @callback onSuccess\n * @template T result\n * @param {T} result The operation result.\n */\n\n/**\n * @callback mfaRequired\n * @param {*} details MFA challenge details.\n */\n\n/**\n * @callback customChallenge\n * @param {*} details Custom challenge details.\n */\n\n/**\n * @callback inputVerificationCode\n * @param {*} data Server response.\n */\n\n/**\n * @callback authSuccess\n * @param {CognitoUserSession} session The new session.\n * @param {bool=} userConfirmationNecessary User must be confirmed.\n */\n\n\n/** @class */\nexport default class CognitoUser {\n /**\n * Constructs a new CognitoUser object\n * @param {object} data Creation options\n * @param {string} data.Username The user's username.\n * @param {CognitoUserPool} data.Pool Pool containing the user.\n * @param {object} data.Storage Optional storage object.\n */\n constructor(data) {\n if (data == null || data.Username == null || data.Pool == null) {\n throw new Error('Username and pool information are required.');\n }\n\n this.username = data.Username || '';\n this.pool = data.Pool;\n this.Session = null;\n\n this.client = data.Pool.client;\n\n this.signInUserSession = null;\n this.authenticationFlowType = 'USER_SRP_AUTH';\n\n this.storage = data.Storage || new StorageHelper().getStorage();\n }\n\n /**\n * Sets the session for this user\n * @param {CognitoUserSession} signInUserSession the session\n * @returns {void}\n */\n setSignInUserSession(signInUserSession) {\n this.clearCachedTokens();\n this.signInUserSession = signInUserSession;\n this.cacheTokens();\n }\n\n /**\n * @returns {CognitoUserSession} the current session for this user\n */\n getSignInUserSession() {\n return this.signInUserSession;\n }\n\n /**\n * @returns {string} the user's username\n */\n getUsername() {\n return this.username;\n }\n\n /**\n * @returns {String} the authentication flow type\n */\n getAuthenticationFlowType() {\n return this.authenticationFlowType;\n }\n\n /**\n * sets authentication flow type\n * @param {string} authenticationFlowType New value.\n * @returns {void}\n */\n setAuthenticationFlowType(authenticationFlowType) {\n this.authenticationFlowType = authenticationFlowType;\n }\n\n\n /**\n * This is used for authenticating the user through the custom authentication flow.\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n initiateAuth(authDetails, callback) {\n const authParameters = authDetails.getAuthParameters();\n authParameters.USERNAME = this.username;\n\n this.client.makeUnauthenticatedRequest('initiateAuth', {\n AuthFlow: 'CUSTOM_AUTH',\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: authDetails.getValidationData(),\n UserContextData: this.getUserContextData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n const challengeName = data.ChallengeName;\n const challengeParameters = data.ChallengeParameters;\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = data.Session;\n return callback.customChallenge(challengeParameters);\n }\n this.signInUserSession = this.getCognitoUserSession(data.AuthenticationResult);\n this.cacheTokens();\n return callback.onSuccess(this.signInUserSession);\n });\n }\n\n /**\n * This is used for authenticating the user. it calls the AuthenticationHelper for SRP related\n * stuff\n * @param {AuthenticationDetails} authDetails Contains the authentication data\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {newPasswordRequired} callback.newPasswordRequired new\n * password and any required attributes are required to continue\n * @param {mfaRequired} callback.mfaRequired MFA code\n * required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n authenticateUser(authDetails, callback) {\n const authenticationHelper = new AuthenticationHelper(\n this.pool.getUserPoolId().split('_')[1]);\n const dateHelper = new DateHelper();\n\n let serverBValue;\n let salt;\n const authParameters = {};\n\n if (this.deviceKey != null) {\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n authParameters.USERNAME = this.username;\n authenticationHelper.getLargeAValue((errOnAValue, aValue) => {\n // getLargeAValue callback start\n if (errOnAValue) {\n callback.onFailure(errOnAValue);\n }\n\n authParameters.SRP_A = aValue.toString(16);\n\n if (this.authenticationFlowType === 'CUSTOM_AUTH') {\n authParameters.CHALLENGE_NAME = 'SRP_A';\n }\n\n this.client.makeUnauthenticatedRequest('initiateAuth', {\n AuthFlow: this.authenticationFlowType,\n ClientId: this.pool.getClientId(),\n AuthParameters: authParameters,\n ClientMetadata: authDetails.getValidationData(),\n UserContextData: this.getUserContextData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeParameters = data.ChallengeParameters;\n\n this.username = challengeParameters.USER_ID_FOR_SRP;\n serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n salt = new BigInteger(challengeParameters.SALT, 16);\n this.getCachedDeviceKeyAndPassword();\n\n authenticationHelper.getPasswordAuthenticationKey(\n this.username,\n authDetails.getPassword(),\n serverBValue,\n salt,\n (errOnHkdf, hkdf) => {\n // getPasswordAuthenticationKey callback start\n if (errOnHkdf) {\n callback.onFailure(errOnHkdf);\n }\n\n const dateNow = dateHelper.getNowString();\n\n const signatureString = util.crypto.hmac(hkdf, util.buffer.concat([\n new util.Buffer(this.pool.getUserPoolId().split('_')[1], 'utf8'),\n new util.Buffer(this.username, 'utf8'),\n new util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'),\n new util.Buffer(dateNow, 'utf8'),\n ]), 'base64', 'sha256');\n\n const challengeResponses = {};\n\n challengeResponses.USERNAME = this.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n const respondToAuthChallenge = (challenge, challengeCallback) =>\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', challenge,\n (errChallenge, dataChallenge) => {\n if (errChallenge && errChallenge.code === 'ResourceNotFoundException' &&\n errChallenge.message.toLowerCase().indexOf('device') !== -1) {\n challengeResponses.DEVICE_KEY = null;\n this.deviceKey = null;\n this.randomPassword = null;\n this.deviceGroupKey = null;\n this.clearCachedDeviceKeyAndPassword();\n return respondToAuthChallenge(challenge, challengeCallback);\n }\n return challengeCallback(errChallenge, dataChallenge);\n });\n\n respondToAuthChallenge({\n ChallengeName: 'PASSWORD_VERIFIER',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n UserContextData: this.getUserContextData(),\n }, (errAuthenticate, dataAuthenticate) => {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n const challengeName = dataAuthenticate.ChallengeName;\n if (challengeName === 'NEW_PASSWORD_REQUIRED') {\n this.Session = dataAuthenticate.Session;\n let userAttributes = null;\n let rawRequiredAttributes = null;\n const requiredAttributes = [];\n const userAttributesPrefix = authenticationHelper\n .getNewPasswordRequiredChallengeUserAttributePrefix();\n\n if (dataAuthenticate.ChallengeParameters) {\n userAttributes = JSON.parse(\n dataAuthenticate.ChallengeParameters.userAttributes);\n rawRequiredAttributes = JSON.parse(\n dataAuthenticate.ChallengeParameters.requiredAttributes);\n }\n\n if (rawRequiredAttributes) {\n for (let i = 0; i < rawRequiredAttributes.length; i++) {\n requiredAttributes[i] = rawRequiredAttributes[i].substr(\n userAttributesPrefix.length\n );\n }\n }\n return callback.newPasswordRequired(userAttributes, requiredAttributes);\n }\n return this.authenticateUserInternal(\n dataAuthenticate,\n authenticationHelper,\n callback\n );\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * PRIVATE ONLY: This is an internal only method and should not\n * be directly called by the consumers.\n * @param {object} dataAuthenticate authentication data\n * @param {object} authenticationHelper helper created\n * @param {callback} callback passed on from caller\n * @returns {void}\n */\n authenticateUserInternal(dataAuthenticate, authenticationHelper, callback) {\n const challengeName = dataAuthenticate.ChallengeName;\n const challengeParameters = dataAuthenticate.ChallengeParameters;\n\n if (challengeName === 'SMS_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'SELECT_MFA_TYPE') {\n this.Session = dataAuthenticate.Session;\n return callback.selectMFAType(challengeName, challengeParameters);\n }\n\n if (challengeName === 'MFA_SETUP') {\n this.Session = dataAuthenticate.Session;\n return callback.mfaSetup(challengeName, challengeParameters);\n }\n\n if (challengeName === 'SOFTWARE_TOKEN_MFA') {\n this.Session = dataAuthenticate.Session;\n return callback.totpRequired(challengeName, challengeParameters);\n }\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = dataAuthenticate.Session;\n return callback.customChallenge(challengeParameters);\n }\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.getDeviceResponse(callback);\n return undefined;\n }\n\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.cacheTokens();\n\n const newDeviceMetadata = dataAuthenticate.AuthenticationResult.NewDeviceMetadata;\n if (newDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n\n authenticationHelper.generateHashDevice(\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n (errGenHash) => {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n\n const deviceSecretVerifierConfig = {\n Salt: new util.Buffer(\n authenticationHelper.getSaltDevices(), 'hex'\n ).toString('base64'),\n PasswordVerifier: new util.Buffer(\n authenticationHelper.getVerifierDevices(), 'hex'\n ).toString('base64'),\n };\n\n this.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n this.deviceGroupKey = newDeviceMetadata.DeviceGroupKey;\n this.randomPassword = authenticationHelper.getRandomPassword();\n\n this.client.makeUnauthenticatedRequest('confirmDevice', {\n DeviceKey: newDeviceMetadata.DeviceKey,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: navigator.userAgent,\n }, (errConfirm, dataConfirm) => {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n\n this.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n this.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(\n this.signInUserSession, dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n }\n\n /**\n * This method is user to complete the NEW_PASSWORD_REQUIRED challenge.\n * Pass the new password with any new user attributes to be updated.\n * User attribute keys must be of format userAttributes..\n * @param {string} newPassword new password for this user\n * @param {object} requiredAttributeData map with values for all required attributes\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {mfaRequired} callback.mfaRequired MFA code required to continue.\n * @param {customChallenge} callback.customChallenge Custom challenge\n * response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n completeNewPasswordChallenge(newPassword, requiredAttributeData, callback) {\n if (!newPassword) {\n return callback.onFailure(new Error('New password is required.'));\n }\n const authenticationHelper = new AuthenticationHelper(\n this.pool.getUserPoolId().split('_')[1]);\n const userAttributesPrefix = authenticationHelper\n .getNewPasswordRequiredChallengeUserAttributePrefix();\n\n const finalUserAttributes = {};\n if (requiredAttributeData) {\n Object.keys(requiredAttributeData).forEach((key) => {\n finalUserAttributes[userAttributesPrefix + key] = requiredAttributeData[key];\n });\n }\n\n finalUserAttributes.NEW_PASSWORD = newPassword;\n finalUserAttributes.USERNAME = this.username;\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: finalUserAttributes,\n Session: this.Session,\n UserContextData: this.getUserContextData(),\n }, (errAuthenticate, dataAuthenticate) => {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n return this.authenticateUserInternal(dataAuthenticate, authenticationHelper, callback);\n });\n return undefined;\n }\n\n /**\n * This is used to get a session using device authentication. It is called at the end of user\n * authentication\n *\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n * @private\n */\n getDeviceResponse(callback) {\n const authenticationHelper = new AuthenticationHelper(\n this.deviceGroupKey);\n const dateHelper = new DateHelper();\n\n const authParameters = {};\n\n authParameters.USERNAME = this.username;\n authParameters.DEVICE_KEY = this.deviceKey;\n authenticationHelper.getLargeAValue((errAValue, aValue) => {\n // getLargeAValue callback start\n if (errAValue) {\n callback.onFailure(errAValue);\n }\n\n authParameters.SRP_A = aValue.toString(16);\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: authParameters,\n UserContextData: this.getUserContextData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeParameters = data.ChallengeParameters;\n\n const serverBValue = new BigInteger(challengeParameters.SRP_B, 16);\n const salt = new BigInteger(challengeParameters.SALT, 16);\n\n authenticationHelper.getPasswordAuthenticationKey(\n this.deviceKey,\n this.randomPassword,\n serverBValue,\n salt,\n (errHkdf, hkdf) => {\n // getPasswordAuthenticationKey callback start\n if (errHkdf) {\n return callback.onFailure(errHkdf);\n }\n\n const dateNow = dateHelper.getNowString();\n\n const signatureString = util.crypto.hmac(hkdf, util.buffer.concat([\n new util.Buffer(this.deviceGroupKey, 'utf8'),\n new util.Buffer(this.deviceKey, 'utf8'),\n new util.Buffer(challengeParameters.SECRET_BLOCK, 'base64'),\n new util.Buffer(dateNow, 'utf8'),\n ]), 'base64', 'sha256');\n\n const challengeResponses = {};\n\n challengeResponses.USERNAME = this.username;\n challengeResponses.PASSWORD_CLAIM_SECRET_BLOCK = challengeParameters.SECRET_BLOCK;\n challengeResponses.TIMESTAMP = dateNow;\n challengeResponses.PASSWORD_CLAIM_SIGNATURE = signatureString;\n challengeResponses.DEVICE_KEY = this.deviceKey;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: data.Session,\n UserContextData: this.getUserContextData(),\n }, (errAuthenticate, dataAuthenticate) => {\n if (errAuthenticate) {\n return callback.onFailure(errAuthenticate);\n }\n\n this.signInUserSession = this.getCognitoUserSession(\n dataAuthenticate.AuthenticationResult\n );\n this.cacheTokens();\n\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n // getPasswordAuthenticationKey callback end\n });\n return undefined;\n });\n // getLargeAValue callback end\n });\n }\n\n /**\n * This is used for a certain user to confirm the registration by using a confirmation code\n * @param {string} confirmationCode Code entered by user.\n * @param {bool} forceAliasCreation Allow migrating from an existing email / phone number.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n confirmRegistration(confirmationCode, forceAliasCreation, callback) {\n this.client.makeUnauthenticatedRequest('confirmSignUp', {\n ClientId: this.pool.getClientId(),\n ConfirmationCode: confirmationCode,\n Username: this.username,\n ForceAliasCreation: forceAliasCreation,\n UserContextData: this.getUserContextData(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n }\n\n /**\n * This is used by the user once he has the responses to a custom challenge\n * @param {string} answerChallenge The custom challange answer.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {customChallenge} callback.customChallenge\n * Custom challenge response required to continue.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n sendCustomChallengeAnswer(answerChallenge, callback) {\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n UserContextData: this.getUserContextData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeName = data.ChallengeName;\n\n if (challengeName === 'CUSTOM_CHALLENGE') {\n this.Session = data.Session;\n return callback.customChallenge(data.ChallengeParameters);\n }\n\n this.signInUserSession = this.getCognitoUserSession(data.AuthenticationResult);\n this.cacheTokens();\n return callback.onSuccess(this.signInUserSession);\n });\n }\n\n /**\n * This is used by the user once he has an MFA code\n * @param {string} confirmationCode The MFA code entered by the user.\n * @param {object} callback Result callback map.\n * @param {string} mfaType The mfa we are replying to.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {authSuccess} callback.onSuccess Called on success with the new session.\n * @returns {void}\n */\n sendMFACode(confirmationCode, callback, mfaType) {\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.SMS_MFA_CODE = confirmationCode;\n const mfaTypeSelection = mfaType || 'SMS_MFA';\n if (mfaTypeSelection === 'SOFTWARE_TOKEN_MFA') {\n challengeResponses.SOFTWARE_TOKEN_MFA_CODE = confirmationCode;\n }\n\n if (this.deviceKey != null) {\n challengeResponses.DEVICE_KEY = this.deviceKey;\n }\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: mfaTypeSelection,\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n UserContextData: this.getUserContextData(),\n }, (err, dataAuthenticate) => {\n if (err) {\n return callback.onFailure(err);\n }\n\n const challengeName = dataAuthenticate.ChallengeName;\n\n if (challengeName === 'DEVICE_SRP_AUTH') {\n this.getDeviceResponse(callback);\n return undefined;\n }\n\n this.signInUserSession = this.getCognitoUserSession(dataAuthenticate.AuthenticationResult);\n this.cacheTokens();\n\n if (dataAuthenticate.AuthenticationResult.NewDeviceMetadata == null) {\n return callback.onSuccess(this.signInUserSession);\n }\n\n const authenticationHelper = new AuthenticationHelper(\n this.pool.getUserPoolId().split('_')[1]);\n authenticationHelper.generateHashDevice(\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceGroupKey,\n dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n (errGenHash) => {\n if (errGenHash) {\n return callback.onFailure(errGenHash);\n }\n\n const deviceSecretVerifierConfig = {\n Salt: new util.Buffer(\n authenticationHelper.getSaltDevices(), 'hex'\n ).toString('base64'),\n PasswordVerifier: new util.Buffer(\n authenticationHelper.getVerifierDevices(), 'hex'\n ).toString('base64'),\n };\n\n this.verifierDevices = deviceSecretVerifierConfig.PasswordVerifier;\n this.deviceGroupKey = dataAuthenticate.AuthenticationResult\n .NewDeviceMetadata.DeviceGroupKey;\n this.randomPassword = authenticationHelper.getRandomPassword();\n\n this.client.makeUnauthenticatedRequest('confirmDevice', {\n DeviceKey: dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n DeviceName: navigator.userAgent,\n }, (errConfirm, dataConfirm) => {\n if (errConfirm) {\n return callback.onFailure(errConfirm);\n }\n\n this.deviceKey = dataAuthenticate.AuthenticationResult.NewDeviceMetadata.DeviceKey;\n this.cacheDeviceKeyAndPassword();\n if (dataConfirm.UserConfirmationNecessary === true) {\n return callback.onSuccess(\n this.signInUserSession,\n dataConfirm.UserConfirmationNecessary);\n }\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n });\n return undefined;\n });\n }\n\n /**\n * This is used by an authenticated user to change the current password\n * @param {string} oldUserPassword The current password.\n * @param {string} newUserPassword The requested new password.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n changePassword(oldUserPassword, newUserPassword, callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('changePassword', {\n PreviousPassword: oldUserPassword,\n ProposedPassword: newUserPassword,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for himself\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n enableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n const mfaOptions = [];\n const mfaEnabled = {\n DeliveryMedium: 'SMS',\n AttributeName: 'phone_number',\n };\n mfaOptions.push(mfaEnabled);\n\n this.client.makeUnauthenticatedRequest('setUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to enable MFA for himself\n * @param {string[]} smsMfaSettings the sms mfa settings\n * @param {string[]} softwareTokenMfaSettings the software token mfa settings\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n setUserMfaPreference(smsMfaSettings, softwareTokenMfaSettings, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('setUserMFAPreference', {\n SMSMfaSettings: smsMfaSettings,\n SoftwareTokenMfaSettings: softwareTokenMfaSettings,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to disable MFA for himself\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n disableMFA(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n const mfaOptions = [];\n\n this.client.makeUnauthenticatedRequest('setUserSettings', {\n MFAOptions: mfaOptions,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n\n /**\n * This is used by an authenticated user to delete himself\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n deleteUser(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('deleteUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n this.clearCachedTokens();\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * @typedef {CognitoUserAttribute | { Name:string, Value:string }} AttributeArg\n */\n /**\n * This is used by an authenticated user to change a list of attributes\n * @param {AttributeArg[]} attributes A list of the new user attributes.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n updateAttributes(attributes, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('updateUserAttributes', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserAttributes: attributes,\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get a list of attributes\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n getUserAttributes(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('getUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, userData) => {\n if (err) {\n return callback(err, null);\n }\n\n const attributeList = [];\n\n for (let i = 0; i < userData.UserAttributes.length; i++) {\n const attribute = {\n Name: userData.UserAttributes[i].Name,\n Value: userData.UserAttributes[i].Value,\n };\n const userAttribute = new CognitoUserAttribute(attribute);\n attributeList.push(userAttribute);\n }\n\n return callback(null, attributeList);\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to get the MFAOptions\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n getMFAOptions(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('getUser', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, userData) => {\n if (err) {\n return callback(err, null);\n }\n\n return callback(null, userData.MFAOptions);\n });\n return undefined;\n }\n\n /**\n * This is used by an authenticated user to delete a list of attributes\n * @param {string[]} attributeList Names of the attributes to delete.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n deleteAttributes(attributeList, callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n return callback(new Error('User is not authenticated'), null);\n }\n\n this.client.makeUnauthenticatedRequest('deleteUserAttributes', {\n UserAttributeNames: attributeList,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, 'SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used by a user to resend a confirmation code\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n resendConfirmationCode(callback) {\n this.client.makeUnauthenticatedRequest('resendConfirmationCode', {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n UserContextData: this.getUserContextData(),\n }, (err, result) => {\n if (err) {\n return callback(err, null);\n }\n return callback(null, result);\n });\n }\n\n /**\n * This is used to get a session, either from the session object\n * or from the local storage, or by using a refresh token\n *\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n getSession(callback) {\n if (this.username == null) {\n return callback(new Error('Username is null. Cannot retrieve a new session'), null);\n }\n\n if (this.signInUserSession != null && this.signInUserSession.isValid()) {\n return callback(null, this.signInUserSession);\n }\n\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const idTokenKey = `${keyPrefix}.idToken`;\n const accessTokenKey = `${keyPrefix}.accessToken`;\n const refreshTokenKey = `${keyPrefix}.refreshToken`;\n const clockDriftKey = `${keyPrefix}.clockDrift`;\n\n if (this.storage.getItem(idTokenKey)) {\n const idToken = new CognitoIdToken({\n IdToken: this.storage.getItem(idTokenKey),\n });\n const accessToken = new CognitoAccessToken({\n AccessToken: this.storage.getItem(accessTokenKey),\n });\n const refreshToken = new CognitoRefreshToken({\n RefreshToken: this.storage.getItem(refreshTokenKey),\n });\n const clockDrift = parseInt(this.storage.getItem(clockDriftKey), 0) || 0;\n\n const sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n ClockDrift: clockDrift,\n };\n const cachedSession = new CognitoUserSession(sessionData);\n if (cachedSession.isValid()) {\n this.signInUserSession = cachedSession;\n return callback(null, this.signInUserSession);\n }\n\n if (refreshToken.getToken() == null) {\n return callback(new Error('Cannot retrieve a new session. Please authenticate.'), null);\n }\n\n this.refreshSession(refreshToken, callback);\n } else {\n callback(new Error('Local storage is missing an ID Token, Please authenticate'), null);\n }\n\n return undefined;\n }\n\n\n /**\n * This uses the refreshToken to retrieve a new session\n * @param {CognitoRefreshToken} refreshToken A previous session's refresh token.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n refreshSession(refreshToken, callback) {\n const authParameters = {};\n authParameters.REFRESH_TOKEN = refreshToken.getToken();\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}`;\n const lastUserKey = `${keyPrefix}.LastAuthUser`;\n\n if (this.storage.getItem(lastUserKey)) {\n this.username = this.storage.getItem(lastUserKey);\n const deviceKeyKey = `${keyPrefix}.${this.username}.deviceKey`;\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n authParameters.DEVICE_KEY = this.deviceKey;\n }\n\n this.client.makeUnauthenticatedRequest('initiateAuth', {\n ClientId: this.pool.getClientId(),\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters: authParameters,\n UserContextData: this.getUserContextData(),\n }, (err, authResult) => {\n if (err) {\n if (err.code === 'NotAuthorizedException') {\n this.clearCachedTokens();\n }\n return callback(err, null);\n }\n if (authResult) {\n const authenticationResult = authResult.AuthenticationResult;\n if (!Object.prototype.hasOwnProperty.call(authenticationResult, 'RefreshToken')) {\n authenticationResult.RefreshToken = refreshToken.getToken();\n }\n this.signInUserSession = this.getCognitoUserSession(authenticationResult);\n this.cacheTokens();\n return callback(null, this.signInUserSession);\n }\n return undefined;\n });\n }\n\n /**\n * This is used to save the session tokens to local storage\n * @returns {void}\n */\n cacheTokens() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}`;\n const idTokenKey = `${keyPrefix}.${this.username}.idToken`;\n const accessTokenKey = `${keyPrefix}.${this.username}.accessToken`;\n const refreshTokenKey = `${keyPrefix}.${this.username}.refreshToken`;\n const clockDriftKey = `${keyPrefix}.${this.username}.clockDrift`;\n const lastUserKey = `${keyPrefix}.LastAuthUser`;\n\n this.storage.setItem(idTokenKey, this.signInUserSession.getIdToken().getJwtToken());\n this.storage.setItem(accessTokenKey, this.signInUserSession.getAccessToken().getJwtToken());\n this.storage.setItem(refreshTokenKey, this.signInUserSession.getRefreshToken().getToken());\n this.storage.setItem(clockDriftKey, `${this.signInUserSession.getClockDrift()}`);\n this.storage.setItem(lastUserKey, this.username);\n }\n\n /**\n * This is used to cache the device key and device group and device password\n * @returns {void}\n */\n cacheDeviceKeyAndPassword() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const deviceKeyKey = `${keyPrefix}.deviceKey`;\n const randomPasswordKey = `${keyPrefix}.randomPasswordKey`;\n const deviceGroupKeyKey = `${keyPrefix}.deviceGroupKey`;\n\n this.storage.setItem(deviceKeyKey, this.deviceKey);\n this.storage.setItem(randomPasswordKey, this.randomPassword);\n this.storage.setItem(deviceGroupKeyKey, this.deviceGroupKey);\n }\n\n /**\n * This is used to get current device key and device group and device password\n * @returns {void}\n */\n getCachedDeviceKeyAndPassword() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const deviceKeyKey = `${keyPrefix}.deviceKey`;\n const randomPasswordKey = `${keyPrefix}.randomPasswordKey`;\n const deviceGroupKeyKey = `${keyPrefix}.deviceGroupKey`;\n\n if (this.storage.getItem(deviceKeyKey)) {\n this.deviceKey = this.storage.getItem(deviceKeyKey);\n this.randomPassword = this.storage.getItem(randomPasswordKey);\n this.deviceGroupKey = this.storage.getItem(deviceGroupKeyKey);\n }\n }\n\n /**\n * This is used to clear the device key info from local storage\n * @returns {void}\n */\n clearCachedDeviceKeyAndPassword() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}.${this.username}`;\n const deviceKeyKey = `${keyPrefix}.deviceKey`;\n const randomPasswordKey = `${keyPrefix}.randomPasswordKey`;\n const deviceGroupKeyKey = `${keyPrefix}.deviceGroupKey`;\n\n this.storage.removeItem(deviceKeyKey);\n this.storage.removeItem(randomPasswordKey);\n this.storage.removeItem(deviceGroupKeyKey);\n }\n\n /**\n * This is used to clear the session tokens from local storage\n * @returns {void}\n */\n clearCachedTokens() {\n const keyPrefix = `CognitoIdentityServiceProvider.${this.pool.getClientId()}`;\n const idTokenKey = `${keyPrefix}.${this.username}.idToken`;\n const accessTokenKey = `${keyPrefix}.${this.username}.accessToken`;\n const refreshTokenKey = `${keyPrefix}.${this.username}.refreshToken`;\n const lastUserKey = `${keyPrefix}.LastAuthUser`;\n\n this.storage.removeItem(idTokenKey);\n this.storage.removeItem(accessTokenKey);\n this.storage.removeItem(refreshTokenKey);\n this.storage.removeItem(lastUserKey);\n }\n\n /**\n * This is used to build a user session from tokens retrieved in the authentication result\n * @param {object} authResult Successful auth response from server.\n * @returns {CognitoUserSession} The new user session.\n * @private\n */\n getCognitoUserSession(authResult) {\n const idToken = new CognitoIdToken(authResult);\n const accessToken = new CognitoAccessToken(authResult);\n const refreshToken = new CognitoRefreshToken(authResult);\n\n const sessionData = {\n IdToken: idToken,\n AccessToken: accessToken,\n RefreshToken: refreshToken,\n };\n\n return new CognitoUserSession(sessionData);\n }\n\n /**\n * This is used to initiate a forgot password request\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode?} callback.inputVerificationCode\n * Optional callback raised instead of onSuccess with response data.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n forgotPassword(callback) {\n this.client.makeUnauthenticatedRequest('forgotPassword', {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n UserContextData: this.getUserContextData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess(data);\n });\n }\n\n /**\n * This is used to confirm a new password using a confirmationCode\n * @param {string} confirmationCode Code entered by user.\n * @param {string} newPassword Confirm new password.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n confirmPassword(confirmationCode, newPassword, callback) {\n this.client.makeUnauthenticatedRequest('confirmForgotPassword', {\n ClientId: this.pool.getClientId(),\n Username: this.username,\n ConfirmationCode: confirmationCode,\n Password: newPassword,\n UserContextData: this.getUserContextData(),\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess();\n });\n }\n\n /**\n * This is used to initiate an attribute confirmation request\n * @param {string} attributeName User attribute that needs confirmation.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {inputVerificationCode} callback.inputVerificationCode Called on success.\n * @returns {void}\n */\n getAttributeVerificationCode(attributeName, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('getUserAttributeVerificationCode', {\n AttributeName: attributeName,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n if (typeof callback.inputVerificationCode === 'function') {\n return callback.inputVerificationCode(data);\n }\n return callback.onSuccess();\n });\n return undefined;\n }\n\n /**\n * This is used to confirm an attribute using a confirmation code\n * @param {string} attributeName Attribute being confirmed.\n * @param {string} confirmationCode Code entered by user.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n verifyAttribute(attributeName, confirmationCode, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('verifyUserAttribute', {\n AttributeName: attributeName,\n Code: confirmationCode,\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to get the device information using the current device key\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device data.\n * @returns {void}\n */\n getDevice(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('getDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to forget a specific device\n * @param {string} deviceKey Device key.\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n forgetSpecificDevice(deviceKey, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('forgetDevice', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: deviceKey,\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to forget the current device\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n forgetDevice(callback) {\n this.forgetSpecificDevice(this.deviceKey, {\n onFailure: callback.onFailure,\n onSuccess: result => {\n this.deviceKey = null;\n this.deviceGroupKey = null;\n this.randomPassword = null;\n this.clearCachedDeviceKeyAndPassword();\n return callback.onSuccess(result);\n },\n });\n }\n\n /**\n * This is used to set the device status as remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n setDeviceStatusRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'remembered',\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to set the device status as not remembered\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n setDeviceStatusNotRemembered(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('updateDeviceStatus', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n DeviceKey: this.deviceKey,\n DeviceRememberedStatus: 'not_remembered',\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used to list all devices for a user\n *\n * @param {int} limit the number of devices returned in a call\n * @param {string} paginationToken the pagination token in case any was returned before\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess<*>} callback.onSuccess Called on success with device list.\n * @returns {void}\n */\n listDevices(limit, paginationToken, callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('listDevices', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n Limit: limit,\n PaginationToken: paginationToken,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.onSuccess(data);\n });\n return undefined;\n }\n\n /**\n * This is used to globally revoke all tokens issued to a user\n * @param {object} callback Result callback map.\n * @param {onFailure} callback.onFailure Called on any error.\n * @param {onSuccess} callback.onSuccess Called on success.\n * @returns {void}\n */\n globalSignOut(callback) {\n if (this.signInUserSession == null || !this.signInUserSession.isValid()) {\n return callback.onFailure(new Error('User is not authenticated'));\n }\n\n this.client.makeUnauthenticatedRequest('globalSignOut', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, err => {\n if (err) {\n return callback.onFailure(err);\n }\n this.clearCachedTokens();\n return callback.onSuccess('SUCCESS');\n });\n return undefined;\n }\n\n /**\n * This is used for the user to signOut of the application and clear the cached tokens.\n * @returns {void}\n */\n signOut() {\n this.signInUserSession = null;\n this.clearCachedTokens();\n }\n\n /**\n * This is used by a user trying to select a given MFA\n * @param {string} answerChallenge the mfa the user wants\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n sendMFASelectionAnswer(answerChallenge, callback) {\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n challengeResponses.ANSWER = answerChallenge;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n ClientId: this.pool.getClientId(),\n Session: this.Session,\n UserContextData: this.getUserContextData(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n this.Session = data.Session;\n if (answerChallenge === 'SMS_MFA') {\n return callback.mfaRequired(data.challengeName, data.challengeParameters);\n }\n if (answerChallenge === 'SOFTWARE_TOKEN_MFA') {\n return callback.totpRequired(data.challengeName, data.challengeParameters);\n }\n return undefined;\n });\n }\n\n /**\n * This returns the user context data for advanced security feature.\n * @returns {void}\n */\n getUserContextData() {\n const pool = this.pool;\n return pool.getUserContextData(this.username);\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n associateSoftwareToken(callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.makeUnauthenticatedRequest('associateSoftwareToken', {\n Session: this.Session,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n this.Session = data.Session;\n return callback.associateSecretCode(data.SecretCode);\n });\n } else {\n this.client.makeUnauthenticatedRequest('associateSoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n return callback.associateSecretCode(data.SecretCode);\n });\n }\n }\n\n /**\n * This is used by an authenticated or a user trying to authenticate to associate a TOTP MFA\n * @param {string} totpCode The MFA code entered by the user.\n * @param {string} friendlyDeviceName The device name we are assigning to the device.\n * @param {nodeCallback} callback Called on success or error.\n * @returns {void}\n */\n verifySoftwareToken(totpCode, friendlyDeviceName, callback) {\n if (!(this.signInUserSession != null && this.signInUserSession.isValid())) {\n this.client.makeUnauthenticatedRequest('verifySoftwareToken', {\n Session: this.Session,\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n this.Session = data.Session;\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'MFA_SETUP',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: this.Session,\n UserContextData: this.getUserContextData(),\n }, (errRespond, dataRespond) => {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n this.signInUserSession = this.getCognitoUserSession(dataRespond.AuthenticationResult);\n this.cacheTokens();\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n });\n } else {\n this.client.makeUnauthenticatedRequest('verifySoftwareToken', {\n AccessToken: this.signInUserSession.getAccessToken().getJwtToken(),\n UserCode: totpCode,\n FriendlyDeviceName: friendlyDeviceName,\n }, (err, data) => {\n if (err) {\n return callback.onFailure(err);\n }\n this.Session = data.Session;\n const challengeResponses = {};\n challengeResponses.USERNAME = this.username;\n\n this.client.makeUnauthenticatedRequest('respondToAuthChallenge', {\n ChallengeName: 'MFA_SETUP',\n ClientId: this.pool.getClientId(),\n ChallengeResponses: challengeResponses,\n Session: this.Session,\n UserContextData: this.getUserContextData(),\n }, (errRespond, dataRespond) => {\n if (errRespond) {\n return callback.onFailure(errRespond);\n }\n this.signInUserSession = this.getCognitoUserSession(dataRespond.AuthenticationResult);\n this.cacheTokens();\n return callback.onSuccess(this.signInUserSession);\n });\n return undefined;\n });\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUser.js","/*!\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 */\nexport default class CognitoUserAttribute {\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 constructor({ Name, Value } = {}) {\n this.Name = Name || '';\n this.Value = Value || '';\n }\n\n /**\n * @returns {string} the record's value.\n */\n getValue() {\n return this.Value;\n }\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 setValue(value) {\n this.Value = value;\n return this;\n }\n\n /**\n * @returns {string} the record's name.\n */\n getName() {\n return this.Name;\n }\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 setName(name) {\n this.Name = name;\n return this;\n }\n\n /**\n * @returns {string} a string representation of the record.\n */\n toString() {\n return JSON.stringify(this);\n }\n\n /**\n * @returns {object} a flat object representing the record.\n */\n toJSON() {\n return {\n Name: this.Name,\n Value: this.Value,\n };\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUserAttribute.js","/*!\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 */\nexport default class CognitoUserSession {\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 constructor({ IdToken, RefreshToken, AccessToken, ClockDrift } = {}) {\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 /**\n * @returns {CognitoIdToken} the session's Id token\n */\n getIdToken() {\n return this.idToken;\n }\n\n /**\n * @returns {CognitoRefreshToken} the session's refresh token\n */\n getRefreshToken() {\n return this.refreshToken;\n }\n\n /**\n * @returns {CognitoAccessToken} the session's access token\n */\n getAccessToken() {\n return this.accessToken;\n }\n\n /**\n * @returns {int} the session's clock drift\n */\n getClockDrift() {\n return this.clockDrift;\n }\n\n /**\n * @returns {int} the computer's clock drift\n */\n calculateClockDrift() {\n const now = Math.floor(new Date() / 1000);\n const iat = Math.min(this.accessToken.getIssuedAt(), this.idToken.getIssuedAt());\n\n return now - iat;\n }\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 isValid() {\n const now = Math.floor(new Date() / 1000);\n const adjusted = now - this.clockDrift;\n\n return adjusted < this.accessToken.getExpiration() && adjusted < this.idToken.getExpiration();\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUserSession.js","/*!\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\nconst monthNames =\n ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];\nconst weekNames = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\n/** @class */\nexport default class DateHelper {\n /**\n * @returns {string} The current time in \"ddd MMM D HH:mm:ss UTC YYYY\" format.\n */\n getNowString() {\n const now = new Date();\n\n const weekDay = weekNames[now.getUTCDay()];\n const month = monthNames[now.getUTCMonth()];\n const day = now.getUTCDate();\n\n let hours = now.getUTCHours();\n if (hours < 10) {\n hours = `0${hours}`;\n }\n\n let minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n\n let seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n\n const year = now.getUTCFullYear();\n\n // ddd MMM D HH:mm:ss UTC YYYY\n const dateNow = `${weekDay} ${month} ${day} ${hours}:${minutes}:${seconds} UTC ${year}`;\n\n return dateNow;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/DateHelper.js","/*!\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\nlet dataMemory = {};\n\n/** @class */\nclass 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 static setItem(key, value) {\n dataMemory[key] = value;\n return dataMemory[key];\n }\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 static getItem(key) {\n return Object.prototype.hasOwnProperty.call(dataMemory, key) ? dataMemory[key] : undefined;\n }\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 static removeItem(key) {\n return delete dataMemory[key];\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n static clear() {\n dataMemory = {};\n return dataMemory;\n }\n}\n\n/** @class */\nexport default class StorageHelper {\n\n /**\n * This is used to get a storage object\n * @returns {object} the storage\n */\n constructor() {\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 /**\n * This is used to return the storage\n * @returns {object} the storage\n */\n getStorage() {\n return this.storageWindow;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/StorageHelper.js","module.exports = __WEBPACK_EXTERNAL_MODULE_13__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":[\"AWSCognito\",\"CognitoIdentityServiceProvider\"],\"commonjs2\":\"aws-sdk/clients/cognitoidentityserviceprovider\",\"commonjs\":\"aws-sdk/clients/cognitoidentityserviceprovider\",\"amd\":\"aws-sdk/clients/cognitoidentityserviceprovider\"}\n// module id = 13\n// module chunks = 0","/*!\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 */\nexport default class AuthenticationDetails {\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 constructor(data) {\n const { ValidationData, Username, Password, AuthParameters } = data || {};\n this.validationData = ValidationData || [];\n this.authParameters = AuthParameters || [];\n this.username = Username;\n this.password = Password;\n }\n\n /**\n * @returns {string} the record's username\n */\n getUsername() {\n return this.username;\n }\n\n /**\n * @returns {string} the record's password\n */\n getPassword() {\n return this.password;\n }\n\n /**\n * @returns {Array} the record's validationData\n */\n getValidationData() {\n return this.validationData;\n }\n\n /**\n * @returns {Array} the record's authParameters\n */\n getAuthParameters() {\n return this.authParameters;\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/AuthenticationDetails.js","/*!\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\nimport CognitoIdentityServiceProvider from 'aws-sdk/clients/cognitoidentityserviceprovider';\n\nimport CognitoUser from './CognitoUser';\nimport StorageHelper from './StorageHelper';\n\n/** @class */\nexport default class CognitoUserPool {\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 {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 constructor(data) {\n const { UserPoolId, ClientId, endpoint, AdvancedSecurityDataCollectionFlag } = data || {};\n if (!UserPoolId || !ClientId) {\n throw new Error('Both UserPoolId and ClientId are required.');\n }\n if (!/^[\\w-]+_.+$/.test(UserPoolId)) {\n throw new Error('Invalid UserPoolId format.');\n }\n const region = UserPoolId.split('_')[0];\n\n this.userPoolId = UserPoolId;\n this.clientId = ClientId;\n\n this.client = new CognitoIdentityServiceProvider({\n apiVersion: '2016-04-19',\n region,\n endpoint,\n });\n\n /**\n * By default, AdvancedSecurityDataCollectionFlag is set to true,\n * if no input value is provided.\n */\n this.advancedSecurityDataCollectionFlag = true;\n if (AdvancedSecurityDataCollectionFlag) {\n this.advancedSecurityDataCollectionFlag = AdvancedSecurityDataCollectionFlag;\n }\n this.storage = data.Storage || new StorageHelper().getStorage();\n }\n\n /**\n * @returns {string} the user pool id\n */\n getUserPoolId() {\n return this.userPoolId;\n }\n\n /**\n * @returns {string} the client id\n */\n getClientId() {\n return this.clientId;\n }\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 * 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 {nodeCallback} callback Called on error or with the new user.\n * @returns {void}\n */\n signUp(username, password, userAttributes, validationData, callback) {\n this.client.makeUnauthenticatedRequest('signUp', {\n ClientId: this.clientId,\n Username: username,\n Password: password,\n UserAttributes: userAttributes,\n ValidationData: validationData,\n UserContextData: this.getUserContextData(username),\n }, (err, data) => {\n if (err) {\n return callback(err, null);\n }\n\n const cognitoUser = {\n Username: username,\n Pool: this,\n Storage: this.storage,\n };\n\n const returnData = {\n user: new CognitoUser(cognitoUser),\n userConfirmed: data.UserConfirmed,\n userSub: data.UserSub,\n };\n\n return callback(null, returnData);\n });\n }\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 getCurrentUser() {\n const lastUserKey = `CognitoIdentityServiceProvider.${this.clientId}.LastAuthUser`;\n\n const lastAuthUser = this.storage.getItem(lastUserKey);\n if (lastAuthUser) {\n const cognitoUser = {\n Username: lastAuthUser,\n Pool: this,\n Storage: this.storage,\n };\n\n return new CognitoUser(cognitoUser);\n }\n\n return null;\n }\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 getUserContextData(username) {\n if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') {\n return {};\n }\n /* eslint-disable */\n const amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData;\n /* eslint-enable */\n\n if (this.advancedSecurityDataCollectionFlag) {\n const advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username,\n this.userPoolId, this.clientId);\n if (advancedSecurityData) {\n const userContextData = {\n EncodedData: advancedSecurityData,\n };\n return userContextData;\n }\n }\n return {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CognitoUserPool.js","\nimport * as Cookies from 'js-cookie';\n\n/** @class */\nexport default class CookieStorage {\n\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 */\n constructor(data) {\n this.domain = data.domain;\n if (data.path) {\n this.path = data.path;\n } else {\n this.path = '/';\n }\n if (Object.prototype.hasOwnProperty.call(data, 'expires')) {\n this.expires = data.expires;\n } else {\n this.expires = 365;\n }\n if (Object.prototype.hasOwnProperty.call(data, 'secure')) {\n this.secure = data.secure;\n } else {\n this.secure = true;\n }\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 setItem(key, value) {\n Cookies.set(key, value, {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n }\n );\n return Cookies.get(key);\n }\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 getItem(key) {\n return Cookies.get(key);\n }\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 removeItem(key) {\n return Cookies.remove(key, {\n path: this.path,\n domain: this.domain,\n secure: this.secure,\n }\n );\n }\n\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n clear() {\n const cookies = Cookies.get();\n let index;\n for (index = 0; index < cookies.length; ++index) {\n Cookies.remove(cookies[index]);\n }\n return {};\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/CookieStorage.js","/*!\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\nexport { default as AuthenticationDetails } from './AuthenticationDetails';\nexport { default as AuthenticationHelper } from './AuthenticationHelper';\nexport { default as CognitoAccessToken } from './CognitoAccessToken';\nexport { default as CognitoIdToken } from './CognitoIdToken';\nexport { default as CognitoRefreshToken } from './CognitoRefreshToken';\nexport { default as CognitoUser } from './CognitoUser';\nexport { default as CognitoUserAttribute } from './CognitoUserAttribute';\nexport { default as CognitoUserPool } from './CognitoUserPool';\nexport { default as CognitoUserSession } from './CognitoUserSession';\nexport { default as CookieStorage } from './CookieStorage';\nexport { default as DateHelper } from './DateHelper';\n\n// The version of crypto-browserify included by aws-sdk only\n// checks for window.crypto, not window.msCrypto as used by\n// IE 11 – so we set it explicitly here\nif (typeof window !== 'undefined' && !window.crypto && window.msCrypto) {\n window.crypto = window.msCrypto;\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/index.js","/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;(function (factory) {\n\tvar registeredInModuleLoader = false;\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(factory);\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (typeof exports === 'object') {\n\t\tmodule.exports = factory();\n\t\tregisteredInModuleLoader = true;\n\t}\n\tif (!registeredInModuleLoader) {\n\t\tvar OldCookies = window.Cookies;\n\t\tvar api = window.Cookies = factory();\n\t\tapi.noConflict = function () {\n\t\t\twindow.Cookies = OldCookies;\n\t\t\treturn api;\n\t\t};\n\t}\n}(function () {\n\tfunction extend () {\n\t\tvar i = 0;\n\t\tvar result = {};\n\t\tfor (; i < arguments.length; i++) {\n\t\t\tvar attributes = arguments[ i ];\n\t\t\tfor (var key in attributes) {\n\t\t\t\tresult[key] = attributes[key];\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tfunction init (converter) {\n\t\tfunction api (key, value, attributes) {\n\t\t\tvar result;\n\t\t\tif (typeof document === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Write\n\n\t\t\tif (arguments.length > 1) {\n\t\t\t\tattributes = extend({\n\t\t\t\t\tpath: '/'\n\t\t\t\t}, api.defaults, attributes);\n\n\t\t\t\tif (typeof attributes.expires === 'number') {\n\t\t\t\t\tvar expires = new Date();\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n\t\t\t\t\tattributes.expires = expires;\n\t\t\t\t}\n\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n\t\t\t\ttry {\n\t\t\t\t\tresult = JSON.stringify(value);\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\n\t\t\t\t\t\tvalue = result;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\n\t\t\t\tif (!converter.write) {\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n\t\t\t\t} else {\n\t\t\t\t\tvalue = converter.write(value, key);\n\t\t\t\t}\n\n\t\t\t\tkey = encodeURIComponent(String(key));\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\n\n\t\t\t\tvar stringifiedAttributes = '';\n\n\t\t\t\tfor (var attributeName in attributes) {\n\t\t\t\t\tif (!attributes[attributeName]) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\n\t\t\t\t\tif (attributes[attributeName] === true) {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\n\t\t\t\t}\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\n\t\t\t}\n\n\t\t\t// Read\n\n\t\t\tif (!key) {\n\t\t\t\tresult = {};\n\t\t\t}\n\n\t\t\t// To prevent the for loop in the first place assign an empty array\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\n\t\t\t// calling \"get()\"\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\n\t\t\tvar i = 0;\n\n\t\t\tfor (; i < cookies.length; i++) {\n\t\t\t\tvar parts = cookies[i].split('=');\n\t\t\t\tvar cookie = parts.slice(1).join('=');\n\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\n\t\t\t\t\tcookie = cookie.slice(1, -1);\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\n\t\t\t\t\tcookie = converter.read ?\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\n\n\t\t\t\t\tif (this.json) {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\n\t\t\t\t\t\t} catch (e) {}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (key === name) {\n\t\t\t\t\t\tresult = cookie;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!key) {\n\t\t\t\t\t\tresult[name] = cookie;\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t}\n\n\t\tapi.set = api;\n\t\tapi.get = function (key) {\n\t\t\treturn api.call(api, key);\n\t\t};\n\t\tapi.getJSON = function () {\n\t\t\treturn api.apply({\n\t\t\t\tjson: true\n\t\t\t}, [].slice.call(arguments));\n\t\t};\n\t\tapi.defaults = {};\n\n\t\tapi.remove = function (key, attributes) {\n\t\t\tapi(key, '', extend(attributes, {\n\t\t\t\texpires: -1\n\t\t\t}));\n\t\t};\n\n\t\tapi.withConverter = init;\n\n\t\treturn api;\n\t}\n\n\treturn init(function () {});\n}));\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/js-cookie/src/js.cookie.js\n// module id = 18\n// module chunks = 0"],"sourceRoot":""} \ No newline at end of file diff --git a/dist/aws-cognito-sdk.js b/dist/aws-cognito-sdk.js index ae35f40f..42eebc51 100644 --- a/dist/aws-cognito-sdk.js +++ b/dist/aws-cognito-sdk.js @@ -491,1797 +491,7262 @@ module.exports={ } },{}],2:[function(require,module,exports){ module.exports={ - "version": "2.0", - "metadata": { - "apiVersion": "2016-04-18", - "endpointPrefix": "cognito-idp", - "jsonVersion": "1.1", - "protocol": "json", - "serviceFullName": "Amazon Cognito Identity Provider", - "signatureVersion": "v4", - "targetPrefix": "AWSCognitoIdentityProviderService" - }, - "operations": { - "AddCustomAttributes": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "CustomAttributes" - ], - "members": { - "UserPoolId": {}, - "CustomAttributes": { - "type": "list", - "member": { - "shape": "S4" - } - } + "version":"2.0", + "metadata":{ + "apiVersion":"2016-04-18", + "endpointPrefix":"cognito-idp", + "jsonVersion":"1.1", + "protocol":"json", + "serviceFullName":"Amazon Cognito Identity Provider", + "signatureVersion":"v4", + "targetPrefix":"AWSCognitoIdentityProviderService" + }, + "operations":{ + "AddCustomAttributes":{ + "name":"AddCustomAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AddCustomAttributesRequest"}, + "output":{"shape":"AddCustomAttributesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserImportInProgressException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Adds additional user attributes to the user pool schema.

" + }, + "AdminAddUserToGroup":{ + "name":"AdminAddUserToGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminAddUserToGroupRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Adds the specified user to the specified group.

Requires developer credentials.

" + }, + "AdminConfirmSignUp":{ + "name":"AdminConfirmSignUp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminConfirmSignUpRequest"}, + "output":{"shape":"AdminConfirmSignUpResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyFailedAttemptsException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Confirms user registration as an admin without using a confirmation code. Works on any user.

Requires developer credentials.

" + }, + "AdminCreateUser":{ + "name":"AdminCreateUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminCreateUserRequest"}, + "output":{"shape":"AdminCreateUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UsernameExistsException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UnsupportedUserStateException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Creates a new user in the specified user pool and sends a welcome message via email or phone (SMS). This message is based on a template that you configured in your call to CreateUserPool or UpdateUserPool. This template includes your custom sign-up instructions and placeholders for user name and temporary password.

Requires developer credentials.

" + }, + "AdminDeleteUser":{ + "name":"AdminDeleteUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminDeleteUserRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Deletes a user as an administrator. Works on any user.

Requires developer credentials.

" + }, + "AdminDeleteUserAttributes":{ + "name":"AdminDeleteUserAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminDeleteUserAttributesRequest"}, + "output":{"shape":"AdminDeleteUserAttributesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Deletes the user attributes in a user pool as an administrator. Works on any user.

Requires developer credentials.

" + }, + "AdminDisableProviderForUser":{ + "name":"AdminDisableProviderForUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminDisableProviderForUserRequest"}, + "output":{"shape":"AdminDisableProviderForUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"AliasExistsException"}, + {"shape":"InternalErrorException"} + ] + }, + "AdminDisableUser":{ + "name":"AdminDisableUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminDisableUserRequest"}, + "output":{"shape":"AdminDisableUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Disables the specified user as an administrator. Works on any user.

Requires developer credentials.

" + }, + "AdminEnableUser":{ + "name":"AdminEnableUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminEnableUserRequest"}, + "output":{"shape":"AdminEnableUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Enables the specified user as an administrator. Works on any user.

Requires developer credentials.

" + }, + "AdminForgetDevice":{ + "name":"AdminForgetDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminForgetDeviceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Forgets the device, as an administrator.

Requires developer credentials.

" + }, + "AdminGetDevice":{ + "name":"AdminGetDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminGetDeviceRequest"}, + "output":{"shape":"AdminGetDeviceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"}, + {"shape":"NotAuthorizedException"} + ], + "documentation":"

Gets the device, as an administrator.

Requires developer credentials.

" + }, + "AdminGetUser":{ + "name":"AdminGetUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminGetUserRequest"}, + "output":{"shape":"AdminGetUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the specified user by user name in a user pool as an administrator. Works on any user.

Requires developer credentials.

" + }, + "AdminInitiateAuth":{ + "name":"AdminInitiateAuth", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminInitiateAuthRequest"}, + "output":{"shape":"AdminInitiateAuthResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"MFAMethodNotFoundException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"} + ], + "documentation":"

Initiates the authentication flow, as an administrator.

Requires developer credentials.

" + }, + "AdminLinkProviderForUser":{ + "name":"AdminLinkProviderForUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminLinkProviderForUserRequest"}, + "output":{"shape":"AdminLinkProviderForUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"AliasExistsException"}, + {"shape":"InternalErrorException"} + ] + }, + "AdminListDevices":{ + "name":"AdminListDevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminListDevicesRequest"}, + "output":{"shape":"AdminListDevicesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"}, + {"shape":"NotAuthorizedException"} + ], + "documentation":"

Lists devices, as an administrator.

Requires developer credentials.

" + }, + "AdminListGroupsForUser":{ + "name":"AdminListGroupsForUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminListGroupsForUserRequest"}, + "output":{"shape":"AdminListGroupsForUserResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the groups that the user belongs to.

Requires developer credentials.

" + }, + "AdminListUserAuthEvents":{ + "name":"AdminListUserAuthEvents", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminListUserAuthEventsRequest"}, + "output":{"shape":"AdminListUserAuthEventsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, + "AdminRemoveUserFromGroup":{ + "name":"AdminRemoveUserFromGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminRemoveUserFromGroupRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Removes the specified user from the specified group.

Requires developer credentials.

" + }, + "AdminResetUserPassword":{ + "name":"AdminResetUserPassword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminResetUserPasswordRequest"}, + "output":{"shape":"AdminResetUserPasswordResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Resets the specified user's password in a user pool as an administrator. Works on any user.

When a developer calls this API, the current password is invalidated, so it must be changed. If a user tries to sign in after the API is called, the app will get a PasswordResetRequiredException exception back and should direct the user down the flow to reset the password, which is the same as the forgot password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password.

Requires developer credentials.

" + }, + "AdminRespondToAuthChallenge":{ + "name":"AdminRespondToAuthChallenge", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminRespondToAuthChallengeRequest"}, + "output":{"shape":"AdminRespondToAuthChallengeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"InternalErrorException"}, + {"shape":"MFAMethodNotFoundException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"AliasExistsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"SoftwareTokenMFANotFoundException"} + ], + "documentation":"

Responds to an authentication challenge, as an administrator.

Requires developer credentials.

" + }, + "AdminSetUserMFAPreference":{ + "name":"AdminSetUserMFAPreference", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminSetUserMFAPreferenceRequest"}, + "output":{"shape":"AdminSetUserMFAPreferenceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ] + }, + "AdminSetUserSettings":{ + "name":"AdminSetUserSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminSetUserSettingsRequest"}, + "output":{"shape":"AdminSetUserSettingsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Sets all the user settings for a specified user name. Works on any user.

Requires developer credentials.

" + }, + "AdminUpdateAuthEventFeedback":{ + "name":"AdminUpdateAuthEventFeedback", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminUpdateAuthEventFeedbackRequest"}, + "output":{"shape":"AdminUpdateAuthEventFeedbackResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, + "AdminUpdateDeviceStatus":{ + "name":"AdminUpdateDeviceStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminUpdateDeviceStatusRequest"}, + "output":{"shape":"AdminUpdateDeviceStatusResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Updates the device status as an administrator.

Requires developer credentials.

" + }, + "AdminUpdateUserAttributes":{ + "name":"AdminUpdateUserAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminUpdateUserAttributesRequest"}, + "output":{"shape":"AdminUpdateUserAttributesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"AliasExistsException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user.

In addition to updating user attributes, this API can also be used to mark phone and email as verified.

Requires developer credentials.

" + }, + "AdminUserGlobalSignOut":{ + "name":"AdminUserGlobalSignOut", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AdminUserGlobalSignOutRequest"}, + "output":{"shape":"AdminUserGlobalSignOutResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Signs out users from all devices, as an administrator.

Requires developer credentials.

" + }, + "AssociateSoftwareToken":{ + "name":"AssociateSoftwareToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AssociateSoftwareTokenRequest"}, + "output":{"shape":"AssociateSoftwareTokenResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"}, + {"shape":"SoftwareTokenMFANotFoundException"} + ] + }, + "Authenticate":{ + "name":"Authenticate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"AuthenticateRequest"}, + "output":{"shape":"AuthenticateResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"MFAMethodNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

The second step in the authentication flow of Secure Remote Password protocol (SRP) for authenticating a user to get ID, access and refresh tokens. To learn more about the first step, see GetAuthenticationDetails.

", + "authtype":"none" + }, + "ChangePassword":{ + "name":"ChangePassword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ChangePasswordRequest"}, + "output":{"shape":"ChangePasswordResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Changes the password for a specified user in a user pool.

", + "authtype":"none" + }, + "ConfirmDevice":{ + "name":"ConfirmDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmDeviceRequest"}, + "output":{"shape":"ConfirmDeviceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"UsernameExistsException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Confirms tracking of the device. This API call is the call that begins device tracking.

" + }, + "ConfirmForgotPassword":{ + "name":"ConfirmForgotPassword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmForgotPasswordRequest"}, + "output":{"shape":"ConfirmForgotPasswordResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"TooManyFailedAttemptsException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Allows a user to enter a confirmation code to reset a forgotten password.

", + "authtype":"none" + }, + "ConfirmSignUp":{ + "name":"ConfirmSignUp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ConfirmSignUpRequest"}, + "output":{"shape":"ConfirmSignUpResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyFailedAttemptsException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"AliasExistsException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Confirms registration of a user and handles the existing alias from a previous user.

", + "authtype":"none" + }, + "CreateGroup":{ + "name":"CreateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateGroupRequest"}, + "output":{"shape":"CreateGroupResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"GroupExistsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Creates a new group in the specified user pool.

Requires developer credentials.

" + }, + "CreateIdentityProvider":{ + "name":"CreateIdentityProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateIdentityProviderRequest"}, + "output":{"shape":"CreateIdentityProviderResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"DuplicateProviderException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalErrorException"} + ] + }, + "CreateResourceServer":{ + "name":"CreateResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateResourceServerRequest"}, + "output":{"shape":"CreateResourceServerResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalErrorException"} + ] + }, + "CreateUserImportJob":{ + "name":"CreateUserImportJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserImportJobRequest"}, + "output":{"shape":"CreateUserImportJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"LimitExceededException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Creates the user import job.

" + }, + "CreateUserPool":{ + "name":"CreateUserPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserPoolRequest"}, + "output":{"shape":"CreateUserPoolResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolTaggingException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Creates a new Amazon Cognito user pool and sets the password policy for the pool.

" + }, + "CreateUserPoolClient":{ + "name":"CreateUserPoolClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserPoolClientRequest"}, + "output":{"shape":"CreateUserPoolClientResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"ScopeDoesNotExistException"}, + {"shape":"InvalidOAuthFlowException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Creates the user pool client.

" + }, + "CreateUserPoolDomain":{ + "name":"CreateUserPoolDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"CreateUserPoolDomainRequest"}, + "output":{"shape":"CreateUserPoolDomainResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"} + ] + }, + "DeleteGroup":{ + "name":"DeleteGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteGroupRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Deletes a group. Currently only groups with no members can be deleted.

Requires developer credentials.

" + }, + "DeleteIdentityProvider":{ + "name":"DeleteIdentityProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteIdentityProviderRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"UnsupportedIdentityProviderException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "DeleteResourceServer":{ + "name":"DeleteResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteResourceServerRequest"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "DeleteUser":{ + "name":"DeleteUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Allows a user to delete one's self.

", + "authtype":"none" + }, + "DeleteUserAttributes":{ + "name":"DeleteUserAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserAttributesRequest"}, + "output":{"shape":"DeleteUserAttributesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Deletes the attributes for a user.

", + "authtype":"none" + }, + "DeleteUserPool":{ + "name":"DeleteUserPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserPoolRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserImportInProgressException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Deletes the specified Amazon Cognito user pool.

" + }, + "DeleteUserPoolClient":{ + "name":"DeleteUserPoolClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserPoolClientRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Allows the developer to delete the user pool client.

" + }, + "DeleteUserPoolDomain":{ + "name":"DeleteUserPoolDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DeleteUserPoolDomainRequest"}, + "output":{"shape":"DeleteUserPoolDomainResponse"}, + "errors":[ + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"} + ] + }, + "DescribeIdentityProvider":{ + "name":"DescribeIdentityProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeIdentityProviderRequest"}, + "output":{"shape":"DescribeIdentityProviderResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "DescribeResourceServer":{ + "name":"DescribeResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeResourceServerRequest"}, + "output":{"shape":"DescribeResourceServerResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "DescribeRiskConfiguration":{ + "name":"DescribeRiskConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeRiskConfigurationRequest"}, + "output":{"shape":"DescribeRiskConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, + "DescribeUserImportJob":{ + "name":"DescribeUserImportJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUserImportJobRequest"}, + "output":{"shape":"DescribeUserImportJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Describes the user import job.

" + }, + "DescribeUserPool":{ + "name":"DescribeUserPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUserPoolRequest"}, + "output":{"shape":"DescribeUserPoolResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolTaggingException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Returns the configuration information and metadata of the specified user pool.

" + }, + "DescribeUserPoolClient":{ + "name":"DescribeUserPoolClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUserPoolClientRequest"}, + "output":{"shape":"DescribeUserPoolClientResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Client method for returning the configuration information and metadata of the specified user pool client.

" + }, + "DescribeUserPoolDomain":{ + "name":"DescribeUserPoolDomain", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"DescribeUserPoolDomainRequest"}, + "output":{"shape":"DescribeUserPoolDomainResponse"}, + "errors":[ + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InternalErrorException"} + ] + }, + "EnhanceAuth":{ + "name":"EnhanceAuth", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"EnhanceAuthRequest"}, + "output":{"shape":"EnhanceAuthResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Grants the ability to supply a multi-factor authentication (MFA) token for an MFA-enabled user to get the ID, access, and refresh tokens.

", + "authtype":"none" + }, + "ForgetDevice":{ + "name":"ForgetDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ForgetDeviceRequest"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Forgets the specified device.

" + }, + "ForgotPassword":{ + "name":"ForgotPassword", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ForgotPasswordRequest"}, + "output":{"shape":"ForgotPasswordResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user's password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call ConfirmForgotPassword.

", + "authtype":"none" + }, + "GetAuthenticationDetails":{ + "name":"GetAuthenticationDetails", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetAuthenticationDetailsRequest"}, + "output":{"shape":"GetAuthenticationDetailsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

First step of the Secure Remote Password protocol (SRP) auth flow to authenticate a user. To learn about the second step, see Authenticate.

", + "authtype":"none" + }, + "GetCSVHeader":{ + "name":"GetCSVHeader", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetCSVHeaderRequest"}, + "output":{"shape":"GetCSVHeaderResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the header information for the .csv file to be used as input for the user import job.

" + }, + "GetDevice":{ + "name":"GetDevice", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetDeviceRequest"}, + "output":{"shape":"GetDeviceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the device.

" + }, + "GetGroup":{ + "name":"GetGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetGroupRequest"}, + "output":{"shape":"GetGroupResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets a group.

Requires developer credentials.

" + }, + "GetIdentityProviderByIdentifier":{ + "name":"GetIdentityProviderByIdentifier", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetIdentityProviderByIdentifierRequest"}, + "output":{"shape":"GetIdentityProviderByIdentifierResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "GetJWKS":{ + "name":"GetJWKS", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetJWKSRequest"}, + "output":{"shape":"GetJWKSResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the JSON Web keys for the specified user pool.

", + "authtype":"none" + }, + "GetOpenIdConfiguration":{ + "name":"GetOpenIdConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetOpenIdConfigurationRequest"}, + "output":{"shape":"GetOpenIdConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidParameterException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the OpenId configuration information for the specified user pool.

", + "authtype":"none" + }, + "GetSigningCertificate":{ + "name":"GetSigningCertificate", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetSigningCertificateRequest"}, + "output":{"shape":"GetSigningCertificateResponse"}, + "errors":[ + {"shape":"InternalErrorException"}, + {"shape":"ResourceNotFoundException"} + ] + }, + "GetUICustomization":{ + "name":"GetUICustomization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUICustomizationRequest"}, + "output":{"shape":"GetUICustomizationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "GetUser":{ + "name":"GetUser", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserRequest"}, + "output":{"shape":"GetUserResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the user attributes and metadata for a user.

", + "authtype":"none" + }, + "GetUserAttributeVerificationCode":{ + "name":"GetUserAttributeVerificationCode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserAttributeVerificationCodeRequest"}, + "output":{"shape":"GetUserAttributeVerificationCodeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"LimitExceededException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Gets the user attribute verification code for the specified attribute name.

", + "authtype":"none" + }, + "GetUserPoolMfaConfig":{ + "name":"GetUserPoolMfaConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserPoolMfaConfigRequest"}, + "output":{"shape":"GetUserPoolMfaConfigResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ] + }, + "GetUserPoolUIConfiguration":{ + "name":"GetUserPoolUIConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GetUserPoolUIConfigurationRequest"}, + "output":{"shape":"GetUserPoolUIConfigurationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "GlobalSignOut":{ + "name":"GlobalSignOut", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"GlobalSignOutRequest"}, + "output":{"shape":"GlobalSignOutResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Signs out users from all devices.

" + }, + "InitiateAuth":{ + "name":"InitiateAuth", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"InitiateAuthRequest"}, + "output":{"shape":"InitiateAuthResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Initiates the authentication flow.

" + }, + "ListDevices":{ + "name":"ListDevices", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListDevicesRequest"}, + "output":{"shape":"ListDevicesResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the devices.

" + }, + "ListGroups":{ + "name":"ListGroups", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListGroupsRequest"}, + "output":{"shape":"ListGroupsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the groups associated with a user pool.

Requires developer credentials.

" + }, + "ListIdentityProviders":{ + "name":"ListIdentityProviders", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListIdentityProvidersRequest"}, + "output":{"shape":"ListIdentityProvidersResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "ListResourceServers":{ + "name":"ListResourceServers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListResourceServersRequest"}, + "output":{"shape":"ListResourceServersResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "ListUserImportJobs":{ + "name":"ListUserImportJobs", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUserImportJobsRequest"}, + "output":{"shape":"ListUserImportJobsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the user import jobs.

" + }, + "ListUserPoolClients":{ + "name":"ListUserPoolClients", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUserPoolClientsRequest"}, + "output":{"shape":"ListUserPoolClientsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the clients that have been created for the specified user pool.

" + }, + "ListUserPools":{ + "name":"ListUserPools", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUserPoolsRequest"}, + "output":{"shape":"ListUserPoolsResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the user pools associated with an AWS account.

" + }, + "ListUsers":{ + "name":"ListUsers", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUsersRequest"}, + "output":{"shape":"ListUsersResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the users in the Amazon Cognito user pool.

" + }, + "ListUsersInGroup":{ + "name":"ListUsersInGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ListUsersInGroupRequest"}, + "output":{"shape":"ListUsersInGroupResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Lists the users in the specified group.

Requires developer credentials.

" + }, + "RefreshTokens":{ + "name":"RefreshTokens", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RefreshTokensRequest"}, + "output":{"shape":"RefreshTokensResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Refreshes the tokens for the specified client ID.

", + "authtype":"none" + }, + "ResendConfirmationCode":{ + "name":"ResendConfirmationCode", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"ResendConfirmationCodeRequest"}, + "output":{"shape":"ResendConfirmationCodeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"UserNotFoundException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Resends the confirmation (for confirmation of registration) to a specific user in the user pool.

", + "authtype":"none" + }, + "RespondToAuthChallenge":{ + "name":"RespondToAuthChallenge", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"RespondToAuthChallengeRequest"}, + "output":{"shape":"RespondToAuthChallengeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"MFAMethodNotFoundException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"AliasExistsException"}, + {"shape":"InternalErrorException"}, + {"shape":"SoftwareTokenMFANotFoundException"} + ], + "documentation":"

Responds to the authentication challenge.

" + }, + "SetRiskConfiguration":{ + "name":"SetRiskConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetRiskConfigurationRequest"}, + "output":{"shape":"SetRiskConfigurationResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUICustomization":{ + "name":"SetUICustomization", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUICustomizationRequest"}, + "output":{"shape":"SetUICustomizationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUserMFAPreference":{ + "name":"SetUserMFAPreference", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUserMFAPreferenceRequest"}, + "output":{"shape":"SetUserMFAPreferenceResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUserPoolMfaConfig":{ + "name":"SetUserPoolMfaConfig", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUserPoolMfaConfigRequest"}, + "output":{"shape":"SetUserPoolMfaConfigResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUserPoolUIConfiguration":{ + "name":"SetUserPoolUIConfiguration", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUserPoolUIConfigurationRequest"}, + "output":{"shape":"SetUserPoolUIConfigurationResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "SetUserSettings":{ + "name":"SetUserSettings", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SetUserSettingsRequest"}, + "output":{"shape":"SetUserSettingsResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Sets the user settings like multi-factor authentication (MFA). If MFA is to be removed for a particular attribute pass the attribute with code delivery as null. If null list is passed, all MFA options are removed.

", + "authtype":"none" + }, + "SignUp":{ + "name":"SignUp", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"SignUpRequest"}, + "output":{"shape":"SignUpResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidPasswordException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"UsernameExistsException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"CodeDeliveryFailureException"} + ], + "documentation":"

Registers the user in the specified user pool and creates a user name, password, and user attributes.

", + "authtype":"none" + }, + "StartUserImportJob":{ + "name":"StartUserImportJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StartUserImportJobRequest"}, + "output":{"shape":"StartUserImportJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"NotAuthorizedException"} + ], + "documentation":"

Starts the user import.

" + }, + "StopUserImportJob":{ + "name":"StopUserImportJob", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"StopUserImportJobRequest"}, + "output":{"shape":"StopUserImportJobResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"}, + {"shape":"PreconditionNotMetException"}, + {"shape":"NotAuthorizedException"} + ], + "documentation":"

Stops the user import job.

" + }, + "UpdateAuthEventFeedback":{ + "name":"UpdateAuthEventFeedback", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateAuthEventFeedbackRequest"}, + "output":{"shape":"UpdateAuthEventFeedbackResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserPoolAddOnNotEnabledException"}, + {"shape":"InternalErrorException"} + ] + }, + "UpdateDeviceStatus":{ + "name":"UpdateDeviceStatus", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateDeviceStatusRequest"}, + "output":{"shape":"UpdateDeviceStatusResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Updates the device status.

" + }, + "UpdateGroup":{ + "name":"UpdateGroup", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateGroupRequest"}, + "output":{"shape":"UpdateGroupResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Updates the specified group with the specified attributes.

Requires developer credentials.

" + }, + "UpdateIdentityProvider":{ + "name":"UpdateIdentityProvider", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateIdentityProviderRequest"}, + "output":{"shape":"UpdateIdentityProviderResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"UnsupportedIdentityProviderException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "UpdateResourceServer":{ + "name":"UpdateResourceServer", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateResourceServerRequest"}, + "output":{"shape":"UpdateResourceServerResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"InternalErrorException"} + ] + }, + "UpdateUserAttributes":{ + "name":"UpdateUserAttributes", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserAttributesRequest"}, + "output":{"shape":"UpdateUserAttributesResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UnexpectedLambdaException"}, + {"shape":"UserLambdaValidationException"}, + {"shape":"InvalidLambdaResponseException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"AliasExistsException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"}, + {"shape":"CodeDeliveryFailureException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Allows a user to update a specific attribute (one at a time).

", + "authtype":"none" + }, + "UpdateUserPool":{ + "name":"UpdateUserPool", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserPoolRequest"}, + "output":{"shape":"UpdateUserPoolResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"ConcurrentModificationException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"UserImportInProgressException"}, + {"shape":"InternalErrorException"}, + {"shape":"InvalidSmsRoleAccessPolicyException"}, + {"shape":"InvalidSmsRoleTrustRelationshipException"}, + {"shape":"UserPoolTaggingException"}, + {"shape":"InvalidEmailRoleAccessPolicyException"} + ], + "documentation":"

Updates the specified user pool with the specified attributes.

" + }, + "UpdateUserPoolClient":{ + "name":"UpdateUserPoolClient", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"UpdateUserPoolClientRequest"}, + "output":{"shape":"UpdateUserPoolClientResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"ScopeDoesNotExistException"}, + {"shape":"InvalidOAuthFlowException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Allows the developer to update the specified user pool client and password policy.

" + }, + "VerifySoftwareToken":{ + "name":"VerifySoftwareToken", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifySoftwareTokenRequest"}, + "output":{"shape":"VerifySoftwareTokenResponse"}, + "errors":[ + {"shape":"InvalidParameterException"}, + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidUserPoolConfigurationException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"}, + {"shape":"EnableSoftwareTokenMFAException"}, + {"shape":"SoftwareTokenMFANotFoundException"}, + {"shape":"CodeMismatchException"} + ] + }, + "VerifyUserAttribute":{ + "name":"VerifyUserAttribute", + "http":{ + "method":"POST", + "requestUri":"/" + }, + "input":{"shape":"VerifyUserAttributeRequest"}, + "output":{"shape":"VerifyUserAttributeResponse"}, + "errors":[ + {"shape":"ResourceNotFoundException"}, + {"shape":"InvalidParameterException"}, + {"shape":"CodeMismatchException"}, + {"shape":"ExpiredCodeException"}, + {"shape":"NotAuthorizedException"}, + {"shape":"TooManyRequestsException"}, + {"shape":"LimitExceededException"}, + {"shape":"PasswordResetRequiredException"}, + {"shape":"UserNotFoundException"}, + {"shape":"UserNotConfirmedException"}, + {"shape":"InternalErrorException"} + ], + "documentation":"

Verifies the specified user attributes in the user pool.

", + "authtype":"none" + } + }, + "shapes":{ + "AValueHexStringType":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"^[0-9a-fA-F]+$" + }, + "AWSAccountIdType":{"type":"string"}, + "AccountTakeoverActionNotifyType":{"type":"boolean"}, + "AccountTakeoverActionType":{ + "type":"structure", + "required":[ + "Notify", + "EventAction" + ], + "members":{ + "Notify":{"shape":"AccountTakeoverActionNotifyType"}, + "EventAction":{"shape":"AccountTakeoverEventActionType"} + } + }, + "AccountTakeoverActionsType":{ + "type":"structure", + "members":{ + "LowAction":{"shape":"AccountTakeoverActionType"}, + "MediumAction":{"shape":"AccountTakeoverActionType"}, + "HighAction":{"shape":"AccountTakeoverActionType"} + } + }, + "AccountTakeoverEventActionType":{ + "type":"string", + "enum":[ + "BLOCK", + "MFA_IF_CONFIGURED", + "MFA_REQUIRED", + "NO_ACTION" + ] + }, + "AccountTakeoverRiskConfigurationType":{ + "type":"structure", + "required":["Actions"], + "members":{ + "NotifyConfiguration":{"shape":"NotifyConfigurationType"}, + "Actions":{"shape":"AccountTakeoverActionsType"} + } + }, + "AddCustomAttributesRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "CustomAttributes" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to add custom attributes.

" + }, + "CustomAttributes":{ + "shape":"CustomAttributesListType", + "documentation":"

An array of custom attributes, such as Mutable and Name.

" + } + }, + "documentation":"

Represents the request to add custom attributes.

" + }, + "AddCustomAttributesResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server for the request to add custom attributes.

" + }, + "AdminAddUserToGroupRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "GroupName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The username for the user.

" + }, + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The group name.

" + } + } + }, + "AdminConfirmSignUpRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for which you want to confirm user registration.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name for which you want to confirm user registration.

" + } + }, + "documentation":"

Represents the request to confirm user registration.

" + }, + "AdminConfirmSignUpResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server for the request to confirm registration.

" + }, + "AdminCreateUserConfigType":{ + "type":"structure", + "members":{ + "AllowAdminCreateUserOnly":{ + "shape":"BooleanType", + "documentation":"

Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app.

" + }, + "UnusedAccountValidityDays":{ + "shape":"AdminCreateUserUnusedAccountValidityDaysType", + "documentation":"

The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call AdminCreateUser again, specifying \"RESEND\" for the MessageAction parameter. The default value for this parameter is 7.

" + }, + "InviteMessageTemplate":{ + "shape":"MessageTemplateType", + "documentation":"

The message template to be used for the welcome message to new users.

" + } + }, + "documentation":"

The type of configuration for creating a new user profile.

" + }, + "AdminCreateUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where the user will be created.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 characters. After the user is created, the username cannot be changed.

" + }, + "UserAttributes":{ + "shape":"AttributeListType", + "documentation":"

An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than Username. However, any attributes that you specify as required (in CreateUserPool or in the Attributes tab of the console) must be supplied either by you (in your call to AdminCreateUser) or by the user (when he or she signs up in response to your welcome message).

To send a message inviting the user to sign up, you must specify the user's email address or phone number. This can be done in your call to AdminCreateUser or in the Users tab of the Amazon Cognito console for managing your user pools.

In your call to AdminCreateUser, you can set the email_verified attribute to True, and you can set the phone_number_verified attribute to True. (You also do this by calling AdminUpdateUserAttributes.)

  • email: The email address of the user to whom the message that contains the code and username will be sent. Required if the email_verified attribute is set to True, or if \"EMAIL\" is specified in the DesiredDeliveryMediums parameter.

  • phone_number: The phone number of the user to whom the message that contains the code and username will be sent. Required if the phone_number_verified attribute is set to True, or if \"SMS\" is specified in the DesiredDeliveryMediums parameter.

" + }, + "ValidationData":{ + "shape":"AttributeListType", + "documentation":"

The user's validation data. This is an array of name-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered. For example, you might choose to allow or disallow user sign-up based on the user's domain.

To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation process.

The user's validation data is not persisted.

" + }, + "TemporaryPassword":{ + "shape":"PasswordType", + "documentation":"

The user's temporary password. This password must conform to the password policy that you specified when you created the user pool.

The temporary password is valid only once. To complete the Admin Create User flow, the user must enter the temporary password in the sign-in page along with a new password to be used in all future sign-ins.

This parameter is not required. If you do not specify a value, Amazon Cognito generates one for you.

The temporary password can only be used until the user account expiration limit that you specified when you created the user pool. To reset the account after that time limit, you must call AdminCreateUser again, specifying \"RESEND\" for the MessageAction parameter.

" + }, + "ForceAliasCreation":{ + "shape":"ForceAliasCreation", + "documentation":"

This parameter is only used if the phone_number_verified or email_verified attribute is set to True. Otherwise, it is ignored.

If this parameter is set to True and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user. The previous user will no longer be able to log in using that alias.

If this parameter is set to False, the API throws an AliasExistsException error if the alias already exists. The default value is False.

" + }, + "MessageAction":{ + "shape":"MessageActionType", + "documentation":"

Set to \"RESEND\" to resend the invitation message to a user that already exists and reset the expiration limit on the user's account. Set to \"SUPPRESS\" to suppress sending the message. Only one value can be specified.

" + }, + "DesiredDeliveryMediums":{ + "shape":"DeliveryMediumListType", + "documentation":"

Specify \"EMAIL\" if email will be used to send the welcome message. Specify \"SMS\" if the phone number will be used. The default value is \"SMS\". More than one value can be specified.

" + } + }, + "documentation":"

Represents the request to create a user in the specified user pool.

" + }, + "AdminCreateUserResponse":{ + "type":"structure", + "members":{ + "User":{ + "shape":"UserType", + "documentation":"

The user returned in the request to create a new user.

" + } + }, + "documentation":"

Represents the response from the server to the request to create the user.

" + }, + "AdminCreateUserUnusedAccountValidityDaysType":{ + "type":"integer", + "max":365, + "min":0 + }, + "AdminDeleteUserAttributesRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "UserAttributeNames" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to delete user attributes.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user from which you would like to delete attributes.

" + }, + "UserAttributeNames":{ + "shape":"AttributeNameListType", + "documentation":"

An array of strings representing the user attribute names you wish to delete.

" + } + }, + "documentation":"

Represents the request to delete user attributes as an administrator.

" + }, + "AdminDeleteUserAttributesResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response received from the server for a request to delete user attributes.

" + }, + "AdminDeleteUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to delete the user.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to delete.

" + } + }, + "documentation":"

Represents the request to delete a user as an administrator.

" + }, + "AdminDisableProviderForUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "User" + ], + "members":{ + "UserPoolId":{"shape":"StringType"}, + "User":{"shape":"ProviderUserIdentifierType"} + } + }, + "AdminDisableProviderForUserResponse":{ + "type":"structure", + "members":{ + } + }, + "AdminDisableUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to disable the user.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to disable.

" + } + }, + "documentation":"

Represents the request to disable any user as an administrator.

" + }, + "AdminDisableUserResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response received from the server to disable the user as an administrator.

" + }, + "AdminEnableUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to enable the user.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to enable.

" + } + }, + "documentation":"

Represents the request that enables the user as an administrator.

" + }, + "AdminEnableUserResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server for the request to enable a user as an administrator.

" + }, + "AdminForgetDeviceRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "DeviceKey" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name.

" + }, + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + } + }, + "documentation":"

Sends the forgot device request, as an administrator.

" + }, + "AdminGetDeviceRequest":{ + "type":"structure", + "required":[ + "DeviceKey", + "UserPoolId", + "Username" + ], + "members":{ + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name.

" + } + }, + "documentation":"

Represents the request to get the device, as an administrator.

" + }, + "AdminGetDeviceResponse":{ + "type":"structure", + "required":["Device"], + "members":{ + "Device":{ + "shape":"DeviceType", + "documentation":"

The device.

" + } + }, + "documentation":"

Gets the device response, as an administrator.

" + }, + "AdminGetUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to get information about the user.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to retrieve.

" + } + }, + "documentation":"

Represents the request to get the specified user as an administrator.

" + }, + "AdminGetUserResponse":{ + "type":"structure", + "required":["Username"], + "members":{ + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user about whom you are receiving information.

" + }, + "UserAttributes":{ + "shape":"AttributeListType", + "documentation":"

An array of name-value pairs representing user attributes.

" + }, + "UserCreateDate":{ + "shape":"DateType", + "documentation":"

The date the user was created.

" + }, + "UserLastModifiedDate":{ + "shape":"DateType", + "documentation":"

The date the user was last modified.

" + }, + "Enabled":{ + "shape":"BooleanType", + "documentation":"

Indicates that the status is enabled.

" + }, + "UserStatus":{ + "shape":"UserStatusType", + "documentation":"

The user status. Can be one of the following:

  • UNCONFIRMED - User has been created but not confirmed.

  • CONFIRMED - User has been confirmed.

  • ARCHIVED - User is no longer active.

  • COMPROMISED - User is disabled due to a potential security threat.

  • UNKNOWN - User status is not known.

" + }, + "MFAOptions":{ + "shape":"MFAOptionListType", + "documentation":"

Specifies the options for MFA (e.g., email or phone number).

" + } + }, + "documentation":"

Represents the response from the server from the request to get the specified user as an administrator.

" + }, + "AdminInitiateAuthRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ClientId", + "AuthFlow" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the Amazon Cognito user pool.

" + }, + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The app client ID.

" + }, + "AuthFlow":{ + "shape":"AuthFlowType", + "documentation":"

The authentication flow for this call to execute. The API action will depend on this value. For example:

  • REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens.

  • USER_SRP_AUTH will take in USERNAME and SRPA and return the SRP variables to be used for next challenge execution.

Valid values include:

  • USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol.

  • REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token.

  • CUSTOM_AUTH: Custom authentication flow.

  • ADMIN_NO_SRP_AUTH: Non-SRP authentication flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled for calling the app client.

" + }, + "AuthParameters":{ + "shape":"AuthParametersType", + "documentation":"

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

  • For USER_SRP_AUTH: USERNAME (required), SRPA (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY

  • For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY

  • For ADMIN_NO_SRP_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), PASSWORD (required), DEVICE_KEY

  • For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY

" + }, + "ClientMetadata":{ + "shape":"ClientMetadataType", + "documentation":"

This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "ContextData":{"shape":"ContextDataType"} + }, + "documentation":"

Initiates the authorization request, as an administrator.

" + }, + "AdminInitiateAuthResponse":{ + "type":"structure", + "members":{ + "ChallengeName":{ + "shape":"ChallengeNameType", + "documentation":"

The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge.

  • SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS.

  • PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations.

  • CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued.

  • DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device.

  • DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only.

  • ADMIN_NO_SRP_AUTH: This is returned if you need to authenticate with USERNAME and PASSWORD directly. An app client must be enabled to use this flow.

  • NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes.

" + }, + "Session":{ + "shape":"SessionType", + "documentation":"

The session which should be passed both ways in challenge-response calls to the service. If AdminInitiateAuth or AdminRespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next AdminRespondToAuthChallenge API call.

" + }, + "ChallengeParameters":{ + "shape":"ChallengeParametersType", + "documentation":"

The challenge parameters. These are returned to you in the AdminInitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (AdminRespondToAuthChallenge).

All challenges require USERNAME and SECRET_HASH (if applicable).

The value of the USER_IF_FOR_SRP attribute will be the user's actual username, not an alias (such as email address or phone number), even if you specified an alias in your call to AdminInitiateAuth. This is because, in the AdminRespondToAuthChallenge API ChallengeResponses, the USERNAME attribute cannot be an alias.

" + }, + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned.

" + } + }, + "documentation":"

Initiates the authentication response, as an administrator.

" + }, + "AdminLinkProviderForUserRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "DestinationUser", + "SourceUser" + ], + "members":{ + "UserPoolId":{"shape":"StringType"}, + "DestinationUser":{"shape":"ProviderUserIdentifierType"}, + "SourceUser":{"shape":"ProviderUserIdentifierType"} + } + }, + "AdminLinkProviderForUserResponse":{ + "type":"structure", + "members":{ + } + }, + "AdminListDevicesRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name.

" + }, + "Limit":{ + "shape":"QueryLimitType", + "documentation":"

The limit of the devices request.

" + }, + "PaginationToken":{ + "shape":"SearchPaginationTokenType", + "documentation":"

The pagination token.

" + } + }, + "documentation":"

Represents the request to list devices, as an administrator.

" + }, + "AdminListDevicesResponse":{ + "type":"structure", + "members":{ + "Devices":{ + "shape":"DeviceListType", + "documentation":"

The devices in the list of devices response.

" + }, + "PaginationToken":{ + "shape":"SearchPaginationTokenType", + "documentation":"

The pagination token.

" + } + }, + "documentation":"

Lists the device's response, as an administrator.

" + }, + "AdminListGroupsForUserRequest":{ + "type":"structure", + "required":[ + "Username", + "UserPoolId" + ], + "members":{ + "Username":{ + "shape":"UsernameType", + "documentation":"

The username for the user.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "Limit":{ + "shape":"QueryLimitType", + "documentation":"

The limit of the request to list groups.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" + } + } + }, + "AdminListGroupsForUserResponse":{ + "type":"structure", + "members":{ + "Groups":{ + "shape":"GroupListType", + "documentation":"

The groups that the user belongs to.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" + } + } + }, + "AdminListUserAuthEventsRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Username":{"shape":"UsernameType"}, + "MaxResults":{"shape":"QueryLimitType"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "AdminListUserAuthEventsResponse":{ + "type":"structure", + "members":{ + "AuthEvents":{"shape":"AuthEventsType"}, + "NextToken":{"shape":"PaginationKey"} + } + }, + "AdminRemoveUserFromGroupRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "GroupName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The username for the user.

" + }, + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The group name.

" + } + } + }, + "AdminResetUserPasswordRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to reset the user's password.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user whose password you wish to reset.

" + } + }, + "documentation":"

Represents the request to reset a user's password as an administrator.

" + }, + "AdminResetUserPasswordResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server to reset a user password as an administrator.

" + }, + "AdminRespondToAuthChallengeRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ClientId", + "ChallengeName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the Amazon Cognito user pool.

" + }, + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The app client ID.

" + }, + "ChallengeName":{ + "shape":"ChallengeNameType", + "documentation":"

The challenge name. For more information, see AdminInitiateAuth.

" + }, + "ChallengeResponses":{ + "shape":"ChallengeResponsesType", + "documentation":"

The challenge responses. These are inputs corresponding to the value of ChallengeName, for example:

  • SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • ADMIN_NO_SRP_AUTH: PASSWORD, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret).

The value of the USERNAME attribute must be the user's actual username, not an alias (such as email address or phone number). To make this easier, the AdminInitiateAuth response includes the actual username value in the USERNAMEUSER_ID_FOR_SRP attribute, even if you specified an alias in your call to AdminInitiateAuth.

" + }, + "Session":{ + "shape":"SessionType", + "documentation":"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "ContextData":{"shape":"ContextDataType"} + }, + "documentation":"

The request to respond to the authentication challenge, as an administrator.

" + }, + "AdminRespondToAuthChallengeResponse":{ + "type":"structure", + "members":{ + "ChallengeName":{ + "shape":"ChallengeNameType", + "documentation":"

The name of the challenge. For more information, see AdminInitiateAuth.

" + }, + "Session":{ + "shape":"SessionType", + "documentation":"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

" + }, + "ChallengeParameters":{ + "shape":"ChallengeParametersType", + "documentation":"

The challenge parameters. For more information, see AdminInitiateAuth.

" + }, + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The result returned by the server in response to the authentication request.

" + } + }, + "documentation":"

Responds to the authentication challenge, as an administrator.

" + }, + "AdminSetUserMFAPreferenceRequest":{ + "type":"structure", + "required":[ + "Username", + "UserPoolId" + ], + "members":{ + "SMSMfaSettings":{"shape":"SMSMfaSettingsType"}, + "SoftwareTokenMfaSettings":{"shape":"SoftwareTokenMfaSettingsType"}, + "Username":{"shape":"UsernameType"}, + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "AdminSetUserMFAPreferenceResponse":{ + "type":"structure", + "members":{ + } + }, + "AdminSetUserSettingsRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "MFAOptions" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to set the user's settings, such as MFA options.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user for whom you wish to set user settings.

" + }, + "MFAOptions":{ + "shape":"MFAOptionListType", + "documentation":"

Specifies the options for MFA (e.g., email or phone number).

" + } + }, + "documentation":"

Represents the request to set user settings as an administrator.

" + }, + "AdminSetUserSettingsResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server to set user settings as an administrator.

" + }, + "AdminUpdateAuthEventFeedbackRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "EventId", + "FeedbackValue" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Username":{"shape":"UsernameType"}, + "EventId":{"shape":"EventIdType"}, + "FeedbackValue":{"shape":"FeedbackValueType"} + } + }, + "AdminUpdateAuthEventFeedbackResponse":{ + "type":"structure", + "members":{ + } + }, + "AdminUpdateDeviceStatusRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "DeviceKey" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID>

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name.

" + }, + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "DeviceRememberedStatus":{ + "shape":"DeviceRememberedStatusType", + "documentation":"

The status indicating whether a device has been remembered or not.

" + } + }, + "documentation":"

The request to update the device status, as an administrator.

" + }, + "AdminUpdateDeviceStatusResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The status response from the request to update the device, as an administrator.

" + }, + "AdminUpdateUserAttributesRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "UserAttributes" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to update user attributes.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user for whom you want to update user attributes.

" + }, + "UserAttributes":{ + "shape":"AttributeListType", + "documentation":"

An array of name-value pairs representing user attributes.

" + } + }, + "documentation":"

Represents the request to update the user's attributes as an administrator.

" + }, + "AdminUpdateUserAttributesResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server for the request to update user attributes as an administrator.

" + }, + "AdminUserGlobalSignOutRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name.

" + } + }, + "documentation":"

The request to sign out of all devices, as an administrator.

" + }, + "AdminUserGlobalSignOutResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The global sign-out response, as an administrator.

" + }, + "AdvancedSecurityModeType":{ + "type":"string", + "enum":[ + "OFF", + "AUDIT", + "ENFORCED" + ] + }, + "AliasAttributeType":{ + "type":"string", + "enum":[ + "phone_number", + "email", + "preferred_username" + ] + }, + "AliasAttributesListType":{ + "type":"list", + "member":{"shape":"AliasAttributeType"} + }, + "AliasExistsException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message sent to the user when an alias exists.

" + } + }, + "documentation":"

This exception is thrown when a user tries to confirm the account with an email or phone number that has already been supplied as an alias from a different account. This exception tells user that an account with this email or phone already exists.

", + "exception":true + }, + "AnalyticsConfigurationType":{ + "type":"structure", + "required":[ + "ApplicationId", + "RoleArn", + "ExternalId" + ], + "members":{ + "ApplicationId":{"shape":"HexStringType"}, + "RoleArn":{"shape":"ArnType"}, + "ExternalId":{"shape":"StringType"}, + "UserDataShared":{"shape":"BooleanType"} + } + }, + "AnalyticsMetadataType":{ + "type":"structure", + "members":{ + "AnalyticsEndpointId":{"shape":"StringType"} + } + }, + "ArnType":{ + "type":"string", + "max":2048, + "min":20, + "pattern":"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?" + }, + "AssociateSoftwareTokenRequest":{ + "type":"structure", + "members":{ + "AccessToken":{"shape":"TokenModelType"}, + "Session":{"shape":"SessionType"} + } + }, + "AssociateSoftwareTokenResponse":{ + "type":"structure", + "members":{ + "SecretCode":{"shape":"SecretCodeType"}, + "Session":{"shape":"SessionType"} + } + }, + "AttributeDataType":{ + "type":"string", + "enum":[ + "String", + "Number", + "DateTime", + "Boolean" + ] + }, + "AttributeListType":{ + "type":"list", + "member":{"shape":"AttributeType"} + }, + "AttributeMappingKeyType":{ + "type":"string", + "max":32, + "min":1 + }, + "AttributeMappingType":{ + "type":"map", + "key":{"shape":"AttributeMappingKeyType"}, + "value":{"shape":"StringType"} + }, + "AttributeNameListType":{ + "type":"list", + "member":{"shape":"AttributeNameType"} + }, + "AttributeNameType":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + }, + "AttributeType":{ + "type":"structure", + "required":["Name"], + "members":{ + "Name":{ + "shape":"AttributeNameType", + "documentation":"

The name of the attribute.

" + }, + "Value":{ + "shape":"AttributeValueType", + "documentation":"

The value of the attribute.

" + } + }, + "documentation":"

Specifies whether the attribute is standard or custom.

" + }, + "AttributeValueType":{ + "type":"string", + "max":2048, + "sensitive":true + }, + "AuthEventType":{ + "type":"structure", + "members":{ + "EventId":{"shape":"StringType"}, + "EventType":{"shape":"EventType"}, + "CreationDate":{"shape":"DateType"}, + "EventResponse":{"shape":"EventResponseType"}, + "EventRisk":{"shape":"EventRiskType"}, + "ChallengeResponses":{"shape":"ChallengeResponseListType"}, + "EventContextData":{"shape":"EventContextDataType"}, + "EventFeedback":{"shape":"EventFeedbackType"} + } + }, + "AuthEventsType":{ + "type":"list", + "member":{"shape":"AuthEventType"} + }, + "AuthFlowType":{ + "type":"string", + "enum":[ + "USER_SRP_AUTH", + "REFRESH_TOKEN_AUTH", + "REFRESH_TOKEN", + "CUSTOM_AUTH", + "ADMIN_NO_SRP_AUTH" + ] + }, + "AuthParametersType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "AuthStateType":{ + "type":"string", + "pattern":"[A-Za-z0-9-_+/=]+", + "sensitive":true + }, + "AuthenticateRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username", + "PasswordClaim" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to authenticate.

" + }, + "PasswordClaim":{ + "shape":"PasswordClaimType", + "documentation":"

The password claim of the authentication request.

" + }, + "Timestamp":{ + "shape":"DateType", + "documentation":"

The timestamp of the authentication request.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} + }, + "documentation":"

Represents the request to authenticate.

" + }, + "AuthenticateResponse":{ + "type":"structure", + "members":{ + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The result of the authentication response.

" + }, + "AuthState":{ + "shape":"AuthStateType", + "documentation":"

The authorization state of the authentication response.

" + }, + "CodeDeliveryDetails":{ + "shape":"CodeDeliveryDetailsType", + "documentation":"

The code delivery details returned by the server in the response to the authentication request.

" + } + }, + "documentation":"

Represents the authentication response.

" + }, + "AuthenticationResultType":{ + "type":"structure", + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token of the authentication result.

" + }, + "ExpiresIn":{ + "shape":"IntegerType", + "documentation":"

The expiration period of the authentication result.

" + }, + "TokenType":{ + "shape":"StringType", + "documentation":"

The token type of the authentication result.

" + }, + "RefreshToken":{ + "shape":"TokenModelType", + "documentation":"

The refresh token of the authentication result.

" + }, + "IdToken":{ + "shape":"TokenModelType", + "documentation":"

The ID token of the authentication result.

" + }, + "NewDeviceMetadata":{ + "shape":"NewDeviceMetadataType", + "documentation":"

The new device metadata from an authentication result.

" + } + }, + "documentation":"

The result type of the authentication result.

" + }, + "BlobType":{"type":"blob"}, + "BlockedIPRangeListType":{ + "type":"list", + "member":{"shape":"StringType"}, + "max":20 + }, + "BooleanType":{"type":"boolean"}, + "BotActionType":{ + "type":"structure", + "required":["EventAction"], + "members":{ + "EventAction":{"shape":"BotEventActionType"} + } + }, + "BotActionsType":{ + "type":"structure", + "members":{ + "LowAction":{"shape":"BotActionType"}, + "MediumAction":{"shape":"BotActionType"}, + "HighAction":{"shape":"BotActionType"} + } + }, + "BotEventActionType":{ + "type":"string", + "enum":[ + "BLOCK", + "NO_ACTION" + ] + }, + "BotRiskConfigurationType":{ + "type":"structure", + "required":["Actions"], + "members":{ + "EventFilter":{"shape":"EventFiltersType"}, + "Actions":{"shape":"BotActionsType"} + } + }, + "CSSType":{"type":"string"}, + "CSSVersionType":{"type":"string"}, + "CallbackURLsListType":{ + "type":"list", + "member":{"shape":"RedirectUrlType"}, + "max":100, + "min":0 + }, + "ChallengeName":{ + "type":"string", + "enum":[ + "Password", + "Mfa" + ] + }, + "ChallengeNameType":{ + "type":"string", + "enum":[ + "SMS_MFA", + "SOFTWARE_TOKEN_MFA", + "SELECT_MFA_TYPE", + "MFA_SETUP", + "PASSWORD_VERIFIER", + "CUSTOM_CHALLENGE", + "DEVICE_SRP_AUTH", + "DEVICE_PASSWORD_VERIFIER", + "ADMIN_NO_SRP_AUTH", + "NEW_PASSWORD_REQUIRED" + ] + }, + "ChallengeParametersType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "ChallengeResponse":{ + "type":"string", + "enum":[ + "Success", + "Failure" + ] + }, + "ChallengeResponseListType":{ + "type":"list", + "member":{"shape":"ChallengeResponseType"} + }, + "ChallengeResponseType":{ + "type":"structure", + "members":{ + "ChallengeName":{"shape":"ChallengeName"}, + "ChallengeResponse":{"shape":"ChallengeResponse"} + } + }, + "ChallengeResponsesType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "ChangePasswordRequest":{ + "type":"structure", + "required":[ + "PreviousPassword", + "ProposedPassword", + "AccessToken" + ], + "members":{ + "PreviousPassword":{ + "shape":"PasswordType", + "documentation":"

The old password in the change password request.

" + }, + "ProposedPassword":{ + "shape":"PasswordType", + "documentation":"

The new password in the change password request.

" + }, + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token in the change password request.

" + } + }, + "documentation":"

Represents the request to change a user password.

" + }, + "ChangePasswordResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response from the server to the change password request.

" + }, + "ClientIdType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w+]+", + "sensitive":true + }, + "ClientMetadataType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "ClientNameType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w\\s+=,.@-]+" + }, + "ClientPermissionListType":{ + "type":"list", + "member":{"shape":"ClientPermissionType"} + }, + "ClientPermissionType":{ + "type":"string", + "max":2048, + "min":1 + }, + "ClientSecretType":{ + "type":"string", + "max":64, + "min":1, + "pattern":"[\\w+]+", + "sensitive":true + }, + "CodeDeliveryDetailsListType":{ + "type":"list", + "member":{"shape":"CodeDeliveryDetailsType"} + }, + "CodeDeliveryDetailsType":{ + "type":"structure", + "members":{ + "Destination":{ + "shape":"StringType", + "documentation":"

The destination for the code delivery details.

" + }, + "DeliveryMedium":{ + "shape":"DeliveryMediumType", + "documentation":"

The delivery medium (email message or phone number).

" + }, + "AttributeName":{ + "shape":"AttributeNameType", + "documentation":"

The name of the attribute in the code delivery details type.

" + } + }, + "documentation":"

The type of code delivery details being returned from the server.

" + }, + "CodeDeliveryFailureException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message sent when a verification code fails to deliver successfully.

" + } + }, + "documentation":"

This exception is thrown when a verification code fails to deliver successfully.

", + "exception":true + }, + "CodeMismatchException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message provided when the code mismatch exception is thrown.

" + } + }, + "documentation":"

This exception is thrown if the provided code does not match what the server was expecting.

", + "exception":true + }, + "CompletionMessageType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w]+" + }, + "CompromisedCredentialsActionsType":{ + "type":"structure", + "required":["EventAction"], + "members":{ + "EventAction":{"shape":"CompromisedCredentialsEventActionType"} + } + }, + "CompromisedCredentialsEventActionType":{ + "type":"string", + "enum":[ + "BLOCK", + "NO_ACTION" + ] + }, + "CompromisedCredentialsRiskConfigurationType":{ + "type":"structure", + "required":["Actions"], + "members":{ + "EventFilter":{"shape":"EventFiltersType"}, + "Actions":{"shape":"CompromisedCredentialsActionsType"} + } + }, + "ConcurrentModificationException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message provided when the concurrent exception is thrown.

" + } + }, + "documentation":"

This exception is thrown if two or more modifications are happening concurrently.

", + "exception":true + }, + "ConfirmDeviceRequest":{ + "type":"structure", + "required":[ + "AccessToken", + "DeviceKey" + ], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token.

" + }, + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "DeviceSecretVerifierConfig":{ + "shape":"DeviceSecretVerifierConfigType", + "documentation":"

The configuration of the device secret verifier.

" + }, + "DeviceName":{ + "shape":"DeviceNameType", + "documentation":"

The device name.

" + } + }, + "documentation":"

Confirms the device request.

" + }, + "ConfirmDeviceResponse":{ + "type":"structure", + "members":{ + "UserConfirmationNecessary":{ + "shape":"BooleanType", + "documentation":"

Indicates whether the user confirmation is necessary to confirm the device response.

" + } + }, + "documentation":"

Confirms the device response.

" + }, + "ConfirmForgotPasswordRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username", + "ConfirmationCode", + "Password" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user for whom you want to enter a code to retrieve a forgotten password.

" + }, + "ConfirmationCode":{ + "shape":"ConfirmationCodeType", + "documentation":"

The confirmation code sent by a user's request to retrieve a forgotten password. For more information, see ForgotPassword

" + }, + "Password":{ + "shape":"PasswordType", + "documentation":"

The password sent by a user's request to retrieve a forgotten password.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} + }, + "documentation":"

The request representing the confirmation for a password reset.

" + }, + "ConfirmForgotPasswordResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

The response from the server that results from a user's request to retrieve a forgotten password.

" + }, + "ConfirmSignUpRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username", + "ConfirmationCode" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user whose registration you wish to confirm.

" + }, + "ConfirmationCode":{ + "shape":"ConfirmationCodeType", + "documentation":"

The confirmation code sent by a user's request to confirm registration.

" + }, + "ForceAliasCreation":{ + "shape":"ForceAliasCreation", + "documentation":"

Boolean to be specified to force user confirmation irrespective of existing alias. By default set to False. If this parameter is set to True and the phone number/email used for sign up confirmation already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user being confirmed. If set to False, the API will throw an AliasExistsException error.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} + }, + "documentation":"

Represents the request to confirm registration of a user.

" + }, + "ConfirmSignUpResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server for the registration confirmation.

" + }, + "ConfirmationCodeType":{ + "type":"string", + "max":2048, + "min":1, + "pattern":"[\\S]+" + }, + "ContextDataType":{ + "type":"structure", + "required":[ + "IpAddress", + "ServerName", + "ServerPath", + "HttpHeaders", + "EncodedData" + ], + "members":{ + "IpAddress":{"shape":"StringType"}, + "ServerName":{"shape":"StringType"}, + "ServerPath":{"shape":"StringType"}, + "HttpHeaders":{"shape":"HttpHeaderList"}, + "EncodedData":{"shape":"StringType"} + } + }, + "CreateGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "UserPoolId" + ], + "members":{ + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The name of the group. Must be unique.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "Description":{ + "shape":"DescriptionType", + "documentation":"

A string containing the description of the group.

" + }, + "RoleArn":{ + "shape":"ArnType", + "documentation":"

The role ARN for the group.

" + }, + "Precedence":{ + "shape":"PrecedenceType", + "documentation":"

A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower Precedence values take precedence over groups with higher or null Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens.

The default Precedence value is null.

" + } + } + }, + "CreateGroupResponse":{ + "type":"structure", + "members":{ + "Group":{ + "shape":"GroupType", + "documentation":"

The group object for the group.

" + } + } + }, + "CreateIdentityProviderRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ProviderName", + "ProviderType", + "ProviderDetails" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ProviderName":{"shape":"ProviderNameTypeV1"}, + "ProviderType":{"shape":"IdentityProviderTypeType"}, + "ProviderDetails":{"shape":"ProviderDetailsType"}, + "AttributeMapping":{"shape":"AttributeMappingType"}, + "IdpIdentifiers":{"shape":"IdpIdentifiersListType"} + } + }, + "CreateIdentityProviderResponse":{ + "type":"structure", + "required":["IdentityProvider"], + "members":{ + "IdentityProvider":{"shape":"IdentityProviderType"} + } + }, + "CreateResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier", + "Name" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"}, + "Name":{"shape":"ResourceServerNameType"}, + "Scopes":{"shape":"ResourceServerScopeListType"} + } + }, + "CreateResourceServerResponse":{ + "type":"structure", + "required":["ResourceServer"], + "members":{ + "ResourceServer":{"shape":"ResourceServerType"} + } + }, + "CreateUserImportJobRequest":{ + "type":"structure", + "required":[ + "JobName", + "UserPoolId", + "CloudWatchLogsRoleArn" + ], + "members":{ + "JobName":{ + "shape":"UserImportJobNameType", + "documentation":"

The job name for the user import job.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are being imported into.

" + }, + "CloudWatchLogsRoleArn":{ + "shape":"ArnType", + "documentation":"

The role ARN for the Amazon CloudWatch Logging role for the user import job.

" + } + }, + "documentation":"

Represents the request to create the user import job.

" + }, + "CreateUserImportJobResponse":{ + "type":"structure", + "members":{ + "UserImportJob":{ + "shape":"UserImportJobType", + "documentation":"

The job object that represents the user import job.

" + } + }, + "documentation":"

Represents the response from the server to the request to create the user import job.

" + }, + "CreateUserPoolClientRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ClientName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to create a user pool client.

" + }, + "ClientName":{ + "shape":"ClientNameType", + "documentation":"

The client name for the user pool client you would like to create.

" + }, + "GenerateSecret":{ + "shape":"GenerateSecret", + "documentation":"

Boolean to specify whether you want to generate a secret for the user pool client being created.

" + }, + "RefreshTokenValidity":{ + "shape":"RefreshTokenValidityType", + "documentation":"

The time limit, in days, after which the refresh token is no longer valid and cannot be used.

" + }, + "ReadAttributes":{ + "shape":"ClientPermissionListType", + "documentation":"

The read attributes.

" + }, + "WriteAttributes":{ + "shape":"ClientPermissionListType", + "documentation":"

The write attributes.

" + }, + "ExplicitAuthFlows":{ + "shape":"ExplicitAuthFlowsListType", + "documentation":"

The explicit authentication flows.

" + }, + "SupportedIdentityProviders":{"shape":"SupportedIdentityProvidersListType"}, + "CallbackURLs":{"shape":"CallbackURLsListType"}, + "LogoutURLs":{"shape":"LogoutURLsListType"}, + "DefaultRedirectURI":{"shape":"RedirectUrlType"}, + "AllowedOAuthFlows":{"shape":"OAuthFlowsType"}, + "AllowedOAuthScopes":{"shape":"ScopeListType"}, + "AllowedOAuthFlowsUserPoolClient":{"shape":"BooleanType"}, + "AnalyticsConfiguration":{"shape":"AnalyticsConfigurationType"} + }, + "documentation":"

Represents the request to create a user pool client.

" + }, + "CreateUserPoolClientResponse":{ + "type":"structure", + "members":{ + "UserPoolClient":{ + "shape":"UserPoolClientType", + "documentation":"

The user pool client that was just created.

" + } + }, + "documentation":"

Represents the response from the server to create a user pool client.

" + }, + "CreateUserPoolDomainRequest":{ + "type":"structure", + "required":[ + "Domain", + "UserPoolId" + ], + "members":{ + "Domain":{"shape":"DomainType"}, + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "CreateUserPoolDomainResponse":{ + "type":"structure", + "members":{ + } + }, + "CreateUserPoolRequest":{ + "type":"structure", + "required":["PoolName"], + "members":{ + "PoolName":{ + "shape":"UserPoolNameType", + "documentation":"

A string used to name the user pool.

" + }, + "Policies":{ + "shape":"UserPoolPolicyType", + "documentation":"

The policies associated with the new user pool.

" + }, + "LambdaConfig":{ + "shape":"LambdaConfigType", + "documentation":"

The Lambda trigger configuration information for the new user pool.

" + }, + "AutoVerifiedAttributes":{ + "shape":"VerifiedAttributesListType", + "documentation":"

The attributes to be auto-verified. Possible values: email, phone_number.

" + }, + "AliasAttributes":{ + "shape":"AliasAttributesListType", + "documentation":"

Attributes supported as an alias for this user pool. Possible values: phone_number, email, or preferred_username.

" + }, + "UsernameAttributes":{"shape":"UsernameAttributesListType"}, + "SmsVerificationMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

A string representing the SMS verification message.

" + }, + "EmailVerificationMessage":{ + "shape":"EmailVerificationMessageType", + "documentation":"

A string representing the email verification message.

" + }, + "EmailVerificationSubject":{ + "shape":"EmailVerificationSubjectType", + "documentation":"

A string representing the email verification subject.

" + }, + "VerificationMessageTemplate":{"shape":"VerificationMessageTemplateType"}, + "SmsAuthenticationMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

A string representing the SMS authentication message.

" + }, + "MfaConfiguration":{ + "shape":"UserPoolMfaType", + "documentation":"

Specifies MFA configuration details.

" + }, + "DeviceConfiguration":{ + "shape":"DeviceConfigurationType", + "documentation":"

The device configuration.

" + }, + "EmailConfiguration":{ + "shape":"EmailConfigurationType", + "documentation":"

The email configuration.

" + }, + "SmsConfiguration":{ + "shape":"SmsConfigurationType", + "documentation":"

The SMS configuration.

" + }, + "UserPoolTags":{ + "shape":"UserPoolTagsType", + "documentation":"

The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool

" + }, + "AdminCreateUserConfig":{ + "shape":"AdminCreateUserConfigType", + "documentation":"

The configuration for AdminCreateUser requests.

" + }, + "Schema":{ + "shape":"SchemaAttributesListType", + "documentation":"

An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.

" + }, + "UserPoolAddOns":{"shape":"UserPoolAddOnsType"} + }, + "documentation":"

Represents the request to create a user pool.

" + }, + "CreateUserPoolResponse":{ + "type":"structure", + "members":{ + "UserPool":{ + "shape":"UserPoolType", + "documentation":"

A container for the user pool details.

" + } + }, + "documentation":"

Represents the response from the server for the request to create a user pool.

" + }, + "CustomAttributeNameType":{ + "type":"string", + "max":20, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + }, + "CustomAttributesListType":{ + "type":"list", + "member":{"shape":"SchemaAttributeType"}, + "max":25, + "min":1 + }, + "DateType":{"type":"timestamp"}, + "DefaultEmailOptionType":{ + "type":"string", + "enum":[ + "CONFIRM_WITH_LINK", + "CONFIRM_WITH_CODE" + ] + }, + "DeleteGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "UserPoolId" + ], + "members":{ + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The name of the group.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + } + } + }, + "DeleteIdentityProviderRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ProviderName" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ProviderName":{"shape":"ProviderNameType"} + } + }, + "DeleteResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"} + } + }, + "DeleteUserAttributesRequest":{ + "type":"structure", + "required":[ + "UserAttributeNames", + "AccessToken" + ], + "members":{ + "UserAttributeNames":{ + "shape":"AttributeNameListType", + "documentation":"

An array of strings representing the user attribute names you wish to delete.

" + }, + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token used in the request to delete user attributes.

" + } + }, + "documentation":"

Represents the request to delete user attributes.

" + }, + "DeleteUserAttributesResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server to delete user attributes.

" + }, + "DeleteUserPoolClientRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ClientId" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to delete the client.

" + }, + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + } + }, + "documentation":"

Represents the request to delete a user pool client.

" + }, + "DeleteUserPoolDomainRequest":{ + "type":"structure", + "required":[ + "Domain", + "UserPoolId" + ], + "members":{ + "Domain":{"shape":"DomainType"}, + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "DeleteUserPoolDomainResponse":{ + "type":"structure", + "members":{ + } + }, + "DeleteUserPoolRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool you want to delete.

" + } + }, + "documentation":"

Represents the request to delete a user pool.

" + }, + "DeleteUserRequest":{ + "type":"structure", + "required":["AccessToken"], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token from a request to delete a user.

" + } + }, + "documentation":"

Represents the request to delete a user.

" + }, + "DeliveryMediumListType":{ + "type":"list", + "member":{"shape":"DeliveryMediumType"} + }, + "DeliveryMediumType":{ + "type":"string", + "enum":[ + "SMS", + "EMAIL" + ] + }, + "DescribeIdentityProviderRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ProviderName" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ProviderName":{"shape":"ProviderNameType"} + } + }, + "DescribeIdentityProviderResponse":{ + "type":"structure", + "required":["IdentityProvider"], + "members":{ + "IdentityProvider":{"shape":"IdentityProviderType"} + } + }, + "DescribeResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"} + } + }, + "DescribeResourceServerResponse":{ + "type":"structure", + "required":["ResourceServer"], + "members":{ + "ResourceServer":{"shape":"ResourceServerType"} + } + }, + "DescribeRiskConfigurationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"} + } + }, + "DescribeRiskConfigurationResponse":{ + "type":"structure", + "required":["RiskConfiguration"], + "members":{ + "RiskConfiguration":{"shape":"RiskConfigurationType"} + } + }, + "DescribeUserImportJobRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "JobId" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are being imported into.

" + }, + "JobId":{ + "shape":"UserImportJobIdType", + "documentation":"

The job ID for the user import job.

" + } + }, + "documentation":"

Represents the request to describe the user import job.

" + }, + "DescribeUserImportJobResponse":{ + "type":"structure", + "members":{ + "UserImportJob":{ + "shape":"UserImportJobType", + "documentation":"

The job object that represents the user import job.

" + } + }, + "documentation":"

Represents the response from the server to the request to describe the user import job.

" + }, + "DescribeUserPoolClientRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ClientId" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool you want to describe.

" + }, + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + } + }, + "documentation":"

Represents the request to describe a user pool client.

" + }, + "DescribeUserPoolClientResponse":{ + "type":"structure", + "members":{ + "UserPoolClient":{ + "shape":"UserPoolClientType", + "documentation":"

The user pool client from a server response to describe the user pool client.

" + } + }, + "documentation":"

Represents the response from the server from a request to describe the user pool client.

" + }, + "DescribeUserPoolDomainRequest":{ + "type":"structure", + "required":["Domain"], + "members":{ + "Domain":{"shape":"DomainType"} + } + }, + "DescribeUserPoolDomainResponse":{ + "type":"structure", + "members":{ + "DomainDescription":{"shape":"DomainDescriptionType"} + } + }, + "DescribeUserPoolRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool you want to describe.

" + } + }, + "documentation":"

Represents the request to describe the user pool.

" + }, + "DescribeUserPoolResponse":{ + "type":"structure", + "members":{ + "UserPool":{ + "shape":"UserPoolType", + "documentation":"

The container of metadata returned by the server to describe the pool.

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

Represents the response to describe the user pool.

" }, - "AdminConfirmSignUp": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "DescriptionType":{ + "type":"string", + "max":2048 + }, + "DeviceConfigurationType":{ + "type":"structure", + "members":{ + "ChallengeRequiredOnNewDevice":{ + "shape":"BooleanType", + "documentation":"

Indicates whether a challenge is required on a new device. Only applicable to a new device.

" + }, + "DeviceOnlyRememberedOnUserPrompt":{ + "shape":"BooleanType", + "documentation":"

If true, a device is only remembered on user prompt.

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

The type of configuration for the user pool's device tracking.

" }, - "AdminDeleteUser": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "DeviceKeyType":{ + "type":"string", + "max":55, + "min":1, + "pattern":"[\\w-]+_[0-9a-f-]+" + }, + "DeviceListType":{ + "type":"list", + "member":{"shape":"DeviceType"} + }, + "DeviceNameType":{ + "type":"string", + "max":1024, + "min":1 + }, + "DeviceRememberedStatusType":{ + "type":"string", + "enum":[ + "remembered", + "not_remembered" + ] + }, + "DeviceSecretVerifierConfigType":{ + "type":"structure", + "members":{ + "PasswordVerifier":{ + "shape":"StringType", + "documentation":"

The password verifier.

" + }, + "Salt":{ + "shape":"StringType", + "documentation":"

The salt.

" } - } + }, + "documentation":"

The device verifier against which it will be authenticated.

" }, - "AdminDeleteUserAttributes": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username", - "UserAttributeNames" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - }, - "UserAttributeNames": { - "shape": "Sh" - } + "DeviceType":{ + "type":"structure", + "members":{ + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "DeviceAttributes":{ + "shape":"AttributeListType", + "documentation":"

The device attributes.

" + }, + "DeviceCreateDate":{ + "shape":"DateType", + "documentation":"

The creation date of the device.

" + }, + "DeviceLastModifiedDate":{ + "shape":"DateType", + "documentation":"

The last modified date of the device.

" + }, + "DeviceLastAuthenticatedDate":{ + "shape":"DateType", + "documentation":"

The date in which the device was last authenticated.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

The device type.

" + }, + "DomainDescriptionType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "AWSAccountId":{"shape":"AWSAccountIdType"}, + "Domain":{"shape":"DomainType"}, + "S3Bucket":{"shape":"S3BucketType"}, + "CloudFrontDistribution":{"shape":"ArnType"}, + "Version":{"shape":"DomainVersionType"}, + "Status":{"shape":"DomainStatusType"} } }, - "AdminDisableUser": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "DomainStatusType":{ + "type":"string", + "enum":[ + "CREATING", + "DELETING", + "UPDATING", + "ACTIVE", + "FAILED" + ] + }, + "DomainType":{ + "type":"string", + "max":63, + "min":1, + "pattern":"^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$" + }, + "DomainVersionType":{ + "type":"string", + "max":20, + "min":1 + }, + "DuplicateProviderException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "EmailAddressType":{ + "type":"string", + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+@[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + }, + "EmailConfigurationType":{ + "type":"structure", + "members":{ + "SourceArn":{ + "shape":"ArnType", + "documentation":"

The Amazon Resource Name (ARN) of the email source.

" + }, + "ReplyToEmailAddress":{ + "shape":"EmailAddressType", + "documentation":"

The REPLY-TO email address.

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

The email configuration type.

" }, - "AdminEnableUser": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "EmailNotificationBodyType":{ + "type":"string", + "max":20000, + "min":6, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+" + }, + "EmailNotificationSubjectType":{ + "type":"string", + "max":140, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+" + }, + "EmailVerificationMessageByLinkType":{ + "type":"string", + "max":20000, + "min":6, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*" + }, + "EmailVerificationMessageType":{ + "type":"string", + "max":20000, + "min":6, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*" + }, + "EmailVerificationSubjectByLinkType":{ + "type":"string", + "max":140, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+" + }, + "EmailVerificationSubjectType":{ + "type":"string", + "max":140, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+" + }, + "EnableSoftwareTokenMFAException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "EnhanceAuthRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username", + "AuthState", + "Code" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user for whom you wish to enhance authentication.

" + }, + "AuthState":{ + "shape":"AuthStateType", + "documentation":"

The authentication state.

" + }, + "Code":{ + "shape":"StringType", + "documentation":"

The code returned from the enhanced authentication request.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} + }, + "documentation":"

Represents the request by the developer to enhance the authentication on a user pool.

" + }, + "EnhanceAuthResponse":{ + "type":"structure", + "members":{ + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The authentication result from the enhanced authentication response.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

Represents the response from the enhanced authentication request.

" + }, + "EventContextDataType":{ + "type":"structure", + "members":{ + "IpAddress":{"shape":"StringType"}, + "DeviceName":{"shape":"StringType"}, + "Timezone":{"shape":"StringType"}, + "City":{"shape":"StringType"}, + "Country":{"shape":"StringType"} } }, - "AdminForgetDevice": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username", - "DeviceKey" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - }, - "DeviceKey": {} - } + "EventFeedbackType":{ + "type":"structure", + "required":[ + "FeedbackValue", + "Provider" + ], + "members":{ + "FeedbackValue":{"shape":"FeedbackValueType"}, + "Provider":{"shape":"StringType"}, + "FeedbackDate":{"shape":"DateType"} } }, - "AdminGetDevice": { - "input": { - "type": "structure", - "required": [ - "DeviceKey", - "UserPoolId", - "Username" - ], - "members": { - "DeviceKey": {}, - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "EventFilterType":{ + "type":"string", + "enum":[ + "SIGN_IN", + "FORGOT_PASSWORD", + "ALL" + ] + }, + "EventFiltersType":{ + "type":"list", + "member":{"shape":"EventFilterType"} + }, + "EventIdType":{ + "type":"string", + "max":50, + "min":1, + "pattern":"[\\w+-]+" + }, + "EventResponseType":{ + "type":"string", + "enum":[ + "Success", + "Failure" + ] + }, + "EventRiskType":{ + "type":"structure", + "members":{ + "RiskDecision":{"shape":"RiskDecisionType"}, + "RiskLevel":{"shape":"RiskLevelType"} + } + }, + "EventType":{ + "type":"string", + "enum":[ + "SignIn", + "SignUp", + "ForgotPassword" + ] + }, + "ExpiredCodeException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the expired code exception is thrown.

" } }, - "output": { - "type": "structure", - "required": [ - "Device" - ], - "members": { - "Device": { - "shape": "Ss" - } + "documentation":"

This exception is thrown if a code has expired.

", + "exception":true + }, + "ExplicitAuthFlowsListType":{ + "type":"list", + "member":{"shape":"ExplicitAuthFlowsType"} + }, + "ExplicitAuthFlowsType":{ + "type":"string", + "enum":[ + "ADMIN_NO_SRP_AUTH", + "CUSTOM_AUTH_FLOW_ONLY" + ] + }, + "FeedbackValueType":{ + "type":"string", + "enum":[ + "Bad", + "Good" + ] + }, + "ForceAliasCreation":{"type":"boolean"}, + "ForgetDeviceRequest":{ + "type":"structure", + "required":["DeviceKey"], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token for the forgotten device request.

" + }, + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" } - } + }, + "documentation":"

Represents the request to forget the device.

" }, - "AdminGetUser": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "ForgotPasswordRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "UserContextData":{"shape":"UserContextDataType"}, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user for whom you want to enter a code to reset a forgotten password.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} + }, + "documentation":"

Represents the request to reset a user's password.

" + }, + "ForgotPasswordResponse":{ + "type":"structure", + "members":{ + "CodeDeliveryDetails":{ + "shape":"CodeDeliveryDetailsType", + "documentation":"

The code delivery details returned by the server in response to the request to reset a password.

" } }, - "output": { - "type": "structure", - "required": [ - "Username" - ], - "members": { - "Username": { - "shape": "Sd" - }, - "UserAttributes": { - "shape": "St" - }, - "UserCreateDate": { - "type": "timestamp" - }, - "UserLastModifiedDate": { - "type": "timestamp" - }, - "Enabled": { - "type": "boolean" - }, - "UserStatus": {}, - "MFAOptions": { - "shape": "S10" - } + "documentation":"

Respresents the response from the server regarding the request to reset a password.

" + }, + "GenerateSecret":{"type":"boolean"}, + "GetAuthenticationDetailsRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username", + "SrpA" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user for whom you wish to retrieve authentication details.

" + }, + "SrpA":{ + "shape":"AValueHexStringType", + "documentation":"

The Secure Remote Password protocol (SRP) key. For more information, see Secure Remote Password Protocol.

" + }, + "ValidationData":{ + "shape":"AttributeListType", + "documentation":"

The validation data of the request to get authentication details.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} + }, + "documentation":"

Represents the user's request to get authentication details.

" + }, + "GetAuthenticationDetailsResponse":{ + "type":"structure", + "required":[ + "Salt", + "SrpB", + "SecretBlock" + ], + "members":{ + "Salt":{ + "shape":"HexStringType", + "documentation":"

A salt that gets returned by the response from the server to get authentication details. For more information, see Salt cryptography.

" + }, + "SrpB":{ + "shape":"HexStringType", + "documentation":"

The Secure Remote Password protocol (SRP) key. For more information, see Secure Remote Password Protocol.

" + }, + "SecretBlock":{ + "shape":"BlobType", + "documentation":"

A blob that blocks the secret hash in the get authentication details response.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The resolved username for a possible alias in the input username parameter.

" } - } + }, + "documentation":"

Represents the response from the server to get authentication details.

" }, - "AdminInitiateAuth": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "ClientId", - "AuthFlow" - ], - "members": { - "UserPoolId": {}, - "ClientId": { - "shape": "S14" - }, - "AuthFlow": {}, - "AuthParameters": { - "shape": "S16" - }, - "ClientMetadata": { - "shape": "S17" - } + "GetCSVHeaderRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are to be imported into.

" } }, - "output": { - "type": "structure", - "members": { - "ChallengeName": {}, - "Session": {}, - "ChallengeParameters": { - "shape": "S1b" - }, - "AuthenticationResult": { - "shape": "S1c" - } + "documentation":"

Represents the request to get the header information for the .csv file for the user import job.

" + }, + "GetCSVHeaderResponse":{ + "type":"structure", + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are to be imported into.

" + }, + "CSVHeader":{ + "shape":"ListOfStringTypes", + "documentation":"

The header information for the .csv file for the user import job.

" } - } + }, + "documentation":"

Represents the response from the server to the request to get the header information for the .csv file for the user import job.

" }, - "AdminListDevices": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - }, - "Limit": { - "type": "integer" - }, - "PaginationToken": {} + "GetDeviceRequest":{ + "type":"structure", + "required":["DeviceKey"], + "members":{ + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token.

" } }, - "output": { - "type": "structure", - "members": { - "Devices": { - "shape": "S1k" - }, - "PaginationToken": {} + "documentation":"

Represents the request to get the device.

" + }, + "GetDeviceResponse":{ + "type":"structure", + "required":["Device"], + "members":{ + "Device":{ + "shape":"DeviceType", + "documentation":"

The device.

" + } + }, + "documentation":"

Gets the device response.

" + }, + "GetGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "UserPoolId" + ], + "members":{ + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The name of the group.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" } } }, - "AdminResetUserPassword": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "GetGroupResponse":{ + "type":"structure", + "members":{ + "Group":{ + "shape":"GroupType", + "documentation":"

The group object for the group.

" } - }, - "output": { - "type": "structure", - "members": {} } }, - "AdminRespondToAuthChallenge": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "ClientId", - "ChallengeName" - ], - "members": { - "UserPoolId": {}, - "ClientId": { - "shape": "S14" - }, - "ChallengeName": {}, - "ChallengeResponses": { - "shape": "S1o" - }, - "Session": {} + "GetIdentityProviderByIdentifierRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "IdpIdentifier" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "IdpIdentifier":{"shape":"IdpIdentifierType"} + } + }, + "GetIdentityProviderByIdentifierResponse":{ + "type":"structure", + "required":["IdentityProvider"], + "members":{ + "IdentityProvider":{"shape":"IdentityProviderType"} + } + }, + "GetJWKSRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to get JSON Web keys.

" } }, - "output": { - "type": "structure", - "members": { - "ChallengeName": {}, - "Session": {}, - "ChallengeParameters": { - "shape": "S1b" - }, - "AuthenticationResult": { - "shape": "S1c" - } + "documentation":"

Represents the request to get JSON Web keys.

" + }, + "GetJWKSResponse":{ + "type":"structure", + "members":{ + "keys":{ + "shape":"KeyListType", + "documentation":"

The keys in a get JSON Web keys response.

" + }, + "cacheControl":{ + "shape":"StringType", + "documentation":"

The value of the Cache-Control HTTP header field for the JSON Web keys response. For more information on cacheControl, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

" } - } + }, + "documentation":"

Represents the response from the server to get JSON Web keys.

" }, - "AdminSetUserSettings": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username", - "MFAOptions" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - }, - "MFAOptions": { - "shape": "S10" - } + "GetOpenIdConfigurationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to get Open ID configuration information.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

Represents the request to get the Open ID configuration.

" + }, + "GetOpenIdConfigurationResponse":{ + "type":"structure", + "members":{ + "issuer":{ + "shape":"openIdUrlType", + "documentation":"

The issuer of the Open ID configuration response.

" + }, + "jwks_uri":{ + "shape":"openIdUrlType", + "documentation":"

The URI of the JSON Web keys in the server response to get Open ID configuration information.

" + }, + "authorization_endpoint":{ + "shape":"openIdUrlType", + "documentation":"

The authorization endpoint returned by the server response to get the Open ID configuration information.

" + }, + "subject_types_supported":{ + "shape":"openIdListType", + "documentation":"

The subject types supported returned by the server response to get the Open ID configuration information.

" + }, + "response_types_supported":{ + "shape":"openIdListType", + "documentation":"

The response types supported returned by the server response to get the Open ID configuration information.

" + }, + "id_token_signing_alg_values_supported":{ + "shape":"openIdListType", + "documentation":"

The token-signing algorithm values supported returned by the server response to get the Open ID configuration information.

" + } + }, + "documentation":"

Represents the response from the server to get the Open ID configuration information.

" + }, + "GetSigningCertificateRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "GetSigningCertificateResponse":{ + "type":"structure", + "members":{ + "Certificate":{"shape":"StringType"} + } + }, + "GetUICustomizationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"} + } + }, + "GetUICustomizationResponse":{ + "type":"structure", + "required":["UICustomization"], + "members":{ + "UICustomization":{"shape":"UICustomizationType"} } }, - "AdminUpdateDeviceStatus": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username", - "DeviceKey" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - }, - "DeviceKey": {}, - "DeviceRememberedStatus": {} + "GetUserAttributeVerificationCodeRequest":{ + "type":"structure", + "required":[ + "AccessToken", + "AttributeName" + ], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token returned by the server response to get the user attribute verification code.

" + }, + "AttributeName":{ + "shape":"AttributeNameType", + "documentation":"

The attribute name returned by the server response to get the user attribute verification code.

" + } + }, + "documentation":"

Represents the request to get user attribute verification.

" + }, + "GetUserAttributeVerificationCodeResponse":{ + "type":"structure", + "members":{ + "CodeDeliveryDetails":{ + "shape":"CodeDeliveryDetailsType", + "documentation":"

The code delivery details returned by the server in response to the request to get the user attribute verification code.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

The verification code response returned by the server response to get the user attribute verification code.

" + }, + "GetUserPoolMfaConfigRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"} } }, - "AdminUpdateUserAttributes": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username", - "UserAttributes" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - }, - "UserAttributes": { - "shape": "St" - } + "GetUserPoolMfaConfigResponse":{ + "type":"structure", + "members":{ + "SmsMfaConfiguration":{"shape":"SmsMfaConfigType"}, + "SoftwareTokenMfaConfiguration":{"shape":"SoftwareTokenMfaConfigType"}, + "MfaConfiguration":{"shape":"UserPoolMfaType"} + } + }, + "GetUserPoolUIConfigurationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"} + } + }, + "GetUserPoolUIConfigurationResponse":{ + "type":"structure", + "required":["UserPoolUIConfiguration"], + "members":{ + "UserPoolUIConfiguration":{"shape":"UserPoolUIConfigurationType"} + } + }, + "GetUserRequest":{ + "type":"structure", + "required":["AccessToken"], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token returned by the server response to get information about the user.

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

Represents the request to get information about the user.

" }, - "AdminUserGlobalSignOut": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "Username" - ], - "members": { - "UserPoolId": {}, - "Username": { - "shape": "Sd" - } + "GetUserResponse":{ + "type":"structure", + "required":[ + "Username", + "UserAttributes" + ], + "members":{ + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to retrieve from the get user request.

" + }, + "UserAttributes":{ + "shape":"AttributeListType", + "documentation":"

An array of name-value pairs representing user attributes.

" + }, + "MFAOptions":{ + "shape":"MFAOptionListType", + "documentation":"

Specifies the options for MFA (e.g., email or phone number).

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

Represents the response from the server from the request to get information about the user.

" }, - "ChangePassword": { - "input": { - "type": "structure", - "required": [ - "PreviousPassword", - "ProposedPassword" - ], - "members": { - "PreviousPassword": { - "shape": "S20" - }, - "ProposedPassword": { - "shape": "S20" - }, - "AccessToken": { - "shape": "S1d" - } + "GlobalSignOutRequest":{ + "type":"structure", + "required":["AccessToken"], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

Represents the request to sign out all devices.

" + }, + "GlobalSignOutResponse":{ + "type":"structure", + "members":{ }, - "authtype": "none" + "documentation":"

The response to the request to sign out all devices.

" }, - "ConfirmDevice": { - "input": { - "type": "structure", - "required": [ - "AccessToken", - "DeviceKey" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "DeviceKey": {}, - "DeviceSecretVerifierConfig": { - "type": "structure", - "members": { - "PasswordVerifier": {}, - "Salt": {} - } - }, - "DeviceName": {} - } + "GroupExistsException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} }, - "output": { - "type": "structure", - "members": { - "UserConfirmationNecessary": { - "type": "boolean" - } - } - } + "documentation":"

This exception is thrown when Amazon Cognito encounters a group that already exists in the user pool.

", + "exception":true }, - "ConfirmForgotPassword": { - "input": { - "type": "structure", - "required": [ - "ClientId", - "Username", - "ConfirmationCode", - "Password" - ], - "members": { - "ClientId": { - "shape": "S14" - }, - "SecretHash": { - "shape": "S27" - }, - "Username": { - "shape": "Sd" - }, - "ConfirmationCode": {}, - "Password": { - "shape": "S20" - } + "GroupListType":{ + "type":"list", + "member":{"shape":"GroupType"} + }, + "GroupNameType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + }, + "GroupType":{ + "type":"structure", + "members":{ + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The name of the group.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "Description":{ + "shape":"DescriptionType", + "documentation":"

A string containing the description of the group.

" + }, + "RoleArn":{ + "shape":"ArnType", + "documentation":"

The role ARN for the group.

" + }, + "Precedence":{ + "shape":"PrecedenceType", + "documentation":"

A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Groups with higher Precedence values take precedence over groups with lower Precedence values or with null Precedence values.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens.

The default Precedence value is null.

" + }, + "LastModifiedDate":{ + "shape":"DateType", + "documentation":"

The date the group was last modified.

" + }, + "CreationDate":{ + "shape":"DateType", + "documentation":"

The date the group was created.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

The group type.

" + }, + "HexStringType":{ + "type":"string", + "pattern":"^[0-9a-fA-F]+$" + }, + "HttpHeader":{ + "type":"structure", + "members":{ + "headerName":{"shape":"StringType"}, + "headerValue":{"shape":"StringType"} + } + }, + "HttpHeaderList":{ + "type":"list", + "member":{"shape":"HttpHeader"} + }, + "IdentityProviderType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ProviderName":{"shape":"ProviderNameType"}, + "ProviderType":{"shape":"IdentityProviderTypeType"}, + "ProviderDetails":{"shape":"ProviderDetailsType"}, + "AttributeMapping":{"shape":"AttributeMappingType"}, + "IdpIdentifiers":{"shape":"IdpIdentifiersListType"}, + "LastModifiedDate":{"shape":"DateType"}, + "CreationDate":{"shape":"DateType"} + } + }, + "IdentityProviderTypeType":{ + "type":"string", + "enum":[ + "SAML", + "Facebook", + "Google", + "LoginWithAmazon", + "ActiveDirectory" + ] + }, + "IdpIdentifierType":{ + "type":"string", + "max":40, + "min":1, + "pattern":"[\\w\\s+=.@-]+" + }, + "IdpIdentifiersListType":{ + "type":"list", + "member":{"shape":"IdpIdentifierType"}, + "max":50, + "min":0 + }, + "ImageFileType":{"type":"blob"}, + "ImageUrlType":{"type":"string"}, + "InitiateAuthRequest":{ + "type":"structure", + "required":[ + "AuthFlow", + "ClientId" + ], + "members":{ + "AuthFlow":{ + "shape":"AuthFlowType", + "documentation":"

The authentication flow for this call to execute. The API action will depend on this value. For example:

  • REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens.

  • USER_SRP_AUTH will take in USERNAME and SRPA and return the SRP variables to be used for next challenge execution.

Valid values include:

  • USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol.

  • REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token.

  • CUSTOM_AUTH: Custom authentication flow.

ADMIN_NO_SRP_AUTH is not a valid value.

" + }, + "AuthParameters":{ + "shape":"AuthParametersType", + "documentation":"

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

  • For USER_SRP_AUTH: USERNAME (required), SRPA (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY

  • For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY

  • For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY

" + }, + "ClientMetadata":{ + "shape":"ClientMetadataType", + "documentation":"

This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication.

" + }, + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The app client ID.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} }, - "authtype": "none" + "documentation":"

Initiates the authentication request.

" }, - "ConfirmSignUp": { - "input": { - "type": "structure", - "required": [ - "ClientId", - "Username", - "ConfirmationCode" - ], - "members": { - "ClientId": { - "shape": "S14" - }, - "SecretHash": { - "shape": "S27" - }, - "Username": { - "shape": "Sd" - }, - "ConfirmationCode": {}, - "ForceAliasCreation": { - "type": "boolean" - } + "InitiateAuthResponse":{ + "type":"structure", + "members":{ + "ChallengeName":{ + "shape":"ChallengeNameType", + "documentation":"

The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge.

Valid values include the following. Note that all of these challenges require USERNAME and SECRET_HASH (if applicable) in the parameters.

  • SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS.

  • PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations.

  • CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued.

  • DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device.

  • DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only.

  • NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes.

" + }, + "Session":{ + "shape":"SessionType", + "documentation":"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

" + }, + "ChallengeParameters":{ + "shape":"ChallengeParametersType", + "documentation":"

The challenge parameters. These are returned to you in the InitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (RespondToAuthChallenge).

All challenges require USERNAME and SECRET_HASH (if applicable).

" + }, + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

Initiates the authentication response.

" + }, + "IntegerType":{"type":"integer"}, + "InternalErrorException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when Amazon Cognito throws an internal error exception.

" + } }, - "authtype": "none" + "documentation":"

This exception is thrown when Amazon Cognito encounters an internal error.

", + "exception":true, + "fault":true }, - "CreateUserImportJob": { - "input": { - "type": "structure", - "required": [ - "JobName", - "UserPoolId", - "CloudWatchLogsRoleArn" - ], - "members": { - "JobName": {}, - "UserPoolId": {}, - "CloudWatchLogsRoleArn": {} + "InvalidEmailRoleAccessPolicyException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when you have an unverified email address or the identity policy is not set on an email address that Amazon Cognito can access.

" } }, - "output": { - "type": "structure", - "members": { - "UserImportJob": { - "shape": "S2h" - } + "documentation":"

This exception is thrown when Amazon Cognito is not allowed to use your email identity. HTTP status code: 400.

", + "exception":true + }, + "InvalidLambdaResponseException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service throws an invalid AWS Lambda response exception.

" } - } + }, + "documentation":"

This exception is thrown when the Amazon Cognito service encounters an invalid AWS Lambda response.

", + "exception":true }, - "CreateUserPool": { - "input": { - "type": "structure", - "required": [ - "PoolName" - ], - "members": { - "PoolName": {}, - "Policies": { - "shape": "S2p" - }, - "LambdaConfig": { - "shape": "S2s" - }, - "AutoVerifiedAttributes": { - "shape": "S2t" - }, - "AliasAttributes": { - "shape": "S2v" - }, - "SmsVerificationMessage": {}, - "EmailVerificationMessage": {}, - "EmailVerificationSubject": {}, - "SmsAuthenticationMessage": {}, - "MfaConfiguration": {}, - "DeviceConfiguration": { - "shape": "S31" - }, - "EmailConfiguration": { - "shape": "S32" - }, - "SmsConfiguration": { - "shape": "S34" - } + "InvalidOAuthFlowException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "InvalidParameterException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service throws an invalid parameter exception.

" } }, - "output": { - "type": "structure", - "members": { - "UserPool": { - "shape": "S36" - } + "documentation":"

This exception is thrown when the Amazon Cognito service encounters an invalid parameter.

", + "exception":true + }, + "InvalidPasswordException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service throws an invalid user password exception.

" } - } + }, + "documentation":"

This exception is thrown when the Amazon Cognito service encounters an invalid password.

", + "exception":true }, - "CreateUserPoolClient": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "ClientName" - ], - "members": { - "UserPoolId": {}, - "ClientName": {}, - "GenerateSecret": { - "type": "boolean" - }, - "RefreshTokenValidity": { - "type": "integer" - }, - "ReadAttributes": { - "shape": "S3d" - }, - "WriteAttributes": { - "shape": "S3d" - }, - "ExplicitAuthFlows": { - "shape": "S3f" - } + "InvalidSmsRoleAccessPolicyException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message retuned when the invalid SMS role access policy exception is thrown.

" } }, - "output": { - "type": "structure", - "members": { - "UserPoolClient": { - "shape": "S3i" - } + "documentation":"

This exception is returned when the role provided for SMS configuration does not have permission to publish using Amazon SNS.

", + "exception":true + }, + "InvalidSmsRoleTrustRelationshipException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the role trust relationship for the SMS message is invalid.

" } - } + }, + "documentation":"

This exception is thrown when the trust relationship is invalid for the role provided for SMS configuration. This can happen if you do not trust cognito-idp.amazonaws.com or the external ID provided in the role does not match what is provided in the SMS configuration for the user pool.

", + "exception":true }, - "DeleteUser": { - "input": { - "type": "structure", - "members": { - "AccessToken": { - "shape": "S1d" - } + "InvalidUserPoolConfigurationException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the user pool configuration is invalid.

" } }, - "authtype": "none" + "documentation":"

This exception is thrown when the user pool configuration is invalid.

", + "exception":true }, - "DeleteUserAttributes": { - "input": { - "type": "structure", - "required": [ - "UserAttributeNames" - ], - "members": { - "UserAttributeNames": { - "shape": "Sh" - }, - "AccessToken": { - "shape": "S1d" - } + "KeyListType":{ + "type":"list", + "member":{"shape":"KeyType"} + }, + "KeyType":{ + "type":"structure", + "members":{ + "kty":{ + "shape":"StringType", + "documentation":"

A \"kty\" key type parameter. For more information, see JSON Web Key (JWK) Format.

" + }, + "alg":{ + "shape":"StringType", + "documentation":"

A \"kty\" (Key Type) parameter. For more information, see \"kty\" (Key Type) Parameter.

" + }, + "use":{ + "shape":"StringType", + "documentation":"

A \"use\" (Public Key Use) parameter. For more information, see \"use\" (Public Key Use) Parameter.

" + }, + "kid":{ + "shape":"StringType", + "documentation":"

A \"kid\" (Key ID) parameter. For more information, see \"kid\" (Key ID) Parameter.

" + }, + "n":{ + "shape":"StringType", + "documentation":"

An \"n\" parameter.

" + }, + "e":{ + "shape":"StringType", + "documentation":"

An \"e\" parameter.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

A JSON Web Key key type in JSON Web Key (JWK) Format.

" + }, + "LambdaConfigType":{ + "type":"structure", + "members":{ + "PreSignUp":{ + "shape":"ArnType", + "documentation":"

A pre-registration AWS Lambda trigger.

" + }, + "CustomMessage":{ + "shape":"ArnType", + "documentation":"

A custom Message AWS Lambda trigger.

" + }, + "PostConfirmation":{ + "shape":"ArnType", + "documentation":"

A post-confirmation AWS Lambda trigger.

" + }, + "PreAuthentication":{ + "shape":"ArnType", + "documentation":"

A pre-authentication AWS Lambda trigger.

" + }, + "PostAuthentication":{ + "shape":"ArnType", + "documentation":"

A post-authentication AWS Lambda trigger.

" + }, + "DefineAuthChallenge":{ + "shape":"ArnType", + "documentation":"

Defines the authentication challenge.

" + }, + "CreateAuthChallenge":{ + "shape":"ArnType", + "documentation":"

Creates an authentication challenge.

" + }, + "VerifyAuthChallengeResponse":{ + "shape":"ArnType", + "documentation":"

Verifies the authentication challenge response.

" + }, + "PreTokenGeneration":{"shape":"ArnType"} }, - "authtype": "none" + "documentation":"

Specifies the type of configuration for AWS Lambda triggers.

" }, - "DeleteUserPool": { - "input": { - "type": "structure", - "required": [ - "UserPoolId" - ], - "members": { - "UserPoolId": {} + "LimitExceededException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when Amazon Cognito throws a limit exceeded exception.

" } - } + }, + "documentation":"

This exception is thrown when a user exceeds the limit for a requested AWS resource.

", + "exception":true }, - "DeleteUserPoolClient": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "ClientId" - ], - "members": { - "UserPoolId": {}, - "ClientId": { - "shape": "S14" - } + "ListDevicesRequest":{ + "type":"structure", + "required":["AccessToken"], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access tokens for the request to list devices.

" + }, + "Limit":{ + "shape":"QueryLimitType", + "documentation":"

The limit of the device request.

" + }, + "PaginationToken":{ + "shape":"SearchPaginationTokenType", + "documentation":"

The pagination token for the list request.

" } - } + }, + "documentation":"

Represents the request to list the devices.

" }, - "DescribeUserImportJob": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "JobId" - ], - "members": { - "UserPoolId": {}, - "JobId": {} + "ListDevicesResponse":{ + "type":"structure", + "members":{ + "Devices":{ + "shape":"DeviceListType", + "documentation":"

The devices returned in the list devices response.

" + }, + "PaginationToken":{ + "shape":"SearchPaginationTokenType", + "documentation":"

The pagination token for the list device response.

" } }, - "output": { - "type": "structure", - "members": { - "UserImportJob": { - "shape": "S2h" - } + "documentation":"

Represents the response to list devices.

" + }, + "ListGroupsRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "Limit":{ + "shape":"QueryLimitType", + "documentation":"

The limit of the request to list groups.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } } }, - "DescribeUserPool": { - "input": { - "type": "structure", - "required": [ - "UserPoolId" - ], - "members": { - "UserPoolId": {} - } - }, - "output": { - "type": "structure", - "members": { - "UserPool": { - "shape": "S36" - } + "ListGroupsResponse":{ + "type":"structure", + "members":{ + "Groups":{ + "shape":"GroupListType", + "documentation":"

The group objects for the groups.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } } }, - "DescribeUserPoolClient": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "ClientId" - ], - "members": { - "UserPoolId": {}, - "ClientId": { - "shape": "S14" - } + "ListIdentityProvidersRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "MaxResults":{"shape":"ListProvidersLimitType"}, + "NextToken":{"shape":"PaginationKeyType"} + } + }, + "ListIdentityProvidersResponse":{ + "type":"structure", + "required":["Providers"], + "members":{ + "Providers":{"shape":"ProvidersListType"}, + "NextToken":{"shape":"PaginationKeyType"} + } + }, + "ListOfStringTypes":{ + "type":"list", + "member":{"shape":"StringType"} + }, + "ListProvidersLimitType":{ + "type":"integer", + "max":60, + "min":1 + }, + "ListResourceServersLimitType":{ + "type":"integer", + "max":50, + "min":1 + }, + "ListResourceServersRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "MaxResults":{"shape":"ListResourceServersLimitType"}, + "NextToken":{"shape":"PaginationKeyType"} + } + }, + "ListResourceServersResponse":{ + "type":"structure", + "required":["ResourceServers"], + "members":{ + "ResourceServers":{"shape":"ResourceServersListType"}, + "NextToken":{"shape":"PaginationKeyType"} + } + }, + "ListUserImportJobsRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "MaxResults" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are being imported into.

" + }, + "MaxResults":{ + "shape":"PoolQueryLimitType", + "documentation":"

The maximum number of import jobs you want the request to return.

" + }, + "PaginationToken":{ + "shape":"PaginationKeyType", + "documentation":"

An identifier that was returned from the previous call to ListUserImportJobs, which can be used to return the next set of import jobs in the list.

" } }, - "output": { - "type": "structure", - "members": { - "UserPoolClient": { - "shape": "S3i" - } + "documentation":"

Represents the request to list the user import jobs.

" + }, + "ListUserImportJobsResponse":{ + "type":"structure", + "members":{ + "UserImportJobs":{ + "shape":"UserImportJobsListType", + "documentation":"

The user import jobs.

" + }, + "PaginationToken":{ + "shape":"PaginationKeyType", + "documentation":"

An identifier that can be used to return the next set of user import jobs in the list.

" } - } + }, + "documentation":"

Represents the response from the server to the request to list the user import jobs.

" }, - "ForgetDevice": { - "input": { - "type": "structure", - "required": [ - "DeviceKey" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "DeviceKey": {} + "ListUserPoolClientsRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to list user pool clients.

" + }, + "MaxResults":{ + "shape":"QueryLimit", + "documentation":"

The maximum number of results you want the request to return when listing the user pool clients.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } - } + }, + "documentation":"

Represents the request to list the user pool clients.

" }, - "ForgotPassword": { - "input": { - "type": "structure", - "required": [ - "ClientId", - "Username" - ], - "members": { - "ClientId": { - "shape": "S14" - }, - "SecretHash": { - "shape": "S27" - }, - "Username": { - "shape": "Sd" - } + "ListUserPoolClientsResponse":{ + "type":"structure", + "members":{ + "UserPoolClients":{ + "shape":"UserPoolClientListType", + "documentation":"

The user pool clients in the response that lists user pool clients.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } }, - "output": { - "type": "structure", - "members": { - "CodeDeliveryDetails": { - "shape": "S3y" - } + "documentation":"

Represents the response from the server that lists user pool clients.

" + }, + "ListUserPoolsRequest":{ + "type":"structure", + "required":["MaxResults"], + "members":{ + "NextToken":{ + "shape":"PaginationKeyType", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" + }, + "MaxResults":{ + "shape":"PoolQueryLimitType", + "documentation":"

The maximum number of results you want the request to return when listing the user pools.

" } }, - "authtype": "none" + "documentation":"

Represents the request to list user pools.

" }, - "GetCSVHeader": { - "input": { - "type": "structure", - "required": [ - "UserPoolId" - ], - "members": { - "UserPoolId": {} + "ListUserPoolsResponse":{ + "type":"structure", + "members":{ + "UserPools":{ + "shape":"UserPoolListType", + "documentation":"

The user pools from the response to list users.

" + }, + "NextToken":{ + "shape":"PaginationKeyType", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } }, - "output": { - "type": "structure", - "members": { - "UserPoolId": {}, - "CSVHeader": { - "type": "list", - "member": {} - } + "documentation":"

Represents the response to list user pools.

" + }, + "ListUsersInGroupRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "GroupName" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" + }, + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The name of the group.

" + }, + "Limit":{ + "shape":"QueryLimitType", + "documentation":"

The limit of the request to list users.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } } }, - "GetDevice": { - "input": { - "type": "structure", - "required": [ - "DeviceKey" - ], - "members": { - "DeviceKey": {}, - "AccessToken": { - "shape": "S1d" - } - } - }, - "output": { - "type": "structure", - "required": [ - "Device" - ], - "members": { - "Device": { - "shape": "Ss" - } + "ListUsersInGroupResponse":{ + "type":"structure", + "members":{ + "Users":{ + "shape":"UsersListType", + "documentation":"

The users returned in the request to list users.

" + }, + "NextToken":{ + "shape":"PaginationKey", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } } }, - "GetUser": { - "input": { - "type": "structure", - "members": { - "AccessToken": { - "shape": "S1d" - } + "ListUsersRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool on which the search should be performed.

" + }, + "AttributesToGet":{ + "shape":"SearchedAttributeNamesListType", + "documentation":"

An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is empty, all attributes are returned.

" + }, + "Limit":{ + "shape":"QueryLimitType", + "documentation":"

Maximum number of users to be returned.

" + }, + "PaginationToken":{ + "shape":"SearchPaginationTokenType", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" + }, + "Filter":{ + "shape":"UserFilterType", + "documentation":"

A filter string of the form \"AttributeName Filter-Type \"AttributeValue\"\". Quotation marks within the filter string must be escaped using the backslash (\\) character. For example, \"family_name = \\\"Reddy\\\"\".

  • AttributeName: The name of the attribute to search for. You can only search for one attribute at a time.

  • Filter-Type: For an exact match, use =, for example, \"given_name = \\\"Jon\\\"\". For a prefix (\"starts with\") match, use ^=, for example, \"given_name ^= \\\"Jon\\\"\".

  • AttributeValue: The attribute value that must be matched for each user.

If the filter string is empty, ListUsers returns all users in the user pool.

You can only search for the following standard attributes:

  • username (case-sensitive)

  • email

  • phone_number

  • name

  • given_name

  • family_name

  • preferred_username

  • cognito:user_status (called Enabled in the Console) (case-sensitive)

  • status (case-insensitive)

Custom attributes are not searchable.

For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide.

" } }, - "output": { - "type": "structure", - "required": [ - "Username", - "UserAttributes" - ], - "members": { - "Username": { - "shape": "Sd" - }, - "UserAttributes": { - "shape": "St" - }, - "MFAOptions": { - "shape": "S10" - } + "documentation":"

Represents the request to list users.

" + }, + "ListUsersResponse":{ + "type":"structure", + "members":{ + "Users":{ + "shape":"UsersListType", + "documentation":"

The users returned in the request to list users.

" + }, + "PaginationToken":{ + "shape":"SearchPaginationTokenType", + "documentation":"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

" } }, - "authtype": "none" + "documentation":"

The response from the request to list users.

" }, - "GetUserAttributeVerificationCode": { - "input": { - "type": "structure", - "required": [ - "AttributeName" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "AttributeName": {} + "LogoutURLsListType":{ + "type":"list", + "member":{"shape":"RedirectUrlType"}, + "max":100, + "min":0 + }, + "LongType":{"type":"long"}, + "MFAMethodNotFoundException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when Amazon Cognito throws an MFA method not found exception.

" } }, - "output": { - "type": "structure", - "members": { - "CodeDeliveryDetails": { - "shape": "S3y" - } + "documentation":"

This exception is thrown when Amazon Cognito cannot find a multi-factor authentication (MFA) method.

", + "exception":true + }, + "MFAOptionListType":{ + "type":"list", + "member":{"shape":"MFAOptionType"} + }, + "MFAOptionType":{ + "type":"structure", + "members":{ + "DeliveryMedium":{ + "shape":"DeliveryMediumType", + "documentation":"

The delivery medium (email message or SMS message) to send the MFA code.

" + }, + "AttributeName":{ + "shape":"AttributeNameType", + "documentation":"

The attribute name of the MFA option type.

" } }, - "authtype": "none" + "documentation":"

Specifies the different settings for multi-factor authentication (MFA).

" }, - "GlobalSignOut": { - "input": { - "type": "structure", - "members": { - "AccessToken": { - "shape": "S1d" - } + "MessageActionType":{ + "type":"string", + "enum":[ + "RESEND", + "SUPPRESS" + ] + }, + "MessageTemplateType":{ + "type":"structure", + "members":{ + "SMSMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

The message template for SMS messages.

" + }, + "EmailMessage":{ + "shape":"EmailVerificationMessageType", + "documentation":"

The message template for email messages.

" + }, + "EmailSubject":{ + "shape":"EmailVerificationSubjectType", + "documentation":"

The subject line for email messages.

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

The message template structure.

" }, - "InitiateAuth": { - "input": { - "type": "structure", - "required": [ - "AuthFlow", - "ClientId" - ], - "members": { - "AuthFlow": {}, - "AuthParameters": { - "shape": "S16" - }, - "ClientMetadata": { - "shape": "S17" - }, - "ClientId": { - "shape": "S14" - } + "MessageType":{"type":"string"}, + "NewDeviceMetadataType":{ + "type":"structure", + "members":{ + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "DeviceGroupKey":{ + "shape":"StringType", + "documentation":"

The device group key.

" } }, - "output": { - "type": "structure", - "members": { - "ChallengeName": {}, - "Session": {}, - "ChallengeParameters": { - "shape": "S1b" - }, - "AuthenticationResult": { - "shape": "S1c" - } + "documentation":"

The new device metadata type.

" + }, + "NotAuthorizedException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service returns a not authorized exception.

" } + }, + "documentation":"

This exception gets thrown when a user is not authorized.

", + "exception":true + }, + "NotifyConfigurationType":{ + "type":"structure", + "required":["SourceArn"], + "members":{ + "From":{"shape":"StringType"}, + "ReplyTo":{"shape":"StringType"}, + "SourceArn":{"shape":"ArnType"}, + "BlockEmail":{"shape":"NotifyEmailType"}, + "NoActionEmail":{"shape":"NotifyEmailType"}, + "MfaEmail":{"shape":"NotifyEmailType"} } }, - "ListDevices": { - "input": { - "type": "structure", - "required": [ - "AccessToken" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "Limit": { - "type": "integer" - }, - "PaginationToken": {} + "NotifyEmailType":{ + "type":"structure", + "required":["Subject"], + "members":{ + "Subject":{"shape":"EmailNotificationSubjectType"}, + "HtmlBody":{"shape":"EmailNotificationBodyType"}, + "TextBody":{"shape":"EmailNotificationBodyType"} + } + }, + "NumberAttributeConstraintsType":{ + "type":"structure", + "members":{ + "MinValue":{ + "shape":"StringType", + "documentation":"

The minimum value of an attribute that is of the number data type.

" + }, + "MaxValue":{ + "shape":"StringType", + "documentation":"

The maximum value of an attribute that is of the number data type.

" } }, - "output": { - "type": "structure", - "members": { - "Devices": { - "shape": "S1k" - }, - "PaginationToken": {} - } - } + "documentation":"

The minimum and maximum value of an attribute that is of the number data type.

" }, - "ListUserImportJobs": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "MaxResults" - ], - "members": { - "UserPoolId": {}, - "MaxResults": { - "type": "integer" - }, - "PaginationToken": {} + "OAuthFlowType":{ + "type":"string", + "enum":[ + "code", + "implicit", + "client_credentials" + ] + }, + "OAuthFlowsType":{ + "type":"list", + "member":{"shape":"OAuthFlowType"}, + "max":3, + "min":0 + }, + "PaginationKey":{ + "type":"string", + "min":1, + "pattern":"[\\S]+" + }, + "PaginationKeyType":{ + "type":"string", + "min":1, + "pattern":"[\\S]+" + }, + "PasswordClaimType":{ + "type":"structure", + "members":{ + "SecretBlock":{ + "shape":"BlobType", + "documentation":"

A secret block claim type for a password.

" + }, + "Signature":{ + "shape":"BlobType", + "documentation":"

A signature claim type for a password.

" } }, - "output": { - "type": "structure", - "members": { - "UserImportJobs": { - "type": "list", - "member": { - "shape": "S2h" - } - }, - "PaginationToken": {} + "documentation":"

The claim type of a password.

", + "sensitive":true + }, + "PasswordPolicyMinLengthType":{ + "type":"integer", + "max":99, + "min":6 + }, + "PasswordPolicyType":{ + "type":"structure", + "members":{ + "MinimumLength":{ + "shape":"PasswordPolicyMinLengthType", + "documentation":"

The minimum length of the password policy that you have set. Cannot be less than 6.

" + }, + "RequireUppercase":{ + "shape":"BooleanType", + "documentation":"

In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password.

" + }, + "RequireLowercase":{ + "shape":"BooleanType", + "documentation":"

In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password.

" + }, + "RequireNumbers":{ + "shape":"BooleanType", + "documentation":"

In the password policy that you have set, refers to whether you have required users to use at least one number in their password.

" + }, + "RequireSymbols":{ + "shape":"BooleanType", + "documentation":"

In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password.

" } - } + }, + "documentation":"

The password policy type.

" }, - "ListUserPoolClients": { - "input": { - "type": "structure", - "required": [ - "UserPoolId" - ], - "members": { - "UserPoolId": {}, - "MaxResults": { - "type": "integer" - }, - "NextToken": {} + "PasswordResetRequiredException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when a password reset is required.

" } }, - "output": { - "type": "structure", - "members": { - "UserPoolClients": { - "type": "list", - "member": { - "type": "structure", - "members": { - "ClientId": { - "shape": "S14" - }, - "UserPoolId": {}, - "ClientName": {} - } - } - }, - "NextToken": {} + "documentation":"

This exception is thrown when a password reset is required.

", + "exception":true + }, + "PasswordType":{ + "type":"string", + "max":256, + "min":6, + "pattern":"[\\S]+", + "sensitive":true + }, + "PoolQueryLimitType":{ + "type":"integer", + "max":60, + "min":1 + }, + "PreSignedUrlType":{ + "type":"string", + "max":2048, + "min":0 + }, + "PrecedenceType":{ + "type":"integer", + "min":0 + }, + "PreconditionNotMetException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when a precondition is not met.

" } + }, + "documentation":"

This exception is thrown when a precondition is not met.

", + "exception":true + }, + "ProviderDescription":{ + "type":"structure", + "members":{ + "ProviderName":{"shape":"ProviderNameType"}, + "ProviderType":{"shape":"IdentityProviderTypeType"}, + "LastModifiedDate":{"shape":"DateType"}, + "CreationDate":{"shape":"DateType"} } }, - "ListUserPools": { - "input": { - "type": "structure", - "required": [ - "MaxResults" - ], - "members": { - "NextToken": {}, - "MaxResults": { - "type": "integer" - } - } + "ProviderDetailsType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "ProviderNameType":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + }, + "ProviderNameTypeV1":{ + "type":"string", + "max":32, + "min":1, + "pattern":"[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+" + }, + "ProviderUserIdentifierType":{ + "type":"structure", + "members":{ + "ProviderName":{"shape":"ProviderNameType"}, + "ProviderAttributeName":{"shape":"StringType"}, + "ProviderAttributeValue":{"shape":"StringType"} + } + }, + "ProvidersListType":{ + "type":"list", + "member":{"shape":"ProviderDescription"}, + "max":50, + "min":0 + }, + "QueryLimit":{ + "type":"integer", + "max":60, + "min":1 + }, + "QueryLimitType":{ + "type":"integer", + "max":60, + "min":0 + }, + "RedirectUrlType":{ + "type":"string", + "max":1024, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+" + }, + "RefreshTokenValidityType":{ + "type":"integer", + "max":3650, + "min":0 + }, + "RefreshTokensRequest":{ + "type":"structure", + "required":[ + "ClientId", + "RefreshToken" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "ClientSecret":{ + "shape":"ClientSecretType", + "documentation":"

The client secret for a user's request to refresh tokens.

" + }, + "RefreshToken":{ + "shape":"TokenModelType", + "documentation":"

The refresh token for a user's request to refresh tokens.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} }, - "output": { - "type": "structure", - "members": { - "UserPools": { - "type": "list", - "member": { - "type": "structure", - "members": { - "Id": {}, - "Name": {}, - "LambdaConfig": { - "shape": "S2s" - }, - "Status": {}, - "LastModifiedDate": { - "type": "timestamp" - }, - "CreationDate": { - "type": "timestamp" - } - } - } - }, - "NextToken": {} + "documentation":"

Represents the request to refresh tokens.

" + }, + "RefreshTokensResponse":{ + "type":"structure", + "members":{ + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The authentication result from the server's response to the request to refresh tokens.

" } - } + }, + "documentation":"

Represents the response from the server when the user wants to refresh tokens.

" + }, + "ResendConfirmationCodeRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "UserContextData":{"shape":"UserContextDataType"}, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user to whom you wish to resend a confirmation code.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"} + }, + "documentation":"

Represents the request to resend the confirmation code.

" }, - "ListUsers": { - "input": { - "type": "structure", - "required": [ - "UserPoolId" - ], - "members": { - "UserPoolId": {}, - "AttributesToGet": { - "type": "list", - "member": {} - }, - "Limit": { - "type": "integer" - }, - "PaginationToken": {}, - "Filter": {} + "ResendConfirmationCodeResponse":{ + "type":"structure", + "members":{ + "CodeDeliveryDetails":{ + "shape":"CodeDeliveryDetailsType", + "documentation":"

The code delivery details returned by the server in response to the request to resend the confirmation code.

" } }, - "output": { - "type": "structure", - "members": { - "Users": { - "type": "list", - "member": { - "type": "structure", - "members": { - "Username": { - "shape": "Sd" - }, - "Attributes": { - "shape": "St" - }, - "UserCreateDate": { - "type": "timestamp" - }, - "UserLastModifiedDate": { - "type": "timestamp" - }, - "Enabled": { - "type": "boolean" - }, - "UserStatus": {} - } - } - }, - "PaginationToken": {} + "documentation":"

The response from the server when the Amazon Cognito Your User Pools service makes the request to resend a confirmation code.

" + }, + "ResourceNotFoundException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service returns a resource not found exception.

" } + }, + "documentation":"

This exception is thrown when the Amazon Cognito service cannot find the requested resource.

", + "exception":true + }, + "ResourceServerIdentifierType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\x21\\x23-\\x5B\\x5D-\\x7E]+" + }, + "ResourceServerNameType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\w\\s+=,.@-]+" + }, + "ResourceServerScopeDescriptionType":{ + "type":"string", + "max":256, + "min":1 + }, + "ResourceServerScopeListType":{ + "type":"list", + "member":{"shape":"ResourceServerScopeType"}, + "max":25 + }, + "ResourceServerScopeNameType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+" + }, + "ResourceServerScopeType":{ + "type":"structure", + "required":[ + "ScopeName", + "ScopeDescription" + ], + "members":{ + "ScopeName":{"shape":"ResourceServerScopeNameType"}, + "ScopeDescription":{"shape":"ResourceServerScopeDescriptionType"} } }, - "ResendConfirmationCode": { - "input": { - "type": "structure", - "required": [ - "ClientId", - "Username" - ], - "members": { - "ClientId": { - "shape": "S14" - }, - "SecretHash": { - "shape": "S27" - }, - "Username": { - "shape": "Sd" - } - } + "ResourceServerType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"}, + "Name":{"shape":"ResourceServerNameType"}, + "Scopes":{"shape":"ResourceServerScopeListType"} + } + }, + "ResourceServersListType":{ + "type":"list", + "member":{"shape":"ResourceServerType"} + }, + "RespondToAuthChallengeRequest":{ + "type":"structure", + "required":[ + "ClientId", + "ChallengeName" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The app client ID.

" + }, + "ChallengeName":{ + "shape":"ChallengeNameType", + "documentation":"

The challenge name. For more information, see InitiateAuth.

ADMIN_NO_SRP_AUTH is not a valid value.

" + }, + "Session":{ + "shape":"SessionType", + "documentation":"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

" + }, + "ChallengeResponses":{ + "shape":"ChallengeResponsesType", + "documentation":"

The challenge responses. These are inputs corresponding to the value of ChallengeName, for example:

  • SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret).

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} }, - "output": { - "type": "structure", - "members": { - "CodeDeliveryDetails": { - "shape": "S3y" - } + "documentation":"

The request to respond to an authentication challenge.

" + }, + "RespondToAuthChallengeResponse":{ + "type":"structure", + "members":{ + "ChallengeName":{ + "shape":"ChallengeNameType", + "documentation":"

The challenge name. For more information, see InitiateAuth.

" + }, + "Session":{ + "shape":"SessionType", + "documentation":"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

" + }, + "ChallengeParameters":{ + "shape":"ChallengeParametersType", + "documentation":"

The challenge parameters. For more information, see InitiateAuth.

" + }, + "AuthenticationResult":{ + "shape":"AuthenticationResultType", + "documentation":"

The result returned by the server in response to the request to respond to the authentication challenge.

" } }, - "authtype": "none" + "documentation":"

The response to respond to the authentication challenge.

" }, - "RespondToAuthChallenge": { - "input": { - "type": "structure", - "required": [ - "ClientId", - "ChallengeName" - ], - "members": { - "ClientId": { - "shape": "S14" - }, - "ChallengeName": {}, - "Session": {}, - "ChallengeResponses": { - "shape": "S1o" - } + "RiskConfigurationType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"}, + "CompromisedCredentialsRiskConfiguration":{"shape":"CompromisedCredentialsRiskConfigurationType"}, + "BotRiskConfiguration":{"shape":"BotRiskConfigurationType"}, + "AccountTakeoverRiskConfiguration":{"shape":"AccountTakeoverRiskConfigurationType"}, + "RiskExceptionConfiguration":{"shape":"RiskExceptionConfigurationType"}, + "LastModifiedDate":{"shape":"DateType"} + } + }, + "RiskDecisionType":{ + "type":"string", + "enum":[ + "NoRisk", + "Bot", + "AccountTakeover" + ] + }, + "RiskExceptionConfigurationType":{ + "type":"structure", + "members":{ + "BlockedIPRangeList":{"shape":"BlockedIPRangeListType"}, + "SkippedIPRangeList":{"shape":"SkippedIPRangeListType"} + } + }, + "RiskLevelType":{ + "type":"string", + "enum":[ + "Low", + "Medium", + "High" + ] + }, + "S3BucketType":{ + "type":"string", + "max":1024, + "min":3, + "pattern":"^[0-9A-Za-z\\.\\-_]*(?A schema attribute of the name type.

" + }, + "AttributeDataType":{ + "shape":"AttributeDataType", + "documentation":"

The attribute data type.

" + }, + "DeveloperOnlyAttribute":{ + "shape":"BooleanType", + "documentation":"

Specifies whether the attribute type is developer only.

", + "box":true + }, + "Mutable":{ + "shape":"BooleanType", + "documentation":"

Specifies whether the attribute can be changed once it has been created.

", + "box":true + }, + "Required":{ + "shape":"BooleanType", + "documentation":"

Specifies whether a user pool attribute is required. If the attribute is required and the user does not provide a value, registration or sign-in will fail.

", + "box":true + }, + "NumberAttributeConstraints":{ + "shape":"NumberAttributeConstraintsType", + "documentation":"

Specifies the constraints for an attribute of the number type.

" + }, + "StringAttributeConstraints":{ + "shape":"StringAttributeConstraintsType", + "documentation":"

Specifies the constraints for an attribute of the string type.

" } }, - "output": { - "type": "structure", - "members": { - "ChallengeName": {}, - "Session": {}, - "ChallengeParameters": { - "shape": "S1b" - }, - "AuthenticationResult": { - "shape": "S1c" - } - } + "documentation":"

Contains information about the schema attribute.

" + }, + "SchemaAttributesListType":{ + "type":"list", + "member":{"shape":"SchemaAttributeType"}, + "max":50, + "min":1 + }, + "ScopeDoesNotExistException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "ScopeListType":{ + "type":"list", + "member":{"shape":"ScopeType"}, + "max":25 + }, + "ScopeType":{ + "type":"string", + "max":256, + "min":1, + "pattern":"[\\x21\\x23-\\x5B\\x5D-\\x7E]+" + }, + "SearchPaginationTokenType":{ + "type":"string", + "min":1, + "pattern":"[\\S]+" + }, + "SearchedAttributeNamesListType":{ + "type":"list", + "member":{"shape":"AttributeNameType"} + }, + "SecretCodeType":{ + "type":"string", + "min":16, + "pattern":"[A-Za-z0-9]+", + "sensitive":true + }, + "SecretHashType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w+=/]+", + "sensitive":true + }, + "SessionType":{ + "type":"string", + "max":2048, + "min":20 + }, + "SetRiskConfigurationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"}, + "CompromisedCredentialsRiskConfiguration":{"shape":"CompromisedCredentialsRiskConfigurationType"}, + "BotRiskConfiguration":{"shape":"BotRiskConfigurationType"}, + "AccountTakeoverRiskConfiguration":{"shape":"AccountTakeoverRiskConfigurationType"}, + "RiskExceptionConfiguration":{"shape":"RiskExceptionConfigurationType"} } }, - "SetUserSettings": { - "input": { - "type": "structure", - "required": [ - "AccessToken", - "MFAOptions" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "MFAOptions": { - "shape": "S10" - } + "SetRiskConfigurationResponse":{ + "type":"structure", + "required":["RiskConfiguration"], + "members":{ + "RiskConfiguration":{"shape":"RiskConfigurationType"} + } + }, + "SetUICustomizationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"}, + "CSS":{"shape":"CSSType"}, + "ImageFile":{"shape":"ImageFileType"} + } + }, + "SetUICustomizationResponse":{ + "type":"structure", + "required":["UICustomization"], + "members":{ + "UICustomization":{"shape":"UICustomizationType"} + } + }, + "SetUserMFAPreferenceRequest":{ + "type":"structure", + "required":["AccessToken"], + "members":{ + "SMSMfaSettings":{"shape":"SMSMfaSettingsType"}, + "SoftwareTokenMfaSettings":{"shape":"SoftwareTokenMfaSettingsType"}, + "AccessToken":{"shape":"TokenModelType"} + } + }, + "SetUserMFAPreferenceResponse":{ + "type":"structure", + "members":{ + } + }, + "SetUserPoolMfaConfigRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "SmsMfaConfiguration":{"shape":"SmsMfaConfigType"}, + "SoftwareTokenMfaConfiguration":{"shape":"SoftwareTokenMfaConfigType"}, + "MfaConfiguration":{"shape":"UserPoolMfaType"} + } + }, + "SetUserPoolMfaConfigResponse":{ + "type":"structure", + "members":{ + "SmsMfaConfiguration":{"shape":"SmsMfaConfigType"}, + "SoftwareTokenMfaConfiguration":{"shape":"SoftwareTokenMfaConfigType"}, + "MfaConfiguration":{"shape":"UserPoolMfaType"} + } + }, + "SetUserPoolUIConfigurationRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Details":{"shape":"UIDetailsMapType"} + } + }, + "SetUserPoolUIConfigurationResponse":{ + "type":"structure", + "required":["UserPoolUIConfiguration"], + "members":{ + "UserPoolUIConfiguration":{"shape":"UserPoolUIConfigurationType"} + } + }, + "SetUserSettingsRequest":{ + "type":"structure", + "required":[ + "AccessToken", + "MFAOptions" + ], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token for the set user settings request.

" + }, + "MFAOptions":{ + "shape":"MFAOptionListType", + "documentation":"

Specifies the options for MFA (e.g., email or phone number).

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

Represents the request to set user settings.

" + }, + "SetUserSettingsResponse":{ + "type":"structure", + "members":{ }, - "authtype": "none" + "documentation":"

The response from the server for a set user settings request.

" }, - "SignUp": { - "input": { - "type": "structure", - "required": [ - "ClientId", - "Username", - "Password" - ], - "members": { - "ClientId": { - "shape": "S14" - }, - "SecretHash": { - "shape": "S27" - }, - "Username": { - "shape": "Sd" - }, - "Password": { - "shape": "S20" - }, - "UserAttributes": { - "shape": "St" - }, - "ValidationData": { - "shape": "St" - } - } + "SignUpRequest":{ + "type":"structure", + "required":[ + "ClientId", + "Username", + "Password" + ], + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "SecretHash":{ + "shape":"SecretHashType", + "documentation":"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

" + }, + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to register.

" + }, + "Password":{ + "shape":"PasswordType", + "documentation":"

The password of the user you wish to register.

" + }, + "UserAttributes":{ + "shape":"AttributeListType", + "documentation":"

An array of name-value pairs representing user attributes.

" + }, + "ValidationData":{ + "shape":"AttributeListType", + "documentation":"

The validation data in the request to register a user.

" + }, + "AnalyticsMetadata":{"shape":"AnalyticsMetadataType"}, + "UserContextData":{"shape":"UserContextDataType"} }, - "output": { - "type": "structure", - "members": { - "UserConfirmed": { - "type": "boolean" - }, - "CodeDeliveryDetails": { - "shape": "S3y" - }, - "UserSub": {} - } + "documentation":"

Represents the request to register a user.

" + }, + "SignUpResponse":{ + "type":"structure", + "required":[ + "UserConfirmed", + "UserSub" + ], + "members":{ + "UserConfirmed":{ + "shape":"BooleanType", + "documentation":"

A response from the server indicating that a user registration has been confirmed.

" + }, + "CodeDeliveryDetails":{ + "shape":"CodeDeliveryDetailsType", + "documentation":"

The code delivery details returned by the server response to the user registration request.

" + }, + "UserSub":{"shape":"StringType"} }, - "authtype": "none" + "documentation":"

The response from the server for a registration request.

" }, - "StartUserImportJob": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "JobId" - ], - "members": { - "UserPoolId": {}, - "JobId": {} + "SkippedIPRangeListType":{ + "type":"list", + "member":{"shape":"StringType"}, + "max":20 + }, + "SmsConfigurationType":{ + "type":"structure", + "required":["SnsCallerArn"], + "members":{ + "SnsCallerArn":{ + "shape":"ArnType", + "documentation":"

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller.

" + }, + "ExternalId":{ + "shape":"StringType", + "documentation":"

The external ID.

" } }, - "output": { - "type": "structure", - "members": { - "UserImportJob": { - "shape": "S2h" - } - } + "documentation":"

The SMS configuration type.

" + }, + "SmsMfaConfigType":{ + "type":"structure", + "members":{ + "SmsAuthenticationMessage":{"shape":"SmsVerificationMessageType"}, + "SmsConfiguration":{"shape":"SmsConfigurationType"} } }, - "StopUserImportJob": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "JobId" - ], - "members": { - "UserPoolId": {}, - "JobId": {} + "SmsVerificationMessageType":{ + "type":"string", + "max":140, + "min":6, + "pattern":".*\\{####\\}.*" + }, + "SoftwareTokenMFANotFoundException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "SoftwareTokenMFAUserCodeType":{ + "type":"string", + "max":6, + "min":6, + "pattern":"[0-9]+" + }, + "SoftwareTokenMfaConfigType":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"BooleanType"} + } + }, + "SoftwareTokenMfaSettingsType":{ + "type":"structure", + "members":{ + "Enabled":{"shape":"BooleanType"}, + "PreferredMfa":{"shape":"BooleanType"} + } + }, + "StartUserImportJobRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "JobId" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are being imported into.

" + }, + "JobId":{ + "shape":"UserImportJobIdType", + "documentation":"

The job ID for the user import job.

" } }, - "output": { - "type": "structure", - "members": { - "UserImportJob": { - "shape": "S2h" - } + "documentation":"

Represents the request to start the user import job.

" + }, + "StartUserImportJobResponse":{ + "type":"structure", + "members":{ + "UserImportJob":{ + "shape":"UserImportJobType", + "documentation":"

The job object that represents the user import job.

" } - } + }, + "documentation":"

Represents the response from the server to the request to start the user import job.

" }, - "UpdateDeviceStatus": { - "input": { - "type": "structure", - "required": [ - "AccessToken", - "DeviceKey" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "DeviceKey": {}, - "DeviceRememberedStatus": {} + "StatusType":{ + "type":"string", + "enum":[ + "Enabled", + "Disabled" + ] + }, + "StopUserImportJobRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "JobId" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are being imported into.

" + }, + "JobId":{ + "shape":"UserImportJobIdType", + "documentation":"

The job ID for the user import job.

" } }, - "output": { - "type": "structure", - "members": {} - } + "documentation":"

Represents the request to stop the user import job.

" }, - "UpdateUserAttributes": { - "input": { - "type": "structure", - "required": [ - "UserAttributes" - ], - "members": { - "UserAttributes": { - "shape": "St" - }, - "AccessToken": { - "shape": "S1d" - } + "StopUserImportJobResponse":{ + "type":"structure", + "members":{ + "UserImportJob":{ + "shape":"UserImportJobType", + "documentation":"

The job object that represents the user import job.

" } }, - "output": { - "type": "structure", - "members": { - "CodeDeliveryDetailsList": { - "type": "list", - "member": { - "shape": "S3y" - } - } + "documentation":"

Represents the response from the server to the request to stop the user import job.

" + }, + "StringAttributeConstraintsType":{ + "type":"structure", + "members":{ + "MinLength":{ + "shape":"StringType", + "documentation":"

The minimum length of an attribute value of the string type.

" + }, + "MaxLength":{ + "shape":"StringType", + "documentation":"

The maximum length of an attribute value of the string type.

" } }, - "authtype": "none" + "documentation":"

The type of constraints associated with an attribute of the string type.

" }, - "UpdateUserPool": { - "input": { - "type": "structure", - "required": [ - "UserPoolId" - ], - "members": { - "UserPoolId": {}, - "Policies": { - "shape": "S2p" - }, - "LambdaConfig": { - "shape": "S2s" - }, - "AutoVerifiedAttributes": { - "shape": "S2t" - }, - "SmsVerificationMessage": {}, - "EmailVerificationMessage": {}, - "EmailVerificationSubject": {}, - "SmsAuthenticationMessage": {}, - "MfaConfiguration": {}, - "DeviceConfiguration": { - "shape": "S31" - }, - "EmailConfiguration": { - "shape": "S32" - }, - "SmsConfiguration": { - "shape": "S34" - } + "StringType":{"type":"string"}, + "SupportedIdentityProvidersListType":{ + "type":"list", + "member":{"shape":"ProviderNameType"} + }, + "TokenModelType":{ + "type":"string", + "pattern":"[A-Za-z0-9-_=.]+", + "sensitive":true + }, + "TooManyFailedAttemptsException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service returns a too many failed attempts exception.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

This exception gets thrown when the user has made too many failed attempts for a given action (e.g., sign in).

", + "exception":true + }, + "TooManyRequestsException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service returns a too many requests exception.

" + } + }, + "documentation":"

This exception gets thrown when the user has made too many requests for a given operation.

", + "exception":true + }, + "UICustomizationType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ClientId":{"shape":"ClientIdType"}, + "ImageUrl":{"shape":"ImageUrlType"}, + "CSS":{"shape":"CSSType"}, + "CSSVersion":{"shape":"CSSVersionType"}, + "LastModifiedDate":{"shape":"DateType"}, + "CreationDate":{"shape":"DateType"} } }, - "UpdateUserPoolClient": { - "input": { - "type": "structure", - "required": [ - "UserPoolId", - "ClientId" - ], - "members": { - "UserPoolId": {}, - "ClientId": { - "shape": "S14" - }, - "ClientName": {}, - "RefreshTokenValidity": { - "type": "integer" - }, - "ReadAttributes": { - "shape": "S3d" - }, - "WriteAttributes": { - "shape": "S3d" - }, - "ExplicitAuthFlows": { - "shape": "S3f" - } + "UIDetailsMapType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "UnexpectedLambdaException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service returns an unexpected AWS Lambda exception.

" } }, - "output": { - "type": "structure", - "members": { - "UserPoolClient": { - "shape": "S3i" - } + "documentation":"

This exception gets thrown when the Amazon Cognito service encounters an unexpected exception with the AWS Lambda service.

", + "exception":true + }, + "UnsupportedIdentityProviderException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "UnsupportedUserStateException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the user is in an unsupported state.

" } + }, + "documentation":"

The request failed because the user is in an unsupported state.

", + "exception":true + }, + "UpdateAuthEventFeedbackRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Username", + "EventId", + "FeedbackToken", + "FeedbackValue" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Username":{"shape":"UsernameType"}, + "EventId":{"shape":"EventIdType"}, + "FeedbackToken":{"shape":"TokenModelType"}, + "FeedbackValue":{"shape":"FeedbackValueType"} } }, - "VerifyUserAttribute": { - "input": { - "type": "structure", - "required": [ - "AttributeName", - "Code" - ], - "members": { - "AccessToken": { - "shape": "S1d" - }, - "AttributeName": {}, - "Code": {} + "UpdateAuthEventFeedbackResponse":{ + "type":"structure", + "members":{ + } + }, + "UpdateDeviceStatusRequest":{ + "type":"structure", + "required":[ + "AccessToken", + "DeviceKey" + ], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token.

" + }, + "DeviceKey":{ + "shape":"DeviceKeyType", + "documentation":"

The device key.

" + }, + "DeviceRememberedStatus":{ + "shape":"DeviceRememberedStatusType", + "documentation":"

The status of whether a device is remembered.

" } }, - "output": { - "type": "structure", - "members": {} + "documentation":"

Represents the request to update the device status.

" + }, + "UpdateDeviceStatusResponse":{ + "type":"structure", + "members":{ }, - "authtype": "none" - } - }, - "shapes": { - "S4": { - "type": "structure", - "members": { - "Name": {}, - "AttributeDataType": {}, - "DeveloperOnlyAttribute": { - "type": "boolean" + "documentation":"

The response to the request to update the device status.

" + }, + "UpdateGroupRequest":{ + "type":"structure", + "required":[ + "GroupName", + "UserPoolId" + ], + "members":{ + "GroupName":{ + "shape":"GroupNameType", + "documentation":"

The name of the group.

" }, - "Mutable": { - "type": "boolean" + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool.

" }, - "Required": { - "type": "boolean" + "Description":{ + "shape":"DescriptionType", + "documentation":"

A string containing the new description of the group.

" }, - "NumberAttributeConstraints": { - "type": "structure", - "members": { - "MinValue": {}, - "MaxValue": {} - } + "RoleArn":{ + "shape":"ArnType", + "documentation":"

The new role ARN for the group. This is used for setting the cognito:roles and cognito:preferred_role claims in the token.

" }, - "StringAttributeConstraints": { - "type": "structure", - "members": { - "MinLength": {}, - "MaxLength": {} - } + "Precedence":{ + "shape":"PrecedenceType", + "documentation":"

The new precedence value for the group. For more information about this parameter, see CreateGroup.

" } } }, - "Sd": { - "type": "string", - "sensitive": true - }, - "Sh": { - "type": "list", - "member": {} - }, - "Ss": { - "type": "structure", - "members": { - "DeviceKey": {}, - "DeviceAttributes": { - "shape": "St" - }, - "DeviceCreateDate": { - "type": "timestamp" - }, - "DeviceLastModifiedDate": { - "type": "timestamp" - }, - "DeviceLastAuthenticatedDate": { - "type": "timestamp" + "UpdateGroupResponse":{ + "type":"structure", + "members":{ + "Group":{ + "shape":"GroupType", + "documentation":"

The group object for the group.

" } } }, - "St": { - "type": "list", - "member": { - "type": "structure", - "required": [ - "Name" - ], - "members": { - "Name": {}, - "Value": { - "type": "string", - "sensitive": true - } - } + "UpdateIdentityProviderRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ProviderName" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "ProviderName":{"shape":"ProviderNameType"}, + "ProviderDetails":{"shape":"ProviderDetailsType"}, + "AttributeMapping":{"shape":"AttributeMappingType"}, + "IdpIdentifiers":{"shape":"IdpIdentifiersListType"} } }, - "S10": { - "type": "list", - "member": { - "type": "structure", - "members": { - "DeliveryMedium": {}, - "AttributeName": {} - } + "UpdateIdentityProviderResponse":{ + "type":"structure", + "required":["IdentityProvider"], + "members":{ + "IdentityProvider":{"shape":"IdentityProviderType"} } }, - "S14": { - "type": "string", - "sensitive": true + "UpdateResourceServerRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "Identifier", + "Name" + ], + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Identifier":{"shape":"ResourceServerIdentifierType"}, + "Name":{"shape":"ResourceServerNameType"}, + "Scopes":{"shape":"ResourceServerScopeListType"} + } }, - "S16": { - "type": "map", - "key": {}, - "value": {} + "UpdateResourceServerResponse":{ + "type":"structure", + "required":["ResourceServer"], + "members":{ + "ResourceServer":{"shape":"ResourceServerType"} + } }, - "S17": { - "type": "map", - "key": {}, - "value": {} + "UpdateUserAttributesRequest":{ + "type":"structure", + "required":[ + "UserAttributes", + "AccessToken" + ], + "members":{ + "UserAttributes":{ + "shape":"AttributeListType", + "documentation":"

An array of name-value pairs representing user attributes.

" + }, + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

The access token for the request to update user attributes.

" + } + }, + "documentation":"

Represents the request to update user attributes.

" }, - "S1b": { - "type": "map", - "key": {}, - "value": {} + "UpdateUserAttributesResponse":{ + "type":"structure", + "members":{ + "CodeDeliveryDetailsList":{ + "shape":"CodeDeliveryDetailsListType", + "documentation":"

The code delivery details list from the server for the request to update user attributes.

" + } + }, + "documentation":"

Represents the response from the server for the request to update user attributes.

" }, - "S1c": { - "type": "structure", - "members": { - "AccessToken": { - "shape": "S1d" + "UpdateUserPoolClientRequest":{ + "type":"structure", + "required":[ + "UserPoolId", + "ClientId" + ], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to update the user pool client.

" }, - "ExpiresIn": { - "type": "integer" + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" }, - "TokenType": {}, - "RefreshToken": { - "shape": "S1d" + "ClientName":{ + "shape":"ClientNameType", + "documentation":"

The client name from the update user pool client request.

" }, - "IdToken": { - "shape": "S1d" + "RefreshTokenValidity":{ + "shape":"RefreshTokenValidityType", + "documentation":"

The time limit, in days, after which the refresh token is no longer valid and cannot be used.

" }, - "NewDeviceMetadata": { - "type": "structure", - "members": { - "DeviceKey": {}, - "DeviceGroupKey": {} - } + "ReadAttributes":{ + "shape":"ClientPermissionListType", + "documentation":"

The read-only attributes of the user pool.

" + }, + "WriteAttributes":{ + "shape":"ClientPermissionListType", + "documentation":"

The writeable attributes of the user pool.

" + }, + "ExplicitAuthFlows":{ + "shape":"ExplicitAuthFlowsListType", + "documentation":"

Explicit authentication flows.

" + }, + "SupportedIdentityProviders":{"shape":"SupportedIdentityProvidersListType"}, + "CallbackURLs":{"shape":"CallbackURLsListType"}, + "LogoutURLs":{"shape":"LogoutURLsListType"}, + "DefaultRedirectURI":{"shape":"RedirectUrlType"}, + "AllowedOAuthFlows":{"shape":"OAuthFlowsType"}, + "AllowedOAuthScopes":{"shape":"ScopeListType"}, + "AllowedOAuthFlowsUserPoolClient":{"shape":"BooleanType"}, + "AnalyticsConfiguration":{"shape":"AnalyticsConfigurationType"} + }, + "documentation":"

Represents the request to update the user pool client.

" + }, + "UpdateUserPoolClientResponse":{ + "type":"structure", + "members":{ + "UserPoolClient":{ + "shape":"UserPoolClientType", + "documentation":"

The user pool client value from the response from the server when an update user pool client request is made.

" } - } + }, + "documentation":"

Represents the response from the server to the request to update the user pool client.

" + }, + "UpdateUserPoolRequest":{ + "type":"structure", + "required":["UserPoolId"], + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool you want to update.

" + }, + "Policies":{ + "shape":"UserPoolPolicyType", + "documentation":"

A container with the policies you wish to update in a user pool.

" + }, + "LambdaConfig":{ + "shape":"LambdaConfigType", + "documentation":"

The AWS Lambda configuration information from the request to update the user pool.

" + }, + "AutoVerifiedAttributes":{ + "shape":"VerifiedAttributesListType", + "documentation":"

The attributes that are automatically verified when the Amazon Cognito service makes a request to update user pools.

" + }, + "SmsVerificationMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

A container with information about the SMS verification message.

" + }, + "EmailVerificationMessage":{ + "shape":"EmailVerificationMessageType", + "documentation":"

The contents of the email verification message.

" + }, + "EmailVerificationSubject":{ + "shape":"EmailVerificationSubjectType", + "documentation":"

The subject of the email verification message.

" + }, + "VerificationMessageTemplate":{"shape":"VerificationMessageTemplateType"}, + "SmsAuthenticationMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

The contents of the SMS authentication message.

" + }, + "MfaConfiguration":{ + "shape":"UserPoolMfaType", + "documentation":"

Can be one of the following values:

  • OFF - MFA tokens are not required and cannot be specified during user registration.

  • ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool.

  • OPTIONAL - Users have the option when registering to create an MFA token.

" + }, + "DeviceConfiguration":{ + "shape":"DeviceConfigurationType", + "documentation":"

Device configuration.

" + }, + "EmailConfiguration":{ + "shape":"EmailConfigurationType", + "documentation":"

Email configuration.

" + }, + "SmsConfiguration":{ + "shape":"SmsConfigurationType", + "documentation":"

SMS configuration.

" + }, + "UserPoolTags":{ + "shape":"UserPoolTagsType", + "documentation":"

The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool

" + }, + "AdminCreateUserConfig":{ + "shape":"AdminCreateUserConfigType", + "documentation":"

The configuration for AdminCreateUser requests.

" + }, + "UserPoolAddOns":{"shape":"UserPoolAddOnsType"} + }, + "documentation":"

Represents the request to update the user pool.

" }, - "S1d": { - "type": "string", - "sensitive": true + "UpdateUserPoolResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

Represents the response from the server when you make a request to update the user pool.

" }, - "S1k": { - "type": "list", - "member": { - "shape": "Ss" + "UserContextDataType":{ + "type":"structure", + "members":{ + "encodedData":{"shape":"StringType"} } }, - "S1o": { - "type": "map", - "key": {}, - "value": {} + "UserFilterType":{ + "type":"string", + "max":256 }, - "S20": { - "type": "string", - "sensitive": true + "UserImportInProgressException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the user pool has an import job running.

" + } + }, + "documentation":"

This exception is thrown when you are trying to modify a user pool while a user import job is in progress for that pool.

", + "exception":true }, - "S27": { - "type": "string", - "sensitive": true + "UserImportJobIdType":{ + "type":"string", + "max":55, + "min":1, + "pattern":"import-[0-9a-zA-Z-]+" }, - "S2h": { - "type": "structure", - "members": { - "JobName": {}, - "JobId": {}, - "UserPoolId": {}, - "PreSignedUrl": {}, - "CreationDate": { - "type": "timestamp" + "UserImportJobNameType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w\\s+=,.@-]+" + }, + "UserImportJobStatusType":{ + "type":"string", + "enum":[ + "Created", + "Pending", + "InProgress", + "Stopping", + "Expired", + "Stopped", + "Failed", + "Succeeded" + ] + }, + "UserImportJobType":{ + "type":"structure", + "members":{ + "JobName":{ + "shape":"UserImportJobNameType", + "documentation":"

The job name for the user import job.

" }, - "StartDate": { - "type": "timestamp" + "JobId":{ + "shape":"UserImportJobIdType", + "documentation":"

The job ID for the user import job.

" }, - "CompletionDate": { - "type": "timestamp" + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool that the users are being imported into.

" }, - "Status": {}, - "CloudWatchLogsRoleArn": {}, - "ImportedUsers": { - "type": "long" + "PreSignedUrl":{ + "shape":"PreSignedUrlType", + "documentation":"

The pre-signed URL to be used to upload the .csv file.

" }, - "SkippedUsers": { - "type": "long" + "CreationDate":{ + "shape":"DateType", + "documentation":"

The date when the user import job was created.

" }, - "FailedUsers": { - "type": "long" + "StartDate":{ + "shape":"DateType", + "documentation":"

The date when the user import job was started.

" }, - "CompletionMessage": {} - } + "CompletionDate":{ + "shape":"DateType", + "documentation":"

The date when the user import job was completed.

" + }, + "Status":{ + "shape":"UserImportJobStatusType", + "documentation":"

The status of the user import job. One of the following:

  • Created - The job was created but not started.

  • Pending - A transition state. You have started the job, but it has not begun importing users yet.

  • InProgress - The job has started, and users are being imported.

  • Stopping - You have stopped the job, but the job has not stopped importing users yet.

  • Stopped - You have stopped the job, and the job has stopped importing users.

  • Succeeded - The job has completed successfully.

  • Failed - The job has stopped due to an error.

  • Expired - You created a job, but did not start the job within 24-48 hours. All data associated with the job was deleted, and the job cannot be started.

" + }, + "CloudWatchLogsRoleArn":{ + "shape":"ArnType", + "documentation":"

The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see \"Creating the CloudWatch Logs IAM Role\" in the Amazon Cognito Developer Guide.

" + }, + "ImportedUsers":{ + "shape":"LongType", + "documentation":"

The number of users that were successfully imported.

" + }, + "SkippedUsers":{ + "shape":"LongType", + "documentation":"

The number of users that were skipped.

" + }, + "FailedUsers":{ + "shape":"LongType", + "documentation":"

The number of users that could not be imported.

" + }, + "CompletionMessage":{ + "shape":"CompletionMessageType", + "documentation":"

The message returned when the user import job is completed.

" + } + }, + "documentation":"

The user import job type.

" }, - "S2p": { - "type": "structure", - "members": { - "PasswordPolicy": { - "type": "structure", - "members": { - "MinimumLength": { - "type": "integer" - }, - "RequireUppercase": { - "type": "boolean" - }, - "RequireLowercase": { - "type": "boolean" - }, - "RequireNumbers": { - "type": "boolean" - }, - "RequireSymbols": { - "type": "boolean" - } - } + "UserImportJobsListType":{ + "type":"list", + "member":{"shape":"UserImportJobType"}, + "max":50, + "min":1 + }, + "UserLambdaValidationException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when the Amazon Cognito service returns a user validation exception with the AWS Lambda service.

" } - } + }, + "documentation":"

This exception gets thrown when the Amazon Cognito service encounters a user validation exception with the AWS Lambda service.

", + "exception":true }, - "S2s": { - "type": "structure", - "members": { - "PreSignUp": {}, - "CustomMessage": {}, - "PostConfirmation": {}, - "PreAuthentication": {}, - "PostAuthentication": {}, - "DefineAuthChallenge": {}, - "CreateAuthChallenge": {}, - "VerifyAuthChallengeResponse": {} + "UserNotConfirmedException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when a user is not confirmed successfully.

" + } + }, + "documentation":"

This exception is thrown when a user is not confirmed successfully.

", + "exception":true + }, + "UserNotFoundException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when a user is not found.

" + } + }, + "documentation":"

This exception is thrown when a user is not found.

", + "exception":true + }, + "UserPoolAddOnNotEnabledException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "exception":true + }, + "UserPoolAddOnsType":{ + "type":"structure", + "required":["AdvancedSecurityMode"], + "members":{ + "AdvancedSecurityMode":{"shape":"AdvancedSecurityModeType"} } }, - "S2t": { - "type": "list", - "member": {} + "UserPoolClientDescription":{ + "type":"structure", + "members":{ + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool where you want to describe the user pool client.

" + }, + "ClientName":{ + "shape":"ClientNameType", + "documentation":"

The client name from the user pool client description.

" + } + }, + "documentation":"

The description of the user pool client.

" }, - "S2v": { - "type": "list", - "member": {} + "UserPoolClientListType":{ + "type":"list", + "member":{"shape":"UserPoolClientDescription"} }, - "S31": { - "type": "structure", - "members": { - "ChallengeRequiredOnNewDevice": { - "type": "boolean" + "UserPoolClientType":{ + "type":"structure", + "members":{ + "UserPoolId":{ + "shape":"UserPoolIdType", + "documentation":"

The user pool ID for the user pool client.

" }, - "DeviceOnlyRememberedOnUserPrompt": { - "type": "boolean" + "ClientName":{ + "shape":"ClientNameType", + "documentation":"

The client name from the user pool request of the client type.

" + }, + "ClientId":{ + "shape":"ClientIdType", + "documentation":"

The ID of the client associated with the user pool.

" + }, + "ClientSecret":{ + "shape":"ClientSecretType", + "documentation":"

The client secret from the user pool request of the client type.

" + }, + "LastModifiedDate":{ + "shape":"DateType", + "documentation":"

The last modified date from the user pool request of the client type.

" + }, + "CreationDate":{ + "shape":"DateType", + "documentation":"

The creation date from the user pool request of the client type.

" + }, + "RefreshTokenValidity":{ + "shape":"RefreshTokenValidityType", + "documentation":"

The time limit, in days, after which the refresh token is no longer valid and cannot be used.

" + }, + "ReadAttributes":{ + "shape":"ClientPermissionListType", + "documentation":"

The Read-only attributes.

" + }, + "WriteAttributes":{ + "shape":"ClientPermissionListType", + "documentation":"

The writeable attributes.

" + }, + "ExplicitAuthFlows":{ + "shape":"ExplicitAuthFlowsListType", + "documentation":"

The explicit authentication flows.

" + }, + "SupportedIdentityProviders":{"shape":"SupportedIdentityProvidersListType"}, + "CallbackURLs":{"shape":"CallbackURLsListType"}, + "LogoutURLs":{"shape":"LogoutURLsListType"}, + "DefaultRedirectURI":{"shape":"RedirectUrlType"}, + "AllowedOAuthFlows":{"shape":"OAuthFlowsType"}, + "AllowedOAuthScopes":{"shape":"ScopeListType"}, + "AllowedOAuthFlowsUserPoolClient":{ + "shape":"BooleanType", + "box":true + }, + "AnalyticsConfiguration":{"shape":"AnalyticsConfigurationType"} + }, + "documentation":"

A user pool of the client type.

" + }, + "UserPoolDescriptionType":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"UserPoolIdType", + "documentation":"

The ID in a user pool description.

" + }, + "Name":{ + "shape":"UserPoolNameType", + "documentation":"

The name in a user pool description.

" + }, + "LambdaConfig":{ + "shape":"LambdaConfigType", + "documentation":"

The AWS Lambda configuration information in a user pool description.

" + }, + "Status":{ + "shape":"StatusType", + "documentation":"

The user pool status in a user pool description.

" + }, + "LastModifiedDate":{ + "shape":"DateType", + "documentation":"

The last modified date in a user pool description.

" + }, + "CreationDate":{ + "shape":"DateType", + "documentation":"

The creation date in a user pool description.

" } - } + }, + "documentation":"

A user pool description.

" }, - "S32": { - "type": "structure", - "members": { - "SourceArn": {}, - "ReplyToEmailAddress": {} - } + "UserPoolIdType":{ + "type":"string", + "max":55, + "min":1, + "pattern":"[\\w-]+_[0-9a-zA-Z]+" }, - "S34": { - "type": "structure", - "members": { - "SnsCallerArn": {}, - "ExternalId": {} - } + "UserPoolListType":{ + "type":"list", + "member":{"shape":"UserPoolDescriptionType"} }, - "S36": { - "type": "structure", - "members": { - "Id": {}, - "Name": {}, - "Policies": { - "shape": "S2p" + "UserPoolMfaType":{ + "type":"string", + "enum":[ + "OFF", + "ON", + "OPTIONAL" + ] + }, + "UserPoolNameType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\w\\s+=,.@-]+" + }, + "UserPoolPolicyType":{ + "type":"structure", + "members":{ + "PasswordPolicy":{ + "shape":"PasswordPolicyType", + "documentation":"

A container with information about the user pool password policy.

" + } + }, + "documentation":"

The type of policy in a user pool.

" + }, + "UserPoolTaggingException":{ + "type":"structure", + "members":{ + "message":{"shape":"MessageType"} + }, + "documentation":"

This exception gets thrown when a user pool tag cannot be set or updated.

", + "exception":true + }, + "UserPoolTagsType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"StringType"} + }, + "UserPoolType":{ + "type":"structure", + "members":{ + "Id":{ + "shape":"UserPoolIdType", + "documentation":"

The ID of the user pool.

" }, - "LambdaConfig": { - "shape": "S2s" + "Name":{ + "shape":"UserPoolNameType", + "documentation":"

The name of the user pool.

" }, - "Status": {}, - "LastModifiedDate": { - "type": "timestamp" + "Policies":{ + "shape":"UserPoolPolicyType", + "documentation":"

A container describing the policies associated with a user pool.

" }, - "CreationDate": { - "type": "timestamp" + "LambdaConfig":{ + "shape":"LambdaConfigType", + "documentation":"

A container describing the AWS Lambda triggers associated with a user pool.

" }, - "SchemaAttributes": { - "type": "list", - "member": { - "shape": "S4" - } + "Status":{ + "shape":"StatusType", + "documentation":"

The status of a user pool.

" + }, + "LastModifiedDate":{ + "shape":"DateType", + "documentation":"

The last modified date of a user pool.

" + }, + "CreationDate":{ + "shape":"DateType", + "documentation":"

The creation date of a user pool.

" + }, + "SchemaAttributes":{ + "shape":"SchemaAttributesListType", + "documentation":"

A container with the schema attributes of a user pool.

" + }, + "AutoVerifiedAttributes":{ + "shape":"VerifiedAttributesListType", + "documentation":"

Specifies the attributes that are auto-verified in a user pool.

" + }, + "AliasAttributes":{ + "shape":"AliasAttributesListType", + "documentation":"

Specifies the attributes that are aliased in a user pool.

" + }, + "UsernameAttributes":{"shape":"UsernameAttributesListType"}, + "SmsVerificationMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

The contents of the SMS verification message.

" }, - "AutoVerifiedAttributes": { - "shape": "S2t" + "EmailVerificationMessage":{ + "shape":"EmailVerificationMessageType", + "documentation":"

The contents of the email verification message.

" }, - "AliasAttributes": { - "shape": "S2v" + "EmailVerificationSubject":{ + "shape":"EmailVerificationSubjectType", + "documentation":"

The subject of the email verification message.

" }, - "SmsVerificationMessage": {}, - "EmailVerificationMessage": {}, - "EmailVerificationSubject": {}, - "SmsAuthenticationMessage": {}, - "MfaConfiguration": {}, - "DeviceConfiguration": { - "shape": "S31" + "VerificationMessageTemplate":{"shape":"VerificationMessageTemplateType"}, + "SmsAuthenticationMessage":{ + "shape":"SmsVerificationMessageType", + "documentation":"

The contents of the SMS authentication message.

" }, - "EstimatedNumberOfUsers": { - "type": "integer" + "MfaConfiguration":{ + "shape":"UserPoolMfaType", + "documentation":"

Can be one of the following values:

  • OFF - MFA tokens are not required and cannot be specified during user registration.

  • ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool.

  • OPTIONAL - Users have the option when registering to create an MFA token.

" }, - "EmailConfiguration": { - "shape": "S32" + "DeviceConfiguration":{ + "shape":"DeviceConfigurationType", + "documentation":"

The device configuration.

" }, - "SmsConfiguration": { - "shape": "S34" + "EstimatedNumberOfUsers":{ + "shape":"IntegerType", + "documentation":"

A number estimating the size of the user pool.

" }, - "SmsConfigurationFailure": {}, - "EmailConfigurationFailure": {} + "EmailConfiguration":{ + "shape":"EmailConfigurationType", + "documentation":"

The email configuration.

" + }, + "SmsConfiguration":{ + "shape":"SmsConfigurationType", + "documentation":"

The SMS configuration.

" + }, + "UserPoolTags":{ + "shape":"UserPoolTagsType", + "documentation":"

The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool

" + }, + "SmsConfigurationFailure":{ + "shape":"StringType", + "documentation":"

The reason why the SMS configuration cannot send the message(s) to your users.

" + }, + "EmailConfigurationFailure":{ + "shape":"StringType", + "documentation":"

The reason why the email configuration cannot send the messages to your users.

" + }, + "AdminCreateUserConfig":{ + "shape":"AdminCreateUserConfigType", + "documentation":"

The configuration for AdminCreateUser requests.

" + }, + "UserPoolAddOns":{"shape":"UserPoolAddOnsType"} + }, + "documentation":"

A container with information about the user pool type.

" + }, + "UserPoolUIConfigurationType":{ + "type":"structure", + "members":{ + "UserPoolId":{"shape":"UserPoolIdType"}, + "Details":{"shape":"UserPoolUIDetailsType"}, + "LastModifiedDate":{"shape":"DateType"}, + "CreationDate":{"shape":"DateType"} } }, - "S3d": { - "type": "list", - "member": {} + "UserPoolUIDetailsType":{ + "type":"map", + "key":{"shape":"StringType"}, + "value":{"shape":"UIDetailsMapType"} }, - "S3f": { - "type": "list", - "member": {} + "UserStatusType":{ + "type":"string", + "enum":[ + "UNCONFIRMED", + "CONFIRMED", + "ARCHIVED", + "COMPROMISED", + "UNKNOWN", + "RESET_REQUIRED", + "FORCE_CHANGE_PASSWORD" + ] }, - "S3i": { - "type": "structure", - "members": { - "UserPoolId": {}, - "ClientName": {}, - "ClientId": { - "shape": "S14" + "UserType":{ + "type":"structure", + "members":{ + "Username":{ + "shape":"UsernameType", + "documentation":"

The user name of the user you wish to describe.

" }, - "ClientSecret": { - "type": "string", - "sensitive": true - }, - "LastModifiedDate": { - "type": "timestamp" + "Attributes":{ + "shape":"AttributeListType", + "documentation":"

A container with information about the user type attributes.

" }, - "CreationDate": { - "type": "timestamp" + "UserCreateDate":{ + "shape":"DateType", + "documentation":"

The creation date of the user.

" }, - "RefreshTokenValidity": { - "type": "integer" + "UserLastModifiedDate":{ + "shape":"DateType", + "documentation":"

The last modified date of the user.

" }, - "ReadAttributes": { - "shape": "S3d" + "Enabled":{ + "shape":"BooleanType", + "documentation":"

Specifies whether the user is enabled.

" }, - "WriteAttributes": { - "shape": "S3d" + "UserStatus":{ + "shape":"UserStatusType", + "documentation":"

The user status. Can be one of the following:

  • UNCONFIRMED - User has been created but not confirmed.

  • CONFIRMED - User has been confirmed.

  • ARCHIVED - User is no longer active.

  • COMPROMISED - User is disabled due to a potential security threat.

  • UNKNOWN - User status is not known.

" }, - "ExplicitAuthFlows": { - "shape": "S3f" + "MFAOptions":{ + "shape":"MFAOptionListType", + "documentation":"

The MFA options for the user.

" + } + }, + "documentation":"

The user type.

" + }, + "UsernameAttributeType":{ + "type":"string", + "enum":[ + "phone_number", + "email" + ] + }, + "UsernameAttributesListType":{ + "type":"list", + "member":{"shape":"UsernameAttributeType"} + }, + "UsernameExistsException":{ + "type":"structure", + "members":{ + "message":{ + "shape":"MessageType", + "documentation":"

The message returned when Amazon Cognito throws a user name exists exception.

" } + }, + "documentation":"

This exception is thrown when Amazon Cognito encounters a user name that already exists in the user pool.

", + "exception":true + }, + "UsernameType":{ + "type":"string", + "max":128, + "min":1, + "pattern":"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+", + "sensitive":true + }, + "UsersListType":{ + "type":"list", + "member":{"shape":"UserType"} + }, + "VerificationMessageTemplateType":{ + "type":"structure", + "members":{ + "SmsMessage":{"shape":"SmsVerificationMessageType"}, + "EmailMessage":{"shape":"EmailVerificationMessageType"}, + "EmailSubject":{"shape":"EmailVerificationSubjectType"}, + "EmailMessageByLink":{"shape":"EmailVerificationMessageByLinkType"}, + "EmailSubjectByLink":{"shape":"EmailVerificationSubjectByLinkType"}, + "DefaultEmailOption":{"shape":"DefaultEmailOptionType"} } }, - "S3y": { - "type": "structure", - "members": { - "Destination": {}, - "DeliveryMedium": {}, - "AttributeName": {} + "VerifiedAttributeType":{ + "type":"string", + "enum":[ + "phone_number", + "email" + ] + }, + "VerifiedAttributesListType":{ + "type":"list", + "member":{"shape":"VerifiedAttributeType"} + }, + "VerifySoftwareTokenRequest":{ + "type":"structure", + "required":["UserCode"], + "members":{ + "AccessToken":{"shape":"TokenModelType"}, + "Session":{"shape":"SessionType"}, + "UserCode":{"shape":"SoftwareTokenMFAUserCodeType"}, + "FriendlyDeviceName":{"shape":"StringType"} } + }, + "VerifySoftwareTokenResponse":{ + "type":"structure", + "members":{ + "Status":{"shape":"VerifySoftwareTokenResponseType"}, + "Session":{"shape":"SessionType"} + } + }, + "VerifySoftwareTokenResponseType":{ + "type":"string", + "enum":[ + "SUCCESS", + "ERROR" + ] + }, + "VerifyUserAttributeRequest":{ + "type":"structure", + "required":[ + "AccessToken", + "AttributeName", + "Code" + ], + "members":{ + "AccessToken":{ + "shape":"TokenModelType", + "documentation":"

Represents the access token of the request to verify user attributes.

" + }, + "AttributeName":{ + "shape":"AttributeNameType", + "documentation":"

The attribute name in the request to verify user attributes.

" + }, + "Code":{ + "shape":"ConfirmationCodeType", + "documentation":"

The verification code in the request to verify user attributes.

" + } + }, + "documentation":"

Represents the request to verify user attributes.

" + }, + "VerifyUserAttributeResponse":{ + "type":"structure", + "members":{ + }, + "documentation":"

A container representing the response from the server from the request to verify user attributes.

" + }, + "openIdListType":{ + "type":"list", + "member":{"shape":"StringType"} + }, + "openIdUrlType":{ + "type":"string", + "max":150, + "min":1, + "pattern":"https://cognito-idp\\.amazonaws\\.com/[\\w\\._/-]" } - } + }, + "documentation":"

Using the Amazon Cognito Your User Pools API, you can create a user pool to manage directories and users. You can authenticate a user to obtain tokens related to user identity and access policies.

This API reference provides information about user pools in Amazon Cognito Your User Pools.

For more information, see the Amazon Cognito Documentation.

" } },{}],3:[function(require,module,exports){ module.exports={ @@ -18737,3 +24202,4 @@ function identity(value) { module.exports = identity; },{}]},{},[8]) + diff --git a/dist/aws-cognito-sdk.min.js b/dist/aws-cognito-sdk.min.js index af602db7..c32e8238 100644 --- a/dist/aws-cognito-sdk.min.js +++ b/dist/aws-cognito-sdk.min.js @@ -16,13 +16,18 @@ */ -!function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};b[g][0].call(j.exports,function(a){var c=b[g][1][a];return e(c?c:a)},j,j.exports,a,b,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gthis.expireTime?!0:this.expired||!this.accessKeyId||!this.secretAccessKey},get:function(a){var b=this;this.needsRefresh()?this.refresh(function(c){c||(b.expired=!1),a&&a(c)}):a&&a()},refresh:function(a){this.expired=!1,a()}})},{"./core":11}],13:[function(a,b,c){var d=a("../core"),e=a("../../clients/cognitoidentity"),f=a("../../clients/sts");d.CognitoIdentityCredentials=d.util.inherit(d.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a,this.data=null,this.identityId=null,this.loadCachedId()},refresh:function(a){var b=this;b.createClients(),b.data=null,b.identityId=null,b.getId(function(c){c?(b.clearIdOnNotAuthorized(c),a(c)):b.params.RoleArn?b.getCredentialsFromSTS(a):b.getCredentialsForIdentity(a)})},clearCachedId:function(){this.identityId=null,delete this.params.IdentityId;var a=this.params.IdentityPoolId,b=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+a+b],delete this.storage[this.localStorageKey.providers+a+b]},clearIdOnNotAuthorized:function(a){var b=this;"NotAuthorizedException"==a.code&&b.clearCachedId()},getId:function(a){var b=this;return"string"==typeof b.params.IdentityId?a(null,b.params.IdentityId):void b.cognito.getId(function(c,d){!c&&d.IdentityId?(b.params.IdentityId=d.IdentityId,a(null,d.IdentityId)):a(c)})},loadCredentials:function(a,b){a&&b&&(b.expired=!1,b.accessKeyId=a.Credentials.AccessKeyId,b.secretAccessKey=a.Credentials.SecretKey,b.sessionToken=a.Credentials.SessionToken,b.expireTime=a.Credentials.Expiration)},getCredentialsForIdentity:function(a){var b=this;b.cognito.getCredentialsForIdentity(function(c,d){c?b.clearIdOnNotAuthorized(c):(b.cacheId(d),b.data=d,b.loadCredentials(b.data,b)),a(c)})},getCredentialsFromSTS:function(a){var b=this;b.cognito.getOpenIdToken(function(c,d){c?(b.clearIdOnNotAuthorized(c),a(c)):(b.cacheId(d),b.params.WebIdentityToken=d.Token,b.webIdentityCredentials.refresh(function(c){c||(b.data=b.webIdentityCredentials.data,b.sts.credentialsFrom(b.data,b)),a(c)}))})},loadCachedId:function(){var a=this;if(d.util.isBrowser()&&!a.params.IdentityId){var b=a.getStorage("id");if(b&&a.params.Logins){var c=Object.keys(a.params.Logins),e=(a.getStorage("providers")||"").split(","),f=e.filter(function(a){return-1!==c.indexOf(a)});0!==f.length&&(a.params.IdentityId=b)}else b&&(a.params.IdentityId=b)}},createClients:function(){this.webIdentityCredentials=this.webIdentityCredentials||new d.WebIdentityCredentials(this.params),this.cognito=this.cognito||new e({params:this.params}),this.sts=this.sts||new f},cacheId:function(a){this.identityId=a.IdentityId,this.params.IdentityId=this.identityId,d.util.isBrowser()&&(this.setStorage("id",a.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(a){return this.storage[this.localStorageKey[a]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(a,b){try{this.storage[this.localStorageKey[a]+this.params.IdentityPoolId+(this.params.LoginId||"")]=b}catch(c){}},storage:function(){try{return window.localStorage.setItem("aws.test-storage","foobar"),window.localStorage.removeItem("aws.test-storage"),d.util.isBrowser()?window.localStorage:{}}catch(a){return{}}}()})},{"../../clients/cognitoidentity":5,"../../clients/sts":6,"../core":11}],14:[function(a,b,c){var d=a("../core");d.CredentialProviderChain=d.util.inherit(d.Credentials,{constructor:function(a){a?this.providers=a:this.providers=d.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(a){function b(e,f){if(!e&&f||c===d.length)return void a(e,f);var g=d[c++];f="function"==typeof g?g.call():g,f.get?f.get(function(a){b(a,a?null:f)}):b(null,f)}if(0===this.providers.length)return a(new Error("No providers")),this;var c=0,d=this.providers.slice(0);return b(),this}}),d.CredentialProviderChain.defaultProviders=[]},{"../core":11}],15:[function(a,b,c){var d=a("../core"),e=a("../../clients/sts");d.SAMLCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.assumeRoleWithSAML(function(c,d){c||b.service.credentialsFrom(d,b),a(c)})},createClients:function(){this.service=this.service||new e({params:this.params})}})},{"../../clients/sts":6,"../core":11}],16:[function(a,b,c){var d=a("../core"),e=a("../../clients/sts");d.TemporaryCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.loadMasterCredentials(),this.expired=!0,this.params=a||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.config.credentials=b.masterCredentials;var c=b.params.RoleArn?b.service.assumeRole:b.service.getSessionToken;c.call(b.service,function(c,d){c||b.service.credentialsFrom(d,b),a(c)})},loadMasterCredentials:function(){for(this.masterCredentials=d.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials},createClients:function(){this.service=this.service||new e({params:this.params})}})},{"../../clients/sts":6,"../core":11}],17:[function(a,b,c){var d=a("../core"),e=a("../../clients/sts");d.WebIdentityCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.assumeRoleWithWebIdentity(function(c,d){b.data=null,c||(b.data=d,b.service.credentialsFrom(d,b)),a(c)})},createClients:function(){this.service=this.service||new e({params:this.params})}})},{"../../clients/sts":6,"../core":11}],18:[function(a,b,c){var d=a("./core"),e=a("./sequential_executor");d.EventListeners={Core:{}},d.EventListeners={Core:(new e).addNamedListeners(function(a,b){b("VALIDATE_CREDENTIALS","validate",function(a,b){return a.service.api.signatureVersion?void a.service.config.getCredentials(function(c){c&&(a.response.error=d.util.error(c,{code:"CredentialsError",message:"Missing credentials in config"})),b()}):b()}),a("VALIDATE_REGION","validate",function(a){a.service.config.region||a.service.isGlobalEndpoint||(a.response.error=d.util.error(new Error,{code:"ConfigError",message:"Missing region in config"}))}),a("VALIDATE_PARAMETERS","validate",function(a){var b=a.service.api.operations[a.operation].input,c=a.service.config.paramValidation;new d.ParamValidator(c).validate(b,a.params)}),b("COMPUTE_SHA256","afterBuild",function(a,b){if(a.haltHandlersOnError(),!a.service.api.signatureVersion)return b();if(a.service.getSignerClass(a)===d.Signers.V4){var c=a.httpRequest.body||"";d.util.computeSha256(c,function(c,d){c?b(c):(a.httpRequest.headers["X-Amz-Content-Sha256"]=d,b())})}else b()}),a("SET_CONTENT_LENGTH","afterBuild",function(a){if(void 0===a.httpRequest.headers["Content-Length"]){var b=d.util.string.byteLength(a.httpRequest.body);a.httpRequest.headers["Content-Length"]=b}}),a("SET_HTTP_HOST","afterBuild",function(a){a.httpRequest.headers.Host=a.httpRequest.endpoint.host}),a("RESTART","restart",function(){var a=this.response.error;a&&a.retryable&&(this.httpRequest=new d.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(a){a?b(a):g()}):g()}),a("HTTP_HEADERS","httpHeaders",function(a,b,c){c.httpResponse.statusCode=a,c.httpResponse.headers=b,c.httpResponse.body=new d.util.Buffer(""),c.httpResponse.buffers=[],c.httpResponse.numBytes=0;var e=b.date||b.Date;if(e){var f=Date.parse(e);c.request.service.config.correctClockSkew&&d.util.isClockSkewed(f)&&d.util.applyClockOffset(f)}}),a("HTTP_DATA","httpData",function(a,b){if(a){if(d.util.isNode()){b.httpResponse.numBytes+=a.length;var c=b.httpResponse.headers["content-length"],e={loaded:b.httpResponse.numBytes,total:c};b.request.emit("httpDownloadProgress",[e,b])}b.httpResponse.buffers.push(new d.util.Buffer(a))}}),a("HTTP_DONE","httpDone",function(a){if(a.httpResponse.buffers&&a.httpResponse.buffers.length>0){var b=d.util.buffer.concat(a.httpResponse.buffers);a.httpResponse.body=b}delete a.httpResponse.numBytes,delete a.httpResponse.buffers}),a("FINALIZE_ERROR","retry",function(a){a.httpResponse.statusCode&&(a.error.statusCode=a.httpResponse.statusCode,void 0===a.error.retryable&&(a.error.retryable=this.service.retryableError(a.error,this)))}),a("INVALIDATE_CREDENTIALS","retry",function(a){if(a.error)switch(a.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":a.error.retryable=!0,a.request.service.config.credentials.expired=!0}}),a("EXPIRED_SIGNATURE","retry",function(a){var b=a.error;b&&"string"==typeof b.code&&"string"==typeof b.message&&b.code.match(/Signature/)&&b.message.match(/expired/)&&(a.error.retryable=!0)}),a("CLOCK_SKEWED","retry",function(a){a.error&&this.service.clockSkewError(a.error)&&this.service.config.correctClockSkew&&d.config.isClockSkewed&&(a.error.retryable=!0)}),a("REDIRECT","retry",function(a){a.error&&a.error.statusCode>=300&&a.error.statusCode<400&&a.httpResponse.headers.location&&(this.httpRequest.endpoint=new d.Endpoint(a.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,a.error.redirect=!0,a.error.retryable=!0)}),a("RETRY_CHECK","retry",function(a){a.error&&(a.error.redirect&&a.redirectCount=this.HEADERS_RECEIVED&&!l){try{k.responseType="arraybuffer"}catch(a){}i.statusCode=k.status,i.headers=g.parseHeaders(k.getAllResponseHeaders()),i.emit("headers",i.statusCode,i.headers),l=!0}this.readyState===this.DONE&&g.finishRequest(k,i)},!1),k.upload.addEventListener("progress",function(a){i.emit("sendProgress",a)}),k.addEventListener("progress",function(a){i.emit("receiveProgress",a)},!1),k.addEventListener("timeout",function(){f(d.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),k.addEventListener("error",function(){f(d.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),c(i),k.open(a.method,j,b.xhrAsync!==!1),d.util.each(a.headers,function(a,b){"Content-Length"!==a&&"User-Agent"!==a&&"Host"!==a&&k.setRequestHeader(a,b)}),b.timeout&&b.xhrAsync!==!1&&(k.timeout=b.timeout),b.xhrWithCredentials&&(k.withCredentials=!0);try{k.send(a.body)}catch(m){if(!a.body||"object"!=typeof a.body.buffer)throw m;k.send(a.body.buffer)}return i},parseHeaders:function(a){var b={};return d.util.arrayEach(a.split(/\r?\n/),function(a){var c=a.split(":",1)[0],d=a.substring(c.length+2);c.length>0&&(b[c.toLowerCase()]=d)}),b},finishRequest:function(a,b){var c;if("arraybuffer"===a.responseType&&a.response){var e=a.response;c=new d.util.Buffer(e.byteLength);for(var f=new Uint8Array(e),g=0;g1){var e=this.errors.join("\n* ");throw e="There were "+this.errors.length+" validation errors:\n* "+e,d.util.error(new Error(e),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0]; -return!0},fail:function(a,b){this.errors.push(d.util.error(new Error(b),{code:a}))},validateStructure:function(a,b,c){this.validateType(b,c,["object"],"structure");for(var d,e=0;a.required&&e= "+a.min+", but found "+b+" for "+c),this.validation.max&&void 0!==a.max&&b>a.max&&this.fail("MaxRangeError","Expected "+d+" <= "+a.max+", but found "+b+" for "+c)},validateEnum:function(a,b,c){this.validation["enum"]&&void 0!==a["enum"]&&-1===a["enum"].indexOf(b)&&this.fail("EnumError","Found string value of "+b+", but expected "+a["enum"].join("|")+" for "+c)},validateType:function(a,b,c,e){if(null===a||void 0===a)return!1;for(var f=!1,g=0;g0){var d=JSON.parse(c.body.toString());(d.__type||d.code)&&(b.code=(d.__type||d.code).split("#").pop()),"RequestEntityTooLarge"===b.code?b.message="Request body must be less than 1 MB":b.message=d.message||d.Message||null}else b.statusCode=c.statusCode,b.message=c.statusCode.toString();a.error=g.error(new Error,b)}function f(a){var b=a.httpResponse.body.toString()||"{}";if(a.request.service.config.convertResponseTypes===!1)a.data=JSON.parse(b);else{var c=a.request.service.api.operations[a.request.operation],d=c.output||{},e=new i;a.data=e.parse(b,d)}}var g=a("../util"),h=a("../json/builder"),i=a("../json/parser");b.exports={buildRequest:d,extractError:e,extractData:f}},{"../json/builder":21,"../json/parser":22,"../util":53}],31:[function(a,b,c){function d(a){var b=a.service.api.operations[a.operation],c=a.httpRequest;c.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",c.params={Version:a.service.api.apiVersion,Action:b.name};var d=new i;d.serialize(a.params,b.input,function(a,b){c.params[a]=b}),c.body=h.queryParamsToString(c.params)}function e(a){var b,c=a.httpResponse.body.toString();b=c.match("=0?"&":"?";var g=[];j.arrayEach(Object.keys(e).sort(),function(a){Array.isArray(e[a])||(e[a]=[e[a]]);for(var b=0;b0){b=new h.XML.Parser;var l=b.parse(d.toString(),f);i.update(a.data,l)}}var h=a("../core"),i=a("../util"),j=a("./rest");b.exports={buildRequest:e,extractError:f,extractData:g}},{"../core":11,"../util":53,"./rest":32}],35:[function(a,b,c){function d(){}function e(a){return a.isQueryName||"ec2"!==a.api.protocol?a.name:a.name[0].toUpperCase()+a.name.substr(1)}function f(a,b,c,d){j.each(c.members,function(c,f){var g=b[c];if(null!==g&&void 0!==g){var h=e(f);h=a?a+"."+h:h,i(h,g,f,d)}})}function g(a,b,c,d){var e=1;j.each(b,function(b,f){var g=c.flattened?".":".entry.",h=g+e++ +".",j=h+(c.key.name||"key"),k=h+(c.value.name||"value");i(a+j,b,c.key,d),i(a+k,f,c.value,d)})}function h(a,b,c,d){var f=c.member||{};return 0===b.length?void d.call(this,a,null):void j.arrayEach(b,function(b,g){var h="."+(g+1);if("ec2"===c.api.protocol)h+="";else if(c.flattened){if(f.name){var j=a.split(".");j.pop(),j.push(e(f)),a=j.join(".")}}else h=".member"+h;i(a+h,b,f,d)})}function i(a,b,c,d){null!==b&&void 0!==b&&("structure"===c.type?f(a,b,c,d):"list"===c.type?h(a,b,c,d):"map"===c.type?g(a,b,c,d):d(a,c.toWireFormat(b).toString()))}var j=a("../util");d.prototype.serialize=function(a,b,c){f("",a,b,c)},b.exports=d},{"../util":53}],36:[function(a,b,c){function d(a){if(!a)return null;var b=a.split("-");return b.length<3?null:b.slice(0,b.length-2).join("-")+"-*"}function e(a){var b=a.config.region,c=d(b),e=a.api.endpointPrefix;return[[b,e],[c,e],[b,"*"],[c,"*"],["*",e],["*","*"]].map(function(a){return a[0]&&a[1]?a.join("/"):null})}function f(a,b){h.each(b,function(b,c){"globalEndpoint"!==b&&(void 0!==a.config[b]&&null!==a.config[b]||(a.config[b]=c))})}function g(a){for(var b=e(a),c=0;cb){c.removeListener("httpData",d.EventListeners.Core.HTTP_DATA),c.removeListener("httpError",d.EventListeners.Core.HTTP_ERROR),c.on("httpError",function(a){g.error=a,g.error.retryable=!1});var h,i=!1;if("HEAD"!==c.httpRequest.method&&(h=parseInt(f["content-length"],10)),void 0!==h&&!isNaN(h)&&h>=0){i=!0;var j=0}var k=function(){i&&j!==h?e.emit("error",d.util.error(new Error("Stream content length mismatch. Received "+j+" of "+h+" bytes."),{code:"StreamContentLengthMismatch"})):2===d.HttpClient.streamsApiVersion?e.end():e.emit("end")},l=g.httpResponse.createUnbufferedStream();if(2===d.HttpClient.streamsApiVersion)if(i){var m=new a.PassThrough;m._write=function(b){return b&&b.length&&(j+=b.length),a.PassThrough.prototype._write.apply(this,arguments)},m.on("end",k),l.pipe(m).pipe(e,{end:!1})}else l.pipe(e);else i&&l.on("data",function(a){a&&a.length&&(j+=a.length)}),l.on("data",function(a){e.emit("data",a)}),l.on("end",k);l.on("error",function(a){i=!1,e.emit("error",a)})}}),this.on("error",function(a){e.emit("error",a)}),e},emitEvent:function(a,b,c){"function"==typeof b&&(c=b,b=null),c||(c=function(){}),b||(b=this.eventParameters(a,this.response));var e=d.SequentialExecutor.prototype.emit;e.call(this,a,b,function(a){a&&(this.response.error=a),c.call(this,a)})},eventParameters:function(a){switch(a){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(a,b){return b||"function"!=typeof a||(b=a,a=null),(new d.Signers.Presign).sign(this.toGet(),a,b)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this.removeListener("validate",d.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",d.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(a){a.httpRequest.method="GET",a.httpRequest.path=a.service.endpoint.path+"?"+a.httpRequest.body,a.httpRequest.body="",delete a.httpRequest.headers["Content-Length"],delete a.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),d.util.addPromisesToRequests(d.Request),d.util.mixin(d.Request,d.SequentialExecutor)}).call(this,a("FWaASH"))},{"./core":11,"./state_machine":52,FWaASH:62,jmespath:79}],39:[function(a,b,c){function d(a){var b=a.request._waiter,c=b.config.acceptors,d=!1,e="retry";c.forEach(function(c){if(!d){var f=b.matchers[c.matcher];f&&f(a,c.expected,c.argument)&&(d=!0,e=c.state)}}),!d&&a.error&&(e="failure"),"success"===e?b.setSuccess(a):b.setError(a,"retry"===e)}var e=a("./core"),f=e.util.inherit,g=a("jmespath");e.ResourceWaiter=f({constructor:function(a,b){this.service=a,this.state=b,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(a,b,c){var d=g.search(a.data,c);return g.strictDeepEqual(d,b)},pathAll:function(a,b,c){var d=g.search(a.data,c);Array.isArray(d)||(d=[d]);var e=d.length;if(!e)return!1;for(var f=0;e>f;f++)if(!g.strictDeepEqual(d[f],b))return!1;return!0},pathAny:function(a,b,c){var d=g.search(a.data,c);Array.isArray(d)||(d=[d]);for(var e=d.length,f=0;e>f;f++)if(g.strictDeepEqual(d[f],b))return!0;return!1},status:function(a,b){var c=a.httpResponse.statusCode;return"number"==typeof c&&c===b},error:function(a,b){return"string"==typeof b&&a.error?b===a.error.code:b===!!a.error}},listeners:(new e.SequentialExecutor).addNamedListeners(function(a){a("RETRY_CHECK","retry",function(a){var b=a.request._waiter;a.error&&"ResourceNotReady"===a.error.code&&(a.error.retryDelay=1e3*(b.config.delay||0))}),a("CHECK_OUTPUT","extractData",d),a("CHECK_ERROR","extractError",d)}),wait:function(a,b){"function"==typeof a&&(b=a,a=void 0);var c=this.service.makeRequest(this.config.operation,a);return c._waiter=this,c.response.maxRetries=this.config.maxAttempts,c.addListeners(this.listeners),b&&c.send(b),c},setSuccess:function(a){a.error=null,a.data=a.data||{},a.request.removeAllListeners("extractData")},setError:function(a,b){a.data=null,a.error=e.util.error(a.error||new Error,{code:"ResourceNotReady",message:"Resource is not in the state "+this.state,retryable:b})},loadWaiterConfig:function(a){if(!this.service.api.waiters[a])throw new e.util.error(new Error,{code:"StateNotFoundError",message:"State "+a+" not found."});this.config=this.service.api.waiters[a]}})},{"./core":11,jmespath:79}],40:[function(a,b,c){var d=a("./core"),e=d.util.inherit,f=a("jmespath");d.Response=e({constructor:function(a){this.request=a,this.data=null,this.error=null,this.retryCount=0,this.redirectCount=0,this.httpResponse=new d.HttpResponse,a&&(this.maxRetries=a.service.numRetries(),this.maxRedirects=a.service.config.maxRedirects)},nextPage:function(a){var b,c=this.request.service,e=this.request.operation;try{b=c.paginationConfig(e,!0)}catch(f){this.error=f}if(!this.hasNextPage()){if(a)a(this.error,null);else if(this.error)throw this.error;return null}var g=d.util.copy(this.request.params);if(this.nextPageTokens){var h=b.inputToken;"string"==typeof h&&(h=[h]);for(var i=0;if;++f)c[f]===b&&(e=f);e>-1&&c.splice(e,1)}return this},removeAllListeners:function(a){return a?delete this._events[a]:this._events={},this},emit:function(a,b,c){c||(c=function(){});var d=this.listeners(a),e=d.length;return this.callListeners(d,b,c),e>0},callListeners:function(a,b,c,e){function f(e){return e&&(h=d.util.error(h||new Error,e),g._haltHandlersOnError)?c.call(g,h):void g.callListeners(a,b,c,h)}for(var g=this,h=e||null;a.length>0;){var i=a.shift();if(i._isAsync)return void i.apply(g,b.concat([f]));try{i.apply(g,b)}catch(j){h=d.util.error(h||new Error,j)}if(h&&g._haltHandlersOnError)return void c.call(g,h)}c.call(g,h)},addListeners:function(a){var b=this;return a._events&&(a=a._events),d.util.each(a,function(a,c){"function"==typeof c&&(c=[c]),d.util.arrayEach(c,function(c){b.on(a,c)})}),b},addNamedListener:function(a,b,c){return this[a]=c,this.addListener(b,c),this},addNamedAsyncListener:function(a,b,c){return c._isAsync=!0,this.addNamedListener(a,b,c)},addNamedListeners:function(a){var b=this;return a(function(){b.addNamedListener.apply(b,arguments)},function(){b.addNamedAsyncListener.apply(b,arguments)}),this}}),d.SequentialExecutor.prototype.addListener=d.SequentialExecutor.prototype.on,b.exports=d.SequentialExecutor},{"./core":11}],42:[function(a,b,c){var d=a("./core"),e=a("./model/api"),f=a("./region_config"),g=d.util.inherit,h=0;d.Service=g({constructor:function(a){if(!this.loadServiceClass)throw d.util.error(new Error,"Service must be constructed with `new' operator");var b=this.loadServiceClass(a||{});if(b){var c=d.util.copy(a),e=new b(a);return Object.defineProperty(e,"_originalConfig",{get:function(){return c},enumerable:!1,configurable:!0}),e._clientId=++h,e}this.initialize(a)},initialize:function(a){var b=d.config[this.serviceIdentifier];this.config=new d.Config(d.config),b&&this.config.update(b,!0),a&&this.config.update(a,!0),this.validateService(),this.config.endpoint||f(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(a){var b=a;if(d.util.isEmpty(this.api)){if(b.apiConfig)return d.Service.defineServiceApi(this.constructor,b.apiConfig);if(this.constructor.services){b=new d.Config(d.config),b.update(a,!0);var c=b.apiVersions[this.constructor.serviceIdentifier];return c=c||b.apiVersion,this.getLatestServiceClass(c)}return null}return null},getLatestServiceClass:function(a){return a=this.getLatestServiceVersion(a),null===this.constructor.services[a]&&d.Service.defineServiceApi(this.constructor,a),this.constructor.services[a]},getLatestServiceVersion:function(a){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(a?d.util.isType(a,Date)&&(a=d.util.date.iso8601(a).split("T")[0]):a="latest",Object.hasOwnProperty(this.constructor.services,a))return a;for(var b=Object.keys(this.constructor.services).sort(),c=null,e=b.length-1;e>=0;e--)if("*"!==b[e][b[e].length-1]&&(c=b[e]),b[e].substr(0,10)<=a)return c;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+a+"'")},api:{},defaultRetryCount:3,makeRequest:function(a,b,c){if("function"==typeof b&&(c=b,b=null),b=b||{},this.config.params){var e=this.api.operations[a];e&&(b=d.util.copy(b),d.util.each(this.config.params,function(a,c){e.input.members[a]&&(void 0!==b[a]&&null!==b[a]||(b[a]=c))}))}var f=new d.Request(this,a,b);return this.addAllRequestListeners(f),c&&f.send(c),f},makeUnauthenticatedRequest:function(a,b,c){"function"==typeof b&&(c=b,b={});var d=this.makeRequest(a,b).toUnauthenticated();return c?d.send(c):d},waitFor:function(a,b,c){var e=new d.ResourceWaiter(this,a);return e.wait(b,c)},addAllRequestListeners:function(a){for(var b=[d.events,d.EventListeners.Core,this.serviceInterface(),d.EventListeners.CorePost],c=0;c=500},networkingError:function(a){return"NetworkingError"===a.code},expiredCredentialsError:function(a){return"ExpiredTokenException"===a.code},clockSkewError:function(a){switch(a.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},throttledError:function(a){switch(a.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":return!0;default:return!1}},endpointFromTemplate:function(a){if("string"!=typeof a)return a;var b=a;return b=b.replace(/\{service\}/g,this.api.endpointPrefix),b=b.replace(/\{region\}/g,this.config.region),b=b.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(a){this.endpoint=new d.Endpoint(a,this.config)},paginationConfig:function(a,b){var c=this.api.operations[a].paginator;if(!c){if(b){var e=new Error;throw d.util.error(e,"No pagination configuration for "+a)}return null}return c}}),d.util.update(d.Service,{defineMethods:function(a){d.util.each(a.prototype.api.operations,function(b){if(!a.prototype[b]){var c=a.prototype.api.operations[b];"none"===c.authtype?a.prototype[b]=function(a,c){return this.makeUnauthenticatedRequest(b,a,c)}:a.prototype[b]=function(a,c){return this.makeRequest(b,a,c)}}})},defineService:function(a,b,c){d.Service._serviceMap[a]=!0,Array.isArray(b)||(c=b,b=[]);var e=g(d.Service,c||{});if("string"==typeof a){d.Service.addVersions(e,b);var f=e.serviceIdentifier||a;e.serviceIdentifier=f}else e.prototype.api=a,d.Service.defineMethods(e);return e},addVersions:function(a,b){Array.isArray(b)||(b=[b]),a.services=a.services||{};for(var c=0;c604800){var d="Presigning does not support expiry time greater than a week with SigV4 signing.";throw f.util.error(new Error,{code:"InvalidExpiryTime",message:d,retryable:!1})}a.httpRequest.headers[h]=b}else{if(c!==f.Signers.S3)throw f.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});a.httpRequest.headers[h]=parseInt(f.util.date.unixTimestamp()+b,10).toString()}}function e(a){var b=a.httpRequest.endpoint,c=f.util.urlParse(a.httpRequest.path),d={};c.search&&(d=f.util.queryStringParse(c.search.substr(1))),f.util.each(a.httpRequest.headers,function(a,b){a===h&&(a="Expires"),0===a.indexOf("x-amz-meta-")&&(delete d[a],a=a.toLowerCase()),d[a]=b}),delete a.httpRequest.headers[h];var e=d.Authorization.split(" ");if("AWS"===e[0])e=e[1].split(":"),d.AWSAccessKeyId=e[0],d.Signature=e[1];else if("AWS4-HMAC-SHA256"===e[0]){e.shift();var g=e.join(" "),i=g.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];d["X-Amz-Signature"]=i,delete d.Expires}delete d.Authorization,delete d.Host,b.pathname=c.pathname,b.search=f.util.queryParamsToString(d)}var f=a("../core"),g=f.util.inherit,h="presigned-expires";f.Signers.Presign=g({sign:function(a,b,c){if(a.httpRequest.headers[h]=b||3600,a.on("build",d),a.on("sign",e),a.removeListener("afterBuild",f.EventListeners.Core.SET_CONTENT_LENGTH),a.removeListener("afterBuild",f.EventListeners.Core.COMPUTE_SHA256),a.emit("beforePresign",[a]),!c){if(a.build(),a.response.error)throw a.response.error;return f.util.urlFormat(a.httpRequest.endpoint)}a.build(function(){this.response.error?c(this.response.error):c(null,f.util.urlFormat(a.httpRequest.endpoint))})}}),b.exports=f.Signers.Presign},{"../core":11}],46:[function(a,b,c){var d=a("../core"),e=d.util.inherit;d.Signers.RequestSigner=e({constructor:function(a){this.request=a},setServiceClientId:function(a){this.serviceClientId=a},getServiceClientId:function(){return this.serviceClientId}}),d.Signers.RequestSigner.getVersion=function(a){switch(a){case"v2":return d.Signers.V2;case"v3":return d.Signers.V3;case"v4":return d.Signers.V4;case"s3":return d.Signers.S3;case"v3https":return d.Signers.V3Https}throw new Error("Unknown signing version "+a)},a("./v2"),a("./v3"),a("./v3https"),a("./v4"),a("./s3"),a("./presign")},{"../core":11,"./presign":45,"./s3":47,"./v2":48,"./v3":49,"./v3https":50,"./v4":51}],47:[function(a,b,c){var d=a("../core"),e=d.util.inherit;d.Signers.S3=e(d.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,cors:1,lifecycle:1,"delete":1,location:1,logging:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(a,b){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=d.util.date.rfc822(b)),a.sessionToken&&(this.request.headers["x-amz-security-token"]=a.sessionToken);var c=this.sign(a.secretAccessKey,this.stringToSign()),e="AWS "+a.accessKeyId+":"+c;this.request.headers.Authorization=e},stringToSign:function(){var a=this.request,b=[];b.push(a.method),b.push(a.headers["Content-MD5"]||""),b.push(a.headers["Content-Type"]||""),b.push(a.headers["presigned-expires"]||"");var c=this.canonicalizedAmzHeaders();return c&&b.push(c),b.push(this.canonicalizedResource()),b.join("\n")},canonicalizedAmzHeaders:function(){var a=[];d.util.each(this.request.headers,function(b){b.match(/^x-amz-/i)&&a.push(b)}),a.sort(function(a,b){return a.toLowerCase()=0?"&":"?";this.request.path+=f+d.util.queryParamsToString(e)},authorization:function(a,b){var c=[],d=this.credentialString(b);return c.push(this.algorithm+" Credential="+a.accessKeyId+"/"+d),c.push("SignedHeaders="+this.signedHeaders()),c.push("Signature="+this.signature(a,b)),c.join(", ")},signature:function(a,b){var c=null,e=this.serviceName+(this.getServiceClientId()?"_"+this.getServiceClientId():"");if(this.signatureCache){var c=f[e];c||(g.push(e),g.length>h&&delete f[g.shift()])}var i=b.substr(0,8);if(!c||c.akid!==a.accessKeyId||c.region!==this.request.region||c.date!==i){var j=a.secretAccessKey,k=d.util.crypto.hmac("AWS4"+j,i,"buffer"),l=d.util.crypto.hmac(k,this.request.region,"buffer"),m=d.util.crypto.hmac(l,this.serviceName,"buffer"),n=d.util.crypto.hmac(m,"aws4_request","buffer");if(!this.signatureCache)return d.util.crypto.hmac(n,this.stringToSign(b),"hex");f[e]={region:this.request.region,date:i,key:n,akid:a.accessKeyId}}var o=f[e].key;return d.util.crypto.hmac(o,this.stringToSign(b),"hex")},stringToSign:function(a){var b=[];return b.push("AWS4-HMAC-SHA256"),b.push(a),b.push(this.credentialString(a)),b.push(this.hexEncodedHash(this.canonicalString())),b.join("\n")},canonicalString:function(){var a=[],b=this.request.pathname();return"s3"!==this.serviceName&&(b=d.util.uriEscapePath(b)),a.push(this.request.method),a.push(b),a.push(this.request.search()),a.push(this.canonicalHeaders()+"\n"),a.push(this.signedHeaders()),a.push(this.hexEncodedBodyHash()),a.join("\n")},canonicalHeaders:function(){var a=[];d.util.each.call(this,this.request.headers,function(b,c){a.push([b,c])}),a.sort(function(a,b){return a[0].toLowerCase()=a.length)return b.push(null);var e=c+d;e>a.length&&(e=a.length),b.push(a.slice(c,e)),c=e},b},concat:function(a){var b,c=0,d=0,f=null;for(b=0;b>>8^b[255&(c^f)]}return(-1^c)>>>0},hmac:function(a,b,c,d){return c||(c="binary"),"buffer"===c&&(c=void 0),d||(d="sha256"),"string"==typeof b&&(b=new e.Buffer(b)),e.crypto.lib.createHmac(d,a).update(b).digest(c)},md5:function(a,b,c){return e.crypto.hash("md5",a,b,c)},sha256:function(a,b,c){return e.crypto.hash("sha256",a,b,c)},hash:function(a,b,c,d){var f=e.crypto.createHash(a);c||(c="binary"),"buffer"===c&&(c=void 0),"string"==typeof b&&(b=new e.Buffer(b));var g=e.arraySliceFn(b),h=e.Buffer.isBuffer(b);if(e.isBrowser()&&"undefined"!=typeof ArrayBuffer&&b&&b.buffer instanceof ArrayBuffer&&(h=!0),d&&"object"==typeof b&&"function"==typeof b.on&&!h)b.on("data",function(a){f.update(a)}),b.on("error",function(a){d(a)}),b.on("end",function(){d(null,f.digest(c))});else{if(!d||!g||h||"undefined"==typeof FileReader){e.isBrowser()&&"object"==typeof b&&!h&&(b=new e.Buffer(new Uint8Array(b)));var i=f.update(b).digest(c);return d&&d(null,i),i}var j=0,k=524288,l=new FileReader;l.onerror=function(){d(new Error("Failed to read data."))},l.onload=function(){var a=new e.Buffer(new Uint8Array(l.result));f.update(a),j+=a.length,l._continueReading()},l._continueReading=function(){if(j>=b.size)return void d(null,f.digest(c));var a=j+k;a>b.size&&(a=b.size),l.readAsArrayBuffer(g.call(b,j,a))},l._continueReading()}},toHex:function(a){for(var b=[],c=0;c=3e5,!1),d.config.isClockSkewed):void 0},applyClockOffset:function(a){a&&(d.config.systemClockOffset=a-(new Date).getTime())},extractRequestId:function(a){var b=a.httpResponse.headers["x-amz-request-id"]||a.httpResponse.headers["x-amzn-requestid"];!b&&a.data&&a.data.ResponseMetadata&&(b=a.data.ResponseMetadata.RequestId),b&&(a.requestId=b),a.error&&(a.error.requestId=b)},addPromisesToRequests:function(a,b){return b=b||null,b||"undefined"==typeof Promise||(b=Promise),"function"!=typeof b?void delete a.prototype.promise:void(a.prototype.promise=function(){var a=this;return new b(function(b,c){a.on("complete",function(a){a.error?c(a.error):b(a.data)}),a.runTo()})})},isDualstackAvailable:function(b){if(!b)return!1;var c=a("../apis/metadata.json");return"string"!=typeof b&&(b=b.serviceIdentifier),"string"==typeof b&&c.hasOwnProperty(b)?!!c[b].dualstackAvailable:!1},calculateRetryDelay:function(a,b){b||(b={});var c=b.customBackoff||null;if("function"==typeof c)return c(a);var d=b.base||100,e=Math.random()*(Math.pow(2,a)*d);return e},handleRequestWithRetries:function(a,b,f){b||(b={});var g=d.HttpClient.getInstance(),h=b.httpOptions||{},i=0,j=function(a){var c=b.maxRetries||0;if(a&&"TimeoutError"===a.code&&(a.retryable=!0),a&&a.retryable&&c>i){i++;var d=e.calculateRetryDelay(i,b.retryDelayOptions);setTimeout(k,d+(a.retryAfter||0))}else f(a)},k=function(){var b="";g.handleRequest(a,h,function(a){a.on("data",function(a){b+=a.toString()}),a.on("end",function(){var c=a.statusCode;if(300>c)f(null,b);else{var d=1e3*parseInt(a.headers["retry-after"],10)||0,g=e.error(new Error,{retryable:c>=500||429===c});d&&g.retryable&&(g.retryAfter=d),j(g)}})},j)};c.nextTick(k)}};b.exports=e}).call(this,a("FWaASH"))},{"../apis/metadata.json":3,"./core":11,FWaASH:62,fs:56}],54:[function(a,b,c){function d(){}function e(a,b){switch(b||(b={}),b.type){case"structure":return f(a,b);case"map":return g(a,b);case"list":return h(a,b);case void 0:case null:return j(a);default:return i(a,b)}}function f(a,b){var c={};return null===a?c:(k.each(b.members,function(b,d){if(d.isXmlAttribute){if(Object.prototype.hasOwnProperty.call(a.attributes,d.name)){var f=a.attributes[d.name].value;c[b]=e({textContent:f},d)}}else{var g=d.flattened?a:a.getElementsByTagName(d.name)[0];g?c[b]=e(g,d):d.flattened||"list"!==d.type||(c[b]=d.defaultValue)}}),c)}function g(a,b){for(var c={},d=b.key.name||"key",f=b.value.name||"value",g=b.flattened?b.name:"entry",h=a.firstElementChild;h;){if(h.nodeName===g){var i=h.getElementsByTagName(d)[0].textContent,j=h.getElementsByTagName(f)[0];c[i]=e(j,b.value)}h=h.nextElementSibling}return c}function h(a,b){for(var c=[],d=b.flattened?b.name:b.member.name||"member",f=a.firstElementChild;f;)f.nodeName===d&&c.push(e(f,b.member)),f=f.nextElementSibling;return c}function i(a,b){if(a.getAttribute){var c=a.getAttribute("encoding");"base64"===c&&(b=new l.create({type:c}))}var d=a.textContent;return""===d&&(d=null),"function"==typeof b.toType?b.toType(d):d}function j(a){if(void 0===a||null===a)return"";if(!a.firstElementChild)return null===a.parentNode.parentNode?{}:0===a.childNodes.length?"":a.textContent;for(var b={type:"structure",members:{}},c=a.firstElementChild;c;){var d=c.nodeName;Object.prototype.hasOwnProperty.call(b.members,d)?b.members[d].type="list":b.members[d]={name:d},c=c.nextElementSibling}return f(a,b)}var k=a("../util"),l=a("../model/shape");d.prototype.parse=function(a,b){if(""===a.replace(/^\s+/,""))return{};var c,d;try{if(window.DOMParser){try{var f=new DOMParser;c=f.parseFromString(a,"text/xml")}catch(g){throw k.error(new Error("Parse error in document"),{originalError:g,code:"XMLParserError",retryable:!0})}if(null===c.documentElement)throw k.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var h=c.getElementsByTagName("parsererror")[0];if(h&&(h.parentNode===c||"body"===h.parentNode.nodeName||h.parentNode.parentNode===c||"body"===h.parentNode.parentNode.nodeName)){var i=h.getElementsByTagName("div")[0]||h;throw k.error(new Error(i.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(c=new window.ActiveXObject("Microsoft.XMLDOM"),c.async=!1,!c.loadXML(a))throw k.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(j){d=j}if(c&&c.documentElement&&!d){var l=e(c.documentElement,b),m=c.getElementsByTagName("ResponseMetadata")[0];return m&&(l.ResponseMetadata=e(m,{})),l}if(d)throw k.error(d||new Error,{code:"XMLParserError",retryable:!0});return{}},b.exports=d},{"../model/shape":28,"../util":53}],55:[function(a,b,c){function d(){}function e(a,b,c){switch(c.type){case"structure":return f(a,b,c);case"map":return g(a,b,c);case"list":return h(a,b,c);default:return i(a,b,c)}}function f(a,b,c){k.arrayEach(c.memberNames,function(d){var f=c.members[d];if("body"===f.location){var g=b[d],h=f.name;if(void 0!==g&&null!==g)if(f.isXmlAttribute)a.att(h,g);else if(f.flattened)e(a,g,f);else{var i=a.ele(h);j(i,f),e(i,g,f)}}})}function g(a,b,c){var d=c.key.name||"key",f=c.value.name||"value";k.each(b,function(b,g){var h=a.ele(c.flattened?c.name:"entry");e(h.ele(d),b,c.key),e(h.ele(f),g,c.value)})}function h(a,b,c){c.flattened?k.arrayEach(b,function(b){var d=c.member.name||c.name,f=a.ele(d);e(f,b,c.member)}):k.arrayEach(b,function(b){var d=c.member.name||"member",f=a.ele(d);e(f,b,c.member)})}function i(a,b,c){a.txt(c.toWireFormat(b))}function j(a,b){var c,d="xmlns";b.xmlNamespaceUri?(c=b.xmlNamespaceUri,b.xmlNamespacePrefix&&(d+=":"+b.xmlNamespacePrefix)):a.isRoot&&b.api.xmlNamespaceUri&&(c=b.api.xmlNamespaceUri),c&&a.att(d,c)}var k=a("../util"),l=a("xmlbuilder");d.prototype.toXML=function(a,b,c,d){var f=l.create(c);return j(f,b),e(f,a,b),f.children.length>0||d?f.root().toString():""},b.exports=d},{"../util":53,xmlbuilder:100}],56:[function(a,b,c){},{}],57:[function(a,b,c){function d(a,b,c){if(!(this instanceof d))return new d(a,b,c);var e=typeof a;if("base64"===b&&"string"===e)for(a=C(a);a.length%4!==0;)a+="=";var f;if("number"===e)f=E(a);else if("string"===e)f=d.byteLength(a,b);else{if("object"!==e)throw new Error("First argument needs to be a number, array or string.");f=E(a.length)}var g;d._useTypedArrays?g=d._augment(new Uint8Array(f)):(g=this,g.length=f,g._isBuffer=!0);var h;if(d._useTypedArrays&&"number"==typeof a.byteLength)g._set(a);else if(G(a))for(h=0;f>h;h++)d.isBuffer(a)?g[h]=a.readUInt8(h):g[h]=a[h];else if("string"===e)g.write(a,0,b);else if("number"===e&&!d._useTypedArrays&&!c)for(h=0;f>h;h++)g[h]=0;return g}function e(a,b,c,e){c=Number(c)||0;var f=a.length-c;e?(e=Number(e),e>f&&(e=f)):e=f;var g=b.length;R(g%2===0,"Invalid hex string"),e>g/2&&(e=g/2);for(var h=0;e>h;h++){var i=parseInt(b.substr(2*h,2),16);R(!isNaN(i),"Invalid hex string"),a[c+h]=i}return d._charsWritten=2*h,h}function f(a,b,c,e){var f=d._charsWritten=M(I(b),a,c,e);return f}function g(a,b,c,e){var f=d._charsWritten=M(J(b),a,c,e);return f}function h(a,b,c,d){return g(a,b,c,d)}function i(a,b,c,e){var f=d._charsWritten=M(L(b),a,c,e);return f}function j(a,b,c,e){var f=d._charsWritten=M(K(b),a,c,e);return f}function k(a,b,c){return 0===b&&c===a.length?S.fromByteArray(a):S.fromByteArray(a.slice(b,c))}function l(a,b,c){var d="",e="";c=Math.min(a.length,c);for(var f=b;c>f;f++)a[f]<=127?(d+=N(e)+String.fromCharCode(a[f]),e=""):e+="%"+a[f].toString(16);return d+N(e)}function m(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;e++)d+=String.fromCharCode(a[e]);return d}function n(a,b,c){return m(a,b,c)}function o(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;f++)e+=H(a[f]);return e}function p(a,b,c){for(var d=a.slice(b,c),e="",f=0;f=e)){var f;return c?(f=a[b],e>b+1&&(f|=a[b+1]<<8)):(f=a[b]<<8,e>b+1&&(f|=a[b+1])),f}}function r(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+3=e)){var f;return c?(e>b+2&&(f=a[b+2]<<16),e>b+1&&(f|=a[b+1]<<8),f|=a[b],e>b+3&&(f+=a[b+3]<<24>>>0)):(e>b+1&&(f=a[b+1]<<16),e>b+2&&(f|=a[b+2]<<8),e>b+3&&(f|=a[b+3]),f+=a[b]<<24>>>0),f}}function s(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+1=e)){var f=q(a,b,c,!0),g=32768&f;return g?-1*(65535-f+1):f}}function t(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+3=e)){var f=r(a,b,c,!0),g=2147483648&f;return g?-1*(4294967295-f+1):f}}function u(a,b,c,d){return d||(R("boolean"==typeof c,"missing or invalid endian"),R(b+3=f))for(var g=0,h=Math.min(f-c,2);h>g;g++)a[c+g]=(b&255<<8*(d?g:1-g))>>>8*(d?g:1-g)}function x(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f))for(var g=0,h=Math.min(f-c,4);h>g;g++)a[c+g]=b>>>8*(d?g:3-g)&255}function y(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+1=f||(b>=0?w(a,b,c,d,e):w(a,65535+b+1,c,d,e))}function z(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f||(b>=0?x(a,b,c,d,e):x(a,4294967295+b+1,c,d,e))}function A(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f||T.write(a,b,c,d,23,4)}function B(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+7=f||T.write(a,b,c,d,52,8)}function C(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function D(a,b,c){return"number"!=typeof a?c:(a=~~a,a>=b?b:a>=0?a:(a+=b,a>=0?a:0))}function E(a){return a=~~Math.ceil(+a),0>a?0:a}function F(a){return(Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)})(a)}function G(a){return F(a)||d.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length}function H(a){return 16>a?"0"+a.toString(16):a.toString(16)}function I(a){for(var b=[],c=0;c=d)b.push(a.charCodeAt(c));else{var e=c;d>=55296&&57343>=d&&c++;for(var f=encodeURIComponent(a.slice(e,c+1)).substr(1).split("%"),g=0;g>8,d=b%256,e.push(d),e.push(c);return e}function L(a){return S.toByteArray(a)}function M(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);e++)b[e+c]=a[e];return e}function N(a){try{return decodeURIComponent(a)}catch(b){return String.fromCharCode(65533)}}function O(a,b){R("number"==typeof a,"cannot write a non-number as a number"),R(a>=0,"specified a negative value for writing an unsigned value"),R(b>=a,"value is larger than maximum value for type"),R(Math.floor(a)===a,"value has a fractional component")}function P(a,b,c){R("number"==typeof a,"cannot write a non-number as a number"),R(b>=a,"value larger than maximum allowed value"),R(a>=c,"value smaller than minimum allowed value"),R(Math.floor(a)===a,"value has a fractional component")}function Q(a,b,c){R("number"==typeof a,"cannot write a non-number as a number"),R(b>=a,"value larger than maximum allowed value"),R(a>=c,"value smaller than minimum allowed value")}function R(a,b){if(!a)throw new Error(b||"Failed assertion")}var S=a("base64-js"),T=a("ieee754");c.Buffer=d,c.SlowBuffer=d,c.INSPECT_MAX_BYTES=50,d.poolSize=8192,d._useTypedArrays=function(){try{var a=new ArrayBuffer(0),b=new Uint8Array(a);return b.foo=function(){return 42},42===b.foo()&&"function"==typeof b.subarray}catch(c){return!1}}(),d.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},d.isBuffer=function(a){return!(null===a||void 0===a||!a._isBuffer)},d.byteLength=function(a,b){var c;switch(a+="",b||"utf8"){case"hex":c=a.length/2;break;case"utf8":case"utf-8":c=I(a).length;break;case"ascii":case"binary":case"raw":c=a.length;break;case"base64":c=L(a).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":c=2*a.length;break;default:throw new Error("Unknown encoding")}return c},d.concat=function(a,b){if(R(F(a),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===a.length)return new d(0);if(1===a.length)return a[0];var c;if("number"!=typeof b)for(b=0,c=0;cl&&(c=l)):c=l,d=String(d||"utf8").toLowerCase();var m;switch(d){case"hex":m=e(this,a,b,c);break;case"utf8":case"utf-8":m=f(this,a,b,c);break;case"ascii":m=g(this,a,b,c);break;case"binary":m=h(this,a,b,c);break;case"base64":m=i(this,a,b,c);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":m=j(this,a,b,c);break;default:throw new Error("Unknown encoding")}return m},d.prototype.toString=function(a,b,c){var d=this;if(a=String(a||"utf8").toLowerCase(),b=Number(b)||0,c=void 0!==c?Number(c):c=d.length,c===b)return"";var e;switch(a){case"hex":e=o(d,b,c);break;case"utf8":case"utf-8":e=l(d,b,c);break;case"ascii":e=m(d,b,c);break;case"binary":e=n(d,b,c);break;case"base64":e=k(d,b,c);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":e=p(d,b,c);break;default:throw new Error("Unknown encoding")}return e},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},d.prototype.copy=function(a,b,c,e){var f=this;if(c||(c=0),e||0===e||(e=this.length),b||(b=0),e!==c&&0!==a.length&&0!==f.length){R(e>=c,"sourceEnd < sourceStart"),R(b>=0&&b=0&&c=0&&e<=f.length,"sourceEnd out of bounds"),e>this.length&&(e=this.length),a.length-bg||!d._useTypedArrays)for(var h=0;g>h;h++)a[h+b]=this[h+c];else a._set(this.subarray(c,c+g),b)}},d.prototype.slice=function(a,b){var c=this.length;if(a=D(a,c,0),b=D(b,c,c),d._useTypedArrays)return d._augment(this.subarray(a,b));for(var e=b-a,f=new d(e,void 0,!0),g=0;e>g;g++)f[g]=this[g+a];return f},d.prototype.get=function(a){return console.log(".get() is deprecated. Access using array indexes instead."),this.readUInt8(a)},d.prototype.set=function(a,b){return console.log(".set() is deprecated. Access using array indexes instead."),this.writeUInt8(a,b)},d.prototype.readUInt8=function(a,b){return b||(R(void 0!==a&&null!==a,"missing offset"),R(a=this.length?void 0:this[a]},d.prototype.readUInt16LE=function(a,b){return q(this,a,!0,b)},d.prototype.readUInt16BE=function(a,b){return q(this,a,!1,b)},d.prototype.readUInt32LE=function(a,b){return r(this,a,!0,b)},d.prototype.readUInt32BE=function(a,b){return r(this,a,!1,b)},d.prototype.readInt8=function(a,b){if(b||(R(void 0!==a&&null!==a,"missing offset"),R(a=this.length)){var c=128&this[a];return c?-1*(255-this[a]+1):this[a]}},d.prototype.readInt16LE=function(a,b){return s(this,a,!0,b)},d.prototype.readInt16BE=function(a,b){return s(this,a,!1,b)},d.prototype.readInt32LE=function(a,b){return t(this,a,!0,b)},d.prototype.readInt32BE=function(a,b){return t(this,a,!1,b)},d.prototype.readFloatLE=function(a,b){return u(this,a,!0,b)},d.prototype.readFloatBE=function(a,b){return u(this,a,!1,b)},d.prototype.readDoubleLE=function(a,b){return v(this,a,!0,b)},d.prototype.readDoubleBE=function(a,b){return v(this,a,!1,b)},d.prototype.writeUInt8=function(a,b,c){c||(R(void 0!==a&&null!==a,"missing value"),R(void 0!==b&&null!==b,"missing offset"),R(b=this.length||(this[b]=a)},d.prototype.writeUInt16LE=function(a,b,c){w(this,a,b,!0,c)},d.prototype.writeUInt16BE=function(a,b,c){w(this,a,b,!1,c)},d.prototype.writeUInt32LE=function(a,b,c){x(this,a,b,!0,c)},d.prototype.writeUInt32BE=function(a,b,c){x(this,a,b,!1,c)},d.prototype.writeInt8=function(a,b,c){c||(R(void 0!==a&&null!==a,"missing value"),R(void 0!==b&&null!==b,"missing offset"),R(b=this.length||(a>=0?this.writeUInt8(a,b,c):this.writeUInt8(255+a+1,b,c))},d.prototype.writeInt16LE=function(a,b,c){y(this,a,b,!0,c)},d.prototype.writeInt16BE=function(a,b,c){y(this,a,b,!1,c)},d.prototype.writeInt32LE=function(a,b,c){z(this,a,b,!0,c)},d.prototype.writeInt32BE=function(a,b,c){z(this,a,b,!1,c)},d.prototype.writeFloatLE=function(a,b,c){A(this,a,b,!0,c)},d.prototype.writeFloatBE=function(a,b,c){A(this,a,b,!1,c)},d.prototype.writeDoubleLE=function(a,b,c){B(this,a,b,!0,c)},d.prototype.writeDoubleBE=function(a,b,c){B(this,a,b,!1,c)},d.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),"string"==typeof a&&(a=a.charCodeAt(0)),R("number"==typeof a&&!isNaN(a),"value is not a number"),R(c>=b,"end < start"),c!==b&&0!==this.length){R(b>=0&&b=0&&c<=this.length,"end out of bounds");for(var d=b;c>d;d++)this[d]=a}},d.prototype.inspect=function(){for(var a=[],b=this.length,d=0;b>d;d++)if(a[d]=H(this[d]),d===c.INSPECT_MAX_BYTES){a[d+1]="...";break}return""},d.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(d._useTypedArrays)return new d(this).buffer;for(var a=new Uint8Array(this.length),b=0,c=a.length;c>b;b+=1)a[b]=this[b];return a.buffer}throw new Error("Buffer.toArrayBuffer not supported in this browser")};var U=d.prototype;d._augment=function(a){return a._isBuffer=!0,a._get=a.get,a._set=a.set,a.get=U.get,a.set=U.set,a.write=U.write,a.toString=U.toString,a.toLocaleString=U.toString,a.toJSON=U.toJSON,a.copy=U.copy,a.slice=U.slice,a.readUInt8=U.readUInt8,a.readUInt16LE=U.readUInt16LE,a.readUInt16BE=U.readUInt16BE,a.readUInt32LE=U.readUInt32LE,a.readUInt32BE=U.readUInt32BE,a.readInt8=U.readInt8,a.readInt16LE=U.readInt16LE,a.readInt16BE=U.readInt16BE,a.readInt32LE=U.readInt32LE,a.readInt32BE=U.readInt32BE,a.readFloatLE=U.readFloatLE,a.readFloatBE=U.readFloatBE,a.readDoubleLE=U.readDoubleLE,a.readDoubleBE=U.readDoubleBE,a.writeUInt8=U.writeUInt8,a.writeUInt16LE=U.writeUInt16LE,a.writeUInt16BE=U.writeUInt16BE,a.writeUInt32LE=U.writeUInt32LE,a.writeUInt32BE=U.writeUInt32BE,a.writeInt8=U.writeInt8,a.writeInt16LE=U.writeInt16LE,a.writeInt16BE=U.writeInt16BE,a.writeInt32LE=U.writeInt32LE,a.writeInt32BE=U.writeInt32BE,a.writeFloatLE=U.writeFloatLE,a.writeFloatBE=U.writeFloatBE,a.writeDoubleLE=U.writeDoubleLE,a.writeDoubleBE=U.writeDoubleBE,a.fill=U.fill,a.inspect=U.inspect,a.toArrayBuffer=U.toArrayBuffer,a}},{"base64-js":58,ieee754:59}],58:[function(a,b,c){var d="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";!function(a){"use strict";function b(a){var b=a.charCodeAt(0);return b===g||b===l?62:b===h||b===m?63:i>b?-1:i+10>b?b-i+26+26:k+26>b?b-k:j+26>b?b-j+26:void 0}function c(a){function c(a){j[l++]=a}var d,e,g,h,i,j;if(a.length%4>0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;g>d;d+=4,e+=3)h=b(a.charAt(d))<<18|b(a.charAt(d+1))<<12|b(a.charAt(d+2))<<6|b(a.charAt(d+3)),c((16711680&h)>>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;g>e;e+=3)f=(a[e]<<16)+(a[e+1]<<8)+a[e+2],i+=c(f);switch(h){case 1:f=a[a.length-1],i+=b(f>>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}("undefined"==typeof c?this.base64js={}:c)},{}],59:[function(a,b,c){c.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=0>b||0===b&&0>1/b?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],60:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||0>a||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];c.apply(this,f)}else if(g(c)){for(d=arguments.length,f=new Array(d-1),i=1;d>i;i++)f[i-1]=arguments[i];for(j=c.slice(),d=j.length,i=0;d>i;i++)j[i].apply(this,f)}return!0},d.prototype.addListener=function(a,b){var c;if(!e(b))throw TypeError("listener must be a function");if(this._events||(this._events={}),this._events.newListener&&this.emit("newListener",a,e(b.listener)?b.listener:b),this._events[a]?g(this._events[a])?this._events[a].push(b):this._events[a]=[this._events[a],b]:this._events[a]=b,g(this._events[a])&&!this._events[a].warned){var c;c=h(this._maxListeners)?d.defaultMaxListeners:this._maxListeners,c&&c>0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(0>d)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],61:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],62:[function(a,b,c){function d(){}var e=b.exports={};e.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=d,e.addListener=d,e.once=d,e.off=d,e.removeListener=d,e.removeAllListeners=d,e.emit=d,e.binding=function(a){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],63:[function(a,b,c){(function(a){!function(d){function e(a){throw RangeError(H[a])}function f(a,b){for(var c=a.length;c--;)a[c]=b(a[c]);return a}function g(a,b){return f(a.split(G),b).join(".")}function h(a){for(var b,c,d=[],e=0,f=a.length;f>e;)b=a.charCodeAt(e++),b>=55296&&56319>=b&&f>e?(c=a.charCodeAt(e++),56320==(64512&c)?d.push(((1023&b)<<10)+(1023&c)+65536):(d.push(b),e--)):d.push(b);return d}function i(a){return f(a,function(a){var b="";return a>65535&&(a-=65536,b+=K(a>>>10&1023|55296),a=56320|1023&a),b+=K(a)}).join("")}function j(a){return 10>a-48?a-22:26>a-65?a-65:26>a-97?a-97:w}function k(a,b){return a+22+75*(26>a)-((0!=b)<<5)}function l(a,b,c){var d=0;for(a=c?J(a/A):a>>1,a+=J(a/b);a>I*y>>1;d+=w)a=J(a/I);return J(d+(I+1)*a/(a+z))}function m(a){var b,c,d,f,g,h,k,m,n,o,p=[],q=a.length,r=0,s=C,t=B;for(c=a.lastIndexOf(D),0>c&&(c=0),d=0;c>d;++d)a.charCodeAt(d)>=128&&e("not-basic"),p.push(a.charCodeAt(d));for(f=c>0?c+1:0;q>f;){for(g=r,h=1,k=w;f>=q&&e("invalid-input"),m=j(a.charCodeAt(f++)),(m>=w||m>J((v-r)/h))&&e("overflow"),r+=m*h,n=t>=k?x:k>=t+y?y:k-t,!(n>m);k+=w)o=w-n,h>J(v/o)&&e("overflow"),h*=o;b=p.length+1,t=l(r-g,b,0==g),J(r/b)>v-s&&e("overflow"),s+=J(r/b),r%=b,p.splice(r++,0,s)}return i(p)}function n(a){var b,c,d,f,g,i,j,m,n,o,p,q,r,s,t,u=[];for(a=h(a),q=a.length,b=C,c=0,g=B,i=0;q>i;++i)p=a[i],128>p&&u.push(K(p));for(d=f=u.length,f&&u.push(D);q>d;){for(j=v,i=0;q>i;++i)p=a[i],p>=b&&j>p&&(j=p);for(r=d+1,j-b>J((v-c)/r)&&e("overflow"),c+=(j-b)*r,b=j,i=0;q>i;++i)if(p=a[i],b>p&&++c>v&&e("overflow"),p==b){for(m=c,n=w;o=g>=n?x:n>=g+y?y:n-g,!(o>m);n+=w)t=m-o,s=w-o,u.push(K(k(o+t%s,0))),m=J(t/s);u.push(K(k(m,0))),g=l(c,r,d==f),c=0,++d}++c,++b}return u.join("")}function o(a){return g(a,function(a){return E.test(a)?m(a.slice(4).toLowerCase()):a})}function p(a){return g(a,function(a){return F.test(a)?"xn--"+n(a):a})}var q="object"==typeof c&&c,r="object"==typeof b&&b&&b.exports==q&&b,s="object"==typeof a&&a;s.global!==s&&s.window!==s||(d=s);var t,u,v=2147483647,w=36,x=1,y=26,z=38,A=700,B=72,C=128,D="-",E=/^xn--/,F=/[^ -~]/,G=/\x2E|\u3002|\uFF0E|\uFF61/g,H={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=w-x,J=Math.floor,K=String.fromCharCode;if(t={version:"1.2.4",ucs2:{decode:h,encode:i},decode:m,encode:n,toASCII:p,toUnicode:o},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return t});else if(q&&!q.nodeType)if(r)r.exports=t;else for(u in t)t.hasOwnProperty(u)&&(q[u]=t[u]);else d.punycode=t}(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],64:[function(a,b,c){"use strict";function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}b.exports=function(a,b,c,f){b=b||"&",c=c||"=";var g={};if("string"!=typeof a||0===a.length)return g;var h=/\+/g;a=a.split(b);var i=1e3;f&&"number"==typeof f.maxKeys&&(i=f.maxKeys);var j=a.length;i>0&&j>i&&(j=i);for(var k=0;j>k;++k){var l,m,n,o,p=a[k].replace(h,"%20"),q=p.indexOf(c);q>=0?(l=p.substr(0,q),m=p.substr(q+1)):(l=p,m=""),n=decodeURIComponent(l),o=decodeURIComponent(m),d(g,n)?e(g[n])?g[n].push(o):g[n]=[g[n],o]:g[n]=o}return g};var e=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}},{}],65:[function(a,b,c){"use strict";function d(a,b){if(a.map)return a.map(b);for(var c=[],d=0;d=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(0>d)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;h>g;++g)F(b,String(g))?f.push(m(a,b,c,d,String(g),!0)):f.push("");return e.forEach(function(e){e.match(/^\d+$/)||f.push(m(a,b,c,d,e,!0))}),f}function m(a,b,c,d,e,f){var g,h,j;if(j=Object.getOwnPropertyDescriptor(b,e)||{value:b[e]},j.get?h=j.set?a.stylize("[Getter/Setter]","special"):a.stylize("[Getter]","special"):j.set&&(h=a.stylize("[Setter]","special")),F(d,e)||(g="["+e+"]"),h||(a.seen.indexOf(j.value)<0?(h=q(c)?i(a,j.value,null):i(a,j.value,c-1),h.indexOf("\n")>-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return 10>a?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(b){return"[Circular]"}default:return a}}),h=d[c];f>c;h=d[++c])g+=q(h)||!x(h)?" "+h:" "+e(h);return g},c.deprecate=function(a,e){function f(){if(!g){if(b.throwDeprecation)throw new Error(e);b.traceDeprecation?console.trace(e):console.error(e),g=!0}return a.apply(this,arguments)}if(v(d.process))return function(){return c.deprecate(a,e).apply(this,arguments)};if(b.noDeprecation===!0)return a;var g=!1;return f};var H,I={};c.debuglog=function(a){if(v(H)&&(H=b.env.NODE_DEBUG||""),a=a.toUpperCase(),!I[a])if(new RegExp("\\b"+a+"\\b","i").test(H)){var d=b.pid;I[a]=function(){var b=c.format.apply(c,arguments);console.error("%s %d: %s",a,d,b)}}else I[a]=function(){};return I[a]},c.inspect=e,e.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},e.styles={special:"cyan",number:"yellow","boolean":"yellow",undefined:"grey","null":"bold",string:"green",date:"magenta",regexp:"red"},c.isArray=o,c.isBoolean=p,c.isNull=q,c.isNullOrUndefined=r,c.isNumber=s,c.isString=t,c.isSymbol=u,c.isUndefined=v,c.isRegExp=w,c.isObject=x,c.isDate=y,c.isError=z,c.isFunction=A,c.isPrimitive=B,c.isBuffer=a("./support/isBuffer");var J=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];c.log=function(){console.log("%s - %s",E(),c.format.apply(c,arguments))},c.inherits=a("inherits"),c._extend=function(a,b){if(!b||!x(b))return a;for(var c=Object.keys(b),d=c.length;d--;)a[c[d]]=b[c[d]];return a}}).call(this,a("FWaASH"),"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"./support/isBuffer":67,FWaASH:62,inherits:61}],69:[function(a,b,c){(function(b){"use strict";function d(){try{var a=new Uint8Array(1);return a.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===a.foo()&&"function"==typeof a.subarray&&0===a.subarray(1,1).byteLength}catch(b){return!1}}function e(){return g.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function f(a,b){if(e()a)throw new RangeError('"size" argument must not be negative')}function j(a,b,c,d){return i(b),0>=b?f(a,b):void 0!==c?"string"==typeof d?f(a,b).fill(c,d):f(a,b).fill(c):f(a,b)}function k(a,b){if(i(b),a=f(a,0>b?0:0|p(b)),!g.TYPED_ARRAY_SUPPORT)for(var c=0;b>c;++c)a[c]=0;return a}function l(a,b,c){if("string"==typeof c&&""!==c||(c="utf8"),!g.isEncoding(c))throw new TypeError('"encoding" must be a valid string encoding');var d=0|r(b,c);a=f(a,d);var e=a.write(b,c);return e!==d&&(a=a.slice(0,e)),a}function m(a,b){var c=b.length<0?0:0|p(b.length);a=f(a,c);for(var d=0;c>d;d+=1)a[d]=255&b[d]; -return a}function n(a,b,c,d){if(b.byteLength,0>c||b.byteLength=e())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+e().toString(16)+" bytes");return 0|a}function q(a){return+a!=a&&(a=0),g.alloc(+a)}function r(a,b){if(g.isBuffer(a))return a.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(a)||a instanceof ArrayBuffer))return a.byteLength;"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"latin1":case"binary":return c;case"utf8":case"utf-8":case void 0:return T(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return W(a).length;default:if(d)return T(a).length;b=(""+b).toLowerCase(),d=!0}}function s(a,b,c){var d=!1;if((void 0===b||0>b)&&(b=0),b>this.length)return"";if((void 0===c||c>this.length)&&(c=this.length),0>=c)return"";if(c>>>=0,b>>>=0,b>=c)return"";for(a||(a="utf8");;)switch(a){case"hex":return H(this,b,c);case"utf8":case"utf-8":return D(this,b,c);case"ascii":return F(this,b,c);case"latin1":case"binary":return G(this,b,c);case"base64":return C(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function t(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function u(a,b,c,d,e){if(0===a.length)return-1;if("string"==typeof c?(d=c,c=0):c>2147483647?c=2147483647:-2147483648>c&&(c=-2147483648),c=+c,isNaN(c)&&(c=e?0:a.length-1),0>c&&(c=a.length+c),c>=a.length){if(e)return-1;c=a.length-1}else if(0>c){if(!e)return-1;c=0}if("string"==typeof b&&(b=g.from(b,d)),g.isBuffer(b))return 0===b.length?-1:v(a,b,c,d,e);if("number"==typeof b)return b=255&b,g.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?e?Uint8Array.prototype.indexOf.call(a,b,c):Uint8Array.prototype.lastIndexOf.call(a,b,c):v(a,[b],c,d,e);throw new TypeError("val must be string, number or Buffer")}function v(a,b,c,d,e){function f(a,b){return 1===g?a[b]:a.readUInt16BE(b*g)}var g=1,h=a.length,i=b.length;if(void 0!==d&&(d=String(d).toLowerCase(),"ucs2"===d||"ucs-2"===d||"utf16le"===d||"utf-16le"===d)){if(a.length<2||b.length<2)return-1;g=2,h/=2,i/=2,c/=2}var j;if(e){var k=-1;for(j=c;h>j;j++)if(f(a,j)===f(b,-1===k?0:j-k)){if(-1===k&&(k=j),j-k+1===i)return k*g}else-1!==k&&(j-=j-k),k=-1}else for(c+i>h&&(c=h-i),j=c;j>=0;j--){for(var l=!0,m=0;i>m;m++)if(f(a,j+m)!==f(b,m)){l=!1;break}if(l)return j}return-1}function w(a,b,c,d){c=Number(c)||0;var e=a.length-c;d?(d=Number(d),d>e&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new TypeError("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;d>g;++g){var h=parseInt(b.substr(2*g,2),16);if(isNaN(h))return g;a[c+g]=h}return g}function x(a,b,c,d){return X(T(b,a.length-c),a,c,d)}function y(a,b,c,d){return X(U(b),a,c,d)}function z(a,b,c,d){return y(a,b,c,d)}function A(a,b,c,d){return X(W(b),a,c,d)}function B(a,b,c,d){return X(V(b,a.length-c),a,c,d)}function C(a,b,c){return 0===b&&c===a.length?Z.fromByteArray(a):Z.fromByteArray(a.slice(b,c))}function D(a,b,c){c=Math.min(a.length,c);for(var d=[],e=b;c>e;){var f=a[e],g=null,h=f>239?4:f>223?3:f>191?2:1;if(c>=e+h){var i,j,k,l;switch(h){case 1:128>f&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(55296>l||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&1114112>l&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return E(d)}function E(a){var b=a.length;if(aa>=b)return String.fromCharCode.apply(String,a);for(var c="",d=0;b>d;)c+=String.fromCharCode.apply(String,a.slice(d,d+=aa));return c}function F(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;++e)d+=String.fromCharCode(127&a[e]);return d}function G(a,b,c){var d="";c=Math.min(a.length,c);for(var e=b;c>e;++e)d+=String.fromCharCode(a[e]);return d}function H(a,b,c){var d=a.length;(!b||0>b)&&(b=0),(!c||0>c||c>d)&&(c=d);for(var e="",f=b;c>f;++f)e+=S(a[f]);return e}function I(a,b,c){for(var d=a.slice(b,c),e="",f=0;fa)throw new RangeError("offset is not uint");if(a+b>c)throw new RangeError("Trying to access beyond buffer length")}function K(a,b,c,d,e,f){if(!g.isBuffer(a))throw new TypeError('"buffer" argument must be a Buffer instance');if(b>e||f>b)throw new RangeError('"value" argument is out of bounds');if(c+d>a.length)throw new RangeError("Index out of range")}function L(a,b,c,d){0>b&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);f>e;++e)a[c+e]=(b&255<<8*(d?e:1-e))>>>8*(d?e:1-e)}function M(a,b,c,d){0>b&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);f>e;++e)a[c+e]=b>>>8*(d?e:3-e)&255}function N(a,b,c,d,e,f){if(c+d>a.length)throw new RangeError("Index out of range");if(0>c)throw new RangeError("Index out of range")}function O(a,b,c,d,e){return e||N(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(a,b,c,d,23,4),c+4}function P(a,b,c,d,e){return e||N(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(a,b,c,d,52,8),c+8}function Q(a){if(a=R(a).replace(ba,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function R(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function S(a){return 16>a?"0"+a.toString(16):a.toString(16)}function T(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;d>g;++g){if(c=a.charCodeAt(g),c>55295&&57344>c){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(56320>c){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=(e-55296<<10|c-56320)+65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,128>c){if((b-=1)<0)break;f.push(c)}else if(2048>c){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(65536>c){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(1114112>c))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function U(a){for(var b=[],c=0;c>8,e=c%256,f.push(e),f.push(d);return f}function W(a){return Z.toByteArray(Q(a))}function X(a,b,c,d){for(var e=0;d>e&&!(e+c>=b.length||e>=a.length);++e)b[e+c]=a[e];return e}function Y(a){return a!==a}var Z=a("base64-js"),$=a("ieee754"),_=a("isarray");c.Buffer=g,c.SlowBuffer=q,c.INSPECT_MAX_BYTES=50,g.TYPED_ARRAY_SUPPORT=void 0!==b.TYPED_ARRAY_SUPPORT?b.TYPED_ARRAY_SUPPORT:d(),c.kMaxLength=e(),g.poolSize=8192,g._augment=function(a){return a.__proto__=g.prototype,a},g.from=function(a,b,c){return h(null,a,b,c)},g.TYPED_ARRAY_SUPPORT&&(g.prototype.__proto__=Uint8Array.prototype,g.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&g[Symbol.species]===g&&Object.defineProperty(g,Symbol.species,{value:null,configurable:!0})),g.alloc=function(a,b,c){return j(null,a,b,c)},g.allocUnsafe=function(a){return k(null,a)},g.allocUnsafeSlow=function(a){return k(null,a)},g.isBuffer=function(a){return!(null==a||!a._isBuffer)},g.compare=function(a,b){if(!g.isBuffer(a)||!g.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var c=a.length,d=b.length,e=0,f=Math.min(c,d);f>e;++e)if(a[e]!==b[e]){c=a[e],d=b[e];break}return d>c?-1:c>d?1:0},g.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},g.concat=function(a,b){if(!_(a))throw new TypeError('"list" argument must be an Array of Buffers');if(0===a.length)return g.alloc(0);var c;if(void 0===b)for(b=0,c=0;cb;b+=2)t(this,b,b+1);return this},g.prototype.swap32=function(){var a=this.length;if(a%4!==0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var b=0;a>b;b+=4)t(this,b,b+3),t(this,b+1,b+2);return this},g.prototype.swap64=function(){var a=this.length;if(a%8!==0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var b=0;a>b;b+=8)t(this,b,b+7),t(this,b+1,b+6),t(this,b+2,b+5),t(this,b+3,b+4);return this},g.prototype.toString=function(){var a=0|this.length;return 0===a?"":0===arguments.length?D(this,0,a):s.apply(this,arguments)},g.prototype.equals=function(a){if(!g.isBuffer(a))throw new TypeError("Argument must be a Buffer");return this===a?!0:0===g.compare(this,a)},g.prototype.inspect=function(){var a="",b=c.INSPECT_MAX_BYTES;return this.length>0&&(a=this.toString("hex",0,b).match(/.{2}/g).join(" "),this.length>b&&(a+=" ... ")),""},g.prototype.compare=function(a,b,c,d,e){if(!g.isBuffer(a))throw new TypeError("Argument must be a Buffer");if(void 0===b&&(b=0),void 0===c&&(c=a?a.length:0),void 0===d&&(d=0),void 0===e&&(e=this.length),0>b||c>a.length||0>d||e>this.length)throw new RangeError("out of range index");if(d>=e&&b>=c)return 0;if(d>=e)return-1;if(b>=c)return 1;if(b>>>=0,c>>>=0,d>>>=0,e>>>=0,this===a)return 0;for(var f=e-d,h=c-b,i=Math.min(f,h),j=this.slice(d,e),k=a.slice(b,c),l=0;i>l;++l)if(j[l]!==k[l]){f=j[l],h=k[l];break}return h>f?-1:f>h?1:0},g.prototype.includes=function(a,b,c){return-1!==this.indexOf(a,b,c)},g.prototype.indexOf=function(a,b,c){return u(this,a,b,c,!0)},g.prototype.lastIndexOf=function(a,b,c){return u(this,a,b,c,!1)},g.prototype.write=function(a,b,c,d){if(void 0===b)d="utf8",c=this.length,b=0;else if(void 0===c&&"string"==typeof b)d=b,c=this.length,b=0;else{if(!isFinite(b))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");b=0|b,isFinite(c)?(c=0|c,void 0===d&&(d="utf8")):(d=c,c=void 0)}var e=this.length-b;if((void 0===c||c>e)&&(c=e),a.length>0&&(0>c||0>b)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");d||(d="utf8");for(var f=!1;;)switch(d){case"hex":return w(this,a,b,c);case"utf8":case"utf-8":return x(this,a,b,c);case"ascii":return y(this,a,b,c);case"latin1":case"binary":return z(this,a,b,c);case"base64":return A(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,a,b,c);default:if(f)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),f=!0}},g.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var aa=4096;g.prototype.slice=function(a,b){var c=this.length;a=~~a,b=void 0===b?c:~~b,0>a?(a+=c,0>a&&(a=0)):a>c&&(a=c),0>b?(b+=c,0>b&&(b=0)):b>c&&(b=c),a>b&&(b=a);var d;if(g.TYPED_ARRAY_SUPPORT)d=this.subarray(a,b),d.__proto__=g.prototype;else{var e=b-a;d=new g(e,void 0);for(var f=0;e>f;++f)d[f]=this[f+a]}return d},g.prototype.readUIntLE=function(a,b,c){a=0|a,b=0|b,c||J(a,b,this.length);for(var d=this[a],e=1,f=0;++f0&&(e*=256);)d+=this[a+--b]*e;return d},g.prototype.readUInt8=function(a,b){return b||J(a,1,this.length),this[a]},g.prototype.readUInt16LE=function(a,b){return b||J(a,2,this.length),this[a]|this[a+1]<<8},g.prototype.readUInt16BE=function(a,b){return b||J(a,2,this.length),this[a]<<8|this[a+1]},g.prototype.readUInt32LE=function(a,b){return b||J(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},g.prototype.readUInt32BE=function(a,b){return b||J(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},g.prototype.readIntLE=function(a,b,c){a=0|a,b=0|b,c||J(a,b,this.length);for(var d=this[a],e=1,f=0;++f=e&&(d-=Math.pow(2,8*b)),d},g.prototype.readIntBE=function(a,b,c){a=0|a,b=0|b,c||J(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},g.prototype.readInt8=function(a,b){return b||J(a,1,this.length),128&this[a]?-1*(255-this[a]+1):this[a]},g.prototype.readInt16LE=function(a,b){b||J(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},g.prototype.readInt16BE=function(a,b){b||J(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},g.prototype.readInt32LE=function(a,b){return b||J(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},g.prototype.readInt32BE=function(a,b){return b||J(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},g.prototype.readFloatLE=function(a,b){return b||J(a,4,this.length),$.read(this,a,!0,23,4)},g.prototype.readFloatBE=function(a,b){return b||J(a,4,this.length),$.read(this,a,!1,23,4)},g.prototype.readDoubleLE=function(a,b){return b||J(a,8,this.length),$.read(this,a,!0,52,8)},g.prototype.readDoubleBE=function(a,b){return b||J(a,8,this.length),$.read(this,a,!1,52,8)},g.prototype.writeUIntLE=function(a,b,c,d){if(a=+a,b=0|b,c=0|c,!d){var e=Math.pow(2,8*c)-1;K(this,a,b,c,e,0)}var f=1,g=0;for(this[b]=255&a;++g=0&&(g*=256);)this[b+f]=a/g&255;return b+c},g.prototype.writeUInt8=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,1,255,0),g.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),this[b]=255&a,b+1},g.prototype.writeUInt16LE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):L(this,a,b,!0),b+2},g.prototype.writeUInt16BE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):L(this,a,b,!1),b+2},g.prototype.writeUInt32LE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=255&a):M(this,a,b,!0),b+4},g.prototype.writeUInt32BE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):M(this,a,b,!1),b+4},g.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);K(this,a,b,c,e-1,-e)}var f=0,g=1,h=0;for(this[b]=255&a;++fa&&0===h&&0!==this[b+f-1]&&(h=1),this[b+f]=(a/g>>0)-h&255;return b+c},g.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b=0|b,!d){var e=Math.pow(2,8*c-1);K(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0;for(this[b+f]=255&a;--f>=0&&(g*=256);)0>a&&0===h&&0!==this[b+f+1]&&(h=1),this[b+f]=(a/g>>0)-h&255;return b+c},g.prototype.writeInt8=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,1,127,-128),g.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),0>a&&(a=255+a+1),this[b]=255&a,b+1},g.prototype.writeInt16LE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):L(this,a,b,!0),b+2},g.prototype.writeInt16BE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):L(this,a,b,!1),b+2},g.prototype.writeInt32LE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,4,2147483647,-2147483648),g.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):M(this,a,b,!0),b+4},g.prototype.writeInt32BE=function(a,b,c){return a=+a,b=0|b,c||K(this,a,b,4,2147483647,-2147483648),0>a&&(a=4294967295+a+1),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):M(this,a,b,!1),b+4},g.prototype.writeFloatLE=function(a,b,c){return O(this,a,b,!0,c)},g.prototype.writeFloatBE=function(a,b,c){return O(this,a,b,!1,c)},g.prototype.writeDoubleLE=function(a,b,c){return P(this,a,b,!0,c)},g.prototype.writeDoubleBE=function(a,b,c){return P(this,a,b,!1,c)},g.prototype.copy=function(a,b,c,d){if(c||(c=0),d||0===d||(d=this.length),b>=a.length&&(b=a.length),b||(b=0),d>0&&c>d&&(d=c),d===c)return 0;if(0===a.length||0===this.length)return 0;if(0>b)throw new RangeError("targetStart out of bounds");if(0>c||c>=this.length)throw new RangeError("sourceStart out of bounds");if(0>d)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-bc&&d>b)for(e=f-1;e>=0;--e)a[e+b]=this[e+c];else if(1e3>f||!g.TYPED_ARRAY_SUPPORT)for(e=0;f>e;++e)a[e+b]=this[e+c];else Uint8Array.prototype.set.call(a,this.subarray(c,c+f),b);return f},g.prototype.fill=function(a,b,c,d){if("string"==typeof a){if("string"==typeof b?(d=b,b=0,c=this.length):"string"==typeof c&&(d=c,c=this.length),1===a.length){var e=a.charCodeAt(0);256>e&&(a=e)}if(void 0!==d&&"string"!=typeof d)throw new TypeError("encoding must be a string");if("string"==typeof d&&!g.isEncoding(d))throw new TypeError("Unknown encoding: "+d)}else"number"==typeof a&&(a=255&a);if(0>b||this.length=c)return this;b>>>=0,c=void 0===c?this.length:c>>>0,a||(a=0);var f;if("number"==typeof a)for(f=b;c>f;++f)this[f]=a;else{var h=g.isBuffer(a)?a:T(new g(a,d).toString()),i=h.length;for(f=0;c-b>f;++f)this[f+b]=h[f%i]}return this};var ba=/[^+\/0-9A-Za-z-_]/g}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"base64-js":70,ieee754:71,isarray:72}],70:[function(a,b,c){"use strict";function d(){for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",b=0,c=a.length;c>b;++b)i[b]=a[b],j[a.charCodeAt(b)]=b;j["-".charCodeAt(0)]=62,j["_".charCodeAt(0)]=63}function e(a){var b,c,d,e,f,g,h=a.length;if(h%4>0)throw new Error("Invalid string. Length must be a multiple of 4");f="="===a[h-2]?2:"="===a[h-1]?1:0,g=new k(3*h/4-f),d=f>0?h-4:h;var i=0;for(b=0,c=0;d>b;b+=4,c+=3)e=j[a.charCodeAt(b)]<<18|j[a.charCodeAt(b+1)]<<12|j[a.charCodeAt(b+2)]<<6|j[a.charCodeAt(b+3)],g[i++]=e>>16&255,g[i++]=e>>8&255,g[i++]=255&e;return 2===f?(e=j[a.charCodeAt(b)]<<2|j[a.charCodeAt(b+1)]>>4,g[i++]=255&e):1===f&&(e=j[a.charCodeAt(b)]<<10|j[a.charCodeAt(b+1)]<<4|j[a.charCodeAt(b+2)]>>2,g[i++]=e>>8&255,g[i++]=255&e),g}function f(a){return i[a>>18&63]+i[a>>12&63]+i[a>>6&63]+i[63&a]}function g(a,b,c){for(var d,e=[],g=b;c>g;g+=3)d=(a[g]<<16)+(a[g+1]<<8)+a[g+2],e.push(f(d));return e.join("")}function h(a){for(var b,c=a.length,d=c%3,e="",f=[],h=16383,j=0,k=c-d;k>j;j+=h)f.push(g(a,j,j+h>k?k:j+h));return 1===d?(b=a[c-1],e+=i[b>>2],e+=i[b<<4&63],e+="=="):2===d&&(b=(a[c-2]<<8)+a[c-1],e+=i[b>>10],e+=i[b>>4&63],e+=i[b<<2&63],e+="="),f.push(e),f.join("")}c.toByteArray=e,c.fromByteArray=h;var i=[],j=[],k="undefined"!=typeof Uint8Array?Uint8Array:Array;d()},{}],71:[function(a,b,c){b.exports=a(59)},{}],72:[function(a,b,c){var d={}.toString;b.exports=Array.isArray||function(a){return"[object Array]"==d.call(a)}},{}],73:[function(a,b,c){function d(a,b){if(a.length%h!==0){var c=a.length+(h-a.length%h);a=g.concat([a,i],c)}for(var d=[],e=b?a.readInt32BE:a.readInt32LE,f=0;fn?b=a(b):b.lengthf;f++)d[f]=54^b[f],e[f]=92^b[f];var g=a(h.concat([d,c]));return a(h.concat([e,g]))}function e(a,b){a=a||"sha1";var c=m[a],e=[],g=0;return c||f("algorithm:",a,"is not yet supported"),{update:function(a){return h.isBuffer(a)||(a=new h(a)),e.push(a),g+=a.length,this},digest:function(a){var f=h.concat(e),g=b?d(c,b,f):c(f);return e=null,a?g.toString(a):g}}}function f(){var a=[].slice.call(arguments).join(" ");throw new Error([a,"we accept pull requests","http://github.com/dominictarr/crypto-browserify"].join("\n"))}function g(a,b){for(var c in a)b(a[c],c)}var h=a("buffer").Buffer,i=a("./sha"),j=a("./sha256"),k=a("./rng"),l=a("./md5"),m={sha1:i,sha256:j,md5:l},n=64,o=new h(n);o.fill(0),c.createHash=function(a){return e(a)},c.createHmac=function(a,b){return e(a,b)},c.randomBytes=function(a,b){if(!b||!b.call)return new h(k(a));try{b.call(this,void 0,new h(k(a)))}catch(c){b(c)}},g(["createCredentials","createCipher","createCipheriv","createDecipher","createDecipheriv","createSign","createVerify","createDiffieHellman","pbkdf2"],function(a){c[a]=function(){f("sorry,",a,"is not implemented yet")}})},{"./md5":75,"./rng":76,"./sha":77,"./sha256":78,buffer:57}],75:[function(a,b,c){function d(a,b){a[b>>5]|=128<>>9<<4)+14]=b;for(var c=1732584193,d=-271733879,e=-1732584194,k=271733878,l=0;l>16)+(b>>16)+(c>>16);return d<<16|65535&c}function k(a,b){return a<>>32-b}var l=a("./helpers");b.exports=function(a){return l.hash(a,d,16)}},{"./helpers":73}],76:[function(a,b,c){!function(){var a,c,d=this;a=function(a){for(var b,b,c=new Array(a),d=0;a>d;d++)0==(3&d)&&(b=4294967296*Math.random()),c[d]=b>>>((3&d)<<3)&255;return c},d.crypto&&crypto.getRandomValues&&(c=function(a){var b=new Uint8Array(a);return crypto.getRandomValues(b),b}),b.exports=c||a}()},{}],77:[function(a,b,c){function d(a,b){a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;for(var c=Array(80),d=1732584193,i=-271733879,j=-1732584194,k=271733878,l=-1009589776,m=0;ms;s++){16>s?c[s]=a[m+s]:c[s]=h(c[s-3]^c[s-8]^c[s-14]^c[s-16],1);var t=g(g(h(d,5),e(s,i,j,k)),g(g(l,c[s]),f(s)));l=k,k=j,j=h(i,30),i=d,d=t}d=g(d,n),i=g(i,o),j=g(j,p),k=g(k,q),l=g(l,r)}return Array(d,i,j,k,l)}function e(a,b,c,d){return 20>a?b&c|~b&d:40>a?b^c^d:60>a?b&c|b&d|c&d:b^c^d}function f(a){return 20>a?1518500249:40>a?1859775393:60>a?-1894007588:-899497514}function g(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c}function h(a,b){return a<>>32-b}var i=a("./helpers");b.exports=function(a){return i.hash(a,d,20,!0)}},{"./helpers":73}],78:[function(a,b,c){var d=a("./helpers"),e=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c},f=function(a,b){return a>>>b|a<<32-b},g=function(a,b){return a>>>b},h=function(a,b,c){return a&b^~a&c},i=function(a,b,c){return a&b^a&c^b&c},j=function(a){return f(a,2)^f(a,13)^f(a,22)},k=function(a){return f(a,6)^f(a,11)^f(a,25)},l=function(a){return f(a,7)^f(a,18)^g(a,3)},m=function(a){return f(a,17)^f(a,19)^g(a,10)},n=function(a,b){var c,d,f,g,n,o,p,q,r,s,t,u,v=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),w=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),x=new Array(64);a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;for(var r=0;rs;s++)16>s?x[s]=a[s+r]:x[s]=e(e(e(m(x[s-2]),x[s-7]),l(x[s-15])),x[s-16]),t=e(e(e(e(q,k(n)),h(n,o,p)),v[s]),x[s]),u=e(j(c),i(c,d,f)),q=p,p=o,o=n,n=e(g,t),g=f,f=d,d=c,c=e(t,u);w[0]=e(c,w[0]),w[1]=e(d,w[1]),w[2]=e(f,w[2]),w[3]=e(g,w[3]),w[4]=e(n,w[4]),w[5]=e(o,w[5]),w[6]=e(p,w[6]),w[7]=e(q,w[7])}return w};b.exports=function(a){return d.hash(a,n,32,!0)}},{"./helpers":73}],79:[function(a,b,c){!function(a){"use strict";function b(a){return null!==a?"[object Array]"===Object.prototype.toString.call(a):!1}function c(a){return null!==a?"[object Object]"===Object.prototype.toString.call(a):!1}function d(a,e){if(a===e)return!0;var f=Object.prototype.toString.call(a);if(f!==Object.prototype.toString.call(e))return!1;if(b(a)===!0){if(a.length!==e.length)return!1;for(var g=0;g="a"&&"z">=a||a>="A"&&"Z">=a||"_"===a}function h(a){return a>="0"&&"9">=a||"-"===a}function i(a){return a>="a"&&"z">=a||a>="A"&&"Z">=a||a>="0"&&"9">=a||"_"===a}function j(){}function k(){}function l(a){this.runtime=a}function m(a){this._interpreter=a,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[r]}]},avg:{_func:this._functionAvg,_signature:[{types:[z]}]},ceil:{_func:this._functionCeil,_signature:[{types:[r]}]},contains:{_func:this._functionContains,_signature:[{types:[t,u]},{types:[s]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[t]},{types:[t]}]},floor:{_func:this._functionFloor,_signature:[{types:[r]}]},length:{_func:this._functionLength,_signature:[{types:[t,u,v]}]},map:{_func:this._functionMap,_signature:[{types:[x]},{types:[u]}]},max:{_func:this._functionMax,_signature:[{types:[z,A]}]},merge:{_func:this._functionMerge,_signature:[{types:[v],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[u]},{types:[x]}]},sum:{_func:this._functionSum,_signature:[{types:[z]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[t]},{types:[t]}]},min:{_func:this._functionMin,_signature:[{types:[z,A]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[u]},{types:[x]}]},type:{_func:this._functionType,_signature:[{types:[s]}]},keys:{_func:this._functionKeys,_signature:[{types:[v]}]},values:{_func:this._functionValues,_signature:[{types:[v]}]},sort:{_func:this._functionSort,_signature:[{types:[A,z]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[u]},{types:[x]}]},join:{_func:this._functionJoin,_signature:[{types:[t]},{types:[A]}]},reverse:{_func:this._functionReverse,_signature:[{types:[t,u]}]},to_array:{_func:this._functionToArray,_signature:[{types:[s]}]},to_string:{_func:this._functionToString,_signature:[{types:[s]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[s]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[s],variadic:!0}]}}}function n(a){var b=new k,c=b.parse(a);return c}function o(a){var b=new j;return b.tokenize(a)}function p(a,b){var c=new k,d=new m,e=new l(d);d._interpreter=e;var f=c.parse(b);return e.search(f,a)}var q;q="function"==typeof String.prototype.trimLeft?function(a){return a.trimLeft()}:function(a){return a.match(/^\s*(.*)/)[1]};var r=0,s=1,t=2,u=3,v=4,w=5,x=6,y=7,z=8,A=9,B="EOF",C="UnquotedIdentifier",D="QuotedIdentifier",E="Rbracket",F="Rparen",G="Comma",H="Colon",I="Rbrace",J="Number",K="Current",L="Expref",M="Pipe",N="Or",O="And",P="EQ",Q="GT",R="LT",S="GTE",T="LTE",U="NE",V="Flatten",W="Star",X="Filter",Y="Dot",Z="Not",$="Lbrace",_="Lbracket",aa="Lparen",ba="Literal",ca={".":Y,"*":W,",":G,":":H,"{":$,"}":I,"]":E,"(":aa,")":F,"@":K},da={"<":!0,">":!0,"=":!0,"!":!0},ea={" ":!0," ":!0,"\n":!0};j.prototype={tokenize:function(a){var b=[];this._current=0;for(var c,d,e;this._current"===c?"="===a[this._current]?(this._current++,{type:S,value:">=",start:b}):{type:Q,value:">",start:b}:"="===c&&"="===a[this._current]?(this._current++,{type:P,value:"==",start:b}):void 0},_consumeLiteral:function(a){this._current++;for(var b,c=this._current,d=a.length;"`"!==a[this._current]&&this._current=0)return!0;if(c.indexOf(a)>=0)return!0;if(!(d.indexOf(a[0])>=0))return!1;try{return JSON.parse(a),!0}catch(e){return!1}}};var fa={};fa[B]=0,fa[C]=0,fa[D]=0,fa[E]=0,fa[F]=0,fa[G]=0,fa[I]=0,fa[J]=0,fa[K]=0,fa[L]=0,fa[M]=1,fa[N]=2,fa[O]=3,fa[P]=5,fa[Q]=5,fa[R]=5,fa[S]=5,fa[T]=5,fa[U]=5,fa[V]=9,fa[W]=20,fa[X]=21,fa[Y]=40,fa[Z]=45,fa[$]=50,fa[_]=55,fa[aa]=60,k.prototype={parse:function(a){this._loadTokens(a),this.index=0;var b=this.expression(0);if(this._lookahead(0)!==B){var c=this._lookaheadToken(0),d=new Error("Unexpected token type: "+c.type+", value: "+c.value);throw d.name="ParserError",d}return b},_loadTokens:function(a){var b=new j,c=b.tokenize(a);c.push({type:B,value:"",start:a.length}),this.tokens=c},expression:function(a){var b=this._lookaheadToken(0);this._advance();for(var c=this.nud(b),d=this._lookahead(0);ab;){if(c===H)b++,this._advance();else{if(c!==J){var d=this._lookahead(0),e=new Error("Syntax error, unexpected token: "+d.value+"("+d.type+")");throw e.name="Parsererror",e}a[b]=this._lookaheadToken(0).value,this._advance()}c=this._lookahead(0)}return this._match(E),{type:"Slice",children:a}},_parseComparator:function(a,b){var c=this.expression(fa[b]);return{type:"Comparator",name:b,children:[a,c]}},_parseDotRHS:function(a){var b=this._lookahead(0),c=[C,D,W];return c.indexOf(b)>=0?this.expression(a):b===_?(this._match(_),this._parseMultiselectList()):b===$?(this._match($),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(a){var b;if(fa[this._lookahead(0)]<10)b={type:"Identity"};else if(this._lookahead(0)===_)b=this.expression(a);else if(this._lookahead(0)===X)b=this.expression(a);else{if(this._lookahead(0)!==Y){var c=this._lookaheadToken(0),d=new Error("Sytanx error, unexpected token: "+c.value+"("+c.type+")");throw d.name="ParserError",d}this._match(Y),b=this._parseDotRHS(a)}return b},_parseMultiselectList:function(){for(var a=[];this._lookahead(0)!==E;){var b=this.expression(0);if(a.push(b),this._lookahead(0)===G&&(this._match(G),this._lookahead(0)===E))throw new Error("Unexpected token Rbracket")}return this._match(E),{type:"MultiSelectList",children:a}},_parseMultiselectHash:function(){for(var a,b,c,d,e=[],f=[C,D];;){if(a=this._lookaheadToken(0),f.indexOf(a.type)<0)throw new Error("Expecting an identifier token, got: "+a.type);if(b=a.value,this._advance(),this._match(H),c=this.expression(0),d={type:"KeyValuePair",name:b,value:c},e.push(d),this._lookahead(0)===G)this._match(G);else if(this._lookahead(0)===I){this._match(I);break}}return{type:"MultiSelectHash",children:e}}},l.prototype={search:function(a,b){return this.visit(a,b)},visit:function(a,g){var h,i,j,k,l,m,n,o,p,q;switch(a.type){case"Field":return null===g?null:c(g)?(m=g[a.name],void 0===m?null:m):null;case"Subexpression":for(j=this.visit(a.children[0],g),q=1;qr&&(r=g.length+r),j=g[r],void 0===j&&(j=null),j;case"Slice":if(!b(g))return null;var s=a.children.slice(0),t=this.computeSliceParams(g.length,s),u=t[0],v=t[1],w=t[2];if(j=[],w>0)for(q=u;v>q;q+=w)j.push(g[q]);else for(q=u;q>v;q+=w)j.push(g[q]);return j;case"Projection":var x=this.visit(a.children[0],g);if(!b(x))return null;for(p=[],q=0;ql;break;case S:j=k>=l;break;case R:j=l>k;break;case T:j=l>=k;break;default:throw new Error("Unknown comparator: "+a.name)}return j;case V:var C=this.visit(a.children[0],g);if(!b(C))return null;var D=[];for(q=0;qe;return c=null===c?h?a-1:0:this.capSliceRange(a,c,e),d=null===d?h?-1:a:this.capSliceRange(a,d,e),f[0]=c,f[1]=d,f[2]=e,f},capSliceRange:function(a,b,c){return 0>b?(b+=a,0>b&&(b=0>c?-1:0)):b>=a&&(b=0>c?a-1:a),b}},m.prototype={callFunction:function(a,b){var c=this.functionTable[a];if(void 0===c)throw new Error("Unknown function: "+a+"()");return this._validateArgs(a,b,c._signature),c._func.call(this,b)},_validateArgs:function(a,b,c){var d;if(c[c.length-1].variadic){if(b.length=0;e--)d+=c[e];return d}var f=a[0].slice(0);return f.reverse(),f},_functionAbs:function(a){return Math.abs(a[0])},_functionCeil:function(a){return Math.ceil(a[0])},_functionAvg:function(a){for(var b=0,c=a[0],d=0;d=0},_functionFloor:function(a){return Math.floor(a[0])},_functionLength:function(a){return c(a[0])?Object.keys(a[0]).length:a[0].length},_functionMap:function(a){for(var b=[],c=this._interpreter,d=a[0],e=a[1],f=0;f0){var b=this._getTypeName(a[0][0]);if(b===r)return Math.max.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;e0){var b=this._getTypeName(a[0][0]);if(b===r)return Math.min.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;eh?1:h>g?-1:a[0]-b[0]});for(var i=0;ig&&(g=c,b=e[h]);return b},_functionMinBy:function(a){for(var b,c,d=a[1],e=a[0],f=this.createKeyFunction(d,[r,t]),g=1/0,h=0;hc&&(g=c,b=e[h]);return b},createKeyFunction:function(a,b){var c=this,d=this._interpreter,e=function(e){var f=d.visit(a,e);if(b.indexOf(c._getTypeName(f))<0){var g="TypeError: expected one of "+b+", received "+c._getTypeName(f);throw new Error(g)}return f};return e}},a.tokenize=o,a.compile=n,a.search=p,a.strictDeepEqual=d}("undefined"==typeof c?this.jmespath={}:c)},{}],80:[function(a,b,c){"use strict";function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}b.exports=function(a,b,c,e){b=b||"&",c=c||"=";var f={};if("string"!=typeof a||0===a.length)return f;var g=/\+/g;a=a.split(b);var h=1e3;e&&"number"==typeof e.maxKeys&&(h=e.maxKeys);var i=a.length;h>0&&i>h&&(i=h);for(var j=0;i>j;++j){var k,l,m,n,o=a[j].replace(g,"%20"),p=o.indexOf(c);p>=0?(k=o.substr(0,p),l=o.substr(p+1)):(k=o,l=""),m=decodeURIComponent(k),n=decodeURIComponent(l),d(f,m)?Array.isArray(f[m])?f[m].push(n):f[m]=[f[m],n]:f[m]=n}return f}},{}],81:[function(a,b,c){"use strict";var d=function(a){switch(typeof a){case"string":return a;case"boolean":return a?"true":"false";case"number":return isFinite(a)?a:"";default:return""}};b.exports=function(a,b,c,e){return b=b||"&",c=c||"=",null===a&&(a=void 0),"object"==typeof a?Object.keys(a).map(function(e){var f=encodeURIComponent(d(e))+c;return Array.isArray(a[e])?a[e].map(function(a){return f+encodeURIComponent(d(a))}).join(b):f+encodeURIComponent(d(a[e]))}).join(b):e?encodeURIComponent(d(e))+c+encodeURIComponent(d(a)):""}},{}],82:[function(a,b,c){arguments[4][66][0].apply(c,arguments)},{"./decode":80,"./encode":81}],83:[function(a,b,c){function d(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function e(a,b,c){if(a&&j(a)&&a instanceof d)return a;var e=new d;return e.parse(a,b,c),e}function f(a){return i(a)&&(a=e(a)),a instanceof d?a.format():d.prototype.format.call(a)}function g(a,b){return e(a,!1,!0).resolve(b)}function h(a,b){return a?e(a,!1,!0).resolveObject(b):b}function i(a){return"string"==typeof a}function j(a){return"object"==typeof a&&null!==a}function k(a){return null===a}function l(a){return null==a}var m=a("punycode");c.parse=e,c.resolve=g,c.resolveObject=h,c.format=f,c.Url=d;var n=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,p=["<",">",'"',"`"," ","\r","\n"," "],q=["{","}","|","\\","^","`"].concat(p),r=["'"].concat(q),s=["%","/","?",";","#"].concat(r),t=["/","?","#"],u=255,v=/^[a-z0-9A-Z_-]{0,63}$/,w=/^([a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},z={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},A=a("querystring");d.prototype.parse=function(a,b,c){if(!i(a))throw new TypeError("Parameter 'url' must be a string, not "+typeof a);var d=a;d=d.trim();var e=n.exec(d);if(e){e=e[0];var f=e.toLowerCase();this.protocol=f,d=d.substr(e.length)}if(c||e||d.match(/^\/\/[^@\/]+@[^@\/]+/)){var g="//"===d.substr(0,2);!g||e&&y[e]||(d=d.substr(2),this.slashes=!0)}if(!y[e]&&(g||e&&!z[e])){for(var h=-1,j=0;jk)&&(h=k)}var l,o;o=-1===h?d.lastIndexOf("@"):d.lastIndexOf("@",h),-1!==o&&(l=d.slice(0,o),d=d.slice(o+1),this.auth=decodeURIComponent(l)),h=-1;for(var j=0;jk)&&(h=k)}-1===h&&(h=d.length),this.host=d.slice(0,h),d=d.slice(h),this.parseHost(),this.hostname=this.hostname||"";var p="["===this.hostname[0]&&"]"===this.hostname[this.hostname.length-1];if(!p)for(var q=this.hostname.split(/\./),j=0,B=q.length;B>j;j++){var C=q[j];if(C&&!C.match(v)){for(var D="",E=0,F=C.length;F>E;E++)D+=C.charCodeAt(E)>127?"x":C[E];if(!D.match(v)){var G=q.slice(0,j),H=q.slice(j+1),I=C.match(w);I&&(G.push(I[1]),H.unshift(I[2])),H.length&&(d="/"+H.join(".")+d),this.hostname=G.join(".");break}}}if(this.hostname.length>u?this.hostname="":this.hostname=this.hostname.toLowerCase(),!p){for(var J=this.hostname.split("."),K=[],j=0;jj;j++){var O=r[j],P=encodeURIComponent(O);P===O&&(P=escape(O)),d=d.split(O).join(P)}var Q=d.indexOf("#");-1!==Q&&(this.hash=d.substr(Q),d=d.slice(0,Q));var R=d.indexOf("?");if(-1!==R?(this.search=d.substr(R),this.query=d.substr(R+1),b&&(this.query=A.parse(this.query)),d=d.slice(0,R)):b&&(this.search="",this.query={}),d&&(this.pathname=d),z[f]&&this.hostname&&!this.pathname&&(this.pathname="/"),this.pathname||this.search){var M=this.pathname||"",L=this.search||"";this.path=M+L}return this.href=this.format(),this},d.prototype.format=function(){var a=this.auth||"";a&&(a=encodeURIComponent(a),a=a.replace(/%3A/i,":"),a+="@");var b=this.protocol||"",c=this.pathname||"",d=this.hash||"",e=!1,f="";this.host?e=a+this.host:this.hostname&&(e=a+(-1===this.hostname.indexOf(":")?this.hostname:"["+this.hostname+"]"),this.port&&(e+=":"+this.port)),this.query&&j(this.query)&&Object.keys(this.query).length&&(f=A.stringify(this.query));var g=this.search||f&&"?"+f||"";return b&&":"!==b.substr(-1)&&(b+=":"),this.slashes||(!b||z[b])&&e!==!1?(e="//"+(e||""),c&&"/"!==c.charAt(0)&&(c="/"+c)):e||(e=""),d&&"#"!==d.charAt(0)&&(d="#"+d),g&&"?"!==g.charAt(0)&&(g="?"+g),c=c.replace(/[?#]/g,function(a){return encodeURIComponent(a)}),g=g.replace("#","%23"),b+e+c+g+d},d.prototype.resolve=function(a){return this.resolveObject(e(a,!1,!0)).format()},d.prototype.resolveObject=function(a){if(i(a)){var b=new d;b.parse(a,!1,!0),a=b}var c=new d;if(Object.keys(this).forEach(function(a){c[a]=this[a]},this),c.hash=a.hash,""===a.href)return c.href=c.format(),c;if(a.slashes&&!a.protocol)return Object.keys(a).forEach(function(b){"protocol"!==b&&(c[b]=a[b])}),z[c.protocol]&&c.hostname&&!c.pathname&&(c.path=c.pathname="/"),c.href=c.format(),c;if(a.protocol&&a.protocol!==c.protocol){if(!z[a.protocol])return Object.keys(a).forEach(function(b){c[b]=a[b]}),c.href=c.format(),c;if(c.protocol=a.protocol,a.host||y[a.protocol])c.pathname=a.pathname;else{for(var e=(a.pathname||"").split("/");e.length&&!(a.host=e.shift()););a.host||(a.host=""),a.hostname||(a.hostname=""),""!==e[0]&&e.unshift(""),e.length<2&&e.unshift(""),c.pathname=e.join("/")}if(c.search=a.search,c.query=a.query,c.host=a.host||"",c.auth=a.auth,c.hostname=a.hostname||a.host,c.port=a.port,c.pathname||c.search){var f=c.pathname||"",g=c.search||"";c.path=f+g}return c.slashes=c.slashes||a.slashes,c.href=c.format(),c}var h=c.pathname&&"/"===c.pathname.charAt(0),j=a.host||a.pathname&&"/"===a.pathname.charAt(0),m=j||h||c.host&&a.pathname,n=m,o=c.pathname&&c.pathname.split("/")||[],e=a.pathname&&a.pathname.split("/")||[],p=c.protocol&&!z[c.protocol];if(p&&(c.hostname="",c.port=null,c.host&&(""===o[0]?o[0]=c.host:o.unshift(c.host)),c.host="",a.protocol&&(a.hostname=null,a.port=null,a.host&&(""===e[0]?e[0]=a.host:e.unshift(a.host)),a.host=null),m=m&&(""===e[0]||""===o[0])),j)c.host=a.host||""===a.host?a.host:c.host,c.hostname=a.hostname||""===a.hostname?a.hostname:c.hostname,c.search=a.search,c.query=a.query,o=e;else if(e.length)o||(o=[]),o.pop(),o=o.concat(e),c.search=a.search,c.query=a.query;else if(!l(a.search)){if(p){c.hostname=c.host=o.shift();var q=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;q&&(c.auth=q.shift(),c.host=c.hostname=q.shift())}return c.search=a.search,c.query=a.query,k(c.pathname)&&k(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.href=c.format(),c}if(!o.length)return c.pathname=null,c.search?c.path="/"+c.search:c.path=null,c.href=c.format(),c;for(var r=o.slice(-1)[0],s=(c.host||a.host)&&("."===r||".."===r)||""===r,t=0,u=o.length;u>=0;u--)r=o[u],"."==r?o.splice(u,1):".."===r?(o.splice(u,1),t++):t&&(o.splice(u,1),t--);if(!m&&!n)for(;t--;t)o.unshift("..");!m||""===o[0]||o[0]&&"/"===o[0].charAt(0)||o.unshift(""),s&&"/"!==o.join("/").substr(-1)&&o.push("");var v=""===o[0]||o[0]&&"/"===o[0].charAt(0);if(p){c.hostname=c.host=v?"":o.length?o.shift():"";var q=c.host&&c.host.indexOf("@")>0?c.host.split("@"):!1;q&&(c.auth=q.shift(),c.host=c.hostname=q.shift())}return m=m||c.host&&o.length,m&&!v&&o.unshift(""),o.length?c.pathname=o.join("/"):(c.pathname=null,c.path=null),k(c.pathname)&&k(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.auth=a.auth||c.auth,c.slashes=c.slashes||a.slashes,c.href=c.format(),c},d.prototype.parseHost=function(){var a=this.host,b=o.exec(a);b&&(b=b[0],":"!==b&&(this.port=b.substr(1)),a=a.substr(0,a.length-b.length)),a&&(this.hostname=a)}},{punycode:63,querystring:66}],84:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing attribute name of element "+a.name);if(null==c)throw new Error("Missing attribute value for attribute "+b+" of element "+a.name);this.name=this.stringify.attName(b),this.value=this.stringify.attValue(c)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){return" "+this.name+'="'+this.value+'"'},a}()}).call(this)},{"lodash/object/create":143}],85:[function(a,b,c){(function(){var c,d,e,f,g;g=a("./XMLStringifier"),d=a("./XMLDeclaration"),e=a("./XMLDocType"),f=a("./XMLElement"),b.exports=c=function(){function a(a,b){var c,d;if(null==a)throw new Error("Root element needs a name");null==b&&(b={}),this.options=b,this.stringify=new g(b),d=new f(this,"doc"),c=d.element(a),c.isRoot=!0,c.documentObject=this,this.rootObject=c,b.headless||(c.declaration(b),null==b.pubID&&null==b.sysID||c.doctype(b))}return a.prototype.root=function(){return this.rootObject},a.prototype.end=function(a){return this.toString(a)},a.prototype.toString=function(a){var b,c,d,e,f,g,h,i;return e=(null!=a?a.pretty:void 0)||!1,b=null!=(g=null!=a?a.indent:void 0)?g:" ",d=null!=(h=null!=a?a.offset:void 0)?h:0,c=null!=(i=null!=a?a.newline:void 0)?i:"\n",f="",null!=this.xmldec&&(f+=this.xmldec.toString(a)),null!=this.doctype&&(f+=this.doctype.toString(a)),f+=this.rootObject.toString(a),e&&f.slice(-c.length)===c&&(f=f.slice(0,-c.length)),f},a}()}).call(this)},{"./XMLDeclaration":92,"./XMLDocType":93,"./XMLElement":94,"./XMLStringifier":98}],86:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":95,"lodash/object/create":143}],87:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing comment text");this.text=this.stringify.comment(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":95,"lodash/object/create":143}],88:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c,d,e,f){if(this.stringify=a.stringify,null==b)throw new Error("Missing DTD element name");if(null==c)throw new Error("Missing DTD attribute name");if(!d)throw new Error("Missing DTD attribute type");if(!e)throw new Error("Missing DTD attribute default");if(0!==e.indexOf("#")&&(e="#"+e),!e.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");if(f&&!e.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(b),this.attributeName=this.stringify.attName(c),this.attributeType=this.stringify.dtdAttType(d),this.defaultValue=this.stringify.dtdAttDefault(f),this.defaultValueType=e}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":143}],89:[function(a,b,c){(function(){var c,d,e;d=a("lodash/object/create"),e=a("lodash/lang/isArray"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing DTD element name");c||(c="(#PCDATA)"),e(c)&&(c="("+c.join(",")+")"),this.name=this.stringify.eleName(b),this.value=this.stringify.dtdElementValue(c)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/lang/isArray":135,"lodash/object/create":143}],90:[function(a,b,c){(function(){var c,d,e;d=a("lodash/object/create"),e=a("lodash/lang/isObject"),b.exports=c=function(){function a(a,b,c,d){if(this.stringify=a.stringify,null==c)throw new Error("Missing entity name");if(null==d)throw new Error("Missing entity value");if(this.pe=!!b,this.name=this.stringify.eleName(c),e(d)){if(!d.pubID&&!d.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(d.pubID&&!d.sysID)throw new Error("System identifier is required for a public external entity");if(null!=d.pubID&&(this.pubID=this.stringify.dtdPubID(d.pubID)),null!=d.sysID&&(this.sysID=this.stringify.dtdSysID(d.sysID)),null!=d.nData&&(this.nData=this.stringify.dtdNData(d.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(d)}return a.prototype.clone=function(){ -return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/lang/isObject":139,"lodash/object/create":143}],91:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing notation name");if(!c.pubID&&!c.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(b),null!=c.pubID&&(this.pubID=this.stringify.dtdPubID(c.pubID)),null!=c.sysID&&(this.sysID=this.stringify.dtdSysID(c.sysID))}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":143}],92:[function(a,b,c){(function(){var c,d,e,f,g=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},h={}.hasOwnProperty;e=a("lodash/object/create"),f=a("lodash/lang/isObject"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c,d,e){var g;b.__super__.constructor.call(this,a),f(c)&&(g=c,c=g.version,d=g.encoding,e=g.standalone),c||(c="1.0"),null!=c&&(this.version=this.stringify.xmlVersion(c)),null!=d&&(this.encoding=this.stringify.xmlEncoding(d)),null!=e&&(this.standalone=this.stringify.xmlStandalone(e))}return g(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":95,"lodash/lang/isObject":139,"lodash/object/create":143}],93:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l;k=a("lodash/object/create"),l=a("lodash/lang/isObject"),c=a("./XMLCData"),d=a("./XMLComment"),e=a("./XMLDTDAttList"),g=a("./XMLDTDEntity"),f=a("./XMLDTDElement"),h=a("./XMLDTDNotation"),j=a("./XMLProcessingInstruction"),b.exports=i=function(){function a(a,b,c){var d,e;this.documentObject=a,this.stringify=this.documentObject.stringify,this.children=[],l(b)&&(d=b,b=d.pubID,c=d.sysID),null==c&&(e=[b,c],c=e[0],b=e[1]),null!=b&&(this.pubID=this.stringify.dtdPubID(b)),null!=c&&(this.sysID=this.stringify.dtdSysID(c))}return a.prototype.clone=function(){return k(a.prototype,this)},a.prototype.element=function(a,b){var c;return c=new f(this,a,b),this.children.push(c),this},a.prototype.attList=function(a,b,c,d,f){var g;return g=new e(this,a,b,c,d,f),this.children.push(g),this},a.prototype.entity=function(a,b){var c;return c=new g(this,!1,a,b),this.children.push(c),this},a.prototype.pEntity=function(a,b){var c;return c=new g(this,!0,a,b),this.children.push(c),this},a.prototype.notation=function(a,b){var c;return c=new h(this,a,b),this.children.push(c),this},a.prototype.cdata=function(a){var b;return b=new c(this,a),this.children.push(b),this},a.prototype.comment=function(a){var b;return b=new d(this,a),this.children.push(b),this},a.prototype.instruction=function(a,b){var c;return c=new j(this,a,b),this.children.push(c),this},a.prototype.root=function(){return this.documentObject.root()},a.prototype.document=function(){return this.documentObject},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(i=(null!=a?a.pretty:void 0)||!1,e=null!=(k=null!=a?a.indent:void 0)?k:" ",h=null!=(l=null!=a?a.offset:void 0)?l:0,g=null!=(m=null!=a?a.newline:void 0)?m:"\n",b||(b=0),o=new Array(b+h+1).join(e),j="",i&&(j+=o),j+="0){for(j+=" [",i&&(j+=g),n=this.children,d=0,f=n.length;f>d;d++)c=n[d],j+=c.toString(a,b+1);j+="]"}return j+=">",i&&(j+=g),j},a.prototype.ele=function(a,b){return this.element(a,b)},a.prototype.att=function(a,b,c,d,e){return this.attList(a,b,c,d,e)},a.prototype.ent=function(a,b){return this.entity(a,b)},a.prototype.pent=function(a,b){return this.pEntity(a,b)},a.prototype.not=function(a,b){return this.notation(a,b)},a.prototype.dat=function(a){return this.cdata(a)},a.prototype.com=function(a){return this.comment(a)},a.prototype.ins=function(a,b){return this.instruction(a,b)},a.prototype.up=function(){return this.root()},a.prototype.doc=function(){return this.document()},a}()}).call(this)},{"./XMLCData":86,"./XMLComment":87,"./XMLDTDAttList":88,"./XMLDTDElement":89,"./XMLDTDEntity":90,"./XMLDTDNotation":91,"./XMLProcessingInstruction":96,"lodash/lang/isObject":139,"lodash/object/create":143}],94:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l=function(a,b){function c(){this.constructor=a}for(var d in b)m.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},m={}.hasOwnProperty;g=a("lodash/object/create"),k=a("lodash/lang/isObject"),i=a("lodash/lang/isArray"),j=a("lodash/lang/isFunction"),h=a("lodash/collection/every"),e=a("./XMLNode"),c=a("./XMLAttribute"),f=a("./XMLProcessingInstruction"),b.exports=d=function(a){function b(a,c,d){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing element name");this.name=this.stringify.eleName(c),this.children=[],this.instructions=[],this.attributes={},null!=d&&this.attribute(d)}return l(b,a),b.prototype.clone=function(){var a,c,d,e,f,h,i,j;d=g(b.prototype,this),d.isRoot&&(d.documentObject=null),d.attributes={},i=this.attributes;for(c in i)m.call(i,c)&&(a=i[c],d.attributes[c]=a.clone());for(d.instructions=[],j=this.instructions,e=0,f=j.length;f>e;e++)h=j[e],d.instructions.push(h.clone());return d.children=[],this.children.forEach(function(a){var b;return b=a.clone(),b.parent=d,d.children.push(b)}),d},b.prototype.attribute=function(a,b){var d,e;if(null!=a&&(a=a.valueOf()),k(a))for(d in a)m.call(a,d)&&(e=a[d],this.attribute(d,e));else j(b)&&(b=b.apply()),this.options.skipNullAttributes&&null==b||(this.attributes[a]=new c(this,a,b));return this},b.prototype.removeAttribute=function(a){var b,c,d;if(null==a)throw new Error("Missing attribute name");if(a=a.valueOf(),i(a))for(c=0,d=a.length;d>c;c++)b=a[c],delete this.attributes[b];else delete this.attributes[a];return this},b.prototype.instruction=function(a,b){var c,d,e,g,h;if(null!=a&&(a=a.valueOf()),null!=b&&(b=b.valueOf()),i(a))for(c=0,h=a.length;h>c;c++)d=a[c],this.instruction(d);else if(k(a))for(d in a)m.call(a,d)&&(e=a[d],this.instruction(d,e));else j(b)&&(b=b.apply()),g=new f(this,a,b),this.instructions.push(g);return this},b.prototype.toString=function(a,b){var c,d,e,f,g,i,j,k,l,n,o,p,q,r,s,t,u,v,w,x;for(p=(null!=a?a.pretty:void 0)||!1,f=null!=(r=null!=a?a.indent:void 0)?r:" ",o=null!=(s=null!=a?a.offset:void 0)?s:0,n=null!=(t=null!=a?a.newline:void 0)?t:"\n",b||(b=0),x=new Array(b+o+1).join(f),q="",u=this.instructions,e=0,j=u.length;j>e;e++)g=u[e],q+=g.toString(a,b+1);p&&(q+=x),q+="<"+this.name,v=this.attributes;for(l in v)m.call(v,l)&&(c=v[l],q+=c.toString(a));if(0===this.children.length||h(this.children,function(a){return""===a.value}))q+="/>",p&&(q+=n);else if(p&&1===this.children.length&&null!=this.children[0].value)q+=">",q+=this.children[0].value,q+="",q+=n;else{for(q+=">",p&&(q+=n),w=this.children,i=0,k=w.length;k>i;i++)d=w[i],q+=d.toString(a,b+1);p&&(q+=x),q+="",p&&(q+=n)}return q},b.prototype.att=function(a,b){return this.attribute(a,b)},b.prototype.ins=function(a,b){return this.instruction(a,b)},b.prototype.a=function(a,b){return this.attribute(a,b)},b.prototype.i=function(a,b){return this.instruction(a,b)},b}(e)}).call(this)},{"./XMLAttribute":84,"./XMLNode":95,"./XMLProcessingInstruction":96,"lodash/collection/every":101,"lodash/lang/isArray":135,"lodash/lang/isFunction":137,"lodash/lang/isObject":139,"lodash/object/create":143}],95:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l,m,n,o={}.hasOwnProperty;n=a("lodash/lang/isObject"),k=a("lodash/lang/isArray"),m=a("lodash/lang/isFunction"),l=a("lodash/lang/isEmpty"),g=null,c=null,d=null,e=null,f=null,i=null,j=null,b.exports=h=function(){function b(b){this.parent=b,this.options=this.parent.options,this.stringify=this.parent.stringify,null===g&&(g=a("./XMLElement"),c=a("./XMLCData"),d=a("./XMLComment"),e=a("./XMLDeclaration"),f=a("./XMLDocType"),i=a("./XMLRaw"),j=a("./XMLText"))}return b.prototype.clone=function(){throw new Error("Cannot clone generic XMLNode")},b.prototype.element=function(a,b,c){var d,e,f,g,h,i,j;if(g=null,null==b&&(b={}),b=b.valueOf(),n(b)||(i=[b,c],c=i[0],b=i[1]),null!=a&&(a=a.valueOf()),k(a))for(e=0,h=a.length;h>e;e++)d=a[e],g=this.element(d);else if(m(a))g=this.element(a.apply());else if(n(a))for(f in a)o.call(a,f)&&(j=a[f],m(j)&&(j=j.apply()),n(j)&&l(j)&&(j=null),!this.options.ignoreDecorators&&this.stringify.convertAttKey&&0===f.indexOf(this.stringify.convertAttKey)?g=this.attribute(f.substr(this.stringify.convertAttKey.length),j):!this.options.ignoreDecorators&&this.stringify.convertPIKey&&0===f.indexOf(this.stringify.convertPIKey)?g=this.instruction(f.substr(this.stringify.convertPIKey.length),j):n(j)?!this.options.ignoreDecorators&&this.stringify.convertListKey&&0===f.indexOf(this.stringify.convertListKey)&&k(j)?g=this.element(j):(g=this.element(f),g.element(j)):g=this.element(f,j));else g=!this.options.ignoreDecorators&&this.stringify.convertTextKey&&0===a.indexOf(this.stringify.convertTextKey)?this.text(c):!this.options.ignoreDecorators&&this.stringify.convertCDataKey&&0===a.indexOf(this.stringify.convertCDataKey)?this.cdata(c):!this.options.ignoreDecorators&&this.stringify.convertCommentKey&&0===a.indexOf(this.stringify.convertCommentKey)?this.comment(c):!this.options.ignoreDecorators&&this.stringify.convertRawKey&&0===a.indexOf(this.stringify.convertRawKey)?this.raw(c):this.node(a,b,c);if(null==g)throw new Error("Could not create any elements with: "+a);return g},b.prototype.insertBefore=function(a,b,c){var d,e,f;if(this.isRoot)throw new Error("Cannot insert elements at root level");return e=this.parent.children.indexOf(this),f=this.parent.children.splice(e),d=this.parent.element(a,b,c),Array.prototype.push.apply(this.parent.children,f),d},b.prototype.insertAfter=function(a,b,c){var d,e,f;if(this.isRoot)throw new Error("Cannot insert elements at root level");return e=this.parent.children.indexOf(this),f=this.parent.children.splice(e+1),d=this.parent.element(a,b,c),Array.prototype.push.apply(this.parent.children,f),d},b.prototype.remove=function(){var a,b;if(this.isRoot)throw new Error("Cannot remove the root element");return a=this.parent.children.indexOf(this),[].splice.apply(this.parent.children,[a,a-a+1].concat(b=[])),b,this.parent},b.prototype.node=function(a,b,c){var d,e;return null!=a&&(a=a.valueOf()),null==b&&(b={}),b=b.valueOf(),n(b)||(e=[b,c],c=e[0],b=e[1]),d=new g(this,a,b),null!=c&&d.text(c),this.children.push(d),d},b.prototype.text=function(a){var b;return b=new j(this,a),this.children.push(b),this},b.prototype.cdata=function(a){var b;return b=new c(this,a),this.children.push(b),this},b.prototype.comment=function(a){var b;return b=new d(this,a),this.children.push(b),this},b.prototype.raw=function(a){var b;return b=new i(this,a),this.children.push(b),this},b.prototype.declaration=function(a,b,c){var d,f;return d=this.document(),f=new e(d,a,b,c),d.xmldec=f,d.root()},b.prototype.doctype=function(a,b){var c,d;return c=this.document(),d=new f(c,a,b),c.doctype=d,d},b.prototype.up=function(){if(this.isRoot)throw new Error("The root node has no parent. Use doc() if you need to get the document object.");return this.parent},b.prototype.root=function(){var a;if(this.isRoot)return this;for(a=this.parent;!a.isRoot;)a=a.parent;return a},b.prototype.document=function(){return this.root().documentObject},b.prototype.end=function(a){return this.document().toString(a)},b.prototype.prev=function(){var a;if(this.isRoot)throw new Error("Root node has no siblings");if(a=this.parent.children.indexOf(this),1>a)throw new Error("Already at the first node");return this.parent.children[a-1]},b.prototype.next=function(){var a;if(this.isRoot)throw new Error("Root node has no siblings");if(a=this.parent.children.indexOf(this),-1===a||a===this.parent.children.length-1)throw new Error("Already at the last node");return this.parent.children[a+1]},b.prototype.importXMLBuilder=function(a){var b;return b=a.root().clone(),b.parent=this,b.isRoot=!1,this.children.push(b),this},b.prototype.ele=function(a,b,c){return this.element(a,b,c)},b.prototype.nod=function(a,b,c){return this.node(a,b,c)},b.prototype.txt=function(a){return this.text(a)},b.prototype.dat=function(a){return this.cdata(a)},b.prototype.com=function(a){return this.comment(a)},b.prototype.doc=function(){return this.document()},b.prototype.dec=function(a,b,c){return this.declaration(a,b,c)},b.prototype.dtd=function(a,b){return this.doctype(a,b)},b.prototype.e=function(a,b,c){return this.element(a,b,c)},b.prototype.n=function(a,b,c){return this.node(a,b,c)},b.prototype.t=function(a){return this.text(a)},b.prototype.d=function(a){return this.cdata(a)},b.prototype.c=function(a){return this.comment(a)},b.prototype.r=function(a){return this.raw(a)},b.prototype.u=function(){return this.up()},b}()}).call(this)},{"./XMLCData":86,"./XMLComment":87,"./XMLDeclaration":92,"./XMLDocType":93,"./XMLElement":94,"./XMLRaw":97,"./XMLText":99,"lodash/lang/isArray":135,"lodash/lang/isEmpty":136,"lodash/lang/isFunction":137,"lodash/lang/isObject":139}],96:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing instruction target");this.target=this.stringify.insTarget(b),c&&(this.value=this.stringify.insValue(c))}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":143}],97:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),c=a("./XMLNode"),b.exports=d=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing raw text");this.value=this.stringify.raw(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+=this.value,f&&(g+=d),g},b}(c)}).call(this)},{"./XMLNode":95,"lodash/object/create":143}],98:[function(a,b,c){(function(){var a,c=function(a,b){return function(){return a.apply(b,arguments)}},d={}.hasOwnProperty;b.exports=a=function(){function a(a){this.assertLegalChar=c(this.assertLegalChar,this);var b,e,f;this.allowSurrogateChars=null!=a?a.allowSurrogateChars:void 0,e=(null!=a?a.stringify:void 0)||{};for(b in e)d.call(e,b)&&(f=e[b],this[b]=f)}return a.prototype.eleName=function(a){return a=""+a||"",this.assertLegalChar(a)},a.prototype.eleText=function(a){return a=""+a||"",this.assertLegalChar(this.elEscape(a))},a.prototype.cdata=function(a){if(a=""+a||"",a.match(/]]>/))throw new Error("Invalid CDATA text: "+a);return this.assertLegalChar(a)},a.prototype.comment=function(a){if(a=""+a||"",a.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+a);return this.assertLegalChar(a)},a.prototype.raw=function(a){return""+a||""},a.prototype.attName=function(a){return""+a||""},a.prototype.attValue=function(a){return a=""+a||"",this.attEscape(a)},a.prototype.insTarget=function(a){return""+a||""},a.prototype.insValue=function(a){if(a=""+a||"",a.match(/\?>/))throw new Error("Invalid processing instruction value: "+a);return a},a.prototype.xmlVersion=function(a){if(a=""+a||"",!a.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+a);return a},a.prototype.xmlEncoding=function(a){if(a=""+a||"",!a.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/))throw new Error("Invalid encoding: "+a);return a},a.prototype.xmlStandalone=function(a){return a?"yes":"no"},a.prototype.dtdPubID=function(a){return""+a||""},a.prototype.dtdSysID=function(a){return""+a||""},a.prototype.dtdElementValue=function(a){return""+a||""},a.prototype.dtdAttType=function(a){return""+a||""},a.prototype.dtdAttDefault=function(a){return null!=a?""+a||"":a},a.prototype.dtdEntityValue=function(a){return""+a||""},a.prototype.dtdNData=function(a){return""+a||""},a.prototype.convertAttKey="@",a.prototype.convertPIKey="?",a.prototype.convertTextKey="#text",a.prototype.convertCDataKey="#cdata",a.prototype.convertCommentKey="#comment",a.prototype.convertRawKey="#raw",a.prototype.convertListKey="#list",a.prototype.assertLegalChar=function(a){var b,c;if(b=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,c=a.match(b))throw new Error("Invalid character ("+c+") in string: "+a+" at index "+c.index);return a},a.prototype.elEscape=function(a){return a.replace(/&/g,"&").replace(//g,">").replace(/\r/g," ")},a.prototype.attEscape=function(a){return a.replace(/&/g,"&").replace(/c||null==d)return d;var g=b[c-2],h=b[c-1],i=b[3];c>3&&"function"==typeof g?(g=e(g,h,5),c-=2):(g=c>2&&"function"==typeof h?h:null,c-=g?1:0),i&&f(b[1],b[2],i)&&(g=3==c?null:g,c=2);for(var j=0;++ji))return!1;for(;k&&++h-1&&a%1==0&&b>a}var e=Math.pow(2,53)-1;b.exports=d},{}],127:[function(a,b,c){function d(a,b,c){if(!g(c))return!1;var d=typeof b;if("number"==d)var h=c.length,i=f(h)&&e(b,h);else i="string"==d&&b in c;if(i){var j=c[b];return a===a?a===j:j!==j}return!1}var e=a("./isIndex"),f=a("./isLength"),g=a("../lang/isObject");b.exports=d},{"../lang/isObject":139,"./isIndex":126,"./isLength":128}],128:[function(a,b,c){function d(a){return"number"==typeof a&&a>-1&&a%1==0&&e>=a}var e=Math.pow(2,53)-1;b.exports=d},{}],129:[function(a,b,c){function d(a){return a&&"object"==typeof a||!1}b.exports=d},{}],130:[function(a,b,c){function d(a){return a===a&&(0===a?1/a>0:!e(a))}var e=a("../lang/isObject");b.exports=d},{"../lang/isObject":139}],131:[function(a,b,c){(function(c){var d=a("../lang/isNative"),e=d(e=c.WeakMap)&&e,f=e&&new e;b.exports=f}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lang/isNative":138}],132:[function(a,b,c){function d(a){for(var b=i(a),c=b.length,d=c&&a.length,k=d&&h(d)&&(f(a)||j.nonEnumArgs&&e(a)),m=-1,n=[];++m0;++dAdds additional user attributes to the user pool schema.

"},AdminAddUserToGroup:{name:"AdminAddUserToGroup",http:{method:"POST",requestUri:"/"},input:{shape:"AdminAddUserToGroupRequest"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Adds the specified user to the specified group.

Requires developer credentials.

"},AdminConfirmSignUp:{name:"AdminConfirmSignUp",http:{method:"POST",requestUri:"/"},input:{shape:"AdminConfirmSignUpRequest"},output:{shape:"AdminConfirmSignUpResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"NotAuthorizedException"},{shape:"TooManyFailedAttemptsException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Confirms user registration as an admin without using a confirmation code. Works on any user.

Requires developer credentials.

"},AdminCreateUser:{name:"AdminCreateUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminCreateUserRequest"},output:{shape:"AdminCreateUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UserNotFoundException"},{shape:"UsernameExistsException"},{shape:"InvalidPasswordException"},{shape:"CodeDeliveryFailureException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"PreconditionNotMetException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UnsupportedUserStateException"},{shape:"InternalErrorException"}],documentation:"

Creates a new user in the specified user pool and sends a welcome message via email or phone (SMS). This message is based on a template that you configured in your call to CreateUserPool or UpdateUserPool. This template includes your custom sign-up instructions and placeholders for user name and temporary password.

Requires developer credentials.

"},AdminDeleteUser:{name:"AdminDeleteUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminDeleteUserRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Deletes a user as an administrator. Works on any user.

Requires developer credentials.

"},AdminDeleteUserAttributes:{name:"AdminDeleteUserAttributes",http:{method:"POST",requestUri:"/"},input:{shape:"AdminDeleteUserAttributesRequest"},output:{shape:"AdminDeleteUserAttributesResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Deletes the user attributes in a user pool as an administrator. Works on any user.

Requires developer credentials.

"},AdminDisableProviderForUser:{name:"AdminDisableProviderForUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminDisableProviderForUserRequest"},output:{shape:"AdminDisableProviderForUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"AliasExistsException"},{shape:"InternalErrorException"}]},AdminDisableUser:{name:"AdminDisableUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminDisableUserRequest"},output:{shape:"AdminDisableUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Disables the specified user as an administrator. Works on any user.

Requires developer credentials.

"},AdminEnableUser:{name:"AdminEnableUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminEnableUserRequest"},output:{shape:"AdminEnableUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Enables the specified user as an administrator. Works on any user.

Requires developer credentials.

"},AdminForgetDevice:{name:"AdminForgetDevice",http:{method:"POST",requestUri:"/"},input:{shape:"AdminForgetDeviceRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Forgets the device, as an administrator.

Requires developer credentials.

"},AdminGetDevice:{name:"AdminGetDevice",http:{method:"POST",requestUri:"/"},input:{shape:"AdminGetDeviceRequest"},output:{shape:"AdminGetDeviceResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"},{shape:"NotAuthorizedException"}],documentation:"

Gets the device, as an administrator.

Requires developer credentials.

"},AdminGetUser:{name:"AdminGetUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminGetUserRequest"},output:{shape:"AdminGetUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Gets the specified user by user name in a user pool as an administrator. Works on any user.

Requires developer credentials.

"},AdminInitiateAuth:{name:"AdminInitiateAuth",http:{method:"POST",requestUri:"/"},input:{shape:"AdminInitiateAuthRequest"},output:{shape:"AdminInitiateAuthResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"},{shape:"UnexpectedLambdaException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"MFAMethodNotFoundException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"}],documentation:"

Initiates the authentication flow, as an administrator.

Requires developer credentials.

"},AdminLinkProviderForUser:{name:"AdminLinkProviderForUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminLinkProviderForUserRequest"},output:{shape:"AdminLinkProviderForUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"AliasExistsException"},{shape:"InternalErrorException"}]},AdminListDevices:{name:"AdminListDevices",http:{method:"POST",requestUri:"/"},input:{shape:"AdminListDevicesRequest"},output:{shape:"AdminListDevicesResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"},{shape:"NotAuthorizedException"}],documentation:"

Lists devices, as an administrator.

Requires developer credentials.

"},AdminListGroupsForUser:{name:"AdminListGroupsForUser",http:{method:"POST",requestUri:"/"},input:{shape:"AdminListGroupsForUserRequest"},output:{shape:"AdminListGroupsForUserResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Lists the groups that the user belongs to.

Requires developer credentials.

"},AdminListUserAuthEvents:{name:"AdminListUserAuthEvents",http:{method:"POST",requestUri:"/"},input:{shape:"AdminListUserAuthEventsRequest"},output:{shape:"AdminListUserAuthEventsResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"UserPoolAddOnNotEnabledException"},{shape:"InternalErrorException"}]},AdminRemoveUserFromGroup:{name:"AdminRemoveUserFromGroup",http:{method:"POST",requestUri:"/"},input:{shape:"AdminRemoveUserFromGroupRequest"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Removes the specified user from the specified group.

Requires developer credentials.

"},AdminResetUserPassword:{name:"AdminResetUserPassword",http:{method:"POST",requestUri:"/"},input:{shape:"AdminResetUserPasswordRequest"},output:{shape:"AdminResetUserPasswordResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"NotAuthorizedException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"UserNotFoundException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InternalErrorException"}],documentation:"

Resets the specified user's password in a user pool as an administrator. Works on any user.

When a developer calls this API, the current password is invalidated, so it must be changed. If a user tries to sign in after the API is called, the app will get a PasswordResetRequiredException exception back and should direct the user down the flow to reset the password, which is the same as the forgot password flow. In addition, if the user pool has phone verification selected and a verified phone number exists for the user, or if email verification is selected and a verified email exists for the user, calling this API will also result in sending a message to the end user with the code to change their password.

Requires developer credentials.

"},AdminRespondToAuthChallenge:{name:"AdminRespondToAuthChallenge",http:{method:"POST",requestUri:"/"},input:{shape:"AdminRespondToAuthChallengeRequest"},output:{shape:"AdminRespondToAuthChallengeResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"UnexpectedLambdaException"},{shape:"InvalidPasswordException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"InternalErrorException"},{shape:"MFAMethodNotFoundException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"AliasExistsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"SoftwareTokenMFANotFoundException"}],documentation:"

Responds to an authentication challenge, as an administrator.

Requires developer credentials.

"},AdminSetUserMFAPreference:{name:"AdminSetUserMFAPreference",http:{method:"POST",requestUri:"/"},input:{shape:"AdminSetUserMFAPreferenceRequest"},output:{shape:"AdminSetUserMFAPreferenceResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}]},AdminSetUserSettings:{name:"AdminSetUserSettings",http:{method:"POST",requestUri:"/"},input:{shape:"AdminSetUserSettingsRequest"},output:{shape:"AdminSetUserSettingsResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Sets all the user settings for a specified user name. Works on any user.

Requires developer credentials.

"},AdminUpdateAuthEventFeedback:{name:"AdminUpdateAuthEventFeedback",http:{method:"POST",requestUri:"/"},input:{shape:"AdminUpdateAuthEventFeedbackRequest"},output:{shape:"AdminUpdateAuthEventFeedbackResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"UserPoolAddOnNotEnabledException"},{shape:"InternalErrorException"}]},AdminUpdateDeviceStatus:{name:"AdminUpdateDeviceStatus",http:{method:"POST",requestUri:"/"},input:{shape:"AdminUpdateDeviceStatusRequest"},output:{shape:"AdminUpdateDeviceStatusResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Updates the device status as an administrator.

Requires developer credentials.

"},AdminUpdateUserAttributes:{name:"AdminUpdateUserAttributes",http:{method:"POST",requestUri:"/"},input:{shape:"AdminUpdateUserAttributesRequest"},output:{shape:"AdminUpdateUserAttributesResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"AliasExistsException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Updates the specified user's attributes, including developer attributes, as an administrator. Works on any user.

In addition to updating user attributes, this API can also be used to mark phone and email as verified.

Requires developer credentials.

"},AdminUserGlobalSignOut:{name:"AdminUserGlobalSignOut",http:{method:"POST",requestUri:"/"},input:{shape:"AdminUserGlobalSignOutRequest"},output:{shape:"AdminUserGlobalSignOutResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Signs out users from all devices, as an administrator.

Requires developer credentials.

"},AssociateSoftwareToken:{name:"AssociateSoftwareToken",http:{method:"POST",requestUri:"/"},input:{shape:"AssociateSoftwareTokenRequest"},output:{shape:"AssociateSoftwareTokenResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"InternalErrorException"},{shape:"SoftwareTokenMFANotFoundException"}]},Authenticate:{name:"Authenticate",http:{method:"POST",requestUri:"/"},input:{shape:"AuthenticateRequest"},output:{shape:"AuthenticateResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"MFAMethodNotFoundException"},{shape:"TooManyRequestsException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"CodeDeliveryFailureException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"PasswordResetRequiredException"},{shape:"InternalErrorException"}],documentation:'

The second step in the authentication flow of Secure Remote Password protocol (SRP) for authenticating a user to get ID, access and refresh tokens. To learn more about the first step, see GetAuthenticationDetails.

',authtype:"none"},ChangePassword:{name:"ChangePassword",http:{method:"POST",requestUri:"/"},input:{shape:"ChangePasswordRequest"},output:{shape:"ChangePasswordResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"InvalidPasswordException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Changes the password for a specified user in a user pool.

",authtype:"none"},ConfirmDevice:{name:"ConfirmDevice",http:{method:"POST",requestUri:"/"},input:{shape:"ConfirmDeviceRequest"},output:{shape:"ConfirmDeviceResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"InvalidPasswordException"},{shape:"InvalidLambdaResponseException"},{shape:"UsernameExistsException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Confirms tracking of the device. This API call is the call that begins device tracking.

"},ConfirmForgotPassword:{name:"ConfirmForgotPassword",http:{method:"POST",requestUri:"/"},input:{shape:"ConfirmForgotPasswordRequest"},output:{shape:"ConfirmForgotPasswordResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidParameterException"},{shape:"InvalidPasswordException"},{shape:"NotAuthorizedException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"TooManyFailedAttemptsException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Allows a user to enter a confirmation code to reset a forgotten password.

",authtype:"none"},ConfirmSignUp:{name:"ConfirmSignUp",http:{method:"POST",requestUri:"/"},input:{shape:"ConfirmSignUpRequest"},output:{shape:"ConfirmSignUpResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"NotAuthorizedException"},{shape:"TooManyFailedAttemptsException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"InvalidLambdaResponseException"},{shape:"AliasExistsException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Confirms registration of a user and handles the existing alias from a previous user.

",authtype:"none"},CreateGroup:{name:"CreateGroup",http:{method:"POST",requestUri:"/"},input:{shape:"CreateGroupRequest"},output:{shape:"CreateGroupResponse"},errors:[{shape:"InvalidParameterException"},{shape:"GroupExistsException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Creates a new group in the specified user pool.

Requires developer credentials.

"},CreateIdentityProvider:{name:"CreateIdentityProvider",http:{method:"POST",requestUri:"/"},input:{shape:"CreateIdentityProviderRequest"},output:{shape:"CreateIdentityProviderResponse"},errors:[{shape:"InvalidParameterException"},{shape:"DuplicateProviderException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"InternalErrorException"}]},CreateResourceServer:{name:"CreateResourceServer",http:{method:"POST",requestUri:"/"},input:{shape:"CreateResourceServerRequest"},output:{shape:"CreateResourceServerResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"InternalErrorException"}]},CreateUserImportJob:{name:"CreateUserImportJob",http:{method:"POST",requestUri:"/"},input:{shape:"CreateUserImportJobRequest"},output:{shape:"CreateUserImportJobResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"PreconditionNotMetException"},{shape:"NotAuthorizedException"},{shape:"LimitExceededException"},{shape:"InternalErrorException"}],documentation:"

Creates the user import job.

"},CreateUserPool:{name:"CreateUserPool",http:{method:"POST",requestUri:"/"},input:{shape:"CreateUserPoolRequest"},output:{shape:"CreateUserPoolResponse"},errors:[{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"NotAuthorizedException"},{shape:"UserPoolTaggingException"},{shape:"InternalErrorException"}],documentation:"

Creates a new Amazon Cognito user pool and sets the password policy for the pool.

"},CreateUserPoolClient:{name:"CreateUserPoolClient",http:{method:"POST",requestUri:"/"},input:{shape:"CreateUserPoolClientRequest"},output:{shape:"CreateUserPoolClientResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"NotAuthorizedException"},{shape:"ScopeDoesNotExistException"},{shape:"InvalidOAuthFlowException"},{shape:"InternalErrorException"}],documentation:"

Creates the user pool client.

"},CreateUserPoolDomain:{name:"CreateUserPoolDomain",http:{method:"POST",requestUri:"/"},input:{shape:"CreateUserPoolDomainRequest"},output:{shape:"CreateUserPoolDomainResponse"},errors:[{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"ResourceNotFoundException"},{shape:"InternalErrorException"}]},DeleteGroup:{name:"DeleteGroup",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteGroupRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Deletes a group. Currently only groups with no members can be deleted.

Requires developer credentials.

"},DeleteIdentityProvider:{name:"DeleteIdentityProvider",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteIdentityProviderRequest"},errors:[{shape:"InvalidParameterException"},{shape:"UnsupportedIdentityProviderException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},DeleteResourceServer:{name:"DeleteResourceServer",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteResourceServerRequest"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},DeleteUser:{name:"DeleteUser",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteUserRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Allows a user to delete one's self.

",authtype:"none"},DeleteUserAttributes:{name:"DeleteUserAttributes",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteUserAttributesRequest"},output:{shape:"DeleteUserAttributesResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Deletes the attributes for a user.

",authtype:"none"},DeleteUserPool:{name:"DeleteUserPool",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteUserPoolRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserImportInProgressException"},{shape:"InternalErrorException"}],documentation:"

Deletes the specified Amazon Cognito user pool.

"},DeleteUserPoolClient:{name:"DeleteUserPoolClient",http:{method:"POST",requestUri:"/"},input:{shape:"DeleteUserPoolClientRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Allows the developer to delete the user pool client.

"},DeleteUserPoolDomain:{name:"DeleteUserPoolDomain",http:{method:"POST",requestUri:"/" +},input:{shape:"DeleteUserPoolDomainRequest"},output:{shape:"DeleteUserPoolDomainResponse"},errors:[{shape:"NotAuthorizedException"},{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"InternalErrorException"}]},DescribeIdentityProvider:{name:"DescribeIdentityProvider",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeIdentityProviderRequest"},output:{shape:"DescribeIdentityProviderResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},DescribeResourceServer:{name:"DescribeResourceServer",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeResourceServerRequest"},output:{shape:"DescribeResourceServerResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},DescribeRiskConfiguration:{name:"DescribeRiskConfiguration",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeRiskConfigurationRequest"},output:{shape:"DescribeRiskConfigurationResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserPoolAddOnNotEnabledException"},{shape:"InternalErrorException"}]},DescribeUserImportJob:{name:"DescribeUserImportJob",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeUserImportJobRequest"},output:{shape:"DescribeUserImportJobResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Describes the user import job.

"},DescribeUserPool:{name:"DescribeUserPool",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeUserPoolRequest"},output:{shape:"DescribeUserPoolResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserPoolTaggingException"},{shape:"InternalErrorException"}],documentation:"

Returns the configuration information and metadata of the specified user pool.

"},DescribeUserPoolClient:{name:"DescribeUserPoolClient",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeUserPoolClientRequest"},output:{shape:"DescribeUserPoolClientResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Client method for returning the configuration information and metadata of the specified user pool client.

"},DescribeUserPoolDomain:{name:"DescribeUserPoolDomain",http:{method:"POST",requestUri:"/"},input:{shape:"DescribeUserPoolDomainRequest"},output:{shape:"DescribeUserPoolDomainResponse"},errors:[{shape:"NotAuthorizedException"},{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"InternalErrorException"}]},EnhanceAuth:{name:"EnhanceAuth",http:{method:"POST",requestUri:"/"},input:{shape:"EnhanceAuthRequest"},output:{shape:"EnhanceAuthResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"PasswordResetRequiredException"},{shape:"InternalErrorException"}],documentation:"

Grants the ability to supply a multi-factor authentication (MFA) token for an MFA-enabled user to get the ID, access, and refresh tokens.

",authtype:"none"},ForgetDevice:{name:"ForgetDevice",http:{method:"POST",requestUri:"/"},input:{shape:"ForgetDeviceRequest"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Forgets the specified device.

"},ForgotPassword:{name:"ForgotPassword",http:{method:"POST",requestUri:"/"},input:{shape:"ForgotPasswordRequest"},output:{shape:"ForgotPasswordResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"NotAuthorizedException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"CodeDeliveryFailureException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:'

Calling this API causes a message to be sent to the end user with a confirmation code that is required to change the user\'s password. For the Username parameter, you can use the username or user alias. If a verified phone number exists for the user, the confirmation code is sent to the phone number. Otherwise, if a verified email exists, the confirmation code is sent to the email. If neither a verified phone number nor a verified email exists, InvalidParameterException is thrown. To use the confirmation code for resetting the password, call ConfirmForgotPassword.

',authtype:"none"},GetAuthenticationDetails:{name:"GetAuthenticationDetails",http:{method:"POST",requestUri:"/"},input:{shape:"GetAuthenticationDetailsRequest"},output:{shape:"GetAuthenticationDetailsResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:'

First step of the Secure Remote Password protocol (SRP) auth flow to authenticate a user. To learn about the second step, see Authenticate.

',authtype:"none"},GetCSVHeader:{name:"GetCSVHeader",http:{method:"POST",requestUri:"/"},input:{shape:"GetCSVHeaderRequest"},output:{shape:"GetCSVHeaderResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Gets the header information for the .csv file to be used as input for the user import job.

"},GetDevice:{name:"GetDevice",http:{method:"POST",requestUri:"/"},input:{shape:"GetDeviceRequest"},output:{shape:"GetDeviceResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Gets the device.

"},GetGroup:{name:"GetGroup",http:{method:"POST",requestUri:"/"},input:{shape:"GetGroupRequest"},output:{shape:"GetGroupResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Gets a group.

Requires developer credentials.

"},GetIdentityProviderByIdentifier:{name:"GetIdentityProviderByIdentifier",http:{method:"POST",requestUri:"/"},input:{shape:"GetIdentityProviderByIdentifierRequest"},output:{shape:"GetIdentityProviderByIdentifierResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},GetJWKS:{name:"GetJWKS",http:{method:"POST",requestUri:"/"},input:{shape:"GetJWKSRequest"},output:{shape:"GetJWKSResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"InvalidParameterException"},{shape:"InternalErrorException"}],documentation:"

Gets the JSON Web keys for the specified user pool.

",authtype:"none"},GetOpenIdConfiguration:{name:"GetOpenIdConfiguration",http:{method:"POST",requestUri:"/"},input:{shape:"GetOpenIdConfigurationRequest"},output:{shape:"GetOpenIdConfigurationResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"InvalidParameterException"},{shape:"InternalErrorException"}],documentation:"

Gets the OpenId configuration information for the specified user pool.

",authtype:"none"},GetSigningCertificate:{name:"GetSigningCertificate",http:{method:"POST",requestUri:"/"},input:{shape:"GetSigningCertificateRequest"},output:{shape:"GetSigningCertificateResponse"},errors:[{shape:"InternalErrorException"},{shape:"ResourceNotFoundException"}]},GetUICustomization:{name:"GetUICustomization",http:{method:"POST",requestUri:"/"},input:{shape:"GetUICustomizationRequest"},output:{shape:"GetUICustomizationResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},GetUser:{name:"GetUser",http:{method:"POST",requestUri:"/"},input:{shape:"GetUserRequest"},output:{shape:"GetUserResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Gets the user attributes and metadata for a user.

",authtype:"none"},GetUserAttributeVerificationCode:{name:"GetUserAttributeVerificationCode",http:{method:"POST",requestUri:"/"},input:{shape:"GetUserAttributeVerificationCodeRequest"},output:{shape:"GetUserAttributeVerificationCodeResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"CodeDeliveryFailureException"},{shape:"LimitExceededException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Gets the user attribute verification code for the specified attribute name.

",authtype:"none"},GetUserPoolMfaConfig:{name:"GetUserPoolMfaConfig",http:{method:"POST",requestUri:"/"},input:{shape:"GetUserPoolMfaConfigRequest"},output:{shape:"GetUserPoolMfaConfigResponse"},errors:[{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}]},GetUserPoolUIConfiguration:{name:"GetUserPoolUIConfiguration",http:{method:"POST",requestUri:"/"},input:{shape:"GetUserPoolUIConfigurationRequest"},output:{shape:"GetUserPoolUIConfigurationResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},GlobalSignOut:{name:"GlobalSignOut",http:{method:"POST",requestUri:"/"},input:{shape:"GlobalSignOutRequest"},output:{shape:"GlobalSignOutResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Signs out users from all devices.

"},InitiateAuth:{name:"InitiateAuth",http:{method:"POST",requestUri:"/"},input:{shape:"InitiateAuthRequest"},output:{shape:"InitiateAuthResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"UnexpectedLambdaException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Initiates the authentication flow.

"},ListDevices:{name:"ListDevices",http:{method:"POST",requestUri:"/"},input:{shape:"ListDevicesRequest"},output:{shape:"ListDevicesResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Lists the devices.

"},ListGroups:{name:"ListGroups",http:{method:"POST",requestUri:"/"},input:{shape:"ListGroupsRequest"},output:{shape:"ListGroupsResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Lists the groups associated with a user pool.

Requires developer credentials.

"},ListIdentityProviders:{name:"ListIdentityProviders",http:{method:"POST",requestUri:"/"},input:{shape:"ListIdentityProvidersRequest"},output:{shape:"ListIdentityProvidersResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},ListResourceServers:{name:"ListResourceServers",http:{method:"POST",requestUri:"/"},input:{shape:"ListResourceServersRequest"},output:{shape:"ListResourceServersResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},ListUserImportJobs:{name:"ListUserImportJobs",http:{method:"POST",requestUri:"/"},input:{shape:"ListUserImportJobsRequest"},output:{shape:"ListUserImportJobsResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Lists the user import jobs.

"},ListUserPoolClients:{name:"ListUserPoolClients",http:{method:"POST",requestUri:"/"},input:{shape:"ListUserPoolClientsRequest"},output:{shape:"ListUserPoolClientsResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Lists the clients that have been created for the specified user pool.

"},ListUserPools:{name:"ListUserPools",http:{method:"POST",requestUri:"/"},input:{shape:"ListUserPoolsRequest"},output:{shape:"ListUserPoolsResponse"},errors:[{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Lists the user pools associated with an AWS account.

"},ListUsers:{name:"ListUsers",http:{method:"POST",requestUri:"/"},input:{shape:"ListUsersRequest"},output:{shape:"ListUsersResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Lists the users in the Amazon Cognito user pool.

"},ListUsersInGroup:{name:"ListUsersInGroup",http:{method:"POST",requestUri:"/"},input:{shape:"ListUsersInGroupRequest"},output:{shape:"ListUsersInGroupResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Lists the users in the specified group.

Requires developer credentials.

"},RefreshTokens:{name:"RefreshTokens",http:{method:"POST",requestUri:"/"},input:{shape:"RefreshTokensRequest"},output:{shape:"RefreshTokensResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"InternalErrorException"}],documentation:"

Refreshes the tokens for the specified client ID.

",authtype:"none"},ResendConfirmationCode:{name:"ResendConfirmationCode",http:{method:"POST",requestUri:"/"},input:{shape:"ResendConfirmationCodeRequest"},output:{shape:"ResendConfirmationCodeResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"NotAuthorizedException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"CodeDeliveryFailureException"},{shape:"UserNotFoundException"},{shape:"InternalErrorException"}],documentation:"

Resends the confirmation (for confirmation of registration) to a specific user in the user pool.

",authtype:"none"},RespondToAuthChallenge:{name:"RespondToAuthChallenge",http:{method:"POST",requestUri:"/"},input:{shape:"RespondToAuthChallengeRequest"},output:{shape:"RespondToAuthChallengeResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidPasswordException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"MFAMethodNotFoundException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"AliasExistsException"},{shape:"InternalErrorException"},{shape:"SoftwareTokenMFANotFoundException"}],documentation:"

Responds to the authentication challenge.

"},SetRiskConfiguration:{name:"SetRiskConfiguration",http:{method:"POST",requestUri:"/"},input:{shape:"SetRiskConfigurationRequest"},output:{shape:"SetRiskConfigurationResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserPoolAddOnNotEnabledException"},{shape:"InternalErrorException"}]},SetUICustomization:{name:"SetUICustomization",http:{method:"POST",requestUri:"/"},input:{shape:"SetUICustomizationRequest"},output:{shape:"SetUICustomizationResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},SetUserMFAPreference:{name:"SetUserMFAPreference",http:{method:"POST",requestUri:"/"},input:{shape:"SetUserMFAPreferenceRequest"},output:{shape:"SetUserMFAPreferenceResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}]},SetUserPoolMfaConfig:{name:"SetUserPoolMfaConfig",http:{method:"POST",requestUri:"/"},input:{shape:"SetUserPoolMfaConfigRequest"},output:{shape:"SetUserPoolMfaConfigResponse"},errors:[{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"ResourceNotFoundException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}]},SetUserPoolUIConfiguration:{name:"SetUserPoolUIConfiguration",http:{method:"POST",requestUri:"/"},input:{shape:"SetUserPoolUIConfigurationRequest"},output:{shape:"SetUserPoolUIConfigurationResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},SetUserSettings:{name:"SetUserSettings",http:{method:"POST",requestUri:"/"},input:{shape:"SetUserSettingsRequest"},output:{shape:"SetUserSettingsResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"NotAuthorizedException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Sets the user settings like multi-factor authentication (MFA). If MFA is to be removed for a particular attribute pass the attribute with code delivery as null. If null list is passed, all MFA options are removed.

",authtype:"none"},SignUp:{name:"SignUp",http:{method:"POST",requestUri:"/"},input:{shape:"SignUpRequest"},output:{shape:"SignUpResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"NotAuthorizedException"},{shape:"InvalidPasswordException"},{shape:"InvalidLambdaResponseException"},{shape:"UsernameExistsException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"CodeDeliveryFailureException"}],documentation:"

Registers the user in the specified user pool and creates a user name, password, and user attributes.

",authtype:"none"},StartUserImportJob:{name:"StartUserImportJob",http:{method:"POST",requestUri:"/"},input:{shape:"StartUserImportJobRequest"},output:{shape:"StartUserImportJobResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"},{shape:"PreconditionNotMetException"},{shape:"NotAuthorizedException"}],documentation:"

Starts the user import.

"},StopUserImportJob:{name:"StopUserImportJob",http:{method:"POST",requestUri:"/"},input:{shape:"StopUserImportJobRequest"},output:{shape:"StopUserImportJobResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"},{shape:"PreconditionNotMetException"},{shape:"NotAuthorizedException"}],documentation:"

Stops the user import job.

"},UpdateAuthEventFeedback:{name:"UpdateAuthEventFeedback",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateAuthEventFeedbackRequest"},output:{shape:"UpdateAuthEventFeedbackResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserNotFoundException"},{shape:"UserPoolAddOnNotEnabledException"},{shape:"InternalErrorException"}]},UpdateDeviceStatus:{name:"UpdateDeviceStatus",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateDeviceStatusRequest"},output:{shape:"UpdateDeviceStatusResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Updates the device status.

"},UpdateGroup:{name:"UpdateGroup",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateGroupRequest"},output:{shape:"UpdateGroupResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"InternalErrorException"}],documentation:"

Updates the specified group with the specified attributes.

Requires developer credentials.

"},UpdateIdentityProvider:{name:"UpdateIdentityProvider",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateIdentityProviderRequest"},output:{shape:"UpdateIdentityProviderResponse"},errors:[{shape:"InvalidParameterException"},{shape:"UnsupportedIdentityProviderException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},UpdateResourceServer:{name:"UpdateResourceServer",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateResourceServerRequest"},output:{shape:"UpdateResourceServerResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"InternalErrorException"}]},UpdateUserAttributes:{name:"UpdateUserAttributes",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateUserAttributesRequest"},output:{shape:"UpdateUserAttributesResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"NotAuthorizedException"},{shape:"UnexpectedLambdaException"},{shape:"UserLambdaValidationException"},{shape:"InvalidLambdaResponseException"},{shape:"TooManyRequestsException"},{shape:"AliasExistsException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"InvalidEmailRoleAccessPolicyException"},{shape:"CodeDeliveryFailureException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Allows a user to update a specific attribute (one at a time).

",authtype:"none"},UpdateUserPool:{name:"UpdateUserPool",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateUserPoolRequest"},output:{shape:"UpdateUserPoolResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"ConcurrentModificationException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"UserImportInProgressException"},{shape:"InternalErrorException"},{shape:"InvalidSmsRoleAccessPolicyException"},{shape:"InvalidSmsRoleTrustRelationshipException"},{shape:"UserPoolTaggingException"},{shape:"InvalidEmailRoleAccessPolicyException"}],documentation:"

Updates the specified user pool with the specified attributes.

"},UpdateUserPoolClient:{name:"UpdateUserPoolClient",http:{method:"POST",requestUri:"/"},input:{shape:"UpdateUserPoolClientRequest"},output:{shape:"UpdateUserPoolClientResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"TooManyRequestsException"},{shape:"NotAuthorizedException"},{shape:"ScopeDoesNotExistException"},{shape:"InvalidOAuthFlowException"},{shape:"InternalErrorException"}],documentation:"

Allows the developer to update the specified user pool client and password policy.

"},VerifySoftwareToken:{name:"VerifySoftwareToken",http:{method:"POST",requestUri:"/"},input:{shape:"VerifySoftwareTokenRequest"},output:{shape:"VerifySoftwareTokenResponse"},errors:[{shape:"InvalidParameterException"},{shape:"ResourceNotFoundException"},{shape:"InvalidUserPoolConfigurationException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"},{shape:"EnableSoftwareTokenMFAException"},{shape:"SoftwareTokenMFANotFoundException"},{shape:"CodeMismatchException"}]},VerifyUserAttribute:{name:"VerifyUserAttribute",http:{method:"POST",requestUri:"/"},input:{shape:"VerifyUserAttributeRequest"},output:{shape:"VerifyUserAttributeResponse"},errors:[{shape:"ResourceNotFoundException"},{shape:"InvalidParameterException"},{shape:"CodeMismatchException"},{shape:"ExpiredCodeException"},{shape:"NotAuthorizedException"},{shape:"TooManyRequestsException"},{shape:"LimitExceededException"},{shape:"PasswordResetRequiredException"},{shape:"UserNotFoundException"},{shape:"UserNotConfirmedException"},{shape:"InternalErrorException"}],documentation:"

Verifies the specified user attributes in the user pool.

",authtype:"none"}},shapes:{AValueHexStringType:{type:"string",max:1024,min:1,pattern:"^[0-9a-fA-F]+$"},AWSAccountIdType:{type:"string"},AccountTakeoverActionNotifyType:{type:"boolean"},AccountTakeoverActionType:{type:"structure",required:["Notify","EventAction"],members:{Notify:{shape:"AccountTakeoverActionNotifyType"},EventAction:{shape:"AccountTakeoverEventActionType"}}},AccountTakeoverActionsType:{type:"structure",members:{LowAction:{shape:"AccountTakeoverActionType"},MediumAction:{shape:"AccountTakeoverActionType"},HighAction:{shape:"AccountTakeoverActionType"}}},AccountTakeoverEventActionType:{type:"string",enum:["BLOCK","MFA_IF_CONFIGURED","MFA_REQUIRED","NO_ACTION"]},AccountTakeoverRiskConfigurationType:{type:"structure",required:["Actions"],members:{NotifyConfiguration:{shape:"NotifyConfigurationType"},Actions:{shape:"AccountTakeoverActionsType"}}},AddCustomAttributesRequest:{type:"structure",required:["UserPoolId","CustomAttributes"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to add custom attributes.

"},CustomAttributes:{shape:"CustomAttributesListType",documentation:"

An array of custom attributes, such as Mutable and Name.

"}},documentation:"

Represents the request to add custom attributes.

"},AddCustomAttributesResponse:{type:"structure",members:{},documentation:"

Represents the response from the server for the request to add custom attributes.

"},AdminAddUserToGroupRequest:{type:"structure",required:["UserPoolId","Username","GroupName"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Username:{shape:"UsernameType",documentation:"

The username for the user.

"},GroupName:{shape:"GroupNameType",documentation:"

The group name.

"}}},AdminConfirmSignUpRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for which you want to confirm user registration.

"},Username:{shape:"UsernameType",documentation:"

The user name for which you want to confirm user registration.

"}},documentation:"

Represents the request to confirm user registration.

"},AdminConfirmSignUpResponse:{type:"structure",members:{},documentation:"

Represents the response from the server for the request to confirm registration.

"},AdminCreateUserConfigType:{type:"structure",members:{AllowAdminCreateUserOnly:{shape:"BooleanType",documentation:"

Set to True if only the administrator is allowed to create user profiles. Set to False if users can sign themselves up via an app.

" +},UnusedAccountValidityDays:{shape:"AdminCreateUserUnusedAccountValidityDaysType",documentation:'

The user account expiration limit, in days, after which the account is no longer usable. To reset the account after that time limit, you must call AdminCreateUser again, specifying "RESEND" for the MessageAction parameter. The default value for this parameter is 7.

'},InviteMessageTemplate:{shape:"MessageTemplateType",documentation:"

The message template to be used for the welcome message to new users.

"}},documentation:"

The type of configuration for creating a new user profile.

"},AdminCreateUserRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where the user will be created.

"},Username:{shape:"UsernameType",documentation:"

The username for the user. Must be unique within the user pool. Must be a UTF-8 string between 1 and 128 characters. After the user is created, the username cannot be changed.

"},UserAttributes:{shape:"AttributeListType",documentation:'

An array of name-value pairs that contain user attributes and attribute values to be set for the user to be created. You can create a user without specifying any attributes other than Username. However, any attributes that you specify as required (in CreateUserPool or in the Attributes tab of the console) must be supplied either by you (in your call to AdminCreateUser) or by the user (when he or she signs up in response to your welcome message).

To send a message inviting the user to sign up, you must specify the user\'s email address or phone number. This can be done in your call to AdminCreateUser or in the Users tab of the Amazon Cognito console for managing your user pools.

In your call to AdminCreateUser, you can set the email_verified attribute to True, and you can set the phone_number_verified attribute to True. (You also do this by calling AdminUpdateUserAttributes.)

  • email: The email address of the user to whom the message that contains the code and username will be sent. Required if the email_verified attribute is set to True, or if "EMAIL" is specified in the DesiredDeliveryMediums parameter.

  • phone_number: The phone number of the user to whom the message that contains the code and username will be sent. Required if the phone_number_verified attribute is set to True, or if "SMS" is specified in the DesiredDeliveryMediums parameter.

'},ValidationData:{shape:"AttributeListType",documentation:"

The user's validation data. This is an array of name-value pairs that contain user attributes and attribute values that you can use for custom validation, such as restricting the types of user accounts that can be registered. For example, you might choose to allow or disallow user sign-up based on the user's domain.

To configure custom validation, you must create a Pre Sign-up Lambda trigger for the user pool as described in the Amazon Cognito Developer Guide. The Lambda trigger receives the validation data and uses it in the validation process.

The user's validation data is not persisted.

"},TemporaryPassword:{shape:"PasswordType",documentation:'

The user\'s temporary password. This password must conform to the password policy that you specified when you created the user pool.

The temporary password is valid only once. To complete the Admin Create User flow, the user must enter the temporary password in the sign-in page along with a new password to be used in all future sign-ins.

This parameter is not required. If you do not specify a value, Amazon Cognito generates one for you.

The temporary password can only be used until the user account expiration limit that you specified when you created the user pool. To reset the account after that time limit, you must call AdminCreateUser again, specifying "RESEND" for the MessageAction parameter.

'},ForceAliasCreation:{shape:"ForceAliasCreation",documentation:"

This parameter is only used if the phone_number_verified or email_verified attribute is set to True. Otherwise, it is ignored.

If this parameter is set to True and the phone number or email address specified in the UserAttributes parameter already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user. The previous user will no longer be able to log in using that alias.

If this parameter is set to False, the API throws an AliasExistsException error if the alias already exists. The default value is False.

"},MessageAction:{shape:"MessageActionType",documentation:'

Set to "RESEND" to resend the invitation message to a user that already exists and reset the expiration limit on the user\'s account. Set to "SUPPRESS" to suppress sending the message. Only one value can be specified.

'},DesiredDeliveryMediums:{shape:"DeliveryMediumListType",documentation:'

Specify "EMAIL" if email will be used to send the welcome message. Specify "SMS" if the phone number will be used. The default value is "SMS". More than one value can be specified.

'}},documentation:"

Represents the request to create a user in the specified user pool.

"},AdminCreateUserResponse:{type:"structure",members:{User:{shape:"UserType",documentation:"

The user returned in the request to create a new user.

"}},documentation:"

Represents the response from the server to the request to create the user.

"},AdminCreateUserUnusedAccountValidityDaysType:{type:"integer",max:365,min:0},AdminDeleteUserAttributesRequest:{type:"structure",required:["UserPoolId","Username","UserAttributeNames"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to delete user attributes.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user from which you would like to delete attributes.

"},UserAttributeNames:{shape:"AttributeNameListType",documentation:"

An array of strings representing the user attribute names you wish to delete.

"}},documentation:"

Represents the request to delete user attributes as an administrator.

"},AdminDeleteUserAttributesResponse:{type:"structure",members:{},documentation:"

Represents the response received from the server for a request to delete user attributes.

"},AdminDeleteUserRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to delete the user.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to delete.

"}},documentation:"

Represents the request to delete a user as an administrator.

"},AdminDisableProviderForUserRequest:{type:"structure",required:["UserPoolId","User"],members:{UserPoolId:{shape:"StringType"},User:{shape:"ProviderUserIdentifierType"}}},AdminDisableProviderForUserResponse:{type:"structure",members:{}},AdminDisableUserRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to disable the user.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to disable.

"}},documentation:"

Represents the request to disable any user as an administrator.

"},AdminDisableUserResponse:{type:"structure",members:{},documentation:"

Represents the response received from the server to disable the user as an administrator.

"},AdminEnableUserRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to enable the user.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to enable.

"}},documentation:"

Represents the request that enables the user as an administrator.

"},AdminEnableUserResponse:{type:"structure",members:{},documentation:"

Represents the response from the server for the request to enable a user as an administrator.

"},AdminForgetDeviceRequest:{type:"structure",required:["UserPoolId","Username","DeviceKey"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID.

"},Username:{shape:"UsernameType",documentation:"

The user name.

"},DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"}},documentation:"

Sends the forgot device request, as an administrator.

"},AdminGetDeviceRequest:{type:"structure",required:["DeviceKey","UserPoolId","Username"],members:{DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID.

"},Username:{shape:"UsernameType",documentation:"

The user name.

"}},documentation:"

Represents the request to get the device, as an administrator.

"},AdminGetDeviceResponse:{type:"structure",required:["Device"],members:{Device:{shape:"DeviceType",documentation:"

The device.

"}},documentation:"

Gets the device response, as an administrator.

"},AdminGetUserRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to get information about the user.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to retrieve.

"}},documentation:"

Represents the request to get the specified user as an administrator.

"},AdminGetUserResponse:{type:"structure",required:["Username"],members:{Username:{shape:"UsernameType",documentation:"

The user name of the user about whom you are receiving information.

"},UserAttributes:{shape:"AttributeListType",documentation:"

An array of name-value pairs representing user attributes.

"},UserCreateDate:{shape:"DateType",documentation:"

The date the user was created.

"},UserLastModifiedDate:{shape:"DateType",documentation:"

The date the user was last modified.

"},Enabled:{shape:"BooleanType",documentation:"

Indicates that the status is enabled.

"},UserStatus:{shape:"UserStatusType",documentation:"

The user status. Can be one of the following:

  • UNCONFIRMED - User has been created but not confirmed.

  • CONFIRMED - User has been confirmed.

  • ARCHIVED - User is no longer active.

  • COMPROMISED - User is disabled due to a potential security threat.

  • UNKNOWN - User status is not known.

"},MFAOptions:{shape:"MFAOptionListType",documentation:"

Specifies the options for MFA (e.g., email or phone number).

"}},documentation:"

Represents the response from the server from the request to get the specified user as an administrator.

"},AdminInitiateAuthRequest:{type:"structure",required:["UserPoolId","ClientId","AuthFlow"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The ID of the Amazon Cognito user pool.

"},ClientId:{shape:"ClientIdType",documentation:"

The app client ID.

"},AuthFlow:{shape:"AuthFlowType",documentation:"

The authentication flow for this call to execute. The API action will depend on this value. For example:

  • REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens.

  • USER_SRP_AUTH will take in USERNAME and SRPA and return the SRP variables to be used for next challenge execution.

Valid values include:

  • USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol.

  • REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token.

  • CUSTOM_AUTH: Custom authentication flow.

  • ADMIN_NO_SRP_AUTH: Non-SRP authentication flow; you can pass in the USERNAME and PASSWORD directly if the flow is enabled for calling the app client.

"},AuthParameters:{shape:"AuthParametersType",documentation:"

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

  • For USER_SRP_AUTH: USERNAME (required), SRPA (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY

  • For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY

  • For ADMIN_NO_SRP_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), PASSWORD (required), DEVICE_KEY

  • For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY

"},ClientMetadata:{shape:"ClientMetadataType",documentation:"

This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},ContextData:{shape:"ContextDataType"}},documentation:"

Initiates the authorization request, as an administrator.

"},AdminInitiateAuthResponse:{type:"structure",members:{ChallengeName:{shape:"ChallengeNameType",documentation:"

The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge.

  • SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS.

  • PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations.

  • CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued.

  • DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device.

  • DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only.

  • ADMIN_NO_SRP_AUTH: This is returned if you need to authenticate with USERNAME and PASSWORD directly. An app client must be enabled to use this flow.

  • NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes.

"},Session:{shape:"SessionType",documentation:"

The session which should be passed both ways in challenge-response calls to the service. If AdminInitiateAuth or AdminRespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next AdminRespondToAuthChallenge API call.

"},ChallengeParameters:{shape:"ChallengeParametersType",documentation:"

The challenge parameters. These are returned to you in the AdminInitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (AdminRespondToAuthChallenge).

All challenges require USERNAME and SECRET_HASH (if applicable).

The value of the USER_IF_FOR_SRP attribute will be the user's actual username, not an alias (such as email address or phone number), even if you specified an alias in your call to AdminInitiateAuth. This is because, in the AdminRespondToAuthChallenge API ChallengeResponses, the USERNAME attribute cannot be an alias.

"},AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned.

"}},documentation:"

Initiates the authentication response, as an administrator.

"},AdminLinkProviderForUserRequest:{type:"structure",required:["UserPoolId","DestinationUser","SourceUser"],members:{UserPoolId:{shape:"StringType"},DestinationUser:{shape:"ProviderUserIdentifierType"},SourceUser:{shape:"ProviderUserIdentifierType"}}},AdminLinkProviderForUserResponse:{type:"structure",members:{}},AdminListDevicesRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID.

"},Username:{shape:"UsernameType",documentation:"

The user name.

"},Limit:{shape:"QueryLimitType",documentation:"

The limit of the devices request.

"},PaginationToken:{shape:"SearchPaginationTokenType",documentation:"

The pagination token.

"}},documentation:"

Represents the request to list devices, as an administrator.

"},AdminListDevicesResponse:{type:"structure",members:{Devices:{shape:"DeviceListType",documentation:"

The devices in the list of devices response.

"},PaginationToken:{shape:"SearchPaginationTokenType",documentation:"

The pagination token.

"}},documentation:"

Lists the device's response, as an administrator.

"},AdminListGroupsForUserRequest:{type:"structure",required:["Username","UserPoolId"],members:{Username:{shape:"UsernameType",documentation:"

The username for the user.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Limit:{shape:"QueryLimitType",documentation:"

The limit of the request to list groups.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}}},AdminListGroupsForUserResponse:{type:"structure",members:{Groups:{shape:"GroupListType",documentation:"

The groups that the user belongs to.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}}},AdminListUserAuthEventsRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType"},Username:{shape:"UsernameType"},MaxResults:{shape:"QueryLimitType"},NextToken:{shape:"PaginationKey"}}},AdminListUserAuthEventsResponse:{type:"structure",members:{AuthEvents:{shape:"AuthEventsType"},NextToken:{shape:"PaginationKey"}}},AdminRemoveUserFromGroupRequest:{type:"structure",required:["UserPoolId","Username","GroupName"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Username:{shape:"UsernameType",documentation:"

The username for the user.

"},GroupName:{shape:"GroupNameType",documentation:"

The group name.

"}}},AdminResetUserPasswordRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to reset the user's password.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user whose password you wish to reset.

"}},documentation:"

Represents the request to reset a user's password as an administrator.

"},AdminResetUserPasswordResponse:{type:"structure",members:{},documentation:"

Represents the response from the server to reset a user password as an administrator.

"},AdminRespondToAuthChallengeRequest:{type:"structure",required:["UserPoolId","ClientId","ChallengeName"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The ID of the Amazon Cognito user pool.

"},ClientId:{shape:"ClientIdType",documentation:"

The app client ID.

"},ChallengeName:{shape:"ChallengeNameType",documentation:'

The challenge name. For more information, see AdminInitiateAuth.

'},ChallengeResponses:{shape:"ChallengeResponsesType",documentation:"

The challenge responses. These are inputs corresponding to the value of ChallengeName, for example:

  • SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • ADMIN_NO_SRP_AUTH: PASSWORD, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret).

The value of the USERNAME attribute must be the user's actual username, not an alias (such as email address or phone number). To make this easier, the AdminInitiateAuth response includes the actual username value in the USERNAMEUSER_ID_FOR_SRP attribute, even if you specified an alias in your call to AdminInitiateAuth.

"},Session:{shape:"SessionType",documentation:"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},ContextData:{shape:"ContextDataType"}},documentation:"

The request to respond to the authentication challenge, as an administrator.

"},AdminRespondToAuthChallengeResponse:{type:"structure",members:{ChallengeName:{shape:"ChallengeNameType",documentation:'

The name of the challenge. For more information, see AdminInitiateAuth.

'},Session:{shape:"SessionType",documentation:"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

"},ChallengeParameters:{shape:"ChallengeParametersType",documentation:'

The challenge parameters. For more information, see AdminInitiateAuth.

'},AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The result returned by the server in response to the authentication request.

"}},documentation:"

Responds to the authentication challenge, as an administrator.

"},AdminSetUserMFAPreferenceRequest:{type:"structure",required:["Username","UserPoolId"],members:{SMSMfaSettings:{shape:"SMSMfaSettingsType"},SoftwareTokenMfaSettings:{shape:"SoftwareTokenMfaSettingsType"},Username:{shape:"UsernameType"},UserPoolId:{shape:"UserPoolIdType"}}},AdminSetUserMFAPreferenceResponse:{type:"structure",members:{}},AdminSetUserSettingsRequest:{type:"structure",required:["UserPoolId","Username","MFAOptions"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to set the user's settings, such as MFA options.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user for whom you wish to set user settings.

"},MFAOptions:{shape:"MFAOptionListType",documentation:"

Specifies the options for MFA (e.g., email or phone number).

"}},documentation:"

Represents the request to set user settings as an administrator.

"},AdminSetUserSettingsResponse:{type:"structure",members:{},documentation:"

Represents the response from the server to set user settings as an administrator.

"},AdminUpdateAuthEventFeedbackRequest:{type:"structure",required:["UserPoolId","Username","EventId","FeedbackValue"],members:{UserPoolId:{shape:"UserPoolIdType"},Username:{shape:"UsernameType"},EventId:{shape:"EventIdType"},FeedbackValue:{shape:"FeedbackValueType"}}},AdminUpdateAuthEventFeedbackResponse:{type:"structure",members:{}},AdminUpdateDeviceStatusRequest:{type:"structure",required:["UserPoolId","Username","DeviceKey"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID>

"},Username:{shape:"UsernameType",documentation:"

The user name.

"},DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},DeviceRememberedStatus:{shape:"DeviceRememberedStatusType",documentation:"

The status indicating whether a device has been remembered or not.

"}},documentation:"

The request to update the device status, as an administrator.

"},AdminUpdateDeviceStatusResponse:{type:"structure",members:{},documentation:"

The status response from the request to update the device, as an administrator.

"},AdminUpdateUserAttributesRequest:{type:"structure",required:["UserPoolId","Username","UserAttributes"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to update user attributes.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user for whom you want to update user attributes.

"},UserAttributes:{shape:"AttributeListType",documentation:"

An array of name-value pairs representing user attributes.

"}},documentation:"

Represents the request to update the user's attributes as an administrator.

"},AdminUpdateUserAttributesResponse:{type:"structure",members:{},documentation:"

Represents the response from the server for the request to update user attributes as an administrator.

"},AdminUserGlobalSignOutRequest:{type:"structure",required:["UserPoolId","Username"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID.

"},Username:{shape:"UsernameType",documentation:"

The user name.

"}},documentation:"

The request to sign out of all devices, as an administrator.

"},AdminUserGlobalSignOutResponse:{type:"structure",members:{},documentation:"

The global sign-out response, as an administrator.

"},AdvancedSecurityModeType:{type:"string",enum:["OFF","AUDIT","ENFORCED"]},AliasAttributeType:{type:"string",enum:["phone_number","email","preferred_username"]},AliasAttributesListType:{type:"list",member:{shape:"AliasAttributeType"}},AliasExistsException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message sent to the user when an alias exists.

"}},documentation:"

This exception is thrown when a user tries to confirm the account with an email or phone number that has already been supplied as an alias from a different account. This exception tells user that an account with this email or phone already exists.

",exception:!0},AnalyticsConfigurationType:{type:"structure",required:["ApplicationId","RoleArn","ExternalId"],members:{ApplicationId:{shape:"HexStringType"},RoleArn:{shape:"ArnType"},ExternalId:{shape:"StringType"},UserDataShared:{shape:"BooleanType"}}},AnalyticsMetadataType:{type:"structure",members:{AnalyticsEndpointId:{shape:"StringType"}}},ArnType:{type:"string",max:2048,min:20,pattern:"arn:[\\w+=/,.@-]+:[\\w+=/,.@-]+:([\\w+=/,.@-]*)?:[0-9]+:[\\w+=/,.@-]+(:[\\w+=/,.@-]+)?(:[\\w+=/,.@-]+)?"},AssociateSoftwareTokenRequest:{type:"structure",members:{AccessToken:{shape:"TokenModelType"},Session:{shape:"SessionType"}}},AssociateSoftwareTokenResponse:{type:"structure",members:{SecretCode:{shape:"SecretCodeType"},Session:{shape:"SessionType"}}},AttributeDataType:{type:"string",enum:["String","Number","DateTime","Boolean"]},AttributeListType:{type:"list",member:{shape:"AttributeType"}},AttributeMappingKeyType:{type:"string",max:32,min:1},AttributeMappingType:{type:"map",key:{shape:"AttributeMappingKeyType"},value:{shape:"StringType"}},AttributeNameListType:{type:"list",member:{shape:"AttributeNameType"}},AttributeNameType:{type:"string",max:32,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"},AttributeType:{type:"structure",required:["Name"],members:{Name:{shape:"AttributeNameType",documentation:"

The name of the attribute.

"},Value:{shape:"AttributeValueType",documentation:"

The value of the attribute.

"}},documentation:"

Specifies whether the attribute is standard or custom.

"},AttributeValueType:{type:"string",max:2048,sensitive:!0},AuthEventType:{type:"structure",members:{EventId:{shape:"StringType"},EventType:{shape:"EventType"},CreationDate:{shape:"DateType"},EventResponse:{shape:"EventResponseType"},EventRisk:{shape:"EventRiskType"},ChallengeResponses:{shape:"ChallengeResponseListType"},EventContextData:{shape:"EventContextDataType"},EventFeedback:{shape:"EventFeedbackType"}}},AuthEventsType:{type:"list",member:{shape:"AuthEventType"}},AuthFlowType:{type:"string",enum:["USER_SRP_AUTH","REFRESH_TOKEN_AUTH","REFRESH_TOKEN","CUSTOM_AUTH","ADMIN_NO_SRP_AUTH"]},AuthParametersType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},AuthStateType:{type:"string",pattern:"[A-Za-z0-9-_+/=]+",sensitive:!0},AuthenticateRequest:{type:"structure",required:["ClientId","Username","PasswordClaim"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to authenticate.

"},PasswordClaim:{shape:"PasswordClaimType",documentation:"

The password claim of the authentication request.

"},Timestamp:{shape:"DateType",documentation:"

The timestamp of the authentication request.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"}},documentation:"

Represents the request to authenticate.

"},AuthenticateResponse:{type:"structure",members:{AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The result of the authentication response.

"},AuthState:{shape:"AuthStateType",documentation:"

The authorization state of the authentication response.

"},CodeDeliveryDetails:{shape:"CodeDeliveryDetailsType",documentation:"

The code delivery details returned by the server in the response to the authentication request.

"}},documentation:"

Represents the authentication response.

"},AuthenticationResultType:{type:"structure",members:{ +AccessToken:{shape:"TokenModelType",documentation:"

The access token of the authentication result.

"},ExpiresIn:{shape:"IntegerType",documentation:"

The expiration period of the authentication result.

"},TokenType:{shape:"StringType",documentation:"

The token type of the authentication result.

"},RefreshToken:{shape:"TokenModelType",documentation:"

The refresh token of the authentication result.

"},IdToken:{shape:"TokenModelType",documentation:"

The ID token of the authentication result.

"},NewDeviceMetadata:{shape:"NewDeviceMetadataType",documentation:"

The new device metadata from an authentication result.

"}},documentation:"

The result type of the authentication result.

"},BlobType:{type:"blob"},BlockedIPRangeListType:{type:"list",member:{shape:"StringType"},max:20},BooleanType:{type:"boolean"},BotActionType:{type:"structure",required:["EventAction"],members:{EventAction:{shape:"BotEventActionType"}}},BotActionsType:{type:"structure",members:{LowAction:{shape:"BotActionType"},MediumAction:{shape:"BotActionType"},HighAction:{shape:"BotActionType"}}},BotEventActionType:{type:"string",enum:["BLOCK","NO_ACTION"]},BotRiskConfigurationType:{type:"structure",required:["Actions"],members:{EventFilter:{shape:"EventFiltersType"},Actions:{shape:"BotActionsType"}}},CSSType:{type:"string"},CSSVersionType:{type:"string"},CallbackURLsListType:{type:"list",member:{shape:"RedirectUrlType"},max:100,min:0},ChallengeName:{type:"string",enum:["Password","Mfa"]},ChallengeNameType:{type:"string",enum:["SMS_MFA","SOFTWARE_TOKEN_MFA","SELECT_MFA_TYPE","MFA_SETUP","PASSWORD_VERIFIER","CUSTOM_CHALLENGE","DEVICE_SRP_AUTH","DEVICE_PASSWORD_VERIFIER","ADMIN_NO_SRP_AUTH","NEW_PASSWORD_REQUIRED"]},ChallengeParametersType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},ChallengeResponse:{type:"string",enum:["Success","Failure"]},ChallengeResponseListType:{type:"list",member:{shape:"ChallengeResponseType"}},ChallengeResponseType:{type:"structure",members:{ChallengeName:{shape:"ChallengeName"},ChallengeResponse:{shape:"ChallengeResponse"}}},ChallengeResponsesType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},ChangePasswordRequest:{type:"structure",required:["PreviousPassword","ProposedPassword","AccessToken"],members:{PreviousPassword:{shape:"PasswordType",documentation:"

The old password in the change password request.

"},ProposedPassword:{shape:"PasswordType",documentation:"

The new password in the change password request.

"},AccessToken:{shape:"TokenModelType",documentation:"

The access token in the change password request.

"}},documentation:"

Represents the request to change a user password.

"},ChangePasswordResponse:{type:"structure",members:{},documentation:"

The response from the server to the change password request.

"},ClientIdType:{type:"string",max:128,min:1,pattern:"[\\w+]+",sensitive:!0},ClientMetadataType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},ClientNameType:{type:"string",max:128,min:1,pattern:"[\\w\\s+=,.@-]+"},ClientPermissionListType:{type:"list",member:{shape:"ClientPermissionType"}},ClientPermissionType:{type:"string",max:2048,min:1},ClientSecretType:{type:"string",max:64,min:1,pattern:"[\\w+]+",sensitive:!0},CodeDeliveryDetailsListType:{type:"list",member:{shape:"CodeDeliveryDetailsType"}},CodeDeliveryDetailsType:{type:"structure",members:{Destination:{shape:"StringType",documentation:"

The destination for the code delivery details.

"},DeliveryMedium:{shape:"DeliveryMediumType",documentation:"

The delivery medium (email message or phone number).

"},AttributeName:{shape:"AttributeNameType",documentation:"

The name of the attribute in the code delivery details type.

"}},documentation:"

The type of code delivery details being returned from the server.

"},CodeDeliveryFailureException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message sent when a verification code fails to deliver successfully.

"}},documentation:"

This exception is thrown when a verification code fails to deliver successfully.

",exception:!0},CodeMismatchException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message provided when the code mismatch exception is thrown.

"}},documentation:"

This exception is thrown if the provided code does not match what the server was expecting.

",exception:!0},CompletionMessageType:{type:"string",max:128,min:1,pattern:"[\\w]+"},CompromisedCredentialsActionsType:{type:"structure",required:["EventAction"],members:{EventAction:{shape:"CompromisedCredentialsEventActionType"}}},CompromisedCredentialsEventActionType:{type:"string",enum:["BLOCK","NO_ACTION"]},CompromisedCredentialsRiskConfigurationType:{type:"structure",required:["Actions"],members:{EventFilter:{shape:"EventFiltersType"},Actions:{shape:"CompromisedCredentialsActionsType"}}},ConcurrentModificationException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message provided when the concurrent exception is thrown.

"}},documentation:"

This exception is thrown if two or more modifications are happening concurrently.

",exception:!0},ConfirmDeviceRequest:{type:"structure",required:["AccessToken","DeviceKey"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token.

"},DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},DeviceSecretVerifierConfig:{shape:"DeviceSecretVerifierConfigType",documentation:"

The configuration of the device secret verifier.

"},DeviceName:{shape:"DeviceNameType",documentation:"

The device name.

"}},documentation:"

Confirms the device request.

"},ConfirmDeviceResponse:{type:"structure",members:{UserConfirmationNecessary:{shape:"BooleanType",documentation:"

Indicates whether the user confirmation is necessary to confirm the device response.

"}},documentation:"

Confirms the device response.

"},ConfirmForgotPasswordRequest:{type:"structure",required:["ClientId","Username","ConfirmationCode","Password"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user for whom you want to enter a code to retrieve a forgotten password.

"},ConfirmationCode:{shape:"ConfirmationCodeType",documentation:'

The confirmation code sent by a user\'s request to retrieve a forgotten password. For more information, see ForgotPassword

'},Password:{shape:"PasswordType",documentation:"

The password sent by a user's request to retrieve a forgotten password.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},UserContextData:{shape:"UserContextDataType"}},documentation:"

The request representing the confirmation for a password reset.

"},ConfirmForgotPasswordResponse:{type:"structure",members:{},documentation:"

The response from the server that results from a user's request to retrieve a forgotten password.

"},ConfirmSignUpRequest:{type:"structure",required:["ClientId","Username","ConfirmationCode"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user whose registration you wish to confirm.

"},ConfirmationCode:{shape:"ConfirmationCodeType",documentation:"

The confirmation code sent by a user's request to confirm registration.

"},ForceAliasCreation:{shape:"ForceAliasCreation",documentation:"

Boolean to be specified to force user confirmation irrespective of existing alias. By default set to False. If this parameter is set to True and the phone number/email used for sign up confirmation already exists as an alias with a different user, the API call will migrate the alias from the previous user to the newly created user being confirmed. If set to False, the API will throw an AliasExistsException error.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},UserContextData:{shape:"UserContextDataType"}},documentation:"

Represents the request to confirm registration of a user.

"},ConfirmSignUpResponse:{type:"structure",members:{},documentation:"

Represents the response from the server for the registration confirmation.

"},ConfirmationCodeType:{type:"string",max:2048,min:1,pattern:"[\\S]+"},ContextDataType:{type:"structure",required:["IpAddress","ServerName","ServerPath","HttpHeaders","EncodedData"],members:{IpAddress:{shape:"StringType"},ServerName:{shape:"StringType"},ServerPath:{shape:"StringType"},HttpHeaders:{shape:"HttpHeaderList"},EncodedData:{shape:"StringType"}}},CreateGroupRequest:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{shape:"GroupNameType",documentation:"

The name of the group. Must be unique.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Description:{shape:"DescriptionType",documentation:"

A string containing the description of the group.

"},RoleArn:{shape:"ArnType",documentation:"

The role ARN for the group.

"},Precedence:{shape:"PrecedenceType",documentation:"

A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. Zero is the highest precedence value. Groups with lower Precedence values take precedence over groups with higher or null Precedence values. If a user belongs to two or more groups, it is the group with the lowest precedence value whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens.

The default Precedence value is null.

"}}},CreateGroupResponse:{type:"structure",members:{Group:{shape:"GroupType",documentation:"

The group object for the group.

"}}},CreateIdentityProviderRequest:{type:"structure",required:["UserPoolId","ProviderName","ProviderType","ProviderDetails"],members:{UserPoolId:{shape:"UserPoolIdType"},ProviderName:{shape:"ProviderNameTypeV1"},ProviderType:{shape:"IdentityProviderTypeType"},ProviderDetails:{shape:"ProviderDetailsType"},AttributeMapping:{shape:"AttributeMappingType"},IdpIdentifiers:{shape:"IdpIdentifiersListType"}}},CreateIdentityProviderResponse:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"IdentityProviderType"}}},CreateResourceServerRequest:{type:"structure",required:["UserPoolId","Identifier","Name"],members:{UserPoolId:{shape:"UserPoolIdType"},Identifier:{shape:"ResourceServerIdentifierType"},Name:{shape:"ResourceServerNameType"},Scopes:{shape:"ResourceServerScopeListType"}}},CreateResourceServerResponse:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"ResourceServerType"}}},CreateUserImportJobRequest:{type:"structure",required:["JobName","UserPoolId","CloudWatchLogsRoleArn"],members:{JobName:{shape:"UserImportJobNameType",documentation:"

The job name for the user import job.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are being imported into.

"},CloudWatchLogsRoleArn:{shape:"ArnType",documentation:"

The role ARN for the Amazon CloudWatch Logging role for the user import job.

"}},documentation:"

Represents the request to create the user import job.

"},CreateUserImportJobResponse:{type:"structure",members:{UserImportJob:{shape:"UserImportJobType",documentation:"

The job object that represents the user import job.

"}},documentation:"

Represents the response from the server to the request to create the user import job.

"},CreateUserPoolClientRequest:{type:"structure",required:["UserPoolId","ClientName"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to create a user pool client.

"},ClientName:{shape:"ClientNameType",documentation:"

The client name for the user pool client you would like to create.

"},GenerateSecret:{shape:"GenerateSecret",documentation:"

Boolean to specify whether you want to generate a secret for the user pool client being created.

"},RefreshTokenValidity:{shape:"RefreshTokenValidityType",documentation:"

The time limit, in days, after which the refresh token is no longer valid and cannot be used.

"},ReadAttributes:{shape:"ClientPermissionListType",documentation:"

The read attributes.

"},WriteAttributes:{shape:"ClientPermissionListType",documentation:"

The write attributes.

"},ExplicitAuthFlows:{shape:"ExplicitAuthFlowsListType",documentation:"

The explicit authentication flows.

"},SupportedIdentityProviders:{shape:"SupportedIdentityProvidersListType"},CallbackURLs:{shape:"CallbackURLsListType"},LogoutURLs:{shape:"LogoutURLsListType"},DefaultRedirectURI:{shape:"RedirectUrlType"},AllowedOAuthFlows:{shape:"OAuthFlowsType"},AllowedOAuthScopes:{shape:"ScopeListType"},AllowedOAuthFlowsUserPoolClient:{shape:"BooleanType"},AnalyticsConfiguration:{shape:"AnalyticsConfigurationType"}},documentation:"

Represents the request to create a user pool client.

"},CreateUserPoolClientResponse:{type:"structure",members:{UserPoolClient:{shape:"UserPoolClientType",documentation:"

The user pool client that was just created.

"}},documentation:"

Represents the response from the server to create a user pool client.

"},CreateUserPoolDomainRequest:{type:"structure",required:["Domain","UserPoolId"],members:{Domain:{shape:"DomainType"},UserPoolId:{shape:"UserPoolIdType"}}},CreateUserPoolDomainResponse:{type:"structure",members:{}},CreateUserPoolRequest:{type:"structure",required:["PoolName"],members:{PoolName:{shape:"UserPoolNameType",documentation:"

A string used to name the user pool.

"},Policies:{shape:"UserPoolPolicyType",documentation:"

The policies associated with the new user pool.

"},LambdaConfig:{shape:"LambdaConfigType",documentation:"

The Lambda trigger configuration information for the new user pool.

"},AutoVerifiedAttributes:{shape:"VerifiedAttributesListType",documentation:"

The attributes to be auto-verified. Possible values: email, phone_number.

"},AliasAttributes:{shape:"AliasAttributesListType",documentation:"

Attributes supported as an alias for this user pool. Possible values: phone_number, email, or preferred_username.

"},UsernameAttributes:{shape:"UsernameAttributesListType"},SmsVerificationMessage:{shape:"SmsVerificationMessageType",documentation:"

A string representing the SMS verification message.

"},EmailVerificationMessage:{shape:"EmailVerificationMessageType",documentation:"

A string representing the email verification message.

"},EmailVerificationSubject:{shape:"EmailVerificationSubjectType",documentation:"

A string representing the email verification subject.

"},VerificationMessageTemplate:{shape:"VerificationMessageTemplateType"},SmsAuthenticationMessage:{shape:"SmsVerificationMessageType",documentation:"

A string representing the SMS authentication message.

"},MfaConfiguration:{shape:"UserPoolMfaType",documentation:"

Specifies MFA configuration details.

"},DeviceConfiguration:{shape:"DeviceConfigurationType",documentation:"

The device configuration.

"},EmailConfiguration:{shape:"EmailConfigurationType",documentation:"

The email configuration.

"},SmsConfiguration:{shape:"SmsConfigurationType",documentation:"

The SMS configuration.

"},UserPoolTags:{shape:"UserPoolTagsType",documentation:'

The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool

'},AdminCreateUserConfig:{shape:"AdminCreateUserConfigType",documentation:"

The configuration for AdminCreateUser requests.

"},Schema:{shape:"SchemaAttributesListType",documentation:"

An array of schema attributes for the new user pool. These attributes can be standard or custom attributes.

"},UserPoolAddOns:{shape:"UserPoolAddOnsType"}},documentation:"

Represents the request to create a user pool.

"},CreateUserPoolResponse:{type:"structure",members:{UserPool:{shape:"UserPoolType",documentation:"

A container for the user pool details.

"}},documentation:"

Represents the response from the server for the request to create a user pool.

"},CustomAttributeNameType:{type:"string",max:20,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"},CustomAttributesListType:{type:"list",member:{shape:"SchemaAttributeType"},max:25,min:1},DateType:{type:"timestamp"},DefaultEmailOptionType:{type:"string",enum:["CONFIRM_WITH_LINK","CONFIRM_WITH_CODE"]},DeleteGroupRequest:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{shape:"GroupNameType",documentation:"

The name of the group.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"}}},DeleteIdentityProviderRequest:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{shape:"UserPoolIdType"},ProviderName:{shape:"ProviderNameType"}}},DeleteResourceServerRequest:{type:"structure",required:["UserPoolId","Identifier"],members:{UserPoolId:{shape:"UserPoolIdType"},Identifier:{shape:"ResourceServerIdentifierType"}}},DeleteUserAttributesRequest:{type:"structure",required:["UserAttributeNames","AccessToken"],members:{UserAttributeNames:{shape:"AttributeNameListType",documentation:"

An array of strings representing the user attribute names you wish to delete.

"},AccessToken:{shape:"TokenModelType",documentation:"

The access token used in the request to delete user attributes.

"}},documentation:"

Represents the request to delete user attributes.

"},DeleteUserAttributesResponse:{type:"structure",members:{},documentation:"

Represents the response from the server to delete user attributes.

"},DeleteUserPoolClientRequest:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to delete the client.

"},ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"}},documentation:"

Represents the request to delete a user pool client.

"},DeleteUserPoolDomainRequest:{type:"structure",required:["Domain","UserPoolId"],members:{Domain:{shape:"DomainType"},UserPoolId:{shape:"UserPoolIdType"}}},DeleteUserPoolDomainResponse:{type:"structure",members:{}},DeleteUserPoolRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool you want to delete.

"}},documentation:"

Represents the request to delete a user pool.

"},DeleteUserRequest:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token from a request to delete a user.

"}},documentation:"

Represents the request to delete a user.

"},DeliveryMediumListType:{type:"list",member:{shape:"DeliveryMediumType"}},DeliveryMediumType:{type:"string",enum:["SMS","EMAIL"]},DescribeIdentityProviderRequest:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{shape:"UserPoolIdType"},ProviderName:{shape:"ProviderNameType"}}},DescribeIdentityProviderResponse:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"IdentityProviderType"}}},DescribeResourceServerRequest:{type:"structure",required:["UserPoolId","Identifier"],members:{UserPoolId:{shape:"UserPoolIdType"},Identifier:{shape:"ResourceServerIdentifierType"}}},DescribeResourceServerResponse:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"ResourceServerType"}}},DescribeRiskConfigurationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},ClientId:{shape:"ClientIdType"}}},DescribeRiskConfigurationResponse:{type:"structure",required:["RiskConfiguration"],members:{RiskConfiguration:{shape:"RiskConfigurationType"}}},DescribeUserImportJobRequest:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are being imported into.

"},JobId:{shape:"UserImportJobIdType",documentation:"

The job ID for the user import job.

"}},documentation:"

Represents the request to describe the user import job.

"},DescribeUserImportJobResponse:{type:"structure",members:{UserImportJob:{shape:"UserImportJobType",documentation:"

The job object that represents the user import job.

"}},documentation:"

Represents the response from the server to the request to describe the user import job.

"},DescribeUserPoolClientRequest:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool you want to describe.

"},ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"}},documentation:"

Represents the request to describe a user pool client.

"},DescribeUserPoolClientResponse:{type:"structure",members:{UserPoolClient:{shape:"UserPoolClientType",documentation:"

The user pool client from a server response to describe the user pool client.

"}},documentation:"

Represents the response from the server from a request to describe the user pool client.

"},DescribeUserPoolDomainRequest:{type:"structure",required:["Domain"],members:{Domain:{shape:"DomainType"}}},DescribeUserPoolDomainResponse:{type:"structure",members:{DomainDescription:{shape:"DomainDescriptionType"}}},DescribeUserPoolRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool you want to describe.

"}},documentation:"

Represents the request to describe the user pool.

"},DescribeUserPoolResponse:{type:"structure",members:{UserPool:{shape:"UserPoolType",documentation:"

The container of metadata returned by the server to describe the pool.

"}},documentation:"

Represents the response to describe the user pool.

"},DescriptionType:{type:"string",max:2048},DeviceConfigurationType:{type:"structure",members:{ChallengeRequiredOnNewDevice:{shape:"BooleanType",documentation:"

Indicates whether a challenge is required on a new device. Only applicable to a new device.

"},DeviceOnlyRememberedOnUserPrompt:{shape:"BooleanType",documentation:"

If true, a device is only remembered on user prompt.

"}},documentation:"

The type of configuration for the user pool's device tracking.

"},DeviceKeyType:{type:"string",max:55,min:1,pattern:"[\\w-]+_[0-9a-f-]+"},DeviceListType:{type:"list",member:{shape:"DeviceType"}},DeviceNameType:{type:"string",max:1024,min:1},DeviceRememberedStatusType:{type:"string",enum:["remembered","not_remembered"]},DeviceSecretVerifierConfigType:{type:"structure",members:{PasswordVerifier:{shape:"StringType",documentation:"

The password verifier.

"},Salt:{shape:"StringType",documentation:"

The salt.

"}},documentation:"

The device verifier against which it will be authenticated.

"},DeviceType:{type:"structure",members:{DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},DeviceAttributes:{shape:"AttributeListType",documentation:"

The device attributes.

"},DeviceCreateDate:{shape:"DateType",documentation:"

The creation date of the device.

"},DeviceLastModifiedDate:{shape:"DateType",documentation:"

The last modified date of the device.

"},DeviceLastAuthenticatedDate:{shape:"DateType",documentation:"

The date in which the device was last authenticated.

"}},documentation:"

The device type.

"},DomainDescriptionType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType"},AWSAccountId:{shape:"AWSAccountIdType"},Domain:{shape:"DomainType"},S3Bucket:{shape:"S3BucketType"},CloudFrontDistribution:{shape:"ArnType"},Version:{shape:"DomainVersionType"},Status:{shape:"DomainStatusType"}}},DomainStatusType:{type:"string",enum:["CREATING","DELETING","UPDATING","ACTIVE","FAILED"]},DomainType:{type:"string",max:63,min:1,pattern:"^[a-z0-9](?:[a-z0-9\\-]{0,61}[a-z0-9])?$"},DomainVersionType:{type:"string",max:20,min:1},DuplicateProviderException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},EmailAddressType:{type:"string",pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+@[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"},EmailConfigurationType:{type:"structure",members:{SourceArn:{shape:"ArnType",documentation:"

The Amazon Resource Name (ARN) of the email source.

"},ReplyToEmailAddress:{shape:"EmailAddressType",documentation:"

The REPLY-TO email address.

"}},documentation:"

The email configuration type.

"},EmailNotificationBodyType:{type:"string",max:2e4,min:6,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]+"},EmailNotificationSubjectType:{type:"string",max:140,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+"},EmailVerificationMessageByLinkType:{type:"string",max:2e4,min:6,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{##[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*##\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*"},EmailVerificationMessageType:{type:"string",max:2e4,min:6,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*\\{####\\}[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s*]*"},EmailVerificationSubjectByLinkType:{type:"string",max:140,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+"},EmailVerificationSubjectType:{type:"string",max:140,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}\\s]+"},EnableSoftwareTokenMFAException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},EnhanceAuthRequest:{type:"structure",required:["ClientId","Username","AuthState","Code"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user for whom you wish to enhance authentication.

"},AuthState:{shape:"AuthStateType",documentation:"

The authentication state.

"},Code:{shape:"StringType",documentation:"

The code returned from the enhanced authentication request.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"}},documentation:"

Represents the request by the developer to enhance the authentication on a user pool.

"},EnhanceAuthResponse:{type:"structure",members:{AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The authentication result from the enhanced authentication response.

"}},documentation:"

Represents the response from the enhanced authentication request.

"},EventContextDataType:{type:"structure",members:{IpAddress:{shape:"StringType"},DeviceName:{shape:"StringType"},Timezone:{shape:"StringType"},City:{shape:"StringType"},Country:{shape:"StringType"}}},EventFeedbackType:{type:"structure",required:["FeedbackValue","Provider"],members:{FeedbackValue:{shape:"FeedbackValueType"},Provider:{shape:"StringType"},FeedbackDate:{shape:"DateType"}}},EventFilterType:{type:"string",enum:["SIGN_IN","FORGOT_PASSWORD","ALL"]},EventFiltersType:{type:"list",member:{shape:"EventFilterType"}},EventIdType:{type:"string",max:50,min:1,pattern:"[\\w+-]+"},EventResponseType:{type:"string",enum:["Success","Failure"]},EventRiskType:{type:"structure",members:{RiskDecision:{shape:"RiskDecisionType"},RiskLevel:{shape:"RiskLevelType"}}},EventType:{type:"string",enum:["SignIn","SignUp","ForgotPassword"]},ExpiredCodeException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the expired code exception is thrown.

"}},documentation:"

This exception is thrown if a code has expired.

",exception:!0},ExplicitAuthFlowsListType:{type:"list",member:{shape:"ExplicitAuthFlowsType"}},ExplicitAuthFlowsType:{type:"string",enum:["ADMIN_NO_SRP_AUTH","CUSTOM_AUTH_FLOW_ONLY"]},FeedbackValueType:{type:"string",enum:["Bad","Good"]},ForceAliasCreation:{type:"boolean"},ForgetDeviceRequest:{type:"structure",required:["DeviceKey"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token for the forgotten device request.

"},DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"}},documentation:"

Represents the request to forget the device.

"},ForgotPasswordRequest:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},UserContextData:{shape:"UserContextDataType"},Username:{shape:"UsernameType",documentation:"

The user name of the user for whom you want to enter a code to reset a forgotten password.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"}},documentation:"

Represents the request to reset a user's password.

"},ForgotPasswordResponse:{type:"structure",members:{CodeDeliveryDetails:{shape:"CodeDeliveryDetailsType",documentation:"

The code delivery details returned by the server in response to the request to reset a password.

"}},documentation:"

Respresents the response from the server regarding the request to reset a password.

"},GenerateSecret:{type:"boolean"},GetAuthenticationDetailsRequest:{type:"structure",required:["ClientId","Username","SrpA"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user for whom you wish to retrieve authentication details.

"},SrpA:{shape:"AValueHexStringType",documentation:'

The Secure Remote Password protocol (SRP) key. For more information, see Secure Remote Password Protocol.

'},ValidationData:{shape:"AttributeListType",documentation:"

The validation data of the request to get authentication details.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"}},documentation:"

Represents the user's request to get authentication details.

"},GetAuthenticationDetailsResponse:{type:"structure",required:["Salt","SrpB","SecretBlock"],members:{Salt:{shape:"HexStringType",documentation:'

A salt that gets returned by the response from the server to get authentication details. For more information, see Salt cryptography.

' +},SrpB:{shape:"HexStringType",documentation:'

The Secure Remote Password protocol (SRP) key. For more information, see Secure Remote Password Protocol.

'},SecretBlock:{shape:"BlobType",documentation:"

A blob that blocks the secret hash in the get authentication details response.

"},Username:{shape:"UsernameType",documentation:"

The resolved username for a possible alias in the input username parameter.

"}},documentation:"

Represents the response from the server to get authentication details.

"},GetCSVHeaderRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are to be imported into.

"}},documentation:"

Represents the request to get the header information for the .csv file for the user import job.

"},GetCSVHeaderResponse:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are to be imported into.

"},CSVHeader:{shape:"ListOfStringTypes",documentation:"

The header information for the .csv file for the user import job.

"}},documentation:"

Represents the response from the server to the request to get the header information for the .csv file for the user import job.

"},GetDeviceRequest:{type:"structure",required:["DeviceKey"],members:{DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},AccessToken:{shape:"TokenModelType",documentation:"

The access token.

"}},documentation:"

Represents the request to get the device.

"},GetDeviceResponse:{type:"structure",required:["Device"],members:{Device:{shape:"DeviceType",documentation:"

The device.

"}},documentation:"

Gets the device response.

"},GetGroupRequest:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{shape:"GroupNameType",documentation:"

The name of the group.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"}}},GetGroupResponse:{type:"structure",members:{Group:{shape:"GroupType",documentation:"

The group object for the group.

"}}},GetIdentityProviderByIdentifierRequest:{type:"structure",required:["UserPoolId","IdpIdentifier"],members:{UserPoolId:{shape:"UserPoolIdType"},IdpIdentifier:{shape:"IdpIdentifierType"}}},GetIdentityProviderByIdentifierResponse:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"IdentityProviderType"}}},GetJWKSRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to get JSON Web keys.

"}},documentation:"

Represents the request to get JSON Web keys.

"},GetJWKSResponse:{type:"structure",members:{keys:{shape:"KeyListType",documentation:"

The keys in a get JSON Web keys response.

"},cacheControl:{shape:"StringType",documentation:'

The value of the Cache-Control HTTP header field for the JSON Web keys response. For more information on cacheControl, see https://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9.

'}},documentation:"

Represents the response from the server to get JSON Web keys.

"},GetOpenIdConfigurationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to get Open ID configuration information.

"}},documentation:"

Represents the request to get the Open ID configuration.

"},GetOpenIdConfigurationResponse:{type:"structure",members:{issuer:{shape:"openIdUrlType",documentation:"

The issuer of the Open ID configuration response.

"},jwks_uri:{shape:"openIdUrlType",documentation:"

The URI of the JSON Web keys in the server response to get Open ID configuration information.

"},authorization_endpoint:{shape:"openIdUrlType",documentation:"

The authorization endpoint returned by the server response to get the Open ID configuration information.

"},subject_types_supported:{shape:"openIdListType",documentation:"

The subject types supported returned by the server response to get the Open ID configuration information.

"},response_types_supported:{shape:"openIdListType",documentation:"

The response types supported returned by the server response to get the Open ID configuration information.

"},id_token_signing_alg_values_supported:{shape:"openIdListType",documentation:"

The token-signing algorithm values supported returned by the server response to get the Open ID configuration information.

"}},documentation:"

Represents the response from the server to get the Open ID configuration information.

"},GetSigningCertificateRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"}}},GetSigningCertificateResponse:{type:"structure",members:{Certificate:{shape:"StringType"}}},GetUICustomizationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},ClientId:{shape:"ClientIdType"}}},GetUICustomizationResponse:{type:"structure",required:["UICustomization"],members:{UICustomization:{shape:"UICustomizationType"}}},GetUserAttributeVerificationCodeRequest:{type:"structure",required:["AccessToken","AttributeName"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token returned by the server response to get the user attribute verification code.

"},AttributeName:{shape:"AttributeNameType",documentation:"

The attribute name returned by the server response to get the user attribute verification code.

"}},documentation:"

Represents the request to get user attribute verification.

"},GetUserAttributeVerificationCodeResponse:{type:"structure",members:{CodeDeliveryDetails:{shape:"CodeDeliveryDetailsType",documentation:"

The code delivery details returned by the server in response to the request to get the user attribute verification code.

"}},documentation:"

The verification code response returned by the server response to get the user attribute verification code.

"},GetUserPoolMfaConfigRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"}}},GetUserPoolMfaConfigResponse:{type:"structure",members:{SmsMfaConfiguration:{shape:"SmsMfaConfigType"},SoftwareTokenMfaConfiguration:{shape:"SoftwareTokenMfaConfigType"},MfaConfiguration:{shape:"UserPoolMfaType"}}},GetUserPoolUIConfigurationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"}}},GetUserPoolUIConfigurationResponse:{type:"structure",required:["UserPoolUIConfiguration"],members:{UserPoolUIConfiguration:{shape:"UserPoolUIConfigurationType"}}},GetUserRequest:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token returned by the server response to get information about the user.

"}},documentation:"

Represents the request to get information about the user.

"},GetUserResponse:{type:"structure",required:["Username","UserAttributes"],members:{Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to retrieve from the get user request.

"},UserAttributes:{shape:"AttributeListType",documentation:"

An array of name-value pairs representing user attributes.

"},MFAOptions:{shape:"MFAOptionListType",documentation:"

Specifies the options for MFA (e.g., email or phone number).

"}},documentation:"

Represents the response from the server from the request to get information about the user.

"},GlobalSignOutRequest:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token.

"}},documentation:"

Represents the request to sign out all devices.

"},GlobalSignOutResponse:{type:"structure",members:{},documentation:"

The response to the request to sign out all devices.

"},GroupExistsException:{type:"structure",members:{message:{shape:"MessageType"}},documentation:"

This exception is thrown when Amazon Cognito encounters a group that already exists in the user pool.

",exception:!0},GroupListType:{type:"list",member:{shape:"GroupType"}},GroupNameType:{type:"string",max:128,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"},GroupType:{type:"structure",members:{GroupName:{shape:"GroupNameType",documentation:"

The name of the group.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Description:{shape:"DescriptionType",documentation:"

A string containing the description of the group.

"},RoleArn:{shape:"ArnType",documentation:"

The role ARN for the group.

"},Precedence:{shape:"PrecedenceType",documentation:"

A nonnegative integer value that specifies the precedence of this group relative to the other groups that a user can belong to in the user pool. If a user belongs to two or more groups, it is the group with the highest precedence whose role ARN will be used in the cognito:roles and cognito:preferred_role claims in the user's tokens. Groups with higher Precedence values take precedence over groups with lower Precedence values or with null Precedence values.

Two groups can have the same Precedence value. If this happens, neither group takes precedence over the other. If two groups with the same Precedence have the same role ARN, that role is used in the cognito:preferred_role claim in tokens for users in each group. If the two groups have different role ARNs, the cognito:preferred_role claim is not set in users' tokens.

The default Precedence value is null.

"},LastModifiedDate:{shape:"DateType",documentation:"

The date the group was last modified.

"},CreationDate:{shape:"DateType",documentation:"

The date the group was created.

"}},documentation:"

The group type.

"},HexStringType:{type:"string",pattern:"^[0-9a-fA-F]+$"},HttpHeader:{type:"structure",members:{headerName:{shape:"StringType"},headerValue:{shape:"StringType"}}},HttpHeaderList:{type:"list",member:{shape:"HttpHeader"}},IdentityProviderType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType"},ProviderName:{shape:"ProviderNameType"},ProviderType:{shape:"IdentityProviderTypeType"},ProviderDetails:{shape:"ProviderDetailsType"},AttributeMapping:{shape:"AttributeMappingType"},IdpIdentifiers:{shape:"IdpIdentifiersListType"},LastModifiedDate:{shape:"DateType"},CreationDate:{shape:"DateType"}}},IdentityProviderTypeType:{type:"string",enum:["SAML","Facebook","Google","LoginWithAmazon","ActiveDirectory"]},IdpIdentifierType:{type:"string",max:40,min:1,pattern:"[\\w\\s+=.@-]+"},IdpIdentifiersListType:{type:"list",member:{shape:"IdpIdentifierType"},max:50,min:0},ImageFileType:{type:"blob"},ImageUrlType:{type:"string"},InitiateAuthRequest:{type:"structure",required:["AuthFlow","ClientId"],members:{AuthFlow:{shape:"AuthFlowType",documentation:"

The authentication flow for this call to execute. The API action will depend on this value. For example:

  • REFRESH_TOKEN_AUTH will take in a valid refresh token and return new tokens.

  • USER_SRP_AUTH will take in USERNAME and SRPA and return the SRP variables to be used for next challenge execution.

Valid values include:

  • USER_SRP_AUTH: Authentication flow for the Secure Remote Password (SRP) protocol.

  • REFRESH_TOKEN_AUTH/REFRESH_TOKEN: Authentication flow for refreshing the access token and ID token by supplying a valid refresh token.

  • CUSTOM_AUTH: Custom authentication flow.

ADMIN_NO_SRP_AUTH is not a valid value.

"},AuthParameters:{shape:"AuthParametersType",documentation:"

The authentication parameters. These are inputs corresponding to the AuthFlow that you are invoking. The required values depend on the value of AuthFlow:

  • For USER_SRP_AUTH: USERNAME (required), SRPA (required), SECRET_HASH (required if the app client is configured with a client secret), DEVICE_KEY

  • For REFRESH_TOKEN_AUTH/REFRESH_TOKEN: USERNAME (required), SECRET_HASH (required if the app client is configured with a client secret), REFRESH_TOKEN (required), DEVICE_KEY

  • For CUSTOM_AUTH: USERNAME (required), SECRET_HASH (if app client is configured with client secret), DEVICE_KEY

"},ClientMetadata:{shape:"ClientMetadataType",documentation:"

This is a random key-value pair map which can contain any key and will be passed to your PreAuthentication Lambda trigger as-is. It can be used to implement additional validations around authentication.

"},ClientId:{shape:"ClientIdType",documentation:"

The app client ID.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},UserContextData:{shape:"UserContextDataType"}},documentation:"

Initiates the authentication request.

"},InitiateAuthResponse:{type:"structure",members:{ChallengeName:{shape:"ChallengeNameType",documentation:"

The name of the challenge which you are responding to with this call. This is returned to you in the AdminInitiateAuth response if you need to pass another challenge.

Valid values include the following. Note that all of these challenges require USERNAME and SECRET_HASH (if applicable) in the parameters.

  • SMS_MFA: Next challenge is to supply an SMS_MFA_CODE, delivered via SMS.

  • PASSWORD_VERIFIER: Next challenge is to supply PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, and TIMESTAMP after the client-side SRP calculations.

  • CUSTOM_CHALLENGE: This is returned if your custom authentication flow determines that the user should pass another challenge before tokens are issued.

  • DEVICE_SRP_AUTH: If device tracking was enabled on your user pool and the previous challenges were passed, this challenge is returned so that Amazon Cognito can start tracking this device.

  • DEVICE_PASSWORD_VERIFIER: Similar to PASSWORD_VERIFIER, but for devices only.

  • NEW_PASSWORD_REQUIRED: For users which are required to change their passwords after successful first login. This challenge should be passed with NEW_PASSWORD and any other required attributes.

"},Session:{shape:"SessionType",documentation:"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

"},ChallengeParameters:{shape:"ChallengeParametersType",documentation:"

The challenge parameters. These are returned to you in the InitiateAuth response if you need to pass another challenge. The responses in this parameter should be used to compute inputs to the next call (RespondToAuthChallenge).

All challenges require USERNAME and SECRET_HASH (if applicable).

"},AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The result of the authentication response. This is only returned if the caller does not need to pass another challenge. If the caller does need to pass another challenge before it gets tokens, ChallengeName, ChallengeParameters, and Session are returned.

"}},documentation:"

Initiates the authentication response.

"},IntegerType:{type:"integer"},InternalErrorException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when Amazon Cognito throws an internal error exception.

"}},documentation:"

This exception is thrown when Amazon Cognito encounters an internal error.

",exception:!0,fault:!0},InvalidEmailRoleAccessPolicyException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when you have an unverified email address or the identity policy is not set on an email address that Amazon Cognito can access.

"}},documentation:"

This exception is thrown when Amazon Cognito is not allowed to use your email identity. HTTP status code: 400.

",exception:!0},InvalidLambdaResponseException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service throws an invalid AWS Lambda response exception.

"}},documentation:"

This exception is thrown when the Amazon Cognito service encounters an invalid AWS Lambda response.

",exception:!0},InvalidOAuthFlowException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},InvalidParameterException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service throws an invalid parameter exception.

"}},documentation:"

This exception is thrown when the Amazon Cognito service encounters an invalid parameter.

",exception:!0},InvalidPasswordException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service throws an invalid user password exception.

"}},documentation:"

This exception is thrown when the Amazon Cognito service encounters an invalid password.

",exception:!0},InvalidSmsRoleAccessPolicyException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message retuned when the invalid SMS role access policy exception is thrown.

"}},documentation:"

This exception is returned when the role provided for SMS configuration does not have permission to publish using Amazon SNS.

",exception:!0},InvalidSmsRoleTrustRelationshipException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the role trust relationship for the SMS message is invalid.

"}},documentation:"

This exception is thrown when the trust relationship is invalid for the role provided for SMS configuration. This can happen if you do not trust cognito-idp.amazonaws.com or the external ID provided in the role does not match what is provided in the SMS configuration for the user pool.

",exception:!0},InvalidUserPoolConfigurationException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the user pool configuration is invalid.

"}},documentation:"

This exception is thrown when the user pool configuration is invalid.

",exception:!0},KeyListType:{type:"list",member:{shape:"KeyType"}},KeyType:{type:"structure",members:{kty:{shape:"StringType",documentation:'

A "kty" key type parameter. For more information, see JSON Web Key (JWK) Format.

'},alg:{shape:"StringType",documentation:'

A "kty" (Key Type) parameter. For more information, see "kty" (Key Type) Parameter.

'},use:{shape:"StringType",documentation:'

A "use" (Public Key Use) parameter. For more information, see "use" (Public Key Use) Parameter.

'},kid:{shape:"StringType",documentation:'

A "kid" (Key ID) parameter. For more information, see "kid" (Key ID) Parameter.

'},n:{shape:"StringType",documentation:'

An "n" parameter.

'},e:{shape:"StringType",documentation:'

An "e" parameter.

'}},documentation:'

A JSON Web Key key type in JSON Web Key (JWK) Format.

'},LambdaConfigType:{type:"structure",members:{PreSignUp:{shape:"ArnType",documentation:"

A pre-registration AWS Lambda trigger.

"},CustomMessage:{shape:"ArnType",documentation:"

A custom Message AWS Lambda trigger.

"},PostConfirmation:{shape:"ArnType",documentation:"

A post-confirmation AWS Lambda trigger.

"},PreAuthentication:{shape:"ArnType",documentation:"

A pre-authentication AWS Lambda trigger.

"},PostAuthentication:{shape:"ArnType",documentation:"

A post-authentication AWS Lambda trigger.

"},DefineAuthChallenge:{shape:"ArnType",documentation:"

Defines the authentication challenge.

"},CreateAuthChallenge:{shape:"ArnType",documentation:"

Creates an authentication challenge.

"},VerifyAuthChallengeResponse:{shape:"ArnType",documentation:"

Verifies the authentication challenge response.

"},PreTokenGeneration:{shape:"ArnType"}},documentation:"

Specifies the type of configuration for AWS Lambda triggers.

"},LimitExceededException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when Amazon Cognito throws a limit exceeded exception.

"}},documentation:"

This exception is thrown when a user exceeds the limit for a requested AWS resource.

",exception:!0},ListDevicesRequest:{type:"structure",required:["AccessToken"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access tokens for the request to list devices.

"},Limit:{shape:"QueryLimitType",documentation:"

The limit of the device request.

"},PaginationToken:{shape:"SearchPaginationTokenType",documentation:"

The pagination token for the list request.

"}},documentation:"

Represents the request to list the devices.

"},ListDevicesResponse:{type:"structure",members:{Devices:{shape:"DeviceListType",documentation:"

The devices returned in the list devices response.

"},PaginationToken:{shape:"SearchPaginationTokenType",documentation:"

The pagination token for the list device response.

"}},documentation:"

Represents the response to list devices.

"},ListGroupsRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Limit:{shape:"QueryLimitType",documentation:"

The limit of the request to list groups.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}}},ListGroupsResponse:{type:"structure",members:{Groups:{shape:"GroupListType",documentation:"

The group objects for the groups.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}}},ListIdentityProvidersRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},MaxResults:{shape:"ListProvidersLimitType"},NextToken:{shape:"PaginationKeyType"}}},ListIdentityProvidersResponse:{type:"structure",required:["Providers"],members:{Providers:{shape:"ProvidersListType"},NextToken:{shape:"PaginationKeyType"}}},ListOfStringTypes:{type:"list",member:{shape:"StringType"}},ListProvidersLimitType:{type:"integer",max:60,min:1},ListResourceServersLimitType:{type:"integer",max:50,min:1},ListResourceServersRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},MaxResults:{shape:"ListResourceServersLimitType"},NextToken:{shape:"PaginationKeyType"}}},ListResourceServersResponse:{type:"structure",required:["ResourceServers"],members:{ResourceServers:{shape:"ResourceServersListType"},NextToken:{shape:"PaginationKeyType"}}},ListUserImportJobsRequest:{type:"structure",required:["UserPoolId","MaxResults"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are being imported into.

"},MaxResults:{shape:"PoolQueryLimitType",documentation:"

The maximum number of import jobs you want the request to return.

"},PaginationToken:{shape:"PaginationKeyType",documentation:"

An identifier that was returned from the previous call to ListUserImportJobs, which can be used to return the next set of import jobs in the list.

"}},documentation:"

Represents the request to list the user import jobs.

"},ListUserImportJobsResponse:{type:"structure",members:{UserImportJobs:{shape:"UserImportJobsListType",documentation:"

The user import jobs.

"},PaginationToken:{shape:"PaginationKeyType",documentation:"

An identifier that can be used to return the next set of user import jobs in the list.

"}},documentation:"

Represents the response from the server to the request to list the user import jobs.

"},ListUserPoolClientsRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to list user pool clients.

"},MaxResults:{shape:"QueryLimit",documentation:"

The maximum number of results you want the request to return when listing the user pool clients.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}},documentation:"

Represents the request to list the user pool clients.

"},ListUserPoolClientsResponse:{type:"structure",members:{UserPoolClients:{shape:"UserPoolClientListType",documentation:"

The user pool clients in the response that lists user pool clients.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}},documentation:"

Represents the response from the server that lists user pool clients.

"},ListUserPoolsRequest:{type:"structure",required:["MaxResults"],members:{NextToken:{shape:"PaginationKeyType",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"},MaxResults:{shape:"PoolQueryLimitType",documentation:"

The maximum number of results you want the request to return when listing the user pools.

"}},documentation:"

Represents the request to list user pools.

"},ListUserPoolsResponse:{type:"structure",members:{UserPools:{shape:"UserPoolListType",documentation:"

The user pools from the response to list users.

"},NextToken:{shape:"PaginationKeyType",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}},documentation:"

Represents the response to list user pools.

"},ListUsersInGroupRequest:{type:"structure",required:["UserPoolId","GroupName"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},GroupName:{shape:"GroupNameType",documentation:"

The name of the group.

"},Limit:{shape:"QueryLimitType",documentation:"

The limit of the request to list users.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}}},ListUsersInGroupResponse:{type:"structure",members:{Users:{shape:"UsersListType",documentation:"

The users returned in the request to list users.

"},NextToken:{shape:"PaginationKey",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}}},ListUsersRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool on which the search should be performed.

"},AttributesToGet:{shape:"SearchedAttributeNamesListType",documentation:"

An array of strings, where each string is the name of a user attribute to be returned for each user in the search results. If the array is empty, all attributes are returned.

"},Limit:{shape:"QueryLimitType",documentation:"

Maximum number of users to be returned.

"},PaginationToken:{shape:"SearchPaginationTokenType",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"},Filter:{shape:"UserFilterType",documentation:'

A filter string of the form "AttributeName Filter-Type "AttributeValue"". Quotation marks within the filter string must be escaped using the backslash (\\) character. For example, "family_name = \\"Reddy\\"".

  • AttributeName: The name of the attribute to search for. You can only search for one attribute at a time.

  • Filter-Type: For an exact match, use =, for example, "given_name = \\"Jon\\"". For a prefix ("starts with") match, use ^=, for example, "given_name ^= \\"Jon\\"".

  • AttributeValue: The attribute value that must be matched for each user.

If the filter string is empty, ListUsers returns all users in the user pool.

You can only search for the following standard attributes:

  • username (case-sensitive)

  • email

  • phone_number

  • name

  • given_name

  • family_name

  • preferred_username

  • cognito:user_status (called Enabled in the Console) (case-sensitive)

  • status (case-insensitive)

Custom attributes are not searchable.

For more information, see Searching for Users Using the ListUsers API and Examples of Using the ListUsers API in the Amazon Cognito Developer Guide.

'}},documentation:"

Represents the request to list users.

"},ListUsersResponse:{type:"structure",members:{Users:{shape:"UsersListType",documentation:"

The users returned in the request to list users.

"},PaginationToken:{shape:"SearchPaginationTokenType",documentation:"

An identifier that was returned from the previous call to this operation, which can be used to return the next set of items in the list.

"}},documentation:"

The response from the request to list users.

"},LogoutURLsListType:{type:"list",member:{shape:"RedirectUrlType"},max:100,min:0},LongType:{type:"long"},MFAMethodNotFoundException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when Amazon Cognito throws an MFA method not found exception.

"}},documentation:"

This exception is thrown when Amazon Cognito cannot find a multi-factor authentication (MFA) method.

", +exception:!0},MFAOptionListType:{type:"list",member:{shape:"MFAOptionType"}},MFAOptionType:{type:"structure",members:{DeliveryMedium:{shape:"DeliveryMediumType",documentation:"

The delivery medium (email message or SMS message) to send the MFA code.

"},AttributeName:{shape:"AttributeNameType",documentation:"

The attribute name of the MFA option type.

"}},documentation:"

Specifies the different settings for multi-factor authentication (MFA).

"},MessageActionType:{type:"string",enum:["RESEND","SUPPRESS"]},MessageTemplateType:{type:"structure",members:{SMSMessage:{shape:"SmsVerificationMessageType",documentation:"

The message template for SMS messages.

"},EmailMessage:{shape:"EmailVerificationMessageType",documentation:"

The message template for email messages.

"},EmailSubject:{shape:"EmailVerificationSubjectType",documentation:"

The subject line for email messages.

"}},documentation:"

The message template structure.

"},MessageType:{type:"string"},NewDeviceMetadataType:{type:"structure",members:{DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},DeviceGroupKey:{shape:"StringType",documentation:"

The device group key.

"}},documentation:"

The new device metadata type.

"},NotAuthorizedException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service returns a not authorized exception.

"}},documentation:"

This exception gets thrown when a user is not authorized.

",exception:!0},NotifyConfigurationType:{type:"structure",required:["SourceArn"],members:{From:{shape:"StringType"},ReplyTo:{shape:"StringType"},SourceArn:{shape:"ArnType"},BlockEmail:{shape:"NotifyEmailType"},NoActionEmail:{shape:"NotifyEmailType"},MfaEmail:{shape:"NotifyEmailType"}}},NotifyEmailType:{type:"structure",required:["Subject"],members:{Subject:{shape:"EmailNotificationSubjectType"},HtmlBody:{shape:"EmailNotificationBodyType"},TextBody:{shape:"EmailNotificationBodyType"}}},NumberAttributeConstraintsType:{type:"structure",members:{MinValue:{shape:"StringType",documentation:"

The minimum value of an attribute that is of the number data type.

"},MaxValue:{shape:"StringType",documentation:"

The maximum value of an attribute that is of the number data type.

"}},documentation:"

The minimum and maximum value of an attribute that is of the number data type.

"},OAuthFlowType:{type:"string",enum:["code","implicit","client_credentials"]},OAuthFlowsType:{type:"list",member:{shape:"OAuthFlowType"},max:3,min:0},PaginationKey:{type:"string",min:1,pattern:"[\\S]+"},PaginationKeyType:{type:"string",min:1,pattern:"[\\S]+"},PasswordClaimType:{type:"structure",members:{SecretBlock:{shape:"BlobType",documentation:"

A secret block claim type for a password.

"},Signature:{shape:"BlobType",documentation:"

A signature claim type for a password.

"}},documentation:"

The claim type of a password.

",sensitive:!0},PasswordPolicyMinLengthType:{type:"integer",max:99,min:6},PasswordPolicyType:{type:"structure",members:{MinimumLength:{shape:"PasswordPolicyMinLengthType",documentation:"

The minimum length of the password policy that you have set. Cannot be less than 6.

"},RequireUppercase:{shape:"BooleanType",documentation:"

In the password policy that you have set, refers to whether you have required users to use at least one uppercase letter in their password.

"},RequireLowercase:{shape:"BooleanType",documentation:"

In the password policy that you have set, refers to whether you have required users to use at least one lowercase letter in their password.

"},RequireNumbers:{shape:"BooleanType",documentation:"

In the password policy that you have set, refers to whether you have required users to use at least one number in their password.

"},RequireSymbols:{shape:"BooleanType",documentation:"

In the password policy that you have set, refers to whether you have required users to use at least one symbol in their password.

"}},documentation:"

The password policy type.

"},PasswordResetRequiredException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when a password reset is required.

"}},documentation:"

This exception is thrown when a password reset is required.

",exception:!0},PasswordType:{type:"string",max:256,min:6,pattern:"[\\S]+",sensitive:!0},PoolQueryLimitType:{type:"integer",max:60,min:1},PreSignedUrlType:{type:"string",max:2048,min:0},PrecedenceType:{type:"integer",min:0},PreconditionNotMetException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when a precondition is not met.

"}},documentation:"

This exception is thrown when a precondition is not met.

",exception:!0},ProviderDescription:{type:"structure",members:{ProviderName:{shape:"ProviderNameType"},ProviderType:{shape:"IdentityProviderTypeType"},LastModifiedDate:{shape:"DateType"},CreationDate:{shape:"DateType"}}},ProviderDetailsType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},ProviderNameType:{type:"string",max:32,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"},ProviderNameTypeV1:{type:"string",max:32,min:1,pattern:"[^_][\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}][^_]+"},ProviderUserIdentifierType:{type:"structure",members:{ProviderName:{shape:"ProviderNameType"},ProviderAttributeName:{shape:"StringType"},ProviderAttributeValue:{shape:"StringType"}}},ProvidersListType:{type:"list",member:{shape:"ProviderDescription"},max:50,min:0},QueryLimit:{type:"integer",max:60,min:1},QueryLimitType:{type:"integer",max:60,min:0},RedirectUrlType:{type:"string",max:1024,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+"},RefreshTokenValidityType:{type:"integer",max:3650,min:0},RefreshTokensRequest:{type:"structure",required:["ClientId","RefreshToken"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},ClientSecret:{shape:"ClientSecretType",documentation:"

The client secret for a user's request to refresh tokens.

"},RefreshToken:{shape:"TokenModelType",documentation:"

The refresh token for a user's request to refresh tokens.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"}},documentation:"

Represents the request to refresh tokens.

"},RefreshTokensResponse:{type:"structure",members:{AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The authentication result from the server's response to the request to refresh tokens.

"}},documentation:"

Represents the response from the server when the user wants to refresh tokens.

"},ResendConfirmationCodeRequest:{type:"structure",required:["ClientId","Username"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},UserContextData:{shape:"UserContextDataType"},Username:{shape:"UsernameType",documentation:"

The user name of the user to whom you wish to resend a confirmation code.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"}},documentation:"

Represents the request to resend the confirmation code.

"},ResendConfirmationCodeResponse:{type:"structure",members:{CodeDeliveryDetails:{shape:"CodeDeliveryDetailsType",documentation:"

The code delivery details returned by the server in response to the request to resend the confirmation code.

"}},documentation:"

The response from the server when the Amazon Cognito Your User Pools service makes the request to resend a confirmation code.

"},ResourceNotFoundException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service returns a resource not found exception.

"}},documentation:"

This exception is thrown when the Amazon Cognito service cannot find the requested resource.

",exception:!0},ResourceServerIdentifierType:{type:"string",max:256,min:1,pattern:"[\\x21\\x23-\\x5B\\x5D-\\x7E]+"},ResourceServerNameType:{type:"string",max:256,min:1,pattern:"[\\w\\s+=,.@-]+"},ResourceServerScopeDescriptionType:{type:"string",max:256,min:1},ResourceServerScopeListType:{type:"list",member:{shape:"ResourceServerScopeType"},max:25},ResourceServerScopeNameType:{type:"string",max:256,min:1,pattern:"[\\x21\\x23-\\x2E\\x30-\\x5B\\x5D-\\x7E]+"},ResourceServerScopeType:{type:"structure",required:["ScopeName","ScopeDescription"],members:{ScopeName:{shape:"ResourceServerScopeNameType"},ScopeDescription:{shape:"ResourceServerScopeDescriptionType"}}},ResourceServerType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType"},Identifier:{shape:"ResourceServerIdentifierType"},Name:{shape:"ResourceServerNameType"},Scopes:{shape:"ResourceServerScopeListType"}}},ResourceServersListType:{type:"list",member:{shape:"ResourceServerType"}},RespondToAuthChallengeRequest:{type:"structure",required:["ClientId","ChallengeName"],members:{ClientId:{shape:"ClientIdType",documentation:"

The app client ID.

"},ChallengeName:{shape:"ChallengeNameType",documentation:'

The challenge name. For more information, see InitiateAuth.

ADMIN_NO_SRP_AUTH is not a valid value.

'},Session:{shape:"SessionType",documentation:"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

"},ChallengeResponses:{shape:"ChallengeResponsesType",documentation:"

The challenge responses. These are inputs corresponding to the value of ChallengeName, for example:

  • SMS_MFA: SMS_MFA_CODE, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • PASSWORD_VERIFIER: PASSWORD_CLAIM_SIGNATURE, PASSWORD_CLAIM_SECRET_BLOCK, TIMESTAMP, USERNAME, SECRET_HASH (if app client is configured with client secret).

  • NEW_PASSWORD_REQUIRED: NEW_PASSWORD, any other required attributes, USERNAME, SECRET_HASH (if app client is configured with client secret).

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},UserContextData:{shape:"UserContextDataType"}},documentation:"

The request to respond to an authentication challenge.

"},RespondToAuthChallengeResponse:{type:"structure",members:{ChallengeName:{shape:"ChallengeNameType",documentation:'

The challenge name. For more information, see InitiateAuth.

'},Session:{shape:"SessionType",documentation:"

The session which should be passed both ways in challenge-response calls to the service. If InitiateAuth or RespondToAuthChallenge API call determines that the caller needs to go through another challenge, they return a session with other challenge parameters. This session should be passed as it is to the next RespondToAuthChallenge API call.

"},ChallengeParameters:{shape:"ChallengeParametersType",documentation:'

The challenge parameters. For more information, see InitiateAuth.

'},AuthenticationResult:{shape:"AuthenticationResultType",documentation:"

The result returned by the server in response to the request to respond to the authentication challenge.

"}},documentation:"

The response to respond to the authentication challenge.

"},RiskConfigurationType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType"},ClientId:{shape:"ClientIdType"},CompromisedCredentialsRiskConfiguration:{shape:"CompromisedCredentialsRiskConfigurationType"},BotRiskConfiguration:{shape:"BotRiskConfigurationType"},AccountTakeoverRiskConfiguration:{shape:"AccountTakeoverRiskConfigurationType"},RiskExceptionConfiguration:{shape:"RiskExceptionConfigurationType"},LastModifiedDate:{shape:"DateType"}}},RiskDecisionType:{type:"string",enum:["NoRisk","Bot","AccountTakeover"]},RiskExceptionConfigurationType:{type:"structure",members:{BlockedIPRangeList:{shape:"BlockedIPRangeListType"},SkippedIPRangeList:{shape:"SkippedIPRangeListType"}}},RiskLevelType:{type:"string",enum:["Low","Medium","High"]},S3BucketType:{type:"string",max:1024,min:3,pattern:"^[0-9A-Za-z\\.\\-_]*(?A schema attribute of the name type.

"},AttributeDataType:{shape:"AttributeDataType",documentation:"

The attribute data type.

"},DeveloperOnlyAttribute:{shape:"BooleanType",documentation:"

Specifies whether the attribute type is developer only.

",box:!0},Mutable:{shape:"BooleanType",documentation:"

Specifies whether the attribute can be changed once it has been created.

",box:!0},Required:{shape:"BooleanType",documentation:"

Specifies whether a user pool attribute is required. If the attribute is required and the user does not provide a value, registration or sign-in will fail.

",box:!0},NumberAttributeConstraints:{shape:"NumberAttributeConstraintsType",documentation:"

Specifies the constraints for an attribute of the number type.

"},StringAttributeConstraints:{shape:"StringAttributeConstraintsType",documentation:"

Specifies the constraints for an attribute of the string type.

"}},documentation:"

Contains information about the schema attribute.

"},SchemaAttributesListType:{type:"list",member:{shape:"SchemaAttributeType"},max:50,min:1},ScopeDoesNotExistException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},ScopeListType:{type:"list",member:{shape:"ScopeType"},max:25},ScopeType:{type:"string",max:256,min:1,pattern:"[\\x21\\x23-\\x5B\\x5D-\\x7E]+"},SearchPaginationTokenType:{type:"string",min:1,pattern:"[\\S]+"},SearchedAttributeNamesListType:{type:"list",member:{shape:"AttributeNameType"}},SecretCodeType:{type:"string",min:16,pattern:"[A-Za-z0-9]+",sensitive:!0},SecretHashType:{type:"string",max:128,min:1,pattern:"[\\w+=/]+",sensitive:!0},SessionType:{type:"string",max:2048,min:20},SetRiskConfigurationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},ClientId:{shape:"ClientIdType"},CompromisedCredentialsRiskConfiguration:{shape:"CompromisedCredentialsRiskConfigurationType"},BotRiskConfiguration:{shape:"BotRiskConfigurationType"},AccountTakeoverRiskConfiguration:{shape:"AccountTakeoverRiskConfigurationType"},RiskExceptionConfiguration:{shape:"RiskExceptionConfigurationType"}}},SetRiskConfigurationResponse:{type:"structure",required:["RiskConfiguration"],members:{RiskConfiguration:{shape:"RiskConfigurationType"}}},SetUICustomizationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},ClientId:{shape:"ClientIdType"},CSS:{shape:"CSSType"},ImageFile:{shape:"ImageFileType"}}},SetUICustomizationResponse:{type:"structure",required:["UICustomization"],members:{UICustomization:{shape:"UICustomizationType"}}},SetUserMFAPreferenceRequest:{type:"structure",required:["AccessToken"],members:{SMSMfaSettings:{shape:"SMSMfaSettingsType"},SoftwareTokenMfaSettings:{shape:"SoftwareTokenMfaSettingsType"},AccessToken:{shape:"TokenModelType"}}},SetUserMFAPreferenceResponse:{type:"structure",members:{}},SetUserPoolMfaConfigRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},SmsMfaConfiguration:{shape:"SmsMfaConfigType"},SoftwareTokenMfaConfiguration:{shape:"SoftwareTokenMfaConfigType"},MfaConfiguration:{shape:"UserPoolMfaType"}}},SetUserPoolMfaConfigResponse:{type:"structure",members:{SmsMfaConfiguration:{shape:"SmsMfaConfigType"},SoftwareTokenMfaConfiguration:{shape:"SoftwareTokenMfaConfigType"},MfaConfiguration:{shape:"UserPoolMfaType"}}},SetUserPoolUIConfigurationRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType"},Details:{shape:"UIDetailsMapType"}}},SetUserPoolUIConfigurationResponse:{type:"structure",required:["UserPoolUIConfiguration"],members:{UserPoolUIConfiguration:{shape:"UserPoolUIConfigurationType"}}},SetUserSettingsRequest:{type:"structure",required:["AccessToken","MFAOptions"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token for the set user settings request.

"},MFAOptions:{shape:"MFAOptionListType",documentation:"

Specifies the options for MFA (e.g., email or phone number).

"}},documentation:"

Represents the request to set user settings.

"},SetUserSettingsResponse:{type:"structure",members:{},documentation:"

The response from the server for a set user settings request.

"},SignUpRequest:{type:"structure",required:["ClientId","Username","Password"],members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},SecretHash:{shape:"SecretHashType",documentation:"

A keyed-hash message authentication code (HMAC) calculated using the secret key of a user pool client and username plus the client ID in the message.

"},Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to register.

"},Password:{shape:"PasswordType",documentation:"

The password of the user you wish to register.

"},UserAttributes:{shape:"AttributeListType",documentation:"

An array of name-value pairs representing user attributes.

"},ValidationData:{shape:"AttributeListType",documentation:"

The validation data in the request to register a user.

"},AnalyticsMetadata:{shape:"AnalyticsMetadataType"},UserContextData:{shape:"UserContextDataType"}},documentation:"

Represents the request to register a user.

"},SignUpResponse:{type:"structure",required:["UserConfirmed","UserSub"],members:{UserConfirmed:{shape:"BooleanType",documentation:"

A response from the server indicating that a user registration has been confirmed.

"},CodeDeliveryDetails:{shape:"CodeDeliveryDetailsType",documentation:"

The code delivery details returned by the server response to the user registration request.

"},UserSub:{shape:"StringType"}},documentation:"

The response from the server for a registration request.

"},SkippedIPRangeListType:{type:"list",member:{shape:"StringType"},max:20},SmsConfigurationType:{type:"structure",required:["SnsCallerArn"],members:{SnsCallerArn:{shape:"ArnType",documentation:"

The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) caller.

"},ExternalId:{shape:"StringType",documentation:"

The external ID.

"}},documentation:"

The SMS configuration type.

"},SmsMfaConfigType:{type:"structure",members:{SmsAuthenticationMessage:{shape:"SmsVerificationMessageType"},SmsConfiguration:{shape:"SmsConfigurationType"}}},SmsVerificationMessageType:{type:"string",max:140,min:6,pattern:".*\\{####\\}.*"},SoftwareTokenMFANotFoundException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},SoftwareTokenMFAUserCodeType:{type:"string",max:6,min:6,pattern:"[0-9]+"},SoftwareTokenMfaConfigType:{type:"structure",members:{Enabled:{shape:"BooleanType"}}},SoftwareTokenMfaSettingsType:{type:"structure",members:{Enabled:{shape:"BooleanType"},PreferredMfa:{shape:"BooleanType"}}},StartUserImportJobRequest:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are being imported into.

"},JobId:{shape:"UserImportJobIdType",documentation:"

The job ID for the user import job.

"}},documentation:"

Represents the request to start the user import job.

"},StartUserImportJobResponse:{type:"structure",members:{UserImportJob:{shape:"UserImportJobType",documentation:"

The job object that represents the user import job.

"}},documentation:"

Represents the response from the server to the request to start the user import job.

"},StatusType:{type:"string",enum:["Enabled","Disabled"]},StopUserImportJobRequest:{type:"structure",required:["UserPoolId","JobId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are being imported into.

"},JobId:{shape:"UserImportJobIdType",documentation:"

The job ID for the user import job.

"}},documentation:"

Represents the request to stop the user import job.

"},StopUserImportJobResponse:{type:"structure",members:{UserImportJob:{shape:"UserImportJobType",documentation:"

The job object that represents the user import job.

"}},documentation:"

Represents the response from the server to the request to stop the user import job.

"},StringAttributeConstraintsType:{type:"structure",members:{MinLength:{shape:"StringType",documentation:"

The minimum length of an attribute value of the string type.

"},MaxLength:{shape:"StringType",documentation:"

The maximum length of an attribute value of the string type.

"}},documentation:"

The type of constraints associated with an attribute of the string type.

"},StringType:{type:"string"},SupportedIdentityProvidersListType:{type:"list",member:{shape:"ProviderNameType"}},TokenModelType:{type:"string",pattern:"[A-Za-z0-9-_=.]+",sensitive:!0},TooManyFailedAttemptsException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service returns a too many failed attempts exception.

"}},documentation:"

This exception gets thrown when the user has made too many failed attempts for a given action (e.g., sign in).

",exception:!0},TooManyRequestsException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service returns a too many requests exception.

"}},documentation:"

This exception gets thrown when the user has made too many requests for a given operation.

",exception:!0},UICustomizationType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType"},ClientId:{shape:"ClientIdType"},ImageUrl:{shape:"ImageUrlType"},CSS:{shape:"CSSType"},CSSVersion:{shape:"CSSVersionType"},LastModifiedDate:{shape:"DateType"},CreationDate:{shape:"DateType"}}},UIDetailsMapType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},UnexpectedLambdaException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service returns an unexpected AWS Lambda exception.

"}},documentation:"

This exception gets thrown when the Amazon Cognito service encounters an unexpected exception with the AWS Lambda service.

",exception:!0},UnsupportedIdentityProviderException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},UnsupportedUserStateException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the user is in an unsupported state.

"}},documentation:"

The request failed because the user is in an unsupported state.

",exception:!0},UpdateAuthEventFeedbackRequest:{type:"structure",required:["UserPoolId","Username","EventId","FeedbackToken","FeedbackValue"],members:{UserPoolId:{shape:"UserPoolIdType"},Username:{shape:"UsernameType"},EventId:{shape:"EventIdType"},FeedbackToken:{shape:"TokenModelType"},FeedbackValue:{shape:"FeedbackValueType"}}},UpdateAuthEventFeedbackResponse:{type:"structure",members:{}},UpdateDeviceStatusRequest:{type:"structure",required:["AccessToken","DeviceKey"],members:{AccessToken:{shape:"TokenModelType",documentation:"

The access token.

"},DeviceKey:{shape:"DeviceKeyType",documentation:"

The device key.

"},DeviceRememberedStatus:{shape:"DeviceRememberedStatusType",documentation:"

The status of whether a device is remembered.

"}},documentation:"

Represents the request to update the device status.

"},UpdateDeviceStatusResponse:{type:"structure",members:{},documentation:"

The response to the request to update the device status.

"},UpdateGroupRequest:{type:"structure",required:["GroupName","UserPoolId"],members:{GroupName:{shape:"GroupNameType",documentation:"

The name of the group.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool.

"},Description:{shape:"DescriptionType",documentation:"

A string containing the new description of the group.

"},RoleArn:{shape:"ArnType",documentation:"

The new role ARN for the group. This is used for setting the cognito:roles and cognito:preferred_role claims in the token.

"},Precedence:{shape:"PrecedenceType",documentation:'

The new precedence value for the group. For more information about this parameter, see CreateGroup.

'}}},UpdateGroupResponse:{type:"structure",members:{Group:{shape:"GroupType",documentation:"

The group object for the group.

"}}},UpdateIdentityProviderRequest:{type:"structure",required:["UserPoolId","ProviderName"],members:{UserPoolId:{shape:"UserPoolIdType"},ProviderName:{shape:"ProviderNameType"},ProviderDetails:{shape:"ProviderDetailsType"},AttributeMapping:{shape:"AttributeMappingType"},IdpIdentifiers:{shape:"IdpIdentifiersListType"}}},UpdateIdentityProviderResponse:{type:"structure",required:["IdentityProvider"],members:{IdentityProvider:{shape:"IdentityProviderType"}}},UpdateResourceServerRequest:{type:"structure",required:["UserPoolId","Identifier","Name"],members:{UserPoolId:{shape:"UserPoolIdType"},Identifier:{shape:"ResourceServerIdentifierType"},Name:{shape:"ResourceServerNameType"},Scopes:{shape:"ResourceServerScopeListType"}}},UpdateResourceServerResponse:{type:"structure",required:["ResourceServer"],members:{ResourceServer:{shape:"ResourceServerType"}}},UpdateUserAttributesRequest:{type:"structure",required:["UserAttributes","AccessToken"],members:{UserAttributes:{shape:"AttributeListType",documentation:"

An array of name-value pairs representing user attributes.

"},AccessToken:{shape:"TokenModelType",documentation:"

The access token for the request to update user attributes.

"}},documentation:"

Represents the request to update user attributes.

"},UpdateUserAttributesResponse:{type:"structure",members:{CodeDeliveryDetailsList:{shape:"CodeDeliveryDetailsListType",documentation:"

The code delivery details list from the server for the request to update user attributes.

"}},documentation:"

Represents the response from the server for the request to update user attributes.

"},UpdateUserPoolClientRequest:{type:"structure",required:["UserPoolId","ClientId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to update the user pool client.

"},ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},ClientName:{shape:"ClientNameType",documentation:"

The client name from the update user pool client request.

"},RefreshTokenValidity:{shape:"RefreshTokenValidityType",documentation:"

The time limit, in days, after which the refresh token is no longer valid and cannot be used.

"},ReadAttributes:{shape:"ClientPermissionListType",documentation:"

The read-only attributes of the user pool.

"},WriteAttributes:{shape:"ClientPermissionListType",documentation:"

The writeable attributes of the user pool.

"},ExplicitAuthFlows:{shape:"ExplicitAuthFlowsListType",documentation:"

Explicit authentication flows.

"},SupportedIdentityProviders:{shape:"SupportedIdentityProvidersListType"},CallbackURLs:{shape:"CallbackURLsListType"},LogoutURLs:{shape:"LogoutURLsListType"},DefaultRedirectURI:{shape:"RedirectUrlType"},AllowedOAuthFlows:{shape:"OAuthFlowsType"},AllowedOAuthScopes:{shape:"ScopeListType"},AllowedOAuthFlowsUserPoolClient:{shape:"BooleanType"},AnalyticsConfiguration:{shape:"AnalyticsConfigurationType"}},documentation:"

Represents the request to update the user pool client.

"},UpdateUserPoolClientResponse:{type:"structure",members:{UserPoolClient:{shape:"UserPoolClientType",documentation:"

The user pool client value from the response from the server when an update user pool client request is made.

"}},documentation:"

Represents the response from the server to the request to update the user pool client.

"},UpdateUserPoolRequest:{type:"structure",required:["UserPoolId"],members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool you want to update.

"},Policies:{shape:"UserPoolPolicyType",documentation:"

A container with the policies you wish to update in a user pool.

"},LambdaConfig:{shape:"LambdaConfigType",documentation:"

The AWS Lambda configuration information from the request to update the user pool.

"},AutoVerifiedAttributes:{shape:"VerifiedAttributesListType",documentation:"

The attributes that are automatically verified when the Amazon Cognito service makes a request to update user pools.

"},SmsVerificationMessage:{shape:"SmsVerificationMessageType",documentation:"

A container with information about the SMS verification message.

"},EmailVerificationMessage:{shape:"EmailVerificationMessageType",documentation:"

The contents of the email verification message.

"},EmailVerificationSubject:{shape:"EmailVerificationSubjectType",documentation:"

The subject of the email verification message.

"},VerificationMessageTemplate:{shape:"VerificationMessageTemplateType"},SmsAuthenticationMessage:{shape:"SmsVerificationMessageType",documentation:"

The contents of the SMS authentication message.

"},MfaConfiguration:{shape:"UserPoolMfaType",documentation:"

Can be one of the following values:

  • OFF - MFA tokens are not required and cannot be specified during user registration.

  • ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool.

  • OPTIONAL - Users have the option when registering to create an MFA token.

"},DeviceConfiguration:{shape:"DeviceConfigurationType",documentation:"

Device configuration.

"},EmailConfiguration:{shape:"EmailConfigurationType",documentation:"

Email configuration.

"},SmsConfiguration:{shape:"SmsConfigurationType",documentation:"

SMS configuration.

"},UserPoolTags:{shape:"UserPoolTagsType",documentation:'

The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool

'},AdminCreateUserConfig:{shape:"AdminCreateUserConfigType",documentation:"

The configuration for AdminCreateUser requests.

"},UserPoolAddOns:{shape:"UserPoolAddOnsType"}},documentation:"

Represents the request to update the user pool.

"},UpdateUserPoolResponse:{type:"structure",members:{},documentation:"

Represents the response from the server when you make a request to update the user pool.

"},UserContextDataType:{type:"structure",members:{encodedData:{shape:"StringType"}}},UserFilterType:{type:"string",max:256},UserImportInProgressException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the user pool has an import job running.

"}},documentation:"

This exception is thrown when you are trying to modify a user pool while a user import job is in progress for that pool.

", +exception:!0},UserImportJobIdType:{type:"string",max:55,min:1,pattern:"import-[0-9a-zA-Z-]+"},UserImportJobNameType:{type:"string",max:128,min:1,pattern:"[\\w\\s+=,.@-]+"},UserImportJobStatusType:{type:"string",enum:["Created","Pending","InProgress","Stopping","Expired","Stopped","Failed","Succeeded"]},UserImportJobType:{type:"structure",members:{JobName:{shape:"UserImportJobNameType",documentation:"

The job name for the user import job.

"},JobId:{shape:"UserImportJobIdType",documentation:"

The job ID for the user import job.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool that the users are being imported into.

"},PreSignedUrl:{shape:"PreSignedUrlType",documentation:"

The pre-signed URL to be used to upload the .csv file.

"},CreationDate:{shape:"DateType",documentation:"

The date when the user import job was created.

"},StartDate:{shape:"DateType",documentation:"

The date when the user import job was started.

"},CompletionDate:{shape:"DateType",documentation:"

The date when the user import job was completed.

"},Status:{shape:"UserImportJobStatusType",documentation:"

The status of the user import job. One of the following:

  • Created - The job was created but not started.

  • Pending - A transition state. You have started the job, but it has not begun importing users yet.

  • InProgress - The job has started, and users are being imported.

  • Stopping - You have stopped the job, but the job has not stopped importing users yet.

  • Stopped - You have stopped the job, and the job has stopped importing users.

  • Succeeded - The job has completed successfully.

  • Failed - The job has stopped due to an error.

  • Expired - You created a job, but did not start the job within 24-48 hours. All data associated with the job was deleted, and the job cannot be started.

"},CloudWatchLogsRoleArn:{shape:"ArnType",documentation:'

The role ARN for the Amazon CloudWatch Logging role for the user import job. For more information, see "Creating the CloudWatch Logs IAM Role" in the Amazon Cognito Developer Guide.

'},ImportedUsers:{shape:"LongType",documentation:"

The number of users that were successfully imported.

"},SkippedUsers:{shape:"LongType",documentation:"

The number of users that were skipped.

"},FailedUsers:{shape:"LongType",documentation:"

The number of users that could not be imported.

"},CompletionMessage:{shape:"CompletionMessageType",documentation:"

The message returned when the user import job is completed.

"}},documentation:"

The user import job type.

"},UserImportJobsListType:{type:"list",member:{shape:"UserImportJobType"},max:50,min:1},UserLambdaValidationException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when the Amazon Cognito service returns a user validation exception with the AWS Lambda service.

"}},documentation:"

This exception gets thrown when the Amazon Cognito service encounters a user validation exception with the AWS Lambda service.

",exception:!0},UserNotConfirmedException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when a user is not confirmed successfully.

"}},documentation:"

This exception is thrown when a user is not confirmed successfully.

",exception:!0},UserNotFoundException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when a user is not found.

"}},documentation:"

This exception is thrown when a user is not found.

",exception:!0},UserPoolAddOnNotEnabledException:{type:"structure",members:{message:{shape:"MessageType"}},exception:!0},UserPoolAddOnsType:{type:"structure",required:["AdvancedSecurityMode"],members:{AdvancedSecurityMode:{shape:"AdvancedSecurityModeType"}}},UserPoolClientDescription:{type:"structure",members:{ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool where you want to describe the user pool client.

"},ClientName:{shape:"ClientNameType",documentation:"

The client name from the user pool client description.

"}},documentation:"

The description of the user pool client.

"},UserPoolClientListType:{type:"list",member:{shape:"UserPoolClientDescription"}},UserPoolClientType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType",documentation:"

The user pool ID for the user pool client.

"},ClientName:{shape:"ClientNameType",documentation:"

The client name from the user pool request of the client type.

"},ClientId:{shape:"ClientIdType",documentation:"

The ID of the client associated with the user pool.

"},ClientSecret:{shape:"ClientSecretType",documentation:"

The client secret from the user pool request of the client type.

"},LastModifiedDate:{shape:"DateType",documentation:"

The last modified date from the user pool request of the client type.

"},CreationDate:{shape:"DateType",documentation:"

The creation date from the user pool request of the client type.

"},RefreshTokenValidity:{shape:"RefreshTokenValidityType",documentation:"

The time limit, in days, after which the refresh token is no longer valid and cannot be used.

"},ReadAttributes:{shape:"ClientPermissionListType",documentation:"

The Read-only attributes.

"},WriteAttributes:{shape:"ClientPermissionListType",documentation:"

The writeable attributes.

"},ExplicitAuthFlows:{shape:"ExplicitAuthFlowsListType",documentation:"

The explicit authentication flows.

"},SupportedIdentityProviders:{shape:"SupportedIdentityProvidersListType"},CallbackURLs:{shape:"CallbackURLsListType"},LogoutURLs:{shape:"LogoutURLsListType"},DefaultRedirectURI:{shape:"RedirectUrlType"},AllowedOAuthFlows:{shape:"OAuthFlowsType"},AllowedOAuthScopes:{shape:"ScopeListType"},AllowedOAuthFlowsUserPoolClient:{shape:"BooleanType",box:!0},AnalyticsConfiguration:{shape:"AnalyticsConfigurationType"}},documentation:"

A user pool of the client type.

"},UserPoolDescriptionType:{type:"structure",members:{Id:{shape:"UserPoolIdType",documentation:"

The ID in a user pool description.

"},Name:{shape:"UserPoolNameType",documentation:"

The name in a user pool description.

"},LambdaConfig:{shape:"LambdaConfigType",documentation:"

The AWS Lambda configuration information in a user pool description.

"},Status:{shape:"StatusType",documentation:"

The user pool status in a user pool description.

"},LastModifiedDate:{shape:"DateType",documentation:"

The last modified date in a user pool description.

"},CreationDate:{shape:"DateType",documentation:"

The creation date in a user pool description.

"}},documentation:"

A user pool description.

"},UserPoolIdType:{type:"string",max:55,min:1,pattern:"[\\w-]+_[0-9a-zA-Z]+"},UserPoolListType:{type:"list",member:{shape:"UserPoolDescriptionType"}},UserPoolMfaType:{type:"string",enum:["OFF","ON","OPTIONAL"]},UserPoolNameType:{type:"string",max:128,min:1,pattern:"[\\w\\s+=,.@-]+"},UserPoolPolicyType:{type:"structure",members:{PasswordPolicy:{shape:"PasswordPolicyType",documentation:"

A container with information about the user pool password policy.

"}},documentation:"

The type of policy in a user pool.

"},UserPoolTaggingException:{type:"structure",members:{message:{shape:"MessageType"}},documentation:"

This exception gets thrown when a user pool tag cannot be set or updated.

",exception:!0},UserPoolTagsType:{type:"map",key:{shape:"StringType"},value:{shape:"StringType"}},UserPoolType:{type:"structure",members:{Id:{shape:"UserPoolIdType",documentation:"

The ID of the user pool.

"},Name:{shape:"UserPoolNameType",documentation:"

The name of the user pool.

"},Policies:{shape:"UserPoolPolicyType",documentation:"

A container describing the policies associated with a user pool.

"},LambdaConfig:{shape:"LambdaConfigType",documentation:"

A container describing the AWS Lambda triggers associated with a user pool.

"},Status:{shape:"StatusType",documentation:"

The status of a user pool.

"},LastModifiedDate:{shape:"DateType",documentation:"

The last modified date of a user pool.

"},CreationDate:{shape:"DateType",documentation:"

The creation date of a user pool.

"},SchemaAttributes:{shape:"SchemaAttributesListType",documentation:"

A container with the schema attributes of a user pool.

"},AutoVerifiedAttributes:{shape:"VerifiedAttributesListType",documentation:"

Specifies the attributes that are auto-verified in a user pool.

"},AliasAttributes:{shape:"AliasAttributesListType",documentation:"

Specifies the attributes that are aliased in a user pool.

"},UsernameAttributes:{shape:"UsernameAttributesListType"},SmsVerificationMessage:{shape:"SmsVerificationMessageType",documentation:"

The contents of the SMS verification message.

"},EmailVerificationMessage:{shape:"EmailVerificationMessageType",documentation:"

The contents of the email verification message.

"},EmailVerificationSubject:{shape:"EmailVerificationSubjectType",documentation:"

The subject of the email verification message.

"},VerificationMessageTemplate:{shape:"VerificationMessageTemplateType"},SmsAuthenticationMessage:{shape:"SmsVerificationMessageType",documentation:"

The contents of the SMS authentication message.

"},MfaConfiguration:{shape:"UserPoolMfaType",documentation:"

Can be one of the following values:

  • OFF - MFA tokens are not required and cannot be specified during user registration.

  • ON - MFA tokens are required for all user registrations. You can only specify required when you are initially creating a user pool.

  • OPTIONAL - Users have the option when registering to create an MFA token.

"},DeviceConfiguration:{shape:"DeviceConfigurationType",documentation:"

The device configuration.

"},EstimatedNumberOfUsers:{shape:"IntegerType",documentation:"

A number estimating the size of the user pool.

"},EmailConfiguration:{shape:"EmailConfigurationType",documentation:"

The email configuration.

"},SmsConfiguration:{shape:"SmsConfigurationType",documentation:"

The SMS configuration.

"},UserPoolTags:{shape:"UserPoolTagsType",documentation:'

The cost allocation tags for the user pool. For more information, see Adding Cost Allocation Tags to Your User Pool

'},SmsConfigurationFailure:{shape:"StringType",documentation:"

The reason why the SMS configuration cannot send the message(s) to your users.

"},EmailConfigurationFailure:{shape:"StringType",documentation:"

The reason why the email configuration cannot send the messages to your users.

"},AdminCreateUserConfig:{shape:"AdminCreateUserConfigType",documentation:"

The configuration for AdminCreateUser requests.

"},UserPoolAddOns:{shape:"UserPoolAddOnsType"}},documentation:"

A container with information about the user pool type.

"},UserPoolUIConfigurationType:{type:"structure",members:{UserPoolId:{shape:"UserPoolIdType"},Details:{shape:"UserPoolUIDetailsType"},LastModifiedDate:{shape:"DateType"},CreationDate:{shape:"DateType"}}},UserPoolUIDetailsType:{type:"map",key:{shape:"StringType"},value:{shape:"UIDetailsMapType"}},UserStatusType:{type:"string",enum:["UNCONFIRMED","CONFIRMED","ARCHIVED","COMPROMISED","UNKNOWN","RESET_REQUIRED","FORCE_CHANGE_PASSWORD"]},UserType:{type:"structure",members:{Username:{shape:"UsernameType",documentation:"

The user name of the user you wish to describe.

"},Attributes:{shape:"AttributeListType",documentation:"

A container with information about the user type attributes.

"},UserCreateDate:{shape:"DateType",documentation:"

The creation date of the user.

"},UserLastModifiedDate:{shape:"DateType",documentation:"

The last modified date of the user.

"},Enabled:{shape:"BooleanType",documentation:"

Specifies whether the user is enabled.

"},UserStatus:{shape:"UserStatusType",documentation:"

The user status. Can be one of the following:

  • UNCONFIRMED - User has been created but not confirmed.

  • CONFIRMED - User has been confirmed.

  • ARCHIVED - User is no longer active.

  • COMPROMISED - User is disabled due to a potential security threat.

  • UNKNOWN - User status is not known.

"},MFAOptions:{shape:"MFAOptionListType",documentation:"

The MFA options for the user.

"}},documentation:"

The user type.

"},UsernameAttributeType:{type:"string",enum:["phone_number","email"]},UsernameAttributesListType:{type:"list",member:{shape:"UsernameAttributeType"}},UsernameExistsException:{type:"structure",members:{message:{shape:"MessageType",documentation:"

The message returned when Amazon Cognito throws a user name exists exception.

"}},documentation:"

This exception is thrown when Amazon Cognito encounters a user name that already exists in the user pool.

",exception:!0},UsernameType:{type:"string",max:128,min:1,pattern:"[\\p{L}\\p{M}\\p{S}\\p{N}\\p{P}]+",sensitive:!0},UsersListType:{type:"list",member:{shape:"UserType"}},VerificationMessageTemplateType:{type:"structure",members:{SmsMessage:{shape:"SmsVerificationMessageType"},EmailMessage:{shape:"EmailVerificationMessageType"},EmailSubject:{shape:"EmailVerificationSubjectType"},EmailMessageByLink:{shape:"EmailVerificationMessageByLinkType"},EmailSubjectByLink:{shape:"EmailVerificationSubjectByLinkType"},DefaultEmailOption:{shape:"DefaultEmailOptionType"}}},VerifiedAttributeType:{type:"string",enum:["phone_number","email"]},VerifiedAttributesListType:{type:"list",member:{shape:"VerifiedAttributeType"}},VerifySoftwareTokenRequest:{type:"structure",required:["UserCode"],members:{AccessToken:{shape:"TokenModelType"},Session:{shape:"SessionType"},UserCode:{shape:"SoftwareTokenMFAUserCodeType"},FriendlyDeviceName:{shape:"StringType"}}},VerifySoftwareTokenResponse:{type:"structure",members:{Status:{shape:"VerifySoftwareTokenResponseType"},Session:{shape:"SessionType"}}},VerifySoftwareTokenResponseType:{type:"string",enum:["SUCCESS","ERROR"]},VerifyUserAttributeRequest:{type:"structure",required:["AccessToken","AttributeName","Code"],members:{AccessToken:{shape:"TokenModelType",documentation:"

Represents the access token of the request to verify user attributes.

"},AttributeName:{shape:"AttributeNameType",documentation:"

The attribute name in the request to verify user attributes.

"},Code:{shape:"ConfirmationCodeType",documentation:"

The verification code in the request to verify user attributes.

"}},documentation:"

Represents the request to verify user attributes.

"},VerifyUserAttributeResponse:{type:"structure",members:{},documentation:"

A container representing the response from the server from the request to verify user attributes.

"},openIdListType:{type:"list",member:{shape:"StringType"}},openIdUrlType:{type:"string",max:150,min:1,pattern:"https://cognito-idp\\.amazonaws\\.com/[\\w\\._/-]"}},documentation:"

Using the Amazon Cognito Your User Pools API, you can create a user pool to manage directories and users. You can authenticate a user to obtain tokens related to user identity and access policies.

This API reference provides information about user pools in Amazon Cognito Your User Pools.

For more information, see the Amazon Cognito Documentation.

"}},{}],3:[function(a,b,c){b.exports={acm:{name:"ACM",cors:!0},apigateway:{name:"APIGateway",cors:!0},applicationautoscaling:{prefix:"application-autoscaling",name:"ApplicationAutoScaling",cors:!0},autoscaling:{name:"AutoScaling",cors:!0},cloudformation:{name:"CloudFormation",cors:!0},cloudfront:{name:"CloudFront",versions:["2013-05-12*","2013-11-11*","2014-05-31*","2014-10-21*","2014-11-06*","2015-04-17*","2015-07-27*","2015-09-17*","2016-01-13*","2016-01-28*","2016-08-01*","2016-08-20*"],cors:!0},cloudhsm:{name:"CloudHSM",cors:!0},cloudsearch:{name:"CloudSearch"},cloudsearchdomain:{name:"CloudSearchDomain"},cloudtrail:{name:"CloudTrail",cors:!0},cloudwatch:{prefix:"monitoring",name:"CloudWatch",cors:!0},cloudwatchevents:{prefix:"events",name:"CloudWatchEvents",versions:["2014-02-03*"],cors:!0},cloudwatchlogs:{prefix:"logs",name:"CloudWatchLogs",cors:!0},codecommit:{name:"CodeCommit",cors:!0},codedeploy:{name:"CodeDeploy",cors:!0},codepipeline:{name:"CodePipeline",cors:!0},cognitoidentity:{prefix:"cognito-identity",name:"CognitoIdentity",cors:!0},cognitoidentityserviceprovider:{prefix:"cognito-idp",name:"CognitoIdentityServiceProvider",cors:!0},cognitosync:{prefix:"cognito-sync",name:"CognitoSync",cors:!0},configservice:{prefix:"config",name:"ConfigService",cors:!0},datapipeline:{name:"DataPipeline"},devicefarm:{name:"DeviceFarm",cors:!0},directconnect:{name:"DirectConnect",cors:!0},directoryservice:{prefix:"ds",name:"DirectoryService"},discovery:{name:"Discovery"},dms:{name:"DMS"},dynamodb:{name:"DynamoDB",cors:!0},dynamodbstreams:{prefix:"streams.dynamodb",name:"DynamoDBStreams",cors:!0},ec2:{name:"EC2",versions:["2013-06-15*","2013-10-15*","2014-02-01*","2014-05-01*","2014-06-15*","2014-09-01*","2014-10-01*","2015-03-01*","2015-04-15*","2015-10-01*"],cors:!0},ecr:{name:"ECR",cors:!0},ecs:{name:"ECS",cors:!0},efs:{prefix:"elasticfilesystem",name:"EFS"},elasticache:{name:"ElastiCache",versions:["2012-11-15*","2014-03-24*","2014-07-15*","2014-09-30*"],cors:!0},elasticbeanstalk:{name:"ElasticBeanstalk",cors:!0},elb:{prefix:"elasticloadbalancing",name:"ELB",cors:!0},elbv2:{prefix:"elasticloadbalancingv2",name:"ELBv2",cors:!0},emr:{prefix:"elasticmapreduce",name:"EMR",cors:!0},es:{name:"ES"},elastictranscoder:{name:"ElasticTranscoder",cors:!0},firehose:{name:"Firehose",cors:!0},gamelift:{name:"GameLift",cors:!0},glacier:{name:"Glacier"},iam:{name:"IAM"},importexport:{name:"ImportExport"},inspector:{name:"Inspector",versions:["2015-08-18*"],cors:!0},iot:{name:"Iot",cors:!0},iotdata:{prefix:"iot-data",name:"IotData",cors:!0},kinesis:{name:"Kinesis",cors:!0},kinesisanalytics:{name:"KinesisAnalytics"},kms:{name:"KMS",cors:!0},lambda:{name:"Lambda",cors:!0},machinelearning:{name:"MachineLearning",cors:!0},marketplacecommerceanalytics:{name:"MarketplaceCommerceAnalytics",cors:!0},marketplacemetering:{prefix:"meteringmarketplace",name:"MarketplaceMetering"},mobileanalytics:{name:"MobileAnalytics",cors:!0},opsworks:{name:"OpsWorks",cors:!0},rds:{name:"RDS",versions:["2014-09-01*"],cors:!0},redshift:{name:"Redshift",cors:!0},route53:{name:"Route53",cors:!0},route53domains:{name:"Route53Domains",cors:!0},s3:{name:"S3",dualstackAvailable:!0,cors:!0},servicecatalog:{name:"ServiceCatalog",cors:!0},ses:{prefix:"email",name:"SES",cors:!0},simpledb:{prefix:"sdb",name:"SimpleDB"},snowball:{name:"Snowball"},sns:{name:"SNS",cors:!0},sqs:{name:"SQS",cors:!0},ssm:{name:"SSM",cors:!0},storagegateway:{name:"StorageGateway",cors:!0},sts:{name:"STS",cors:!0},support:{name:"Support"},swf:{name:"SWF"},waf:{name:"WAF",cors:!0},workspaces:{name:"WorkSpaces"}}},{}],4:[function(a,b,c){b.exports={version:"2.0",metadata:{apiVersion:"2011-06-15",endpointPrefix:"sts",globalEndpoint:"sts.amazonaws.com",protocol:"query",serviceAbbreviation:"AWS STS",serviceFullName:"AWS Security Token Service",signatureVersion:"v4",xmlNamespace:"https://sts.amazonaws.com/doc/2011-06-15/"},operations:{AssumeRole:{input:{type:"structure",required:["RoleArn","RoleSessionName"],members:{RoleArn:{},RoleSessionName:{},Policy:{},DurationSeconds:{type:"integer"},ExternalId:{},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"AssumeRoleResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"}}}},AssumeRoleWithSAML:{input:{type:"structure",required:["RoleArn","PrincipalArn","SAMLAssertion"],members:{RoleArn:{},PrincipalArn:{},SAMLAssertion:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithSAMLResult",type:"structure",members:{Credentials:{shape:"Sa"},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Subject:{},SubjectType:{},Issuer:{},Audience:{},NameQualifier:{}}}},AssumeRoleWithWebIdentity:{input:{type:"structure",required:["RoleArn","RoleSessionName","WebIdentityToken"],members:{RoleArn:{},RoleSessionName:{},WebIdentityToken:{},ProviderId:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"AssumeRoleWithWebIdentityResult",type:"structure",members:{Credentials:{shape:"Sa"},SubjectFromWebIdentityToken:{},AssumedRoleUser:{shape:"Sf"},PackedPolicySize:{type:"integer"},Provider:{},Audience:{}}}},DecodeAuthorizationMessage:{input:{type:"structure",required:["EncodedMessage"],members:{EncodedMessage:{}}},output:{resultWrapper:"DecodeAuthorizationMessageResult",type:"structure",members:{DecodedMessage:{}}}},GetCallerIdentity:{input:{type:"structure",members:{}},output:{resultWrapper:"GetCallerIdentityResult",type:"structure",members:{UserId:{},Account:{},Arn:{}}}},GetFederationToken:{input:{type:"structure",required:["Name"],members:{Name:{},Policy:{},DurationSeconds:{type:"integer"}}},output:{resultWrapper:"GetFederationTokenResult",type:"structure",members:{Credentials:{shape:"Sa"},FederatedUser:{type:"structure",required:["FederatedUserId","Arn"],members:{FederatedUserId:{},Arn:{}}},PackedPolicySize:{type:"integer"}}}},GetSessionToken:{input:{type:"structure",members:{DurationSeconds:{type:"integer"},SerialNumber:{},TokenCode:{}}},output:{resultWrapper:"GetSessionTokenResult",type:"structure",members:{Credentials:{shape:"Sa"}}}}},shapes:{Sa:{type:"structure",required:["AccessKeyId","SecretAccessKey","SessionToken","Expiration"],members:{AccessKeyId:{},SecretAccessKey:{},SessionToken:{},Expiration:{type:"timestamp"}}},Sf:{type:"structure",required:["AssumedRoleId","Arn"],members:{AssumedRoleId:{},Arn:{}}}}}},{}],5:[function(a,b,c){a("../lib/node_loader");var d=a("../lib/core"),e=a("../lib/service"),f=a("../lib/api_loader");f.services.cognitoidentity={},d.CognitoIdentity=e.defineService("cognitoidentity",["2014-06-30"]),a("../lib/services/cognitoidentity"),Object.defineProperty(f.services.cognitoidentity,"2014-06-30",{get:function(){var b=a("../apis/cognito-identity-2014-06-30.min.json");return b},enumerable:!0,configurable:!0}),b.exports=d.CognitoIdentity},{"../apis/cognito-identity-2014-06-30.min.json":1,"../lib/api_loader":7,"../lib/core":11,"../lib/node_loader":9,"../lib/service":42,"../lib/services/cognitoidentity":43}],6:[function(a,b,c){a("../lib/node_loader");var d=a("../lib/core"),e=a("../lib/service"),f=a("../lib/api_loader");f.services.sts={},d.STS=e.defineService("sts",["2011-06-15"]),a("../lib/services/sts"),Object.defineProperty(f.services.sts,"2011-06-15",{get:function(){var b=a("../apis/sts-2011-06-15.min.json");return b},enumerable:!0,configurable:!0}),b.exports=d.STS},{"../apis/sts-2011-06-15.min.json":4,"../lib/api_loader":7,"../lib/core":11,"../lib/node_loader":9,"../lib/service":42,"../lib/services/sts":44}],7:[function(a,b,c){var d=a("./core");d.apiLoader=function(a,b){if(!d.apiLoader.services.hasOwnProperty(a))throw new Error("InvalidService: Failed to load api for "+a);return d.apiLoader.services[a][b]},d.apiLoader.services={},b.exports=d.apiLoader},{"./core":11}],8:[function(a,b,c){a("./browser_loader");var d=a("./core");"undefined"!=typeof window&&(window.AWSCognito=d),"undefined"!=typeof b&&(b.exports=d),"undefined"!=typeof self&&(self.AWSCognito=d),Object.prototype.hasOwnProperty.call(d,"CognitoIdentityServiceProvider")||(d.apiLoader.services.cognitoidentityserviceprovider={},d.CognitoIdentityServiceProvider=d.Service.defineService("cognitoidentityserviceprovider",["2016-04-18"])),d.apiLoader.services.cognitoidentityserviceprovider["2016-04-18"]=a("../apis/cognito-idp-2016-04-18.min"),Object.prototype.hasOwnProperty.call(d,"STS")||(d.apiLoader.services.sts={},d.STS=d.Service.defineService("sts",["2011-06-15"]),a("./services/sts")),d.apiLoader.services.sts["2011-06-15"]=a("../apis/sts-2011-06-15.min")},{"../apis/cognito-idp-2016-04-18.min":2,"../apis/sts-2011-06-15.min":4,"./browser_loader":9,"./core":11,"./services/sts":44}],9:[function(a,b,c){(function(b){var c=a("./util");c.crypto.lib=a("crypto-browserify"),c.Buffer=a("buffer/").Buffer,c.url=a("url/"),c.querystring=a("querystring/");var d=a("./core");a("./api_loader"),d.XML.Parser=a("./xml/browser_parser"),a("./http/xhr"),"undefined"==typeof b&&(b={browser:!0})}).call(this,a("FWaASH"))},{"./api_loader":7,"./core":11,"./http/xhr":20,"./util":53,"./xml/browser_parser":54,FWaASH:62,"buffer/":69,"crypto-browserify":74,"querystring/":82,"url/":83}],10:[function(a,b,c){var d=a("./core");a("./credentials"),a("./credentials/credential_provider_chain"),d.Config=d.util.inherit({constructor:function(a){void 0===a&&(a={}),a=this.extractCredentials(a),d.util.each.call(this,this.keys,function(b,c){this.set(b,a[b],c)})},getCredentials:function(a){function b(b){a(b,b?null:g.credentials)}function c(a,b){return new d.util.error(b||new Error,{code:"CredentialsError",message:a})}function e(){g.credentials.get(function(a){if(a){var d="Could not load credentials from "+g.credentials.constructor.name;a=c(d,a)}b(a)})}function f(){var a=null;g.credentials.accessKeyId&&g.credentials.secretAccessKey||(a=c("Missing credentials")),b(a)}var g=this;g.credentials?"function"==typeof g.credentials.get?e():f():g.credentialProvider?g.credentialProvider.resolve(function(a,d){a&&(a=c("Could not load credentials from any providers",a)),g.credentials=d,b(a)}):b(c("No credentials to load"))},update:function(a,b){b=b||!1,a=this.extractCredentials(a),d.util.each.call(this,a,function(a,c){(b||Object.prototype.hasOwnProperty.call(this.keys,a)||d.Service.hasService(a))&&this.set(a,c)})},loadFromPath:function(a){this.clear();var b=JSON.parse(d.util.readFileSync(a)),c=new d.FileSystemCredentials(a),e=new d.CredentialProviderChain;return e.providers.unshift(c),e.resolve(function(a,c){if(a)throw a;b.credentials=c}),this.constructor(b),this},clear:function(){d.util.each.call(this,this.keys,function(a){delete this[a]}),this.set("credentials",void 0),this.set("credentialProvider",void 0)},set:function(a,b,c){void 0===b?(void 0===c&&(c=this.keys[a]),"function"==typeof c?this[a]=c.call(this):this[a]=c):"httpOptions"===a&&this[a]?this[a]=d.util.merge(this[a],b):this[a]=b},keys:{credentials:null,credentialProvider:null,region:null,logger:null,apiVersions:{},apiVersion:null,endpoint:void 0,httpOptions:{timeout:12e4},maxRetries:void 0,maxRedirects:10,paramValidation:!0,sslEnabled:!0,s3ForcePathStyle:!1,s3BucketEndpoint:!1,s3DisableBodySigning:!0,computeChecksums:!0,convertResponseTypes:!0,correctClockSkew:!1,customUserAgent:null,dynamoDbCrc32:!0,systemClockOffset:0,signatureVersion:null,signatureCache:!0,retryDelayOptions:{base:100},useAccelerateEndpoint:!1},extractCredentials:function(a){return a.accessKeyId&&a.secretAccessKey&&(a=d.util.copy(a),a.credentials=new d.Credentials(a)),a},setPromisesDependency:function(a){d.util.addPromisesToRequests(d.Request,a)}}),d.config=new d.Config},{"./core":11,"./credentials":12,"./credentials/credential_provider_chain":14}],11:[function(a,b,c){var d={util:a("./util")},e={};e.toString(),b.exports=d,d.util.update(d,{VERSION:"2.6.4",Signers:{},Protocol:{Json:a("./protocol/json"),Query:a("./protocol/query"),Rest:a("./protocol/rest"),RestJson:a("./protocol/rest_json"),RestXml:a("./protocol/rest_xml")},XML:{Builder:a("./xml/builder"),Parser:null},JSON:{Builder:a("./json/builder"),Parser:a("./json/parser")},Model:{Api:a("./model/api"),Operation:a("./model/operation"),Shape:a("./model/shape"),Paginator:a("./model/paginator"),ResourceWaiter:a("./model/resource_waiter")},util:a("./util"),apiLoader:function(){throw new Error("No API loader set")}}),a("./service"),a("./credentials"),a("./credentials/credential_provider_chain"),a("./credentials/temporary_credentials"),a("./credentials/web_identity_credentials"),a("./credentials/cognito_identity_credentials"),a("./credentials/saml_credentials"),a("./config"),a("./http"),a("./sequential_executor"),a("./event_listeners"),a("./request"),a("./response"),a("./resource_waiter"),a("./signers/request_signer"),a("./param_validator"),d.events=new d.SequentialExecutor},{"./config":10,"./credentials":12,"./credentials/cognito_identity_credentials":13,"./credentials/credential_provider_chain":14,"./credentials/saml_credentials":15,"./credentials/temporary_credentials":16,"./credentials/web_identity_credentials":17,"./event_listeners":18,"./http":19,"./json/builder":21,"./json/parser":22,"./model/api":23,"./model/operation":25,"./model/paginator":26,"./model/resource_waiter":27,"./model/shape":28,"./param_validator":29,"./protocol/json":30,"./protocol/query":31,"./protocol/rest":32,"./protocol/rest_json":33,"./protocol/rest_xml":34,"./request":38,"./resource_waiter":39,"./response":40,"./sequential_executor":41,"./service":42,"./signers/request_signer":46,"./util":53,"./xml/builder":55}],12:[function(a,b,c){var d=a("./core");d.Credentials=d.util.inherit({constructor:function(){if(d.util.hideProperties(this,["secretAccessKey"]),this.expired=!1,this.expireTime=null,1===arguments.length&&"object"==typeof arguments[0]){var a=arguments[0].credentials||arguments[0];this.accessKeyId=a.accessKeyId,this.secretAccessKey=a.secretAccessKey,this.sessionToken=a.sessionToken}else this.accessKeyId=arguments[0],this.secretAccessKey=arguments[1],this.sessionToken=arguments[2]},expiryWindow:15,needsRefresh:function(){var a=d.util.date.getDate().getTime(),b=new Date(a+1e3*this.expiryWindow);return!!(this.expireTime&&b>this.expireTime)||(this.expired||!this.accessKeyId||!this.secretAccessKey)},get:function(a){var b=this;this.needsRefresh()?this.refresh(function(c){c||(b.expired=!1),a&&a(c)}):a&&a()},refresh:function(a){this.expired=!1,a()}})},{"./core":11}],13:[function(a,b,c){var d=a("../core"),e=a("../../clients/cognitoidentity"),f=a("../../clients/sts");d.CognitoIdentityCredentials=d.util.inherit(d.Credentials,{localStorageKey:{id:"aws.cognito.identity-id.",providers:"aws.cognito.identity-providers."},constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a,this.data=null,this.identityId=null,this.loadCachedId()},refresh:function(a){var b=this;b.createClients(),b.data=null,b.identityId=null,b.getId(function(c){c?(b.clearIdOnNotAuthorized(c),a(c)):b.params.RoleArn?b.getCredentialsFromSTS(a):b.getCredentialsForIdentity(a)})},clearCachedId:function(){this.identityId=null,delete this.params.IdentityId;var a=this.params.IdentityPoolId,b=this.params.LoginId||"";delete this.storage[this.localStorageKey.id+a+b],delete this.storage[this.localStorageKey.providers+a+b]},clearIdOnNotAuthorized:function(a){var b=this;"NotAuthorizedException"==a.code&&b.clearCachedId()},getId:function(a){var b=this;return"string"==typeof b.params.IdentityId?a(null,b.params.IdentityId):void b.cognito.getId(function(c,d){!c&&d.IdentityId?(b.params.IdentityId=d.IdentityId,a(null,d.IdentityId)):a(c)})},loadCredentials:function(a,b){a&&b&&(b.expired=!1,b.accessKeyId=a.Credentials.AccessKeyId,b.secretAccessKey=a.Credentials.SecretKey,b.sessionToken=a.Credentials.SessionToken,b.expireTime=a.Credentials.Expiration)},getCredentialsForIdentity:function(a){var b=this;b.cognito.getCredentialsForIdentity(function(c,d){c?b.clearIdOnNotAuthorized(c):(b.cacheId(d),b.data=d,b.loadCredentials(b.data,b)),a(c)})},getCredentialsFromSTS:function(a){var b=this;b.cognito.getOpenIdToken(function(c,d){c?(b.clearIdOnNotAuthorized(c),a(c)):(b.cacheId(d),b.params.WebIdentityToken=d.Token,b.webIdentityCredentials.refresh(function(c){c||(b.data=b.webIdentityCredentials.data,b.sts.credentialsFrom(b.data,b)),a(c)}))})},loadCachedId:function(){var a=this;if(d.util.isBrowser()&&!a.params.IdentityId){ +var b=a.getStorage("id");if(b&&a.params.Logins){var c=Object.keys(a.params.Logins),e=(a.getStorage("providers")||"").split(","),f=e.filter(function(a){return c.indexOf(a)!==-1});0!==f.length&&(a.params.IdentityId=b)}else b&&(a.params.IdentityId=b)}},createClients:function(){this.webIdentityCredentials=this.webIdentityCredentials||new d.WebIdentityCredentials(this.params),this.cognito=this.cognito||new e({params:this.params}),this.sts=this.sts||new f},cacheId:function(a){this.identityId=a.IdentityId,this.params.IdentityId=this.identityId,d.util.isBrowser()&&(this.setStorage("id",a.IdentityId),this.params.Logins&&this.setStorage("providers",Object.keys(this.params.Logins).join(",")))},getStorage:function(a){return this.storage[this.localStorageKey[a]+this.params.IdentityPoolId+(this.params.LoginId||"")]},setStorage:function(a,b){try{this.storage[this.localStorageKey[a]+this.params.IdentityPoolId+(this.params.LoginId||"")]=b}catch(a){}},storage:function(){try{return window.localStorage.setItem("aws.test-storage","foobar"),window.localStorage.removeItem("aws.test-storage"),d.util.isBrowser()?window.localStorage:{}}catch(a){return{}}}()})},{"../../clients/cognitoidentity":5,"../../clients/sts":6,"../core":11}],14:[function(a,b,c){var d=a("../core");d.CredentialProviderChain=d.util.inherit(d.Credentials,{constructor:function(a){a?this.providers=a:this.providers=d.CredentialProviderChain.defaultProviders.slice(0)},resolve:function(a){function b(e,f){if(!e&&f||c===d.length)return void a(e,f);var g=d[c++];f="function"==typeof g?g.call():g,f.get?f.get(function(a){b(a,a?null:f)}):b(null,f)}if(0===this.providers.length)return a(new Error("No providers")),this;var c=0,d=this.providers.slice(0);return b(),this}}),d.CredentialProviderChain.defaultProviders=[]},{"../core":11}],15:[function(a,b,c){var d=a("../core"),e=a("../../clients/sts");d.SAMLCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.assumeRoleWithSAML(function(c,d){c||b.service.credentialsFrom(d,b),a(c)})},createClients:function(){this.service=this.service||new e({params:this.params})}})},{"../../clients/sts":6,"../core":11}],16:[function(a,b,c){var d=a("../core"),e=a("../../clients/sts");d.TemporaryCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.loadMasterCredentials(),this.expired=!0,this.params=a||{},this.params.RoleArn&&(this.params.RoleSessionName=this.params.RoleSessionName||"temporary-credentials")},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.config.credentials=b.masterCredentials;var c=b.params.RoleArn?b.service.assumeRole:b.service.getSessionToken;c.call(b.service,function(c,d){c||b.service.credentialsFrom(d,b),a(c)})},loadMasterCredentials:function(){for(this.masterCredentials=d.config.credentials;this.masterCredentials.masterCredentials;)this.masterCredentials=this.masterCredentials.masterCredentials},createClients:function(){this.service=this.service||new e({params:this.params})}})},{"../../clients/sts":6,"../core":11}],17:[function(a,b,c){var d=a("../core"),e=a("../../clients/sts");d.WebIdentityCredentials=d.util.inherit(d.Credentials,{constructor:function(a){d.Credentials.call(this),this.expired=!0,this.params=a,this.params.RoleSessionName=this.params.RoleSessionName||"web-identity",this.data=null},refresh:function(a){var b=this;b.createClients(),a||(a=function(a){if(a)throw a}),b.service.assumeRoleWithWebIdentity(function(c,d){b.data=null,c||(b.data=d,b.service.credentialsFrom(d,b)),a(c)})},createClients:function(){this.service=this.service||new e({params:this.params})}})},{"../../clients/sts":6,"../core":11}],18:[function(a,b,c){var d=a("./core"),e=a("./sequential_executor");d.EventListeners={Core:{}},d.EventListeners={Core:(new e).addNamedListeners(function(a,b){b("VALIDATE_CREDENTIALS","validate",function(a,b){return a.service.api.signatureVersion?void a.service.config.getCredentials(function(c){c&&(a.response.error=d.util.error(c,{code:"CredentialsError",message:"Missing credentials in config"})),b()}):b()}),a("VALIDATE_REGION","validate",function(a){a.service.config.region||a.service.isGlobalEndpoint||(a.response.error=d.util.error(new Error,{code:"ConfigError",message:"Missing region in config"}))}),a("VALIDATE_PARAMETERS","validate",function(a){var b=a.service.api.operations[a.operation].input,c=a.service.config.paramValidation;new d.ParamValidator(c).validate(b,a.params)}),b("COMPUTE_SHA256","afterBuild",function(a,b){if(a.haltHandlersOnError(),!a.service.api.signatureVersion)return b();if(a.service.getSignerClass(a)===d.Signers.V4){var c=a.httpRequest.body||"";d.util.computeSha256(c,function(c,d){c?b(c):(a.httpRequest.headers["X-Amz-Content-Sha256"]=d,b())})}else b()}),a("SET_CONTENT_LENGTH","afterBuild",function(a){if(void 0===a.httpRequest.headers["Content-Length"]){var b=d.util.string.byteLength(a.httpRequest.body);a.httpRequest.headers["Content-Length"]=b}}),a("SET_HTTP_HOST","afterBuild",function(a){a.httpRequest.headers.Host=a.httpRequest.endpoint.host}),a("RESTART","restart",function(){var a=this.response.error;a&&a.retryable&&(this.httpRequest=new d.HttpRequest(this.service.endpoint,this.service.region),this.response.retryCount=600?this.emit("sign",[this],function(a){a?b(a):g()}):g()}),a("HTTP_HEADERS","httpHeaders",function(a,b,c){c.httpResponse.statusCode=a,c.httpResponse.headers=b,c.httpResponse.body=new d.util.Buffer(""),c.httpResponse.buffers=[],c.httpResponse.numBytes=0;var e=b.date||b.Date;if(e){var f=Date.parse(e);c.request.service.config.correctClockSkew&&d.util.isClockSkewed(f)&&d.util.applyClockOffset(f)}}),a("HTTP_DATA","httpData",function(a,b){if(a){if(d.util.isNode()){b.httpResponse.numBytes+=a.length;var c=b.httpResponse.headers["content-length"],e={loaded:b.httpResponse.numBytes,total:c};b.request.emit("httpDownloadProgress",[e,b])}b.httpResponse.buffers.push(new d.util.Buffer(a))}}),a("HTTP_DONE","httpDone",function(a){if(a.httpResponse.buffers&&a.httpResponse.buffers.length>0){var b=d.util.buffer.concat(a.httpResponse.buffers);a.httpResponse.body=b}delete a.httpResponse.numBytes,delete a.httpResponse.buffers}),a("FINALIZE_ERROR","retry",function(a){a.httpResponse.statusCode&&(a.error.statusCode=a.httpResponse.statusCode,void 0===a.error.retryable&&(a.error.retryable=this.service.retryableError(a.error,this)))}),a("INVALIDATE_CREDENTIALS","retry",function(a){if(a.error)switch(a.error.code){case"RequestExpired":case"ExpiredTokenException":case"ExpiredToken":a.error.retryable=!0,a.request.service.config.credentials.expired=!0}}),a("EXPIRED_SIGNATURE","retry",function(a){var b=a.error;b&&"string"==typeof b.code&&"string"==typeof b.message&&b.code.match(/Signature/)&&b.message.match(/expired/)&&(a.error.retryable=!0)}),a("CLOCK_SKEWED","retry",function(a){a.error&&this.service.clockSkewError(a.error)&&this.service.config.correctClockSkew&&d.config.isClockSkewed&&(a.error.retryable=!0)}),a("REDIRECT","retry",function(a){a.error&&a.error.statusCode>=300&&a.error.statusCode<400&&a.httpResponse.headers.location&&(this.httpRequest.endpoint=new d.Endpoint(a.httpResponse.headers.location),this.httpRequest.headers.Host=this.httpRequest.endpoint.host,a.error.redirect=!0,a.error.retryable=!0)}),a("RETRY_CHECK","retry",function(a){a.error&&(a.error.redirect&&a.redirectCount=this.HEADERS_RECEIVED&&!l){try{k.responseType="arraybuffer"}catch(a){}i.statusCode=k.status,i.headers=g.parseHeaders(k.getAllResponseHeaders()),i.emit("headers",i.statusCode,i.headers),l=!0}this.readyState===this.DONE&&g.finishRequest(k,i)},!1),k.upload.addEventListener("progress",function(a){i.emit("sendProgress",a)}),k.addEventListener("progress",function(a){i.emit("receiveProgress",a)},!1),k.addEventListener("timeout",function(){f(d.util.error(new Error("Timeout"),{code:"TimeoutError"}))},!1),k.addEventListener("error",function(){f(d.util.error(new Error("Network Failure"),{code:"NetworkingError"}))},!1),c(i),k.open(a.method,j,b.xhrAsync!==!1),d.util.each(a.headers,function(a,b){"Content-Length"!==a&&"User-Agent"!==a&&"Host"!==a&&k.setRequestHeader(a,b)}),b.timeout&&b.xhrAsync!==!1&&(k.timeout=b.timeout),b.xhrWithCredentials&&(k.withCredentials=!0);try{k.send(a.body)}catch(b){if(!a.body||"object"!=typeof a.body.buffer)throw b;k.send(a.body.buffer)}return i},parseHeaders:function(a){var b={};return d.util.arrayEach(a.split(/\r?\n/),function(a){var c=a.split(":",1)[0],d=a.substring(c.length+2);c.length>0&&(b[c.toLowerCase()]=d)}),b},finishRequest:function(a,b){var c;if("arraybuffer"===a.responseType&&a.response){var e=a.response;c=new d.util.Buffer(e.byteLength);for(var f=new Uint8Array(e),g=0;g1){var e=this.errors.join("\n* ");throw e="There were "+this.errors.length+" validation errors:\n* "+e,d.util.error(new Error(e),{code:"MultipleValidationErrors",errors:this.errors})}if(1===this.errors.length)throw this.errors[0];return!0},fail:function(a,b){this.errors.push(d.util.error(new Error(b),{code:a}))},validateStructure:function(a,b,c){this.validateType(b,c,["object"],"structure");for(var d,e=0;a.required&&e= "+a.min+", but found "+b+" for "+c),this.validation.max&&void 0!==a.max&&b>a.max&&this.fail("MaxRangeError","Expected "+d+" <= "+a.max+", but found "+b+" for "+c)},validateEnum:function(a,b,c){this.validation.enum&&void 0!==a.enum&&a.enum.indexOf(b)===-1&&this.fail("EnumError","Found string value of "+b+", but expected "+a.enum.join("|")+" for "+c)},validateType:function(a,b,c,e){if(null===a||void 0===a)return!1;for(var f=!1,g=0;g0){var d=JSON.parse(c.body.toString());(d.__type||d.code)&&(b.code=(d.__type||d.code).split("#").pop()),"RequestEntityTooLarge"===b.code?b.message="Request body must be less than 1 MB":b.message=d.message||d.Message||null}else b.statusCode=c.statusCode,b.message=c.statusCode.toString();a.error=g.error(new Error,b)}function f(a){var b=a.httpResponse.body.toString()||"{}";if(a.request.service.config.convertResponseTypes===!1)a.data=JSON.parse(b);else{var c=a.request.service.api.operations[a.request.operation],d=c.output||{},e=new i;a.data=e.parse(b,d)}}var g=a("../util"),h=a("../json/builder"),i=a("../json/parser");b.exports={buildRequest:d,extractError:e,extractData:f}},{"../json/builder":21,"../json/parser":22,"../util":53}],31:[function(a,b,c){function d(a){var b=a.service.api.operations[a.operation],c=a.httpRequest;c.headers["Content-Type"]="application/x-www-form-urlencoded; charset=utf-8",c.params={Version:a.service.api.apiVersion,Action:b.name};var d=new i;d.serialize(a.params,b.input,function(a,b){c.params[a]=b}),c.body=h.queryParamsToString(c.params)}function e(a){var b,c=a.httpResponse.body.toString();b=c.match("=0?"&":"?";var g=[];j.arrayEach(Object.keys(e).sort(),function(a){Array.isArray(e[a])||(e[a]=[e[a]]);for(var b=0;b0){b=new h.XML.Parser;var l=b.parse(d.toString(),f);i.update(a.data,l)}}var h=a("../core"),i=a("../util"),j=a("./rest");b.exports={buildRequest:e,extractError:f,extractData:g}},{"../core":11,"../util":53,"./rest":32}],35:[function(a,b,c){function d(){}function e(a){return a.isQueryName||"ec2"!==a.api.protocol?a.name:a.name[0].toUpperCase()+a.name.substr(1)}function f(a,b,c,d){j.each(c.members,function(c,f){var g=b[c];if(null!==g&&void 0!==g){var h=e(f);h=a?a+"."+h:h,i(h,g,f,d)}})}function g(a,b,c,d){var e=1;j.each(b,function(b,f){var g=c.flattened?".":".entry.",h=g+e++ +".",j=h+(c.key.name||"key"),k=h+(c.value.name||"value");i(a+j,b,c.key,d),i(a+k,f,c.value,d)})}function h(a,b,c,d){var f=c.member||{};return 0===b.length?void d.call(this,a,null):void j.arrayEach(b,function(b,g){var h="."+(g+1);if("ec2"===c.api.protocol)h+="";else if(c.flattened){if(f.name){var j=a.split(".");j.pop(),j.push(e(f)),a=j.join(".")}}else h=".member"+h;i(a+h,b,f,d)})}function i(a,b,c,d){null!==b&&void 0!==b&&("structure"===c.type?f(a,b,c,d):"list"===c.type?h(a,b,c,d):"map"===c.type?g(a,b,c,d):d(a,c.toWireFormat(b).toString()))}var j=a("../util");d.prototype.serialize=function(a,b,c){f("",a,b,c)},b.exports=d},{"../util":53}],36:[function(a,b,c){function d(a){if(!a)return null;var b=a.split("-");return b.length<3?null:b.slice(0,b.length-2).join("-")+"-*"}function e(a){var b=a.config.region,c=d(b),e=a.api.endpointPrefix;return[[b,e],[c,e],[b,"*"],[c,"*"],["*",e],["*","*"]].map(function(a){return a[0]&&a[1]?a.join("/"):null})}function f(a,b){h.each(b,function(b,c){"globalEndpoint"!==b&&(void 0!==a.config[b]&&null!==a.config[b]||(a.config[b]=c))})}function g(a){for(var b=e(a),c=0;c=0){i=!0;var j=0}var k=function(){i&&j!==h?e.emit("error",d.util.error(new Error("Stream content length mismatch. Received "+j+" of "+h+" bytes."),{code:"StreamContentLengthMismatch"})):2===d.HttpClient.streamsApiVersion?e.end():e.emit("end")},l=g.httpResponse.createUnbufferedStream();if(2===d.HttpClient.streamsApiVersion)if(i){var m=new a.PassThrough;m._write=function(b){return b&&b.length&&(j+=b.length),a.PassThrough.prototype._write.apply(this,arguments)},m.on("end",k),l.pipe(m).pipe(e,{end:!1})}else l.pipe(e);else i&&l.on("data",function(a){a&&a.length&&(j+=a.length)}),l.on("data",function(a){e.emit("data",a)}),l.on("end",k);l.on("error",function(a){i=!1,e.emit("error",a)})}}),this.on("error",function(a){e.emit("error",a)}),e},emitEvent:function(a,b,c){"function"==typeof b&&(c=b,b=null),c||(c=function(){}),b||(b=this.eventParameters(a,this.response));var e=d.SequentialExecutor.prototype.emit;e.call(this,a,b,function(a){a&&(this.response.error=a),c.call(this,a)})},eventParameters:function(a){switch(a){case"restart":case"validate":case"sign":case"build":case"afterValidate":case"afterBuild":return[this];case"error":return[this.response.error,this.response];default:return[this.response]}},presign:function(a,b){return b||"function"!=typeof a||(b=a,a=null),(new d.Signers.Presign).sign(this.toGet(),a,b)},isPresigned:function(){return Object.prototype.hasOwnProperty.call(this.httpRequest.headers,"presigned-expires")},toUnauthenticated:function(){return this.removeListener("validate",d.EventListeners.Core.VALIDATE_CREDENTIALS),this.removeListener("sign",d.EventListeners.Core.SIGN),this},toGet:function(){return"query"!==this.service.api.protocol&&"ec2"!==this.service.api.protocol||(this.removeListener("build",this.buildAsGet),this.addListener("build",this.buildAsGet)),this},buildAsGet:function(a){a.httpRequest.method="GET",a.httpRequest.path=a.service.endpoint.path+"?"+a.httpRequest.body,a.httpRequest.body="",delete a.httpRequest.headers["Content-Length"],delete a.httpRequest.headers["Content-Type"]},haltHandlersOnError:function(){this._haltHandlersOnError=!0}}),d.util.addPromisesToRequests(d.Request),d.util.mixin(d.Request,d.SequentialExecutor)}).call(this,a("FWaASH"))},{"./core":11,"./state_machine":52,FWaASH:62,jmespath:79}],39:[function(a,b,c){function d(a){var b=a.request._waiter,c=b.config.acceptors,d=!1,e="retry";c.forEach(function(c){if(!d){var f=b.matchers[c.matcher];f&&f(a,c.expected,c.argument)&&(d=!0,e=c.state)}}),!d&&a.error&&(e="failure"),"success"===e?b.setSuccess(a):b.setError(a,"retry"===e)}var e=a("./core"),f=e.util.inherit,g=a("jmespath");e.ResourceWaiter=f({constructor:function(a,b){this.service=a,this.state=b,this.loadWaiterConfig(this.state)},service:null,state:null,config:null,matchers:{path:function(a,b,c){var d=g.search(a.data,c);return g.strictDeepEqual(d,b)},pathAll:function(a,b,c){var d=g.search(a.data,c);Array.isArray(d)||(d=[d]);var e=d.length;if(!e)return!1;for(var f=0;f-1&&c.splice(e,1)}return this},removeAllListeners:function(a){return a?delete this._events[a]:this._events={},this},emit:function(a,b,c){c||(c=function(){});var d=this.listeners(a),e=d.length;return this.callListeners(d,b,c),e>0},callListeners:function(a,b,c,e){function f(e){return e&&(h=d.util.error(h||new Error,e),g._haltHandlersOnError)?c.call(g,h):void g.callListeners(a,b,c,h)}for(var g=this,h=e||null;a.length>0;){var i=a.shift();if(i._isAsync)return void i.apply(g,b.concat([f]));try{i.apply(g,b)}catch(a){h=d.util.error(h||new Error,a)}if(h&&g._haltHandlersOnError)return void c.call(g,h)}c.call(g,h)},addListeners:function(a){var b=this;return a._events&&(a=a._events),d.util.each(a,function(a,c){"function"==typeof c&&(c=[c]),d.util.arrayEach(c,function(c){b.on(a,c)})}),b},addNamedListener:function(a,b,c){return this[a]=c,this.addListener(b,c),this},addNamedAsyncListener:function(a,b,c){return c._isAsync=!0,this.addNamedListener(a,b,c)},addNamedListeners:function(a){var b=this;return a(function(){b.addNamedListener.apply(b,arguments)},function(){b.addNamedAsyncListener.apply(b,arguments)}),this}}),d.SequentialExecutor.prototype.addListener=d.SequentialExecutor.prototype.on,b.exports=d.SequentialExecutor},{"./core":11}],42:[function(a,b,c){var d=a("./core"),e=a("./model/api"),f=a("./region_config"),g=d.util.inherit,h=0;d.Service=g({constructor:function(a){if(!this.loadServiceClass)throw d.util.error(new Error,"Service must be constructed with `new' operator");var b=this.loadServiceClass(a||{});if(b){var c=d.util.copy(a),e=new b(a);return Object.defineProperty(e,"_originalConfig",{get:function(){return c},enumerable:!1,configurable:!0}),e._clientId=++h,e}this.initialize(a)},initialize:function(a){var b=d.config[this.serviceIdentifier];this.config=new d.Config(d.config),b&&this.config.update(b,!0),a&&this.config.update(a,!0),this.validateService(),this.config.endpoint||f(this),this.config.endpoint=this.endpointFromTemplate(this.config.endpoint),this.setEndpoint(this.config.endpoint)},validateService:function(){},loadServiceClass:function(a){var b=a;if(d.util.isEmpty(this.api)){if(b.apiConfig)return d.Service.defineServiceApi(this.constructor,b.apiConfig);if(this.constructor.services){b=new d.Config(d.config),b.update(a,!0);var c=b.apiVersions[this.constructor.serviceIdentifier];return c=c||b.apiVersion,this.getLatestServiceClass(c)}return null}return null},getLatestServiceClass:function(a){return a=this.getLatestServiceVersion(a),null===this.constructor.services[a]&&d.Service.defineServiceApi(this.constructor,a),this.constructor.services[a]},getLatestServiceVersion:function(a){if(!this.constructor.services||0===this.constructor.services.length)throw new Error("No services defined on "+this.constructor.serviceIdentifier);if(a?d.util.isType(a,Date)&&(a=d.util.date.iso8601(a).split("T")[0]):a="latest",Object.hasOwnProperty(this.constructor.services,a))return a;for(var b=Object.keys(this.constructor.services).sort(),c=null,e=b.length-1;e>=0;e--)if("*"!==b[e][b[e].length-1]&&(c=b[e]),b[e].substr(0,10)<=a)return c;throw new Error("Could not find "+this.constructor.serviceIdentifier+" API to satisfy version constraint `"+a+"'")},api:{},defaultRetryCount:3,makeRequest:function(a,b,c){if("function"==typeof b&&(c=b,b=null),b=b||{},this.config.params){var e=this.api.operations[a];e&&(b=d.util.copy(b),d.util.each(this.config.params,function(a,c){e.input.members[a]&&(void 0!==b[a]&&null!==b[a]||(b[a]=c))}))}var f=new d.Request(this,a,b);return this.addAllRequestListeners(f),c&&f.send(c),f},makeUnauthenticatedRequest:function(a,b,c){"function"==typeof b&&(c=b,b={});var d=this.makeRequest(a,b).toUnauthenticated();return c?d.send(c):d},waitFor:function(a,b,c){var e=new d.ResourceWaiter(this,a);return e.wait(b,c)},addAllRequestListeners:function(a){for(var b=[d.events,d.EventListeners.Core,this.serviceInterface(),d.EventListeners.CorePost],c=0;c=500))},networkingError:function(a){return"NetworkingError"===a.code},expiredCredentialsError:function(a){return"ExpiredTokenException"===a.code},clockSkewError:function(a){switch(a.code){case"RequestTimeTooSkewed":case"RequestExpired":case"InvalidSignatureException":case"SignatureDoesNotMatch":case"AuthFailure":case"RequestInTheFuture":return!0;default:return!1}},throttledError:function(a){switch(a.code){case"ProvisionedThroughputExceededException":case"Throttling":case"ThrottlingException":case"RequestLimitExceeded":case"RequestThrottled":return!0;default:return!1}},endpointFromTemplate:function(a){if("string"!=typeof a)return a;var b=a;return b=b.replace(/\{service\}/g,this.api.endpointPrefix),b=b.replace(/\{region\}/g,this.config.region),b=b.replace(/\{scheme\}/g,this.config.sslEnabled?"https":"http")},setEndpoint:function(a){this.endpoint=new d.Endpoint(a,this.config)},paginationConfig:function(a,b){var c=this.api.operations[a].paginator;if(!c){if(b){var e=new Error;throw d.util.error(e,"No pagination configuration for "+a)}return null}return c}}),d.util.update(d.Service,{defineMethods:function(a){d.util.each(a.prototype.api.operations,function(b){if(!a.prototype[b]){var c=a.prototype.api.operations[b];"none"===c.authtype?a.prototype[b]=function(a,c){return this.makeUnauthenticatedRequest(b,a,c)}:a.prototype[b]=function(a,c){return this.makeRequest(b,a,c)}}})},defineService:function(a,b,c){d.Service._serviceMap[a]=!0,Array.isArray(b)||(c=b,b=[]);var e=g(d.Service,c||{});if("string"==typeof a){d.Service.addVersions(e,b);var f=e.serviceIdentifier||a;e.serviceIdentifier=f}else e.prototype.api=a,d.Service.defineMethods(e);return e},addVersions:function(a,b){Array.isArray(b)||(b=[b]),a.services=a.services||{};for(var c=0;c604800){var d="Presigning does not support expiry time greater than a week with SigV4 signing.";throw f.util.error(new Error,{code:"InvalidExpiryTime",message:d,retryable:!1})}a.httpRequest.headers[h]=b}else{if(c!==f.Signers.S3)throw f.util.error(new Error,{message:"Presigning only supports S3 or SigV4 signing.",code:"UnsupportedSigner",retryable:!1});a.httpRequest.headers[h]=parseInt(f.util.date.unixTimestamp()+b,10).toString()}}function e(a){var b=a.httpRequest.endpoint,c=f.util.urlParse(a.httpRequest.path),d={};c.search&&(d=f.util.queryStringParse(c.search.substr(1))),f.util.each(a.httpRequest.headers,function(a,b){a===h&&(a="Expires"),0===a.indexOf("x-amz-meta-")&&(delete d[a],a=a.toLowerCase()),d[a]=b}),delete a.httpRequest.headers[h];var e=d.Authorization.split(" ");if("AWS"===e[0])e=e[1].split(":"),d.AWSAccessKeyId=e[0],d.Signature=e[1];else if("AWS4-HMAC-SHA256"===e[0]){e.shift();var g=e.join(" "),i=g.match(/Signature=(.*?)(?:,|\s|\r?\n|$)/)[1];d["X-Amz-Signature"]=i,delete d.Expires}delete d.Authorization,delete d.Host,b.pathname=c.pathname,b.search=f.util.queryParamsToString(d)}var f=a("../core"),g=f.util.inherit,h="presigned-expires";f.Signers.Presign=g({sign:function(a,b,c){if(a.httpRequest.headers[h]=b||3600,a.on("build",d),a.on("sign",e),a.removeListener("afterBuild",f.EventListeners.Core.SET_CONTENT_LENGTH),a.removeListener("afterBuild",f.EventListeners.Core.COMPUTE_SHA256),a.emit("beforePresign",[a]),!c){if(a.build(),a.response.error)throw a.response.error;return f.util.urlFormat(a.httpRequest.endpoint)}a.build(function(){this.response.error?c(this.response.error):c(null,f.util.urlFormat(a.httpRequest.endpoint))})}}),b.exports=f.Signers.Presign},{"../core":11}],46:[function(a,b,c){var d=a("../core"),e=d.util.inherit;d.Signers.RequestSigner=e({constructor:function(a){this.request=a},setServiceClientId:function(a){this.serviceClientId=a},getServiceClientId:function(){return this.serviceClientId}}),d.Signers.RequestSigner.getVersion=function(a){switch(a){case"v2":return d.Signers.V2;case"v3":return d.Signers.V3;case"v4":return d.Signers.V4;case"s3":return d.Signers.S3;case"v3https":return d.Signers.V3Https}throw new Error("Unknown signing version "+a)},a("./v2"),a("./v3"),a("./v3https"),a("./v4"),a("./s3"),a("./presign")},{"../core":11,"./presign":45,"./s3":47,"./v2":48,"./v3":49,"./v3https":50,"./v4":51}],47:[function(a,b,c){var d=a("../core"),e=d.util.inherit;d.Signers.S3=e(d.Signers.RequestSigner,{subResources:{acl:1,accelerate:1,cors:1,lifecycle:1,delete:1,location:1,logging:1,notification:1,partNumber:1,policy:1,requestPayment:1,replication:1,restore:1,tagging:1,torrent:1,uploadId:1,uploads:1,versionId:1,versioning:1,versions:1,website:1},responseHeaders:{"response-content-type":1,"response-content-language":1,"response-expires":1,"response-cache-control":1,"response-content-disposition":1,"response-content-encoding":1},addAuthorization:function(a,b){this.request.headers["presigned-expires"]||(this.request.headers["X-Amz-Date"]=d.util.date.rfc822(b)),a.sessionToken&&(this.request.headers["x-amz-security-token"]=a.sessionToken);var c=this.sign(a.secretAccessKey,this.stringToSign()),e="AWS "+a.accessKeyId+":"+c;this.request.headers.Authorization=e},stringToSign:function(){var a=this.request,b=[];b.push(a.method),b.push(a.headers["Content-MD5"]||""),b.push(a.headers["Content-Type"]||""),b.push(a.headers["presigned-expires"]||"");var c=this.canonicalizedAmzHeaders();return c&&b.push(c),b.push(this.canonicalizedResource()),b.join("\n")},canonicalizedAmzHeaders:function(){var a=[];d.util.each(this.request.headers,function(b){b.match(/^x-amz-/i)&&a.push(b)}),a.sort(function(a,b){return a.toLowerCase()=0?"&":"?";this.request.path+=f+d.util.queryParamsToString(e)},authorization:function(a,b){var c=[],d=this.credentialString(b);return c.push(this.algorithm+" Credential="+a.accessKeyId+"/"+d),c.push("SignedHeaders="+this.signedHeaders()),c.push("Signature="+this.signature(a,b)),c.join(", ")},signature:function(a,b){var c=null,e=this.serviceName+(this.getServiceClientId()?"_"+this.getServiceClientId():"");if(this.signatureCache){var c=f[e];c||(g.push(e),g.length>h&&delete f[g.shift()])}var i=b.substr(0,8);if(!c||c.akid!==a.accessKeyId||c.region!==this.request.region||c.date!==i){var j=a.secretAccessKey,k=d.util.crypto.hmac("AWS4"+j,i,"buffer"),l=d.util.crypto.hmac(k,this.request.region,"buffer"),m=d.util.crypto.hmac(l,this.serviceName,"buffer"),n=d.util.crypto.hmac(m,"aws4_request","buffer");if(!this.signatureCache)return d.util.crypto.hmac(n,this.stringToSign(b),"hex");f[e]={region:this.request.region,date:i,key:n,akid:a.accessKeyId}}var o=f[e].key;return d.util.crypto.hmac(o,this.stringToSign(b),"hex")},stringToSign:function(a){var b=[];return b.push("AWS4-HMAC-SHA256"),b.push(a),b.push(this.credentialString(a)),b.push(this.hexEncodedHash(this.canonicalString())),b.join("\n")},canonicalString:function(){var a=[],b=this.request.pathname();return"s3"!==this.serviceName&&(b=d.util.uriEscapePath(b)),a.push(this.request.method),a.push(b),a.push(this.request.search()),a.push(this.canonicalHeaders()+"\n"),a.push(this.signedHeaders()),a.push(this.hexEncodedBodyHash()),a.join("\n")},canonicalHeaders:function(){var a=[];d.util.each.call(this,this.request.headers,function(b,c){a.push([b,c])}),a.sort(function(a,b){return a[0].toLowerCase()=a.length)return b.push(null);var e=c+d;e>a.length&&(e=a.length),b.push(a.slice(c,e)),c=e},b},concat:function(a){var b,c=0,d=0,f=null;for(b=0;b>>8^b[255&(c^f)]}return(c^-1)>>>0},hmac:function(a,b,c,d){return c||(c="binary"),"buffer"===c&&(c=void 0),d||(d="sha256"),"string"==typeof b&&(b=new e.Buffer(b)),e.crypto.lib.createHmac(d,a).update(b).digest(c)},md5:function(a,b,c){return e.crypto.hash("md5",a,b,c)},sha256:function(a,b,c){return e.crypto.hash("sha256",a,b,c)},hash:function(a,b,c,d){var f=e.crypto.createHash(a);c||(c="binary"),"buffer"===c&&(c=void 0),"string"==typeof b&&(b=new e.Buffer(b));var g=e.arraySliceFn(b),h=e.Buffer.isBuffer(b);if(e.isBrowser()&&"undefined"!=typeof ArrayBuffer&&b&&b.buffer instanceof ArrayBuffer&&(h=!0),d&&"object"==typeof b&&"function"==typeof b.on&&!h)b.on("data",function(a){f.update(a)}),b.on("error",function(a){d(a)}),b.on("end",function(){d(null,f.digest(c))});else{if(!d||!g||h||"undefined"==typeof FileReader){e.isBrowser()&&"object"==typeof b&&!h&&(b=new e.Buffer(new Uint8Array(b)));var i=f.update(b).digest(c);return d&&d(null,i),i}var j=0,k=524288,l=new FileReader;l.onerror=function(){d(new Error("Failed to read data."))},l.onload=function(){var a=new e.Buffer(new Uint8Array(l.result));f.update(a),j+=a.length,l._continueReading()},l._continueReading=function(){if(j>=b.size)return void d(null,f.digest(c));var a=j+k;a>b.size&&(a=b.size),l.readAsArrayBuffer(g.call(b,j,a))},l._continueReading()}},toHex:function(a){for(var b=[],c=0;c=3e5,!1),d.config.isClockSkewed},applyClockOffset:function(a){a&&(d.config.systemClockOffset=a-(new Date).getTime())},extractRequestId:function(a){var b=a.httpResponse.headers["x-amz-request-id"]||a.httpResponse.headers["x-amzn-requestid"];!b&&a.data&&a.data.ResponseMetadata&&(b=a.data.ResponseMetadata.RequestId),b&&(a.requestId=b),a.error&&(a.error.requestId=b)},addPromisesToRequests:function(a,b){return b=b||null,b||"undefined"==typeof Promise||(b=Promise),"function"!=typeof b?void delete a.prototype.promise:void(a.prototype.promise=function(){var a=this;return new b(function(b,c){a.on("complete",function(a){a.error?c(a.error):b(a.data)}),a.runTo()})})},isDualstackAvailable:function(b){if(!b)return!1;var c=a("../apis/metadata.json");return"string"!=typeof b&&(b=b.serviceIdentifier),!("string"!=typeof b||!c.hasOwnProperty(b))&&!!c[b].dualstackAvailable},calculateRetryDelay:function(a,b){b||(b={});var c=b.customBackoff||null;if("function"==typeof c)return c(a);var d=b.base||100,e=Math.random()*(Math.pow(2,a)*d);return e},handleRequestWithRetries:function(a,b,f){b||(b={});var g=d.HttpClient.getInstance(),h=b.httpOptions||{},i=0,j=function(a){var c=b.maxRetries||0;if(a&&"TimeoutError"===a.code&&(a.retryable=!0),a&&a.retryable&&i=500||429===c});d&&g.retryable&&(g.retryAfter=d),j(g)}})},j)};c.nextTick(k)}};b.exports=e}).call(this,a("FWaASH"))},{"../apis/metadata.json":3,"./core":11,FWaASH:62,fs:56}],54:[function(a,b,c){function d(){}function e(a,b){switch(b||(b={}),b.type){case"structure":return f(a,b);case"map":return g(a,b);case"list":return h(a,b);case void 0:case null:return j(a);default:return i(a,b)}}function f(a,b){var c={};return null===a?c:(k.each(b.members,function(b,d){if(d.isXmlAttribute){if(Object.prototype.hasOwnProperty.call(a.attributes,d.name)){var f=a.attributes[d.name].value;c[b]=e({textContent:f},d)}}else{var g=d.flattened?a:a.getElementsByTagName(d.name)[0];g?c[b]=e(g,d):d.flattened||"list"!==d.type||(c[b]=d.defaultValue)}}),c)}function g(a,b){for(var c={},d=b.key.name||"key",f=b.value.name||"value",g=b.flattened?b.name:"entry",h=a.firstElementChild;h;){if(h.nodeName===g){var i=h.getElementsByTagName(d)[0].textContent,j=h.getElementsByTagName(f)[0];c[i]=e(j,b.value)}h=h.nextElementSibling}return c}function h(a,b){for(var c=[],d=b.flattened?b.name:b.member.name||"member",f=a.firstElementChild;f;)f.nodeName===d&&c.push(e(f,b.member)),f=f.nextElementSibling;return c}function i(a,b){if(a.getAttribute){var c=a.getAttribute("encoding");"base64"===c&&(b=new l.create({type:c}))}var d=a.textContent;return""===d&&(d=null),"function"==typeof b.toType?b.toType(d):d}function j(a){if(void 0===a||null===a)return"";if(!a.firstElementChild)return null===a.parentNode.parentNode?{}:0===a.childNodes.length?"":a.textContent;for(var b={type:"structure",members:{}},c=a.firstElementChild;c;){var d=c.nodeName;Object.prototype.hasOwnProperty.call(b.members,d)?b.members[d].type="list":b.members[d]={name:d},c=c.nextElementSibling}return f(a,b)}var k=a("../util"),l=a("../model/shape");d.prototype.parse=function(a,b){if(""===a.replace(/^\s+/,""))return{};var c,d;try{if(window.DOMParser){try{var f=new DOMParser;c=f.parseFromString(a,"text/xml")}catch(a){throw k.error(new Error("Parse error in document"),{originalError:a,code:"XMLParserError",retryable:!0})}if(null===c.documentElement)throw k.error(new Error("Cannot parse empty document."),{code:"XMLParserError",retryable:!0});var g=c.getElementsByTagName("parsererror")[0];if(g&&(g.parentNode===c||"body"===g.parentNode.nodeName||g.parentNode.parentNode===c||"body"===g.parentNode.parentNode.nodeName)){var h=g.getElementsByTagName("div")[0]||g;throw k.error(new Error(h.textContent||"Parser error in document"),{code:"XMLParserError",retryable:!0})}}else{if(!window.ActiveXObject)throw new Error("Cannot load XML parser");if(c=new window.ActiveXObject("Microsoft.XMLDOM"),c.async=!1,!c.loadXML(a))throw k.error(new Error("Parse error in document"),{code:"XMLParserError",retryable:!0})}}catch(a){d=a}if(c&&c.documentElement&&!d){var i=e(c.documentElement,b),j=c.getElementsByTagName("ResponseMetadata")[0];return j&&(i.ResponseMetadata=e(j,{})),i}if(d)throw k.error(d||new Error,{code:"XMLParserError",retryable:!0});return{}},b.exports=d},{"../model/shape":28,"../util":53}],55:[function(a,b,c){function d(){}function e(a,b,c){switch(c.type){case"structure":return f(a,b,c);case"map":return g(a,b,c);case"list":return h(a,b,c);default:return i(a,b,c)}}function f(a,b,c){k.arrayEach(c.memberNames,function(d){var f=c.members[d];if("body"===f.location){var g=b[d],h=f.name;if(void 0!==g&&null!==g)if(f.isXmlAttribute)a.att(h,g);else if(f.flattened)e(a,g,f);else{var i=a.ele(h);j(i,f),e(i,g,f)}}})}function g(a,b,c){var d=c.key.name||"key",f=c.value.name||"value";k.each(b,function(b,g){var h=a.ele(c.flattened?c.name:"entry");e(h.ele(d),b,c.key),e(h.ele(f),g,c.value)})}function h(a,b,c){c.flattened?k.arrayEach(b,function(b){var d=c.member.name||c.name,f=a.ele(d);e(f,b,c.member)}):k.arrayEach(b,function(b){var d=c.member.name||"member",f=a.ele(d);e(f,b,c.member)})}function i(a,b,c){a.txt(c.toWireFormat(b))}function j(a,b){var c,d="xmlns";b.xmlNamespaceUri?(c=b.xmlNamespaceUri,b.xmlNamespacePrefix&&(d+=":"+b.xmlNamespacePrefix)):a.isRoot&&b.api.xmlNamespaceUri&&(c=b.api.xmlNamespaceUri),c&&a.att(d,c)}var k=a("../util"),l=a("xmlbuilder");d.prototype.toXML=function(a,b,c,d){var f=l.create(c);return j(f,b),e(f,a,b),f.children.length>0||d?f.root().toString():""},b.exports=d},{"../util":53,xmlbuilder:100}],56:[function(a,b,c){},{}],57:[function(a,b,c){function d(a,b,c){if(!(this instanceof d))return new d(a,b,c);var e=typeof a;if("base64"===b&&"string"===e)for(a=C(a);a.length%4!==0;)a+="=";var f;if("number"===e)f=E(a);else if("string"===e)f=d.byteLength(a,b);else{if("object"!==e)throw new Error("First argument needs to be a number, array or string.");f=E(a.length)}var g;d._useTypedArrays?g=d._augment(new Uint8Array(f)):(g=this,g.length=f,g._isBuffer=!0);var h;if(d._useTypedArrays&&"number"==typeof a.byteLength)g._set(a);else if(G(a))for(h=0;hf&&(e=f)):e=f;var g=b.length;R(g%2===0,"Invalid hex string"),e>g/2&&(e=g/2);for(var h=0;hd)&&(c=d);for(var e="",f=b;f=e)){var f;return c?(f=a[b],b+1=e)){var f;return c?(b+2>>0)):(b+1>>0),f}}function s(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+1=e)){var f=q(a,b,c,!0),g=32768&f;return g?(65535-f+1)*-1:f}}function t(a,b,c,d){d||(R("boolean"==typeof c,"missing or invalid endian"),R(void 0!==b&&null!==b,"missing offset"),R(b+3=e)){var f=r(a,b,c,!0),g=2147483648&f;return g?(4294967295-f+1)*-1:f}}function u(a,b,c,d){return d||(R("boolean"==typeof c,"missing or invalid endian"),R(b+3=f))for(var g=0,h=Math.min(f-c,2);g>>8*(d?g:1-g)}function x(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f))for(var g=0,h=Math.min(f-c,4);g>>8*(d?g:3-g)&255}function y(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+1=f||(b>=0?w(a,b,c,d,e):w(a,65535+b+1,c,d,e))}function z(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f||(b>=0?x(a,b,c,d,e):x(a,4294967295+b+1,c,d,e))}function A(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+3=f||T.write(a,b,c,d,23,4)}function B(a,b,c,d,e){e||(R(void 0!==b&&null!==b,"missing value"),R("boolean"==typeof d,"missing or invalid endian"),R(void 0!==c&&null!==c,"missing offset"),R(c+7=f||T.write(a,b,c,d,52,8)}function C(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function D(a,b,c){return"number"!=typeof a?c:(a=~~a,a>=b?b:a>=0?a:(a+=b,a>=0?a:0))}function E(a){return a=~~Math.ceil(+a),a<0?0:a}function F(a){return(Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)})(a)}function G(a){return F(a)||d.isBuffer(a)||a&&"object"==typeof a&&"number"==typeof a.length}function H(a){return a<16?"0"+a.toString(16):a.toString(16)}function I(a){for(var b=[],c=0;c=55296&&d<=57343&&c++;for(var f=encodeURIComponent(a.slice(e,c+1)).substr(1).split("%"),g=0;g>8,d=b%256,e.push(d),e.push(c);return e}function L(a){return S.toByteArray(a)}function M(a,b,c,d){for(var e=0;e=b.length||e>=a.length);e++)b[e+c]=a[e];return e}function N(a){try{return decodeURIComponent(a)}catch(a){return String.fromCharCode(65533)}}function O(a,b){R("number"==typeof a,"cannot write a non-number as a number"),R(a>=0,"specified a negative value for writing an unsigned value"),R(a<=b,"value is larger than maximum value for type"),R(Math.floor(a)===a,"value has a fractional component")}function P(a,b,c){R("number"==typeof a,"cannot write a non-number as a number"),R(a<=b,"value larger than maximum allowed value"),R(a>=c,"value smaller than minimum allowed value"),R(Math.floor(a)===a,"value has a fractional component")}function Q(a,b,c){R("number"==typeof a,"cannot write a non-number as a number"),R(a<=b,"value larger than maximum allowed value"),R(a>=c,"value smaller than minimum allowed value")}function R(a,b){if(!a)throw new Error(b||"Failed assertion")}var S=a("base64-js"),T=a("ieee754");c.Buffer=d,c.SlowBuffer=d,c.INSPECT_MAX_BYTES=50,d.poolSize=8192,d._useTypedArrays=function(){try{var a=new ArrayBuffer(0),b=new Uint8Array(a);return b.foo=function(){return 42},42===b.foo()&&"function"==typeof b.subarray}catch(a){return!1}}(),d.isEncoding=function(a){switch(String(a).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"raw":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},d.isBuffer=function(a){return!(null===a||void 0===a||!a._isBuffer)},d.byteLength=function(a,b){var c;switch(a+="",b||"utf8"){case"hex":c=a.length/2;break;case"utf8":case"utf-8":c=I(a).length;break;case"ascii":case"binary":case"raw":c=a.length;break;case"base64":c=L(a).length;break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":c=2*a.length;break;default:throw new Error("Unknown encoding")}return c},d.concat=function(a,b){if(R(F(a),"Usage: Buffer.concat(list, [totalLength])\nlist should be an Array."),0===a.length)return new d(0);if(1===a.length)return a[0];var c;if("number"!=typeof b)for(b=0,c=0;cl&&(c=l)):c=l,d=String(d||"utf8").toLowerCase();var m;switch(d){case"hex":m=e(this,a,b,c);break;case"utf8":case"utf-8":m=f(this,a,b,c);break;case"ascii":m=g(this,a,b,c);break;case"binary":m=h(this,a,b,c);break;case"base64":m=i(this,a,b,c);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":m=j(this,a,b,c);break;default:throw new Error("Unknown encoding")}return m},d.prototype.toString=function(a,b,c){var d=this;if(a=String(a||"utf8").toLowerCase(),b=Number(b)||0,c=void 0!==c?Number(c):c=d.length,c===b)return"";var e;switch(a){case"hex":e=o(d,b,c);break;case"utf8":case"utf-8":e=l(d,b,c);break;case"ascii":e=m(d,b,c);break;case"binary":e=n(d,b,c);break;case"base64":e=k(d,b,c);break;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":e=p(d,b,c);break;default:throw new Error("Unknown encoding")}return e},d.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}},d.prototype.copy=function(a,b,c,e){var f=this;if(c||(c=0),e||0===e||(e=this.length),b||(b=0),e!==c&&0!==a.length&&0!==f.length){R(e>=c,"sourceEnd < sourceStart"),R(b>=0&&b=0&&c=0&&e<=f.length,"sourceEnd out of bounds"),e>this.length&&(e=this.length),a.length-b=this.length))return this[a]},d.prototype.readUInt16LE=function(a,b){return q(this,a,!0,b)},d.prototype.readUInt16BE=function(a,b){return q(this,a,!1,b)},d.prototype.readUInt32LE=function(a,b){return r(this,a,!0,b)},d.prototype.readUInt32BE=function(a,b){return r(this,a,!1,b)},d.prototype.readInt8=function(a,b){if(b||(R(void 0!==a&&null!==a,"missing offset"),R(a=this.length)){var c=128&this[a];return c?(255-this[a]+1)*-1:this[a]}},d.prototype.readInt16LE=function(a,b){return s(this,a,!0,b)},d.prototype.readInt16BE=function(a,b){return s(this,a,!1,b)},d.prototype.readInt32LE=function(a,b){return t(this,a,!0,b)},d.prototype.readInt32BE=function(a,b){return t(this,a,!1,b)},d.prototype.readFloatLE=function(a,b){return u(this,a,!0,b)},d.prototype.readFloatBE=function(a,b){return u(this,a,!1,b)},d.prototype.readDoubleLE=function(a,b){return v(this,a,!0,b)},d.prototype.readDoubleBE=function(a,b){return v(this,a,!1,b)},d.prototype.writeUInt8=function(a,b,c){c||(R(void 0!==a&&null!==a,"missing value"),R(void 0!==b&&null!==b,"missing offset"),R(b=this.length||(this[b]=a)},d.prototype.writeUInt16LE=function(a,b,c){w(this,a,b,!0,c)},d.prototype.writeUInt16BE=function(a,b,c){w(this,a,b,!1,c)},d.prototype.writeUInt32LE=function(a,b,c){x(this,a,b,!0,c)},d.prototype.writeUInt32BE=function(a,b,c){x(this,a,b,!1,c)},d.prototype.writeInt8=function(a,b,c){c||(R(void 0!==a&&null!==a,"missing value"),R(void 0!==b&&null!==b,"missing offset"),R(b=this.length||(a>=0?this.writeUInt8(a,b,c):this.writeUInt8(255+a+1,b,c))},d.prototype.writeInt16LE=function(a,b,c){y(this,a,b,!0,c)},d.prototype.writeInt16BE=function(a,b,c){y(this,a,b,!1,c)},d.prototype.writeInt32LE=function(a,b,c){z(this,a,b,!0,c)},d.prototype.writeInt32BE=function(a,b,c){z(this,a,b,!1,c)},d.prototype.writeFloatLE=function(a,b,c){A(this,a,b,!0,c)},d.prototype.writeFloatBE=function(a,b,c){A(this,a,b,!1,c)},d.prototype.writeDoubleLE=function(a,b,c){B(this,a,b,!0,c)},d.prototype.writeDoubleBE=function(a,b,c){B(this,a,b,!1,c)},d.prototype.fill=function(a,b,c){if(a||(a=0),b||(b=0),c||(c=this.length),"string"==typeof a&&(a=a.charCodeAt(0)),R("number"==typeof a&&!isNaN(a),"value is not a number"),R(c>=b,"end < start"),c!==b&&0!==this.length){R(b>=0&&b=0&&c<=this.length,"end out of bounds");for(var d=b;d"},d.prototype.toArrayBuffer=function(){if("undefined"!=typeof Uint8Array){if(d._useTypedArrays)return new d(this).buffer;for(var a=new Uint8Array(this.length),b=0,c=a.length;b0)throw new Error("Invalid string. Length must be a multiple of 4");var k=a.length;i="="===a.charAt(k-2)?2:"="===a.charAt(k-1)?1:0,j=new f(3*a.length/4-i),g=i>0?a.length-4:a.length;var l=0;for(d=0,e=0;d>16),c((65280&h)>>8),c(255&h);return 2===i?(h=b(a.charAt(d))<<2|b(a.charAt(d+1))>>4,c(255&h)):1===i&&(h=b(a.charAt(d))<<10|b(a.charAt(d+1))<<4|b(a.charAt(d+2))>>2,c(h>>8&255),c(255&h)),j}function e(a){function b(a){return d.charAt(a)}function c(a){return b(a>>18&63)+b(a>>12&63)+b(a>>6&63)+b(63&a)}var e,f,g,h=a.length%3,i="";for(e=0,g=a.length-h;e>2),i+=b(f<<4&63),i+="==";break;case 2:f=(a[a.length-2]<<8)+a[a.length-1],i+=b(f>>10),i+=b(f>>4&63),i+=b(f<<2&63),i+="="}return i}var f="undefined"!=typeof Uint8Array?Uint8Array:Array,g="+".charCodeAt(0),h="/".charCodeAt(0),i="0".charCodeAt(0),j="a".charCodeAt(0),k="A".charCodeAt(0),l="-".charCodeAt(0),m="_".charCodeAt(0);a.toByteArray=c,a.fromByteArray=e}("undefined"==typeof c?this.base64js={}:c)},{}],59:[function(a,b,c){c.read=function(a,b,c,d,e){var f,g,h=8*e-d-1,i=(1<>1,k=-7,l=c?e-1:0,m=c?-1:1,n=a[b+l];for(l+=m,f=n&(1<<-k)-1,n>>=-k,k+=h;k>0;f=256*f+a[b+l],l+=m,k-=8);for(g=f&(1<<-k)-1,f>>=-k,k+=d;k>0;g=256*g+a[b+l],l+=m,k-=8);if(0===f)f=1-j;else{if(f===i)return g?NaN:(n?-1:1)*(1/0);g+=Math.pow(2,d),f-=j}return(n?-1:1)*g*Math.pow(2,f-d)},c.write=function(a,b,c,d,e,f){var g,h,i,j=8*f-e-1,k=(1<>1,m=23===e?Math.pow(2,-24)-Math.pow(2,-77):0,n=d?0:f-1,o=d?1:-1,p=b<0||0===b&&1/b<0?1:0;for(b=Math.abs(b),isNaN(b)||b===1/0?(h=isNaN(b)?1:0,g=k):(g=Math.floor(Math.log(b)/Math.LN2),b*(i=Math.pow(2,-g))<1&&(g--,i*=2),b+=g+l>=1?m/i:m*Math.pow(2,1-l),b*i>=2&&(g++,i/=2),g+l>=k?(h=0,g=k):g+l>=1?(h=(b*i-1)*Math.pow(2,e),g+=l):(h=b*Math.pow(2,l-1)*Math.pow(2,e),g=0));e>=8;a[c+n]=255&h,n+=o,h/=256,e-=8);for(g=g<0;a[c+n]=255&g,n+=o,g/=256,j-=8);a[c+n-o]|=128*p}},{}],60:[function(a,b,c){function d(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function e(a){return"function"==typeof a}function f(a){return"number"==typeof a}function g(a){return"object"==typeof a&&null!==a}function h(a){return void 0===a}b.exports=d,d.EventEmitter=d,d.prototype._events=void 0,d.prototype._maxListeners=void 0,d.defaultMaxListeners=10,d.prototype.setMaxListeners=function(a){if(!f(a)||a<0||isNaN(a))throw TypeError("n must be a positive number");return this._maxListeners=a,this},d.prototype.emit=function(a){var b,c,d,f,i,j;if(this._events||(this._events={}),"error"===a&&(!this._events.error||g(this._events.error)&&!this._events.error.length)){if(b=arguments[1],b instanceof Error)throw b;throw TypeError('Uncaught, unspecified "error" event.')}if(c=this._events[a],h(c))return!1;if(e(c))switch(arguments.length){case 1:c.call(this);break;case 2:c.call(this,arguments[1]);break;case 3:c.call(this,arguments[1],arguments[2]);break;default:for(d=arguments.length,f=new Array(d-1),i=1;i0&&this._events[a].length>c&&(this._events[a].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[a].length),"function"==typeof console.trace&&console.trace())}return this},d.prototype.on=d.prototype.addListener,d.prototype.once=function(a,b){function c(){this.removeListener(a,c),d||(d=!0,b.apply(this,arguments))}if(!e(b))throw TypeError("listener must be a function");var d=!1;return c.listener=b,this.on(a,c),this},d.prototype.removeListener=function(a,b){var c,d,f,h;if(!e(b))throw TypeError("listener must be a function");if(!this._events||!this._events[a])return this;if(c=this._events[a],f=c.length,d=-1,c===b||e(c.listener)&&c.listener===b)delete this._events[a],this._events.removeListener&&this.emit("removeListener",a,b);else if(g(c)){for(h=f;h-- >0;)if(c[h]===b||c[h].listener&&c[h].listener===b){d=h;break}if(d<0)return this;1===c.length?(c.length=0,delete this._events[a]):c.splice(d,1),this._events.removeListener&&this.emit("removeListener",a,b)}return this},d.prototype.removeAllListeners=function(a){var b,c;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[a]&&delete this._events[a],this;if(0===arguments.length){for(b in this._events)"removeListener"!==b&&this.removeAllListeners(b);return this.removeAllListeners("removeListener"),this._events={},this}if(c=this._events[a],e(c))this.removeListener(a,c);else for(;c.length;)this.removeListener(a,c[c.length-1]);return delete this._events[a],this},d.prototype.listeners=function(a){var b;return b=this._events&&this._events[a]?e(this._events[a])?[this._events[a]]:this._events[a].slice():[]},d.listenerCount=function(a,b){var c;return c=a._events&&a._events[b]?e(a._events[b])?1:a._events[b].length:0}},{}],61:[function(a,b,c){"function"==typeof Object.create?b.exports=function(a,b){a.super_=b,a.prototype=Object.create(b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}})}:b.exports=function(a,b){a.super_=b;var c=function(){};c.prototype=b.prototype,a.prototype=new c,a.prototype.constructor=a}},{}],62:[function(a,b,c){function d(){}var e=b.exports={};e.nextTick=function(){var a="undefined"!=typeof window&&window.setImmediate,b="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(a)return function(a){return window.setImmediate(a)};if(b){var c=[];return window.addEventListener("message",function(a){var b=a.source;if((b===window||null===b)&&"process-tick"===a.data&&(a.stopPropagation(),c.length>0)){var d=c.shift();d()}},!0),function(a){c.push(a),window.postMessage("process-tick","*")}}return function(a){setTimeout(a,0)}}(),e.title="browser",e.browser=!0,e.env={},e.argv=[],e.on=d,e.addListener=d,e.once=d,e.off=d,e.removeListener=d,e.removeAllListeners=d,e.emit=d,e.binding=function(a){throw new Error("process.binding is not supported")},e.cwd=function(){return"/"},e.chdir=function(a){throw new Error("process.chdir is not supported")}},{}],63:[function(a,b,c){(function(a){!function(d){function e(a){throw RangeError(H[a])}function f(a,b){for(var c=a.length;c--;)a[c]=b(a[c]);return a}function g(a,b){return f(a.split(G),b).join(".")}function h(a){for(var b,c,d=[],e=0,f=a.length;e=55296&&b<=56319&&e65535&&(a-=65536,b+=K(a>>>10&1023|55296),a=56320|1023&a),b+=K(a)}).join("")}function j(a){return a-48<10?a-22:a-65<26?a-65:a-97<26?a-97:w}function k(a,b){return a+22+75*(a<26)-((0!=b)<<5)}function l(a,b,c){var d=0;for(a=c?J(a/A):a>>1,a+=J(a/b);a>I*y>>1;d+=w)a=J(a/I);return J(d+(I+1)*a/(a+z))}function m(a){var b,c,d,f,g,h,k,m,n,o,p=[],q=a.length,r=0,s=C,t=B;for(c=a.lastIndexOf(D),c<0&&(c=0),d=0;d=128&&e("not-basic"),p.push(a.charCodeAt(d));for(f=c>0?c+1:0;f=q&&e("invalid-input"),m=j(a.charCodeAt(f++)),(m>=w||m>J((v-r)/h))&&e("overflow"),r+=m*h,n=k<=t?x:k>=t+y?y:k-t,!(mJ(v/o)&&e("overflow"),h*=o;b=p.length+1,t=l(r-g,b,0==g),J(r/b)>v-s&&e("overflow"),s+=J(r/b),r%=b,p.splice(r++,0,s)}return i(p)}function n(a){var b,c,d,f,g,i,j,m,n,o,p,q,r,s,t,u=[];for(a=h(a),q=a.length,b=C,c=0,g=B,i=0;i=b&&pJ((v-c)/r)&&e("overflow"),c+=(j-b)*r,b=j,i=0;iv&&e("overflow"),p==b){for(m=c,n=w;o=n<=g?x:n>=g+y?y:n-g,!(m= 0x80 (not a basic code point)","invalid-input":"Invalid input"},I=w-x,J=Math.floor,K=String.fromCharCode;if(t={version:"1.2.4",ucs2:{decode:h,encode:i},decode:m,encode:n,toASCII:p,toUnicode:o},"function"==typeof define&&"object"==typeof define.amd&&define.amd)define("punycode",function(){return t});else if(q&&!q.nodeType)if(r)r.exports=t;else for(u in t)t.hasOwnProperty(u)&&(q[u]=t[u]);else d.punycode=t}(this)}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],64:[function(a,b,c){"use strict";function d(a,b){return Object.prototype.hasOwnProperty.call(a,b)}b.exports=function(a,b,c,f){b=b||"&",c=c||"=";var g={};if("string"!=typeof a||0===a.length)return g;var h=/\+/g;a=a.split(b);var i=1e3;f&&"number"==typeof f.maxKeys&&(i=f.maxKeys);var j=a.length;i>0&&j>i&&(j=i);for(var k=0;k=0?(l=p.substr(0,q),m=p.substr(q+1)):(l=p,m=""),n=decodeURIComponent(l),o=decodeURIComponent(m),d(g,n)?e(g[n])?g[n].push(o):g[n]=[g[n],o]:g[n]=o}return g};var e=Array.isArray||function(a){return"[object Array]"===Object.prototype.toString.call(a)}},{}],65:[function(a,b,c){"use strict";function d(a,b){if(a.map)return a.map(b);for(var c=[],d=0;d=3&&(d.depth=arguments[2]),arguments.length>=4&&(d.colors=arguments[3]),p(b)?d.showHidden=b:b&&c._extend(d,b),v(d.showHidden)&&(d.showHidden=!1),v(d.depth)&&(d.depth=2),v(d.colors)&&(d.colors=!1),v(d.customInspect)&&(d.customInspect=!0),d.colors&&(d.stylize=f),i(d,a,d.depth)}function f(a,b){var c=e.styles[b];return c?"["+e.colors[c][0]+"m"+a+"["+e.colors[c][1]+"m":a}function g(a,b){return a}function h(a){var b={};return a.forEach(function(a,c){b[a]=!0}),b}function i(a,b,d){if(a.customInspect&&b&&A(b.inspect)&&b.inspect!==c.inspect&&(!b.constructor||b.constructor.prototype!==b)){var e=b.inspect(d,a);return t(e)||(e=i(a,e,d)),e}var f=j(a,b);if(f)return f;var g=Object.keys(b),p=h(g);if(a.showHidden&&(g=Object.getOwnPropertyNames(b)),z(b)&&(g.indexOf("message")>=0||g.indexOf("description")>=0))return k(b);if(0===g.length){if(A(b)){var q=b.name?": "+b.name:"";return a.stylize("[Function"+q+"]","special")}if(w(b))return a.stylize(RegExp.prototype.toString.call(b),"regexp");if(y(b))return a.stylize(Date.prototype.toString.call(b),"date");if(z(b))return k(b)}var r="",s=!1,u=["{","}"];if(o(b)&&(s=!0,u=["[","]"]),A(b)){var v=b.name?": "+b.name:"";r=" [Function"+v+"]"}if(w(b)&&(r=" "+RegExp.prototype.toString.call(b)),y(b)&&(r=" "+Date.prototype.toUTCString.call(b)),z(b)&&(r=" "+k(b)),0===g.length&&(!s||0==b.length))return u[0]+r+u[1];if(d<0)return w(b)?a.stylize(RegExp.prototype.toString.call(b),"regexp"):a.stylize("[Object]","special");a.seen.push(b);var x;return x=s?l(a,b,d,p,g):g.map(function(c){return m(a,b,d,p,c,s)}),a.seen.pop(),n(x,r,u)}function j(a,b){if(v(b))return a.stylize("undefined","undefined");if(t(b)){var c="'"+JSON.stringify(b).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return a.stylize(c,"string")}return s(b)?a.stylize(""+b,"number"):p(b)?a.stylize(""+b,"boolean"):q(b)?a.stylize("null","null"):void 0}function k(a){return"["+Error.prototype.toString.call(a)+"]"}function l(a,b,c,d,e){for(var f=[],g=0,h=b.length;g-1&&(h=f?h.split("\n").map(function(a){return" "+a}).join("\n").substr(2):"\n"+h.split("\n").map(function(a){return" "+a}).join("\n"))):h=a.stylize("[Circular]","special")),v(g)){if(f&&e.match(/^\d+$/))return h;g=JSON.stringify(""+e),g.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(g=g.substr(1,g.length-2),g=a.stylize(g,"name")):(g=g.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),g=a.stylize(g,"string"))}return g+": "+h}function n(a,b,c){var d=0,e=a.reduce(function(a,b){return d++,b.indexOf("\n")>=0&&d++,a+b.replace(/\u001b\[\d\d?m/g,"").length+1},0);return e>60?c[0]+(""===b?"":b+"\n ")+" "+a.join(",\n ")+" "+c[1]:c[0]+b+" "+a.join(", ")+" "+c[1]}function o(a){return Array.isArray(a)}function p(a){return"boolean"==typeof a}function q(a){return null===a}function r(a){return null==a}function s(a){return"number"==typeof a}function t(a){return"string"==typeof a}function u(a){return"symbol"==typeof a}function v(a){return void 0===a}function w(a){return x(a)&&"[object RegExp]"===C(a)}function x(a){return"object"==typeof a&&null!==a}function y(a){return x(a)&&"[object Date]"===C(a)}function z(a){return x(a)&&("[object Error]"===C(a)||a instanceof Error)}function A(a){return"function"==typeof a}function B(a){return null===a||"boolean"==typeof a||"number"==typeof a||"string"==typeof a||"symbol"==typeof a||"undefined"==typeof a}function C(a){return Object.prototype.toString.call(a)}function D(a){return a<10?"0"+a.toString(10):a.toString(10)}function E(){var a=new Date,b=[D(a.getHours()),D(a.getMinutes()),D(a.getSeconds())].join(":");return[a.getDate(),J[a.getMonth()],b].join(" ")}function F(a,b){return Object.prototype.hasOwnProperty.call(a,b)}var G=/%[sdj%]/g;c.format=function(a){if(!t(a)){for(var b=[],c=0;c=f)return a;switch(a){case"%s":return String(d[c++]);case"%d":return Number(d[c++]);case"%j":try{return JSON.stringify(d[c++])}catch(a){return"[Circular]"}default:return a}}),h=d[c];c=e())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+e().toString(16)+" bytes");return 0|a}function q(a){return+a!=a&&(a=0),g.alloc(+a)}function r(a,b){if(g.isBuffer(a))return a.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(a)||a instanceof ArrayBuffer))return a.byteLength;"string"!=typeof a&&(a=""+a);var c=a.length;if(0===c)return 0;for(var d=!1;;)switch(b){case"ascii":case"latin1":case"binary":return c;case"utf8":case"utf-8":case void 0:return T(a).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*c;case"hex":return c>>>1;case"base64":return W(a).length;default:if(d)return T(a).length;b=(""+b).toLowerCase(),d=!0}}function s(a,b,c){var d=!1;if((void 0===b||b<0)&&(b=0),b>this.length)return"";if((void 0===c||c>this.length)&&(c=this.length),c<=0)return"";if(c>>>=0,b>>>=0,c<=b)return"";for(a||(a="utf8");;)switch(a){case"hex":return H(this,b,c);case"utf8":case"utf-8":return D(this,b,c);case"ascii":return F(this,b,c);case"latin1":case"binary":return G(this,b,c);case"base64":return C(this,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return I(this,b,c);default:if(d)throw new TypeError("Unknown encoding: "+a);a=(a+"").toLowerCase(),d=!0}}function t(a,b,c){var d=a[b];a[b]=a[c],a[c]=d}function u(a,b,c,d,e){if(0===a.length)return-1;if("string"==typeof c?(d=c,c=0):c>2147483647?c=2147483647:c<-2147483648&&(c=-2147483648),c=+c,isNaN(c)&&(c=e?0:a.length-1),c<0&&(c=a.length+c),c>=a.length){if(e)return-1;c=a.length-1}else if(c<0){if(!e)return-1;c=0}if("string"==typeof b&&(b=g.from(b,d)),g.isBuffer(b))return 0===b.length?-1:v(a,b,c,d,e);if("number"==typeof b)return b&=255,g.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?e?Uint8Array.prototype.indexOf.call(a,b,c):Uint8Array.prototype.lastIndexOf.call(a,b,c):v(a,[b],c,d,e);throw new TypeError("val must be string, number or Buffer")}function v(a,b,c,d,e){function f(a,b){return 1===g?a[b]:a.readUInt16BE(b*g)}var g=1,h=a.length,i=b.length;if(void 0!==d&&(d=String(d).toLowerCase(),"ucs2"===d||"ucs-2"===d||"utf16le"===d||"utf-16le"===d)){if(a.length<2||b.length<2)return-1;g=2,h/=2,i/=2,c/=2}var j;if(e){var k=-1;for(j=c;jh&&(c=h-i),j=c;j>=0;j--){for(var l=!0,m=0;me&&(d=e)):d=e;var f=b.length;if(f%2!==0)throw new TypeError("Invalid hex string");d>f/2&&(d=f/2);for(var g=0;g239?4:f>223?3:f>191?2:1;if(e+h<=c){var i,j,k,l;switch(h){case 1:f<128&&(g=f);break;case 2:i=a[e+1],128===(192&i)&&(l=(31&f)<<6|63&i,l>127&&(g=l));break;case 3:i=a[e+1],j=a[e+2],128===(192&i)&&128===(192&j)&&(l=(15&f)<<12|(63&i)<<6|63&j,l>2047&&(l<55296||l>57343)&&(g=l));break;case 4:i=a[e+1],j=a[e+2],k=a[e+3],128===(192&i)&&128===(192&j)&&128===(192&k)&&(l=(15&f)<<18|(63&i)<<12|(63&j)<<6|63&k,l>65535&&l<1114112&&(g=l))}}null===g?(g=65533,h=1):g>65535&&(g-=65536,d.push(g>>>10&1023|55296),g=56320|1023&g),d.push(g),e+=h}return E(d)}function E(a){var b=a.length;if(b<=aa)return String.fromCharCode.apply(String,a);for(var c="",d=0;dd)&&(c=d);for(var e="",f=b;fc)throw new RangeError("Trying to access beyond buffer length")}function K(a,b,c,d,e,f){if(!g.isBuffer(a))throw new TypeError('"buffer" argument must be a Buffer instance');if(b>e||ba.length)throw new RangeError("Index out of range")}function L(a,b,c,d){b<0&&(b=65535+b+1);for(var e=0,f=Math.min(a.length-c,2);e>>8*(d?e:1-e)}function M(a,b,c,d){b<0&&(b=4294967295+b+1);for(var e=0,f=Math.min(a.length-c,4);e>>8*(d?e:3-e)&255}function N(a,b,c,d,e,f){if(c+d>a.length)throw new RangeError("Index out of range");if(c<0)throw new RangeError("Index out of range")}function O(a,b,c,d,e){return e||N(a,b,c,4,3.4028234663852886e38,-3.4028234663852886e38),$.write(a,b,c,d,23,4),c+4}function P(a,b,c,d,e){return e||N(a,b,c,8,1.7976931348623157e308,-1.7976931348623157e308),$.write(a,b,c,d,52,8),c+8}function Q(a){if(a=R(a).replace(ba,""),a.length<2)return"";for(;a.length%4!==0;)a+="=";return a}function R(a){return a.trim?a.trim():a.replace(/^\s+|\s+$/g,"")}function S(a){ +return a<16?"0"+a.toString(16):a.toString(16)}function T(a,b){b=b||1/0;for(var c,d=a.length,e=null,f=[],g=0;g55295&&c<57344){if(!e){if(c>56319){(b-=3)>-1&&f.push(239,191,189);continue}if(g+1===d){(b-=3)>-1&&f.push(239,191,189);continue}e=c;continue}if(c<56320){(b-=3)>-1&&f.push(239,191,189),e=c;continue}c=(e-55296<<10|c-56320)+65536}else e&&(b-=3)>-1&&f.push(239,191,189);if(e=null,c<128){if((b-=1)<0)break;f.push(c)}else if(c<2048){if((b-=2)<0)break;f.push(c>>6|192,63&c|128)}else if(c<65536){if((b-=3)<0)break;f.push(c>>12|224,c>>6&63|128,63&c|128)}else{if(!(c<1114112))throw new Error("Invalid code point");if((b-=4)<0)break;f.push(c>>18|240,c>>12&63|128,c>>6&63|128,63&c|128)}}return f}function U(a){for(var b=[],c=0;c>8,e=c%256,f.push(e),f.push(d);return f}function W(a){return Z.toByteArray(Q(a))}function X(a,b,c,d){for(var e=0;e=b.length||e>=a.length);++e)b[e+c]=a[e];return e}function Y(a){return a!==a}var Z=a("base64-js"),$=a("ieee754"),_=a("isarray");c.Buffer=g,c.SlowBuffer=q,c.INSPECT_MAX_BYTES=50,g.TYPED_ARRAY_SUPPORT=void 0!==b.TYPED_ARRAY_SUPPORT?b.TYPED_ARRAY_SUPPORT:d(),c.kMaxLength=e(),g.poolSize=8192,g._augment=function(a){return a.__proto__=g.prototype,a},g.from=function(a,b,c){return h(null,a,b,c)},g.TYPED_ARRAY_SUPPORT&&(g.prototype.__proto__=Uint8Array.prototype,g.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&g[Symbol.species]===g&&Object.defineProperty(g,Symbol.species,{value:null,configurable:!0})),g.alloc=function(a,b,c){return j(null,a,b,c)},g.allocUnsafe=function(a){return k(null,a)},g.allocUnsafeSlow=function(a){return k(null,a)},g.isBuffer=function(a){return!(null==a||!a._isBuffer)},g.compare=function(a,b){if(!g.isBuffer(a)||!g.isBuffer(b))throw new TypeError("Arguments must be Buffers");if(a===b)return 0;for(var c=a.length,d=b.length,e=0,f=Math.min(c,d);e0&&(a=this.toString("hex",0,b).match(/.{2}/g).join(" "),this.length>b&&(a+=" ... ")),""},g.prototype.compare=function(a,b,c,d,e){if(!g.isBuffer(a))throw new TypeError("Argument must be a Buffer");if(void 0===b&&(b=0),void 0===c&&(c=a?a.length:0),void 0===d&&(d=0),void 0===e&&(e=this.length),b<0||c>a.length||d<0||e>this.length)throw new RangeError("out of range index");if(d>=e&&b>=c)return 0;if(d>=e)return-1;if(b>=c)return 1;if(b>>>=0,c>>>=0,d>>>=0,e>>>=0,this===a)return 0;for(var f=e-d,h=c-b,i=Math.min(f,h),j=this.slice(d,e),k=a.slice(b,c),l=0;le)&&(c=e),a.length>0&&(c<0||b<0)||b>this.length)throw new RangeError("Attempt to write outside buffer bounds");d||(d="utf8");for(var f=!1;;)switch(d){case"hex":return w(this,a,b,c);case"utf8":case"utf-8":return x(this,a,b,c);case"ascii":return y(this,a,b,c);case"latin1":case"binary":return z(this,a,b,c);case"base64":return A(this,a,b,c);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return B(this,a,b,c);default:if(f)throw new TypeError("Unknown encoding: "+d);d=(""+d).toLowerCase(),f=!0}},g.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var aa=4096;g.prototype.slice=function(a,b){var c=this.length;a=~~a,b=void 0===b?c:~~b,a<0?(a+=c,a<0&&(a=0)):a>c&&(a=c),b<0?(b+=c,b<0&&(b=0)):b>c&&(b=c),b0&&(e*=256);)d+=this[a+--b]*e;return d},g.prototype.readUInt8=function(a,b){return b||J(a,1,this.length),this[a]},g.prototype.readUInt16LE=function(a,b){return b||J(a,2,this.length),this[a]|this[a+1]<<8},g.prototype.readUInt16BE=function(a,b){return b||J(a,2,this.length),this[a]<<8|this[a+1]},g.prototype.readUInt32LE=function(a,b){return b||J(a,4,this.length),(this[a]|this[a+1]<<8|this[a+2]<<16)+16777216*this[a+3]},g.prototype.readUInt32BE=function(a,b){return b||J(a,4,this.length),16777216*this[a]+(this[a+1]<<16|this[a+2]<<8|this[a+3])},g.prototype.readIntLE=function(a,b,c){a|=0,b|=0,c||J(a,b,this.length);for(var d=this[a],e=1,f=0;++f=e&&(d-=Math.pow(2,8*b)),d},g.prototype.readIntBE=function(a,b,c){a|=0,b|=0,c||J(a,b,this.length);for(var d=b,e=1,f=this[a+--d];d>0&&(e*=256);)f+=this[a+--d]*e;return e*=128,f>=e&&(f-=Math.pow(2,8*b)),f},g.prototype.readInt8=function(a,b){return b||J(a,1,this.length),128&this[a]?(255-this[a]+1)*-1:this[a]},g.prototype.readInt16LE=function(a,b){b||J(a,2,this.length);var c=this[a]|this[a+1]<<8;return 32768&c?4294901760|c:c},g.prototype.readInt16BE=function(a,b){b||J(a,2,this.length);var c=this[a+1]|this[a]<<8;return 32768&c?4294901760|c:c},g.prototype.readInt32LE=function(a,b){return b||J(a,4,this.length),this[a]|this[a+1]<<8|this[a+2]<<16|this[a+3]<<24},g.prototype.readInt32BE=function(a,b){return b||J(a,4,this.length),this[a]<<24|this[a+1]<<16|this[a+2]<<8|this[a+3]},g.prototype.readFloatLE=function(a,b){return b||J(a,4,this.length),$.read(this,a,!0,23,4)},g.prototype.readFloatBE=function(a,b){return b||J(a,4,this.length),$.read(this,a,!1,23,4)},g.prototype.readDoubleLE=function(a,b){return b||J(a,8,this.length),$.read(this,a,!0,52,8)},g.prototype.readDoubleBE=function(a,b){return b||J(a,8,this.length),$.read(this,a,!1,52,8)},g.prototype.writeUIntLE=function(a,b,c,d){if(a=+a,b|=0,c|=0,!d){var e=Math.pow(2,8*c)-1;K(this,a,b,c,e,0)}var f=1,g=0;for(this[b]=255&a;++g=0&&(g*=256);)this[b+f]=a/g&255;return b+c},g.prototype.writeUInt8=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,1,255,0),g.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),this[b]=255&a,b+1},g.prototype.writeUInt16LE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):L(this,a,b,!0),b+2},g.prototype.writeUInt16BE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,2,65535,0),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):L(this,a,b,!1),b+2},g.prototype.writeUInt32LE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[b+3]=a>>>24,this[b+2]=a>>>16,this[b+1]=a>>>8,this[b]=255&a):M(this,a,b,!0),b+4},g.prototype.writeUInt32BE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,4,4294967295,0),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):M(this,a,b,!1),b+4},g.prototype.writeIntLE=function(a,b,c,d){if(a=+a,b|=0,!d){var e=Math.pow(2,8*c-1);K(this,a,b,c,e-1,-e)}var f=0,g=1,h=0;for(this[b]=255&a;++f>0)-h&255;return b+c},g.prototype.writeIntBE=function(a,b,c,d){if(a=+a,b|=0,!d){var e=Math.pow(2,8*c-1);K(this,a,b,c,e-1,-e)}var f=c-1,g=1,h=0;for(this[b+f]=255&a;--f>=0&&(g*=256);)a<0&&0===h&&0!==this[b+f+1]&&(h=1),this[b+f]=(a/g>>0)-h&255;return b+c},g.prototype.writeInt8=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,1,127,-128),g.TYPED_ARRAY_SUPPORT||(a=Math.floor(a)),a<0&&(a=255+a+1),this[b]=255&a,b+1},g.prototype.writeInt16LE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8):L(this,a,b,!0),b+2},g.prototype.writeInt16BE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,2,32767,-32768),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>8,this[b+1]=255&a):L(this,a,b,!1),b+2},g.prototype.writeInt32LE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,4,2147483647,-2147483648),g.TYPED_ARRAY_SUPPORT?(this[b]=255&a,this[b+1]=a>>>8,this[b+2]=a>>>16,this[b+3]=a>>>24):M(this,a,b,!0),b+4},g.prototype.writeInt32BE=function(a,b,c){return a=+a,b|=0,c||K(this,a,b,4,2147483647,-2147483648),a<0&&(a=4294967295+a+1),g.TYPED_ARRAY_SUPPORT?(this[b]=a>>>24,this[b+1]=a>>>16,this[b+2]=a>>>8,this[b+3]=255&a):M(this,a,b,!1),b+4},g.prototype.writeFloatLE=function(a,b,c){return O(this,a,b,!0,c)},g.prototype.writeFloatBE=function(a,b,c){return O(this,a,b,!1,c)},g.prototype.writeDoubleLE=function(a,b,c){return P(this,a,b,!0,c)},g.prototype.writeDoubleBE=function(a,b,c){return P(this,a,b,!1,c)},g.prototype.copy=function(a,b,c,d){if(c||(c=0),d||0===d||(d=this.length),b>=a.length&&(b=a.length),b||(b=0),d>0&&d=this.length)throw new RangeError("sourceStart out of bounds");if(d<0)throw new RangeError("sourceEnd out of bounds");d>this.length&&(d=this.length),a.length-b=0;--e)a[e+b]=this[e+c];else if(f<1e3||!g.TYPED_ARRAY_SUPPORT)for(e=0;e>>=0,c=void 0===c?this.length:c>>>0,a||(a=0);var f;if("number"==typeof a)for(f=b;f0)throw new Error("Invalid string. Length must be a multiple of 4");f="="===a[h-2]?2:"="===a[h-1]?1:0,g=new k(3*h/4-f),d=f>0?h-4:h;var i=0;for(b=0,c=0;b>16&255,g[i++]=e>>8&255,g[i++]=255&e;return 2===f?(e=j[a.charCodeAt(b)]<<2|j[a.charCodeAt(b+1)]>>4,g[i++]=255&e):1===f&&(e=j[a.charCodeAt(b)]<<10|j[a.charCodeAt(b+1)]<<4|j[a.charCodeAt(b+2)]>>2,g[i++]=e>>8&255,g[i++]=255&e),g}function f(a){return i[a>>18&63]+i[a>>12&63]+i[a>>6&63]+i[63&a]}function g(a,b,c){for(var d,e=[],g=b;gk?k:j+h));return 1===d?(b=a[c-1],e+=i[b>>2],e+=i[b<<4&63],e+="=="):2===d&&(b=(a[c-2]<<8)+a[c-1],e+=i[b>>10],e+=i[b>>4&63],e+=i[b<<2&63],e+="="),f.push(e),f.join("")}c.toByteArray=e,c.fromByteArray=h;var i=[],j=[],k="undefined"!=typeof Uint8Array?Uint8Array:Array;d()},{}],71:[function(a,b,c){b.exports=a(59)},{}],72:[function(a,b,c){var d={}.toString;b.exports=Array.isArray||function(a){return"[object Array]"==d.call(a)}},{}],73:[function(a,b,c){function d(a,b){if(a.length%h!==0){var c=a.length+(h-a.length%h);a=g.concat([a,i],c)}for(var d=[],e=b?a.readInt32BE:a.readInt32LE,f=0;fn?b=a(b):b.length>5]|=128<>>9<<4)+14]=b;for(var c=1732584193,d=-271733879,e=-1732584194,k=271733878,l=0;l>16)+(b>>16)+(c>>16);return d<<16|65535&c}function k(a,b){return a<>>32-b}var l=a("./helpers");b.exports=function(a){return l.hash(a,d,16)}},{"./helpers":73}],76:[function(a,b,c){!function(){var a,c,d=this;a=function(a){for(var b,b,c=new Array(a),d=0;d>>((3&d)<<3)&255;return c},d.crypto&&crypto.getRandomValues&&(c=function(a){var b=new Uint8Array(a);return crypto.getRandomValues(b),b}),b.exports=c||a}()},{}],77:[function(a,b,c){function d(a,b){a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;for(var c=Array(80),d=1732584193,i=-271733879,j=-1732584194,k=271733878,l=-1009589776,m=0;m>16)+(b>>16)+(c>>16);return d<<16|65535&c}function h(a,b){return a<>>32-b}var i=a("./helpers");b.exports=function(a){return i.hash(a,d,20,!0)}},{"./helpers":73}],78:[function(a,b,c){var d=a("./helpers"),e=function(a,b){var c=(65535&a)+(65535&b),d=(a>>16)+(b>>16)+(c>>16);return d<<16|65535&c},f=function(a,b){return a>>>b|a<<32-b},g=function(a,b){return a>>>b},h=function(a,b,c){return a&b^~a&c},i=function(a,b,c){return a&b^a&c^b&c},j=function(a){return f(a,2)^f(a,13)^f(a,22)},k=function(a){return f(a,6)^f(a,11)^f(a,25)},l=function(a){return f(a,7)^f(a,18)^g(a,3)},m=function(a){return f(a,17)^f(a,19)^g(a,10)},n=function(a,b){var c,d,f,g,n,o,p,q,r,s,t,u,v=new Array(1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298),w=new Array(1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225),x=new Array(64);a[b>>5]|=128<<24-b%32,a[(b+64>>9<<4)+15]=b;for(var r=0;r="a"&&a<="z"||a>="A"&&a<="Z"||"_"===a}function h(a){return a>="0"&&a<="9"||"-"===a}function i(a){return a>="a"&&a<="z"||a>="A"&&a<="Z"||a>="0"&&a<="9"||"_"===a}function j(){}function k(){}function l(a){this.runtime=a}function m(a){this._interpreter=a,this.functionTable={abs:{_func:this._functionAbs,_signature:[{types:[r]}]},avg:{_func:this._functionAvg,_signature:[{types:[z]}]},ceil:{_func:this._functionCeil,_signature:[{types:[r]}]},contains:{_func:this._functionContains,_signature:[{types:[t,u]},{types:[s]}]},ends_with:{_func:this._functionEndsWith,_signature:[{types:[t]},{types:[t]}]},floor:{_func:this._functionFloor,_signature:[{types:[r]}]},length:{_func:this._functionLength,_signature:[{types:[t,u,v]}]},map:{_func:this._functionMap,_signature:[{types:[x]},{types:[u]}]},max:{_func:this._functionMax,_signature:[{types:[z,A]}]},merge:{_func:this._functionMerge,_signature:[{types:[v],variadic:!0}]},max_by:{_func:this._functionMaxBy,_signature:[{types:[u]},{types:[x]}]},sum:{_func:this._functionSum,_signature:[{types:[z]}]},starts_with:{_func:this._functionStartsWith,_signature:[{types:[t]},{types:[t]}]},min:{_func:this._functionMin,_signature:[{types:[z,A]}]},min_by:{_func:this._functionMinBy,_signature:[{types:[u]},{types:[x]}]},type:{_func:this._functionType,_signature:[{types:[s]}]},keys:{_func:this._functionKeys,_signature:[{types:[v]}]},values:{_func:this._functionValues,_signature:[{types:[v]}]},sort:{_func:this._functionSort,_signature:[{types:[A,z]}]},sort_by:{_func:this._functionSortBy,_signature:[{types:[u]},{types:[x]}]},join:{_func:this._functionJoin,_signature:[{types:[t]},{types:[A]}]},reverse:{_func:this._functionReverse,_signature:[{types:[t,u]}]},to_array:{_func:this._functionToArray,_signature:[{types:[s]}]},to_string:{_func:this._functionToString,_signature:[{types:[s]}]},to_number:{_func:this._functionToNumber,_signature:[{types:[s]}]},not_null:{_func:this._functionNotNull,_signature:[{types:[s],variadic:!0}]}}}function n(a){var b=new k,c=b.parse(a);return c}function o(a){var b=new j;return b.tokenize(a)}function p(a,b){var c=new k,d=new m,e=new l(d);d._interpreter=e;var f=c.parse(b);return e.search(f,a)}var q;q="function"==typeof String.prototype.trimLeft?function(a){return a.trimLeft()}:function(a){return a.match(/^\s*(.*)/)[1]};var r=0,s=1,t=2,u=3,v=4,w=5,x=6,y=7,z=8,A=9,B="EOF",C="UnquotedIdentifier",D="QuotedIdentifier",E="Rbracket",F="Rparen",G="Comma",H="Colon",I="Rbrace",J="Number",K="Current",L="Expref",M="Pipe",N="Or",O="And",P="EQ",Q="GT",R="LT",S="GTE",T="LTE",U="NE",V="Flatten",W="Star",X="Filter",Y="Dot",Z="Not",$="Lbrace",_="Lbracket",aa="Lparen",ba="Literal",ca={".":Y,"*":W,",":G,":":H,"{":$,"}":I,"]":E,"(":aa,")":F,"@":K},da={"<":!0,">":!0,"=":!0,"!":!0},ea={" ":!0,"\t":!0,"\n":!0};j.prototype={tokenize:function(a){var b=[];this._current=0;for(var c,d,e;this._current"===c?"="===a[this._current]?(this._current++,{type:S,value:">=",start:b}):{type:Q,value:">",start:b}:"="===c&&"="===a[this._current]?(this._current++,{type:P,value:"==",start:b}):void 0},_consumeLiteral:function(a){this._current++;for(var b,c=this._current,d=a.length;"`"!==a[this._current]&&this._current=0)return!0;if(c.indexOf(a)>=0)return!0;if(!(d.indexOf(a[0])>=0))return!1;try{return JSON.parse(a),!0}catch(a){return!1}}};var fa={};fa[B]=0,fa[C]=0,fa[D]=0,fa[E]=0,fa[F]=0,fa[G]=0,fa[I]=0,fa[J]=0,fa[K]=0,fa[L]=0,fa[M]=1,fa[N]=2,fa[O]=3,fa[P]=5,fa[Q]=5,fa[R]=5,fa[S]=5,fa[T]=5,fa[U]=5,fa[V]=9,fa[W]=20,fa[X]=21,fa[Y]=40,fa[Z]=45,fa[$]=50,fa[_]=55,fa[aa]=60,k.prototype={parse:function(a){this._loadTokens(a),this.index=0;var b=this.expression(0);if(this._lookahead(0)!==B){var c=this._lookaheadToken(0),d=new Error("Unexpected token type: "+c.type+", value: "+c.value);throw d.name="ParserError",d}return b},_loadTokens:function(a){var b=new j,c=b.tokenize(a);c.push({type:B,value:"",start:a.length}),this.tokens=c},expression:function(a){var b=this._lookaheadToken(0);this._advance();for(var c=this.nud(b),d=this._lookahead(0);a=0?this.expression(a):b===_?(this._match(_),this._parseMultiselectList()):b===$?(this._match($),this._parseMultiselectHash()):void 0},_parseProjectionRHS:function(a){var b;if(fa[this._lookahead(0)]<10)b={type:"Identity"};else if(this._lookahead(0)===_)b=this.expression(a);else if(this._lookahead(0)===X)b=this.expression(a);else{if(this._lookahead(0)!==Y){var c=this._lookaheadToken(0),d=new Error("Sytanx error, unexpected token: "+c.value+"("+c.type+")");throw d.name="ParserError",d}this._match(Y),b=this._parseDotRHS(a)}return b},_parseMultiselectList:function(){for(var a=[];this._lookahead(0)!==E;){var b=this.expression(0);if(a.push(b),this._lookahead(0)===G&&(this._match(G),this._lookahead(0)===E))throw new Error("Unexpected token Rbracket")}return this._match(E),{type:"MultiSelectList",children:a}},_parseMultiselectHash:function(){for(var a,b,c,d,e=[],f=[C,D];;){if(a=this._lookaheadToken(0),f.indexOf(a.type)<0)throw new Error("Expecting an identifier token, got: "+a.type);if(b=a.value,this._advance(),this._match(H),c=this.expression(0),d={type:"KeyValuePair",name:b,value:c},e.push(d),this._lookahead(0)===G)this._match(G);else if(this._lookahead(0)===I){this._match(I);break}}return{type:"MultiSelectHash",children:e}}},l.prototype={search:function(a,b){return this.visit(a,b)},visit:function(a,g){var h,i,j,k,l,m,n,o,p,q;switch(a.type){case"Field":return null===g?null:c(g)?(m=g[a.name],void 0===m?null:m):null;case"Subexpression":for(j=this.visit(a.children[0],g),q=1;q0)for(q=u;qv;q+=w)j.push(g[q]);return j;case"Projection":var x=this.visit(a.children[0],g);if(!b(x))return null;for(p=[],q=0;ql;break;case S:j=k>=l;break;case R:j=k=a&&(b=c<0?a-1:a),b}},m.prototype={callFunction:function(a,b){var c=this.functionTable[a];if(void 0===c)throw new Error("Unknown function: "+a+"()");return this._validateArgs(a,b,c._signature),c._func.call(this,b)},_validateArgs:function(a,b,c){var d;if(c[c.length-1].variadic){if(b.length=0;e--)d+=c[e];return d}var f=a[0].slice(0);return f.reverse(),f},_functionAbs:function(a){return Math.abs(a[0])},_functionCeil:function(a){return Math.ceil(a[0])},_functionAvg:function(a){for(var b=0,c=a[0],d=0;d=0},_functionFloor:function(a){return Math.floor(a[0])},_functionLength:function(a){return c(a[0])?Object.keys(a[0]).length:a[0].length},_functionMap:function(a){for(var b=[],c=this._interpreter,d=a[0],e=a[1],f=0;f0){var b=this._getTypeName(a[0][0]);if(b===r)return Math.max.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;e0){var b=this._getTypeName(a[0][0]);if(b===r)return Math.min.apply(Math,a[0]);for(var c=a[0],d=c[0],e=1;eh?1:gg&&(g=c,b=e[h]);return b},_functionMinBy:function(a){for(var b,c,d=a[1],e=a[0],f=this.createKeyFunction(d,[r,t]),g=1/0,h=0;h0&&i>h&&(i=h);for(var j=0;j=0?(k=o.substr(0,p),l=o.substr(p+1)):(k=o,l=""),m=decodeURIComponent(k),n=decodeURIComponent(l),d(f,m)?Array.isArray(f[m])?f[m].push(n):f[m]=[f[m],n]:f[m]=n}return f}},{}],81:[function(a,b,c){"use strict";var d=function(a){switch(typeof a){case"string":return a;case"boolean":return a?"true":"false";case"number":return isFinite(a)?a:"";default:return""}};b.exports=function(a,b,c,e){return b=b||"&",c=c||"=",null===a&&(a=void 0),"object"==typeof a?Object.keys(a).map(function(e){var f=encodeURIComponent(d(e))+c;return Array.isArray(a[e])?a[e].map(function(a){return f+encodeURIComponent(d(a))}).join(b):f+encodeURIComponent(d(a[e]))}).join(b):e?encodeURIComponent(d(e))+c+encodeURIComponent(d(a)):""}},{}],82:[function(a,b,c){arguments[4][66][0].apply(c,arguments)},{"./decode":80,"./encode":81}],83:[function(a,b,c){function d(){this.protocol=null,this.slashes=null,this.auth=null,this.host=null,this.port=null,this.hostname=null,this.hash=null,this.search=null,this.query=null,this.pathname=null,this.path=null,this.href=null}function e(a,b,c){if(a&&j(a)&&a instanceof d)return a;var e=new d;return e.parse(a,b,c),e}function f(a){return i(a)&&(a=e(a)),a instanceof d?a.format():d.prototype.format.call(a)}function g(a,b){return e(a,!1,!0).resolve(b)}function h(a,b){return a?e(a,!1,!0).resolveObject(b):b}function i(a){return"string"==typeof a}function j(a){return"object"==typeof a&&null!==a}function k(a){return null===a}function l(a){return null==a}var m=a("punycode");c.parse=e,c.resolve=g,c.resolveObject=h,c.format=f,c.Url=d;var n=/^([a-z0-9.+-]+:)/i,o=/:[0-9]*$/,p=["<",">",'"',"`"," ","\r","\n","\t"],q=["{","}","|","\\","^","`"].concat(p),r=["'"].concat(q),s=["%","/","?",";","#"].concat(r),t=["/","?","#"],u=255,v=/^[a-z0-9A-Z_-]{0,63}$/,w=/^([a-z0-9A-Z_-]{0,63})(.*)$/,x={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},z={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},A=a("querystring");d.prototype.parse=function(a,b,c){if(!i(a))throw new TypeError("Parameter 'url' must be a string, not "+typeof a);var d=a;d=d.trim();var e=n.exec(d);if(e){e=e[0];var f=e.toLowerCase();this.protocol=f,d=d.substr(e.length)}if(c||e||d.match(/^\/\/[^@\/]+@[^@\/]+/)){var g="//"===d.substr(0,2);!g||e&&y[e]||(d=d.substr(2),this.slashes=!0)}if(!y[e]&&(g||e&&!z[e])){for(var h=-1,j=0;j127?"x":C[E];if(!D.match(v)){var G=q.slice(0,j),H=q.slice(j+1),I=C.match(w);I&&(G.push(I[1]),H.unshift(I[2])),H.length&&(d="/"+H.join(".")+d),this.hostname=G.join(".");break}}}if(this.hostname.length>u?this.hostname="":this.hostname=this.hostname.toLowerCase(),!p){for(var J=this.hostname.split("."),K=[],j=0;j0)&&c.host.split("@");q&&(c.auth=q.shift(),c.host=c.hostname=q.shift())}return c.search=a.search,c.query=a.query,k(c.pathname)&&k(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.href=c.format(),c}if(!o.length)return c.pathname=null,c.search?c.path="/"+c.search:c.path=null,c.href=c.format(),c;for(var r=o.slice(-1)[0],s=(c.host||a.host)&&("."===r||".."===r)||""===r,t=0,u=o.length;u>=0;u--)r=o[u],"."==r?o.splice(u,1):".."===r?(o.splice(u,1),t++):t&&(o.splice(u,1),t--);if(!m&&!n)for(;t--;t)o.unshift("..");!m||""===o[0]||o[0]&&"/"===o[0].charAt(0)||o.unshift(""),s&&"/"!==o.join("/").substr(-1)&&o.push("");var v=""===o[0]||o[0]&&"/"===o[0].charAt(0);if(p){c.hostname=c.host=v?"":o.length?o.shift():"";var q=!!(c.host&&c.host.indexOf("@")>0)&&c.host.split("@");q&&(c.auth=q.shift(),c.host=c.hostname=q.shift())}return m=m||c.host&&o.length,m&&!v&&o.unshift(""),o.length?c.pathname=o.join("/"):(c.pathname=null,c.path=null),k(c.pathname)&&k(c.search)||(c.path=(c.pathname?c.pathname:"")+(c.search?c.search:"")),c.auth=a.auth||c.auth,c.slashes=c.slashes||a.slashes,c.href=c.format(),c},d.prototype.parseHost=function(){var a=this.host,b=o.exec(a);b&&(b=b[0],":"!==b&&(this.port=b.substr(1)),a=a.substr(0,a.length-b.length)),a&&(this.hostname=a)}},{punycode:63,querystring:66}],84:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing attribute name of element "+a.name);if(null==c)throw new Error("Missing attribute value for attribute "+b+" of element "+a.name);this.name=this.stringify.attName(b),this.value=this.stringify.attValue(c)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){return" "+this.name+'="'+this.value+'"'},a}()}).call(this)},{"lodash/object/create":143}],85:[function(a,b,c){(function(){var c,d,e,f,g;g=a("./XMLStringifier"),d=a("./XMLDeclaration"),e=a("./XMLDocType"),f=a("./XMLElement"),b.exports=c=function(){function a(a,b){var c,d;if(null==a)throw new Error("Root element needs a name");null==b&&(b={}),this.options=b,this.stringify=new g(b),d=new f(this,"doc"),c=d.element(a),c.isRoot=!0,c.documentObject=this,this.rootObject=c,b.headless||(c.declaration(b),null==b.pubID&&null==b.sysID||c.doctype(b))}return a.prototype.root=function(){return this.rootObject},a.prototype.end=function(a){return this.toString(a)},a.prototype.toString=function(a){var b,c,d,e,f,g,h,i;return e=(null!=a?a.pretty:void 0)||!1,b=null!=(g=null!=a?a.indent:void 0)?g:" ",d=null!=(h=null!=a?a.offset:void 0)?h:0,c=null!=(i=null!=a?a.newline:void 0)?i:"\n",f="",null!=this.xmldec&&(f+=this.xmldec.toString(a)),null!=this.doctype&&(f+=this.doctype.toString(a)),f+=this.rootObject.toString(a),e&&f.slice(-c.length)===c&&(f=f.slice(0,-c.length)),f},a}()}).call(this)},{"./XMLDeclaration":92,"./XMLDocType":93,"./XMLElement":94,"./XMLStringifier":98}],86:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing CDATA text");this.text=this.stringify.cdata(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":95,"lodash/object/create":143}],87:[function(a,b,c){(function(){var c,d,e,f=function(a,b){function c(){this.constructor=a}for(var d in b)g.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},g={}.hasOwnProperty;e=a("lodash/object/create"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c){if(b.__super__.constructor.call(this,a),null==c)throw new Error("Missing comment text");this.text=this.stringify.comment(c)}return f(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":95,"lodash/object/create":143}],88:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c,d,e,f){if(this.stringify=a.stringify,null==b)throw new Error("Missing DTD element name");if(null==c)throw new Error("Missing DTD attribute name");if(!d)throw new Error("Missing DTD attribute type");if(!e)throw new Error("Missing DTD attribute default");if(0!==e.indexOf("#")&&(e="#"+e),!e.match(/^(#REQUIRED|#IMPLIED|#FIXED|#DEFAULT)$/))throw new Error("Invalid default value type; expected: #REQUIRED, #IMPLIED, #FIXED or #DEFAULT");if(f&&!e.match(/^(#FIXED|#DEFAULT)$/))throw new Error("Default value only applies to #FIXED or #DEFAULT");this.elementName=this.stringify.eleName(b),this.attributeName=this.stringify.attName(c),this.attributeType=this.stringify.dtdAttType(d),this.defaultValue=this.stringify.dtdAttDefault(f),this.defaultValueType=e}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":143}],89:[function(a,b,c){(function(){var c,d,e;d=a("lodash/object/create"),e=a("lodash/lang/isArray"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing DTD element name");c||(c="(#PCDATA)"),e(c)&&(c="("+c.join(",")+")"),this.name=this.stringify.eleName(b),this.value=this.stringify.dtdElementValue(c)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/lang/isArray":135,"lodash/object/create":143}],90:[function(a,b,c){(function(){var c,d,e;d=a("lodash/object/create"),e=a("lodash/lang/isObject"),b.exports=c=function(){function a(a,b,c,d){if(this.stringify=a.stringify,null==c)throw new Error("Missing entity name");if(null==d)throw new Error("Missing entity value");if(this.pe=!!b,this.name=this.stringify.eleName(c),e(d)){if(!d.pubID&&!d.sysID)throw new Error("Public and/or system identifiers are required for an external entity");if(d.pubID&&!d.sysID)throw new Error("System identifier is required for a public external entity");if(null!=d.pubID&&(this.pubID=this.stringify.dtdPubID(d.pubID)),null!=d.sysID&&(this.sysID=this.stringify.dtdSysID(d.sysID)),null!=d.nData&&(this.nData=this.stringify.dtdNData(d.nData)),this.pe&&this.nData)throw new Error("Notation declaration is not allowed in a parameter entity")}else this.value=this.stringify.dtdEntityValue(d)}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/lang/isObject":139,"lodash/object/create":143}],91:[function(a,b,c){(function(){var c,d;d=a("lodash/object/create"),b.exports=c=function(){function a(a,b,c){if(this.stringify=a.stringify,null==b)throw new Error("Missing notation name");if(!c.pubID&&!c.sysID)throw new Error("Public or system identifiers are required for an external entity");this.name=this.stringify.eleName(b),null!=c.pubID&&(this.pubID=this.stringify.dtdPubID(c.pubID)),null!=c.sysID&&(this.sysID=this.stringify.dtdSysID(c.sysID))}return a.prototype.clone=function(){return d(a.prototype,this)},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},a}()}).call(this)},{"lodash/object/create":143}],92:[function(a,b,c){(function(){var c,d,e,f,g=function(a,b){function c(){this.constructor=a}for(var d in b)h.call(b,d)&&(a[d]=b[d]);return c.prototype=b.prototype,a.prototype=new c,a.__super__=b.prototype,a},h={}.hasOwnProperty;e=a("lodash/object/create"),f=a("lodash/lang/isObject"),d=a("./XMLNode"),b.exports=c=function(a){function b(a,c,d,e){var g;b.__super__.constructor.call(this,a),f(c)&&(g=c,c=g.version,d=g.encoding,e=g.standalone),c||(c="1.0"),null!=c&&(this.version=this.stringify.xmlVersion(c)),null!=d&&(this.encoding=this.stringify.xmlEncoding(d)),null!=e&&(this.standalone=this.stringify.xmlStandalone(e))}return g(b,a),b.prototype.clone=function(){return e(b.prototype,this)},b.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k;return f=(null!=a?a.pretty:void 0)||!1,c=null!=(h=null!=a?a.indent:void 0)?h:" ",e=null!=(i=null!=a?a.offset:void 0)?i:0,d=null!=(j=null!=a?a.newline:void 0)?j:"\n",b||(b=0),k=new Array(b+e+1).join(c),g="",f&&(g+=k),g+="",f&&(g+=d),g},b}(d)}).call(this)},{"./XMLNode":95,"lodash/lang/isObject":139,"lodash/object/create":143}],93:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l;k=a("lodash/object/create"),l=a("lodash/lang/isObject"),c=a("./XMLCData"),d=a("./XMLComment"),e=a("./XMLDTDAttList"),g=a("./XMLDTDEntity"),f=a("./XMLDTDElement"),h=a("./XMLDTDNotation"),j=a("./XMLProcessingInstruction"),b.exports=i=function(){function a(a,b,c){var d,e;this.documentObject=a,this.stringify=this.documentObject.stringify,this.children=[],l(b)&&(d=b,b=d.pubID,c=d.sysID),null==c&&(e=[b,c],c=e[0],b=e[1]),null!=b&&(this.pubID=this.stringify.dtdPubID(b)),null!=c&&(this.sysID=this.stringify.dtdSysID(c))}return a.prototype.clone=function(){return k(a.prototype,this)},a.prototype.element=function(a,b){var c;return c=new f(this,a,b),this.children.push(c),this},a.prototype.attList=function(a,b,c,d,f){var g;return g=new e(this,a,b,c,d,f),this.children.push(g),this},a.prototype.entity=function(a,b){var c;return c=new g(this,!1,a,b),this.children.push(c),this},a.prototype.pEntity=function(a,b){var c;return c=new g(this,!0,a,b),this.children.push(c),this},a.prototype.notation=function(a,b){var c;return c=new h(this,a,b),this.children.push(c),this},a.prototype.cdata=function(a){var b;return b=new c(this,a),this.children.push(b),this},a.prototype.comment=function(a){var b;return b=new d(this,a),this.children.push(b),this},a.prototype.instruction=function(a,b){var c;return c=new j(this,a,b),this.children.push(c),this},a.prototype.root=function(){return this.documentObject.root()},a.prototype.document=function(){return this.documentObject},a.prototype.toString=function(a,b){var c,d,e,f,g,h,i,j,k,l,m,n,o;if(i=(null!=a?a.pretty:void 0)||!1,e=null!=(k=null!=a?a.indent:void 0)?k:" ",h=null!=(l=null!=a?a.offset:void 0)?l:0,g=null!=(m=null!=a?a.newline:void 0)?m:"\n",b||(b=0),o=new Array(b+h+1).join(e),j="",i&&(j+=o),j+="0){for(j+=" [",i&&(j+=g),n=this.children,d=0,f=n.length;d",p&&(q+=n);else if(p&&1===this.children.length&&null!=this.children[0].value)q+=">",q+=this.children[0].value,q+="",q+=n;else{for(q+=">",p&&(q+=n),w=this.children,i=0,k=w.length;i",p&&(q+=n)}return q},b.prototype.att=function(a,b){return this.attribute(a,b)},b.prototype.ins=function(a,b){return this.instruction(a,b)},b.prototype.a=function(a,b){return this.attribute(a,b)},b.prototype.i=function(a,b){return this.instruction(a,b)},b}(e)}).call(this)},{"./XMLAttribute":84,"./XMLNode":95,"./XMLProcessingInstruction":96,"lodash/collection/every":101,"lodash/lang/isArray":135,"lodash/lang/isFunction":137,"lodash/lang/isObject":139,"lodash/object/create":143}],95:[function(a,b,c){(function(){var c,d,e,f,g,h,i,j,k,l,m,n,o={}.hasOwnProperty;n=a("lodash/lang/isObject"),k=a("lodash/lang/isArray"),m=a("lodash/lang/isFunction"),l=a("lodash/lang/isEmpty"),g=null,c=null,d=null,e=null,f=null,i=null,j=null,b.exports=h=function(){function b(b){this.parent=b,this.options=this.parent.options,this.stringify=this.parent.stringify,null===g&&(g=a("./XMLElement"),c=a("./XMLCData"),d=a("./XMLComment"),e=a("./XMLDeclaration"),f=a("./XMLDocType"),i=a("./XMLRaw"),j=a("./XMLText"))}return b.prototype.clone=function(){throw new Error("Cannot clone generic XMLNode")},b.prototype.element=function(a,b,c){var d,e,f,g,h,i,j;if(g=null,null==b&&(b={}),b=b.valueOf(),n(b)||(i=[b,c],c=i[0],b=i[1]),null!=a&&(a=a.valueOf()),k(a))for(e=0,h=a.length;e/))throw new Error("Invalid CDATA text: "+a);return this.assertLegalChar(a)},a.prototype.comment=function(a){if(a=""+a||"",a.match(/--/))throw new Error("Comment text cannot contain double-hypen: "+a);return this.assertLegalChar(a)},a.prototype.raw=function(a){return""+a||""},a.prototype.attName=function(a){return""+a||""},a.prototype.attValue=function(a){return a=""+a||"",this.attEscape(a)},a.prototype.insTarget=function(a){return""+a||""},a.prototype.insValue=function(a){if(a=""+a||"",a.match(/\?>/))throw new Error("Invalid processing instruction value: "+a);return a},a.prototype.xmlVersion=function(a){if(a=""+a||"",!a.match(/1\.[0-9]+/))throw new Error("Invalid version number: "+a);return a},a.prototype.xmlEncoding=function(a){if(a=""+a||"",!a.match(/[A-Za-z](?:[A-Za-z0-9._-]|-)*/))throw new Error("Invalid encoding: "+a);return a},a.prototype.xmlStandalone=function(a){return a?"yes":"no"},a.prototype.dtdPubID=function(a){return""+a||""},a.prototype.dtdSysID=function(a){return""+a||""},a.prototype.dtdElementValue=function(a){return""+a||""},a.prototype.dtdAttType=function(a){return""+a||""},a.prototype.dtdAttDefault=function(a){return null!=a?""+a||"":a},a.prototype.dtdEntityValue=function(a){return""+a||""},a.prototype.dtdNData=function(a){return""+a||""},a.prototype.convertAttKey="@",a.prototype.convertPIKey="?",a.prototype.convertTextKey="#text",a.prototype.convertCDataKey="#cdata",a.prototype.convertCommentKey="#comment",a.prototype.convertRawKey="#raw",a.prototype.convertListKey="#list",a.prototype.assertLegalChar=function(a){var b,c;if(b=this.allowSurrogateChars?/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uFFFE-\uFFFF]/:/[\u0000-\u0008\u000B-\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE-\uFFFF]/,c=a.match(b))throw new Error("Invalid character ("+c+") in string: "+a+" at index "+c.index);return a},a.prototype.elEscape=function(a){return a.replace(/&/g,"&").replace(//g,">").replace(/\r/g," ")},a.prototype.attEscape=function(a){return a.replace(/&/g,"&").replace(/3&&"function"==typeof g?(g=e(g,h,5),c-=2):(g=c>2&&"function"==typeof h?h:null,c-=g?1:0),i&&f(b[1],b[2],i)&&(g=3==c?null:g,c=2);for(var j=0;++ji))return!1;for(;k&&++h-1&&a%1==0&&a-1&&a%1==0&&a<=e}var e=Math.pow(2,53)-1;b.exports=d},{}],129:[function(a,b,c){function d(a){return a&&"object"==typeof a||!1}b.exports=d},{}],130:[function(a,b,c){function d(a){return a===a&&(0===a?1/a>0:!e(a))}var e=a("../lang/isObject");b.exports=d},{"../lang/isObject":139}],131:[function(a,b,c){(function(c){var d=a("../lang/isNative"),e=d(e=c.WeakMap)&&e,f=e&&new e;b.exports=f}).call(this,"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{"../lang/isNative":138}],132:[function(a,b,c){function d(a){for(var b=i(a),c=b.length,d=c&&a.length,k=d&&h(d)&&(f(a)||j.nonEnumArgs&&e(a)),m=-1,n=[];++m0;++d","=","!","skipChars"," ","\t","\n","tokens","_current","token","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","current","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","_lookahead","_lookaheadToken","rbp","leftToken","_advance","left","nud","currentToken","led","right","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","condition","leftNode","rightNode","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","exprTokens","expressions","keyToken","pairs","identifierTypes","visit","matched","field","collected","sliceParams","computed","computeSliceParams","stop","step","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","argValue","subtype","searchStr","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","listJoin","convertedValue","sortedArray","requiredType","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","keyFunc",80,81,82,83,"Url","slashes","parseQueryString","slashesDenoteHost","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","proto","exec","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","domainArray","newOut","p","ae","esc","qm","rel","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","last","hasTrailingSlash","up","isAbsolute",84,"XMLAttribute","parent","attName","attValue","clone","level","lodash/object/create",85,"XMLBuilder","XMLDeclaration","XMLDocType","XMLElement","XMLStringifier","documentObject","rootObject","headless","declaration","pubID","sysID","doctype","indent","newline","pretty","ref","ref1","ref2","xmldec","./XMLDeclaration","./XMLDocType","./XMLElement","./XMLStringifier",86,"XMLCData","XMLNode","extend","hasProp","superClass","cdata","space","./XMLNode",87,"XMLComment","comment",88,"XMLDTDAttList","elementName","attributeName","attributeType","defaultValueType","eleName","dtdAttType","dtdAttDefault",89,"XMLDTDElement","dtdElementValue","lodash/lang/isArray",90,"XMLDTDEntity","pe","dtdPubID","dtdSysID","nData","dtdNData","dtdEntityValue","lodash/lang/isObject",91,"XMLDTDNotation",92,"standalone","xmlVersion","xmlEncoding","xmlStandalone",93,"XMLProcessingInstruction","attList","entity","pEntity","notation","instruction","document","ref3","ent","pent","not","dat","com","ins","doc","./XMLCData","./XMLComment","./XMLDTDAttList","./XMLDTDElement","./XMLDTDEntity","./XMLDTDNotation","./XMLProcessingInstruction",94,"every","instructions","attribute","clonedSelf","pi","clonedChild","valueOf","skipNullAttributes","removeAttribute","insTarget","insValue","len1","ref4","ref5","./XMLAttribute","lodash/collection/every","lodash/lang/isFunction",95,"XMLRaw","XMLText","lastChild","ignoreDecorators","convertAttKey","convertPIKey","convertListKey","convertTextKey","convertCDataKey","convertCommentKey","convertRawKey","raw","insertBefore","removed","insertAfter","remove","next","importXMLBuilder","clonedRoot","nod","dec","dtd","./XMLRaw","./XMLText","lodash/lang/isEmpty",96,97,98,"bind","me","assertLegalChar","allowSurrogateChars","eleText","elEscape","attEscape","chars","chr",99,100,"assign","./XMLBuilder","lodash/object/assign",101,"collection","predicate","thisArg","func","arrayEvery","baseEvery","baseCallback","../internal/arrayEvery","../internal/baseCallback","../internal/baseEvery","../lang/isArray",102,103,"baseAssign","customizer","baseCopy","../object/keys","./baseCopy",104,"argCount","isBindable","bindCallback","identity","baseMatches","baseProperty","baseMatchesProperty","../utility/identity","./baseMatches","./baseMatchesProperty","./baseProperty","./bindCallback","./isBindable",105,106,"baseCreate","../lang/isObject",107,"baseEach","iteratee","isLength","baseForOwn","toObject","./baseForOwn","./isLength","./toObject",108,"./baseEach",109,"baseFor","keysFunc",110,"./baseFor",111,"baseIsEqual","other","isWhere","stackA","stackB","valType","othType","baseIsEqualDeep","./baseIsEqualDeep",112,"equalFunc","objIsArr","othIsArr","objTag","arrayTag","othTag","objToString","argsTag","objectTag","isTypedArray","objIsObj","othIsObj","isSameTag","equalByTag","valWrapped","othWrapped","equalArrays","equalObjects","objectProto","../lang/isTypedArray","./equalArrays","./equalByTag","./equalObjects",113,"baseIsFunction",114,"baseIsMatch","strictCompareFlags","noCustomizer","objValue","srcValue","./baseIsEqual",115,"isStrictComparable","./baseIsMatch","./isStrictComparable",116,117,118,"metaMap","baseSetData","./metaMap",119,"baseToString",120,"accumulator",121,"createAssigner","assigner","guard","isIterateeCall","./isIterateeCall",122,"othLength","arrValue","othValue","othIndex",123,"boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag",124,"objProps","objLength","othProps","hasCtor","objCtor","othCtor",125,"funcNames","funcDecomp","fnToString","reFuncName","reThis","isNative","Function","../lang/isNative","../support","./baseSetData",126,"isIndex","MAX_SAFE_INTEGER",127,"prereq","./isIndex",128,129,"isObjectLike",130,131,"WeakMap",132,"shimKeys","keysIn","propsLength","allowIndexes","nonEnumArgs","isArguments","../lang/isArguments","../object/keysIn",133,134,"../internal/isLength","../internal/isObjectLike",135,"nativeIsArray","./isNative",136,"./isArguments","./isArray","./isFunction","./isString",137,"funcTag","../internal/baseIsFunction",138,"reNative","reHostCtor","escapeRegExp","../string/escapeRegExp",139,140,141,"typedArrayTags","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",142,"../internal/baseAssign","../internal/createAssigner",143,"properties","../internal/baseCopy","../internal/baseCreate","../internal/isIterateeCall","./keys",144,"nativeKeys","Ctor","../internal/shimKeys",145,"isProto","skipIndexes","../internal/isIndex",146,"reHasRegExpChars","reRegExpChars","../internal/baseToString",147,"propertyIsEnumerable","WinRTError","dom","createDocumentFragment","./lang/isNative",148],"mappings":"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","file":"aws-cognito-sdk.min.js"} \ No newline at end of file +{"version":3,"sources":["../src/aws-cognito-sdk.js"],"names":["e","t","n","r","s","o","u","a","require","i","Error","f","exports","call","length","1","module","version","metadata","apiVersion","endpointPrefix","jsonVersion","protocol","serviceFullName","signatureVersion","targetPrefix","operations","CreateIdentityPool","input","type","required","members","IdentityPoolName","AllowUnauthenticatedIdentities","SupportedLoginProviders","shape","DeveloperProviderName","OpenIdConnectProviderARNs","CognitoIdentityProviders","SamlProviderARNs","output","DeleteIdentities","IdentityIdsToDelete","member","UnprocessedIdentityIds","IdentityId","ErrorCode","DeleteIdentityPool","IdentityPoolId","DescribeIdentity","DescribeIdentityPool","GetCredentialsForIdentity","Logins","CustomRoleArn","Credentials","AccessKeyId","SecretKey","SessionToken","Expiration","GetId","AccountId","GetIdentityPoolRoles","Roles","GetOpenIdToken","Token","GetOpenIdTokenForDeveloperIdentity","TokenDuration","ListIdentities","MaxResults","NextToken","HideDisabled","Identities","ListIdentityPools","IdentityPools","LookupDeveloperIdentity","DeveloperUserIdentifier","DeveloperUserIdentifierList","MergeDeveloperIdentities","SourceUserIdentifier","DestinationUserIdentifier","SetIdentityPoolRoles","UnlinkDeveloperIdentity","UnlinkIdentity","LoginsToRemove","UpdateIdentityPool","shapes","S4","key","value","S8","Sa","ProviderName","ClientId","Se","Sf","Sq","CreationDate","LastModifiedDate","Sr","Sv","S17","2","AddCustomAttributes","name","http","method","requestUri","errors","documentation","AdminAddUserToGroup","AdminConfirmSignUp","AdminCreateUser","AdminDeleteUser","AdminDeleteUserAttributes","AdminDisableProviderForUser","AdminDisableUser","AdminEnableUser","AdminForgetDevice","AdminGetDevice","AdminGetUser","AdminInitiateAuth","AdminLinkProviderForUser","AdminListDevices","AdminListGroupsForUser","AdminListUserAuthEvents","AdminRemoveUserFromGroup","AdminResetUserPassword","AdminRespondToAuthChallenge","AdminSetUserMFAPreference","AdminSetUserSettings","AdminUpdateAuthEventFeedback","AdminUpdateDeviceStatus","AdminUpdateUserAttributes","AdminUserGlobalSignOut","AssociateSoftwareToken","Authenticate","authtype","ChangePassword","ConfirmDevice","ConfirmForgotPassword","ConfirmSignUp","CreateGroup","CreateIdentityProvider","CreateResourceServer","CreateUserImportJob","CreateUserPool","CreateUserPoolClient","CreateUserPoolDomain","DeleteGroup","DeleteIdentityProvider","DeleteResourceServer","DeleteUser","DeleteUserAttributes","DeleteUserPool","DeleteUserPoolClient","DeleteUserPoolDomain","DescribeIdentityProvider","DescribeResourceServer","DescribeRiskConfiguration","DescribeUserImportJob","DescribeUserPool","DescribeUserPoolClient","DescribeUserPoolDomain","EnhanceAuth","ForgetDevice","ForgotPassword","GetAuthenticationDetails","GetCSVHeader","GetDevice","GetGroup","GetIdentityProviderByIdentifier","GetJWKS","GetOpenIdConfiguration","GetSigningCertificate","GetUICustomization","GetUser","GetUserAttributeVerificationCode","GetUserPoolMfaConfig","GetUserPoolUIConfiguration","GlobalSignOut","InitiateAuth","ListDevices","ListGroups","ListIdentityProviders","ListResourceServers","ListUserImportJobs","ListUserPoolClients","ListUserPools","ListUsers","ListUsersInGroup","RefreshTokens","ResendConfirmationCode","RespondToAuthChallenge","SetRiskConfiguration","SetUICustomization","SetUserMFAPreference","SetUserPoolMfaConfig","SetUserPoolUIConfiguration","SetUserSettings","SignUp","StartUserImportJob","StopUserImportJob","UpdateAuthEventFeedback","UpdateDeviceStatus","UpdateGroup","UpdateIdentityProvider","UpdateResourceServer","UpdateUserAttributes","UpdateUserPool","UpdateUserPoolClient","VerifySoftwareToken","VerifyUserAttribute","AValueHexStringType","max","min","pattern","AWSAccountIdType","AccountTakeoverActionNotifyType","AccountTakeoverActionType","Notify","EventAction","AccountTakeoverActionsType","LowAction","MediumAction","HighAction","AccountTakeoverEventActionType","enum","AccountTakeoverRiskConfigurationType","NotifyConfiguration","Actions","AddCustomAttributesRequest","UserPoolId","CustomAttributes","AddCustomAttributesResponse","AdminAddUserToGroupRequest","Username","GroupName","AdminConfirmSignUpRequest","AdminConfirmSignUpResponse","AdminCreateUserConfigType","AllowAdminCreateUserOnly","UnusedAccountValidityDays","InviteMessageTemplate","AdminCreateUserRequest","UserAttributes","ValidationData","TemporaryPassword","ForceAliasCreation","MessageAction","DesiredDeliveryMediums","AdminCreateUserResponse","User","AdminCreateUserUnusedAccountValidityDaysType","AdminDeleteUserAttributesRequest","UserAttributeNames","AdminDeleteUserAttributesResponse","AdminDeleteUserRequest","AdminDisableProviderForUserRequest","AdminDisableProviderForUserResponse","AdminDisableUserRequest","AdminDisableUserResponse","AdminEnableUserRequest","AdminEnableUserResponse","AdminForgetDeviceRequest","DeviceKey","AdminGetDeviceRequest","AdminGetDeviceResponse","Device","AdminGetUserRequest","AdminGetUserResponse","UserCreateDate","UserLastModifiedDate","Enabled","UserStatus","MFAOptions","AdminInitiateAuthRequest","AuthFlow","AuthParameters","ClientMetadata","AnalyticsMetadata","ContextData","AdminInitiateAuthResponse","ChallengeName","Session","ChallengeParameters","AuthenticationResult","AdminLinkProviderForUserRequest","DestinationUser","SourceUser","AdminLinkProviderForUserResponse","AdminListDevicesRequest","Limit","PaginationToken","AdminListDevicesResponse","Devices","AdminListGroupsForUserRequest","AdminListGroupsForUserResponse","Groups","AdminListUserAuthEventsRequest","AdminListUserAuthEventsResponse","AuthEvents","AdminRemoveUserFromGroupRequest","AdminResetUserPasswordRequest","AdminResetUserPasswordResponse","AdminRespondToAuthChallengeRequest","ChallengeResponses","AdminRespondToAuthChallengeResponse","AdminSetUserMFAPreferenceRequest","SMSMfaSettings","SoftwareTokenMfaSettings","AdminSetUserMFAPreferenceResponse","AdminSetUserSettingsRequest","AdminSetUserSettingsResponse","AdminUpdateAuthEventFeedbackRequest","EventId","FeedbackValue","AdminUpdateAuthEventFeedbackResponse","AdminUpdateDeviceStatusRequest","DeviceRememberedStatus","AdminUpdateDeviceStatusResponse","AdminUpdateUserAttributesRequest","AdminUpdateUserAttributesResponse","AdminUserGlobalSignOutRequest","AdminUserGlobalSignOutResponse","AdvancedSecurityModeType","AliasAttributeType","AliasAttributesListType","AliasExistsException","message","exception","AnalyticsConfigurationType","ApplicationId","RoleArn","ExternalId","UserDataShared","AnalyticsMetadataType","AnalyticsEndpointId","ArnType","AssociateSoftwareTokenRequest","AccessToken","AssociateSoftwareTokenResponse","SecretCode","AttributeDataType","AttributeListType","AttributeMappingKeyType","AttributeMappingType","AttributeNameListType","AttributeNameType","AttributeType","Name","Value","AttributeValueType","sensitive","AuthEventType","EventType","EventResponse","EventRisk","EventContextData","EventFeedback","AuthEventsType","AuthFlowType","AuthParametersType","AuthStateType","AuthenticateRequest","SecretHash","PasswordClaim","Timestamp","AuthenticateResponse","AuthState","CodeDeliveryDetails","AuthenticationResultType","ExpiresIn","TokenType","RefreshToken","IdToken","NewDeviceMetadata","BlobType","BlockedIPRangeListType","BooleanType","BotActionType","BotActionsType","BotEventActionType","BotRiskConfigurationType","EventFilter","CSSType","CSSVersionType","CallbackURLsListType","ChallengeNameType","ChallengeParametersType","ChallengeResponse","ChallengeResponseListType","ChallengeResponseType","ChallengeResponsesType","ChangePasswordRequest","PreviousPassword","ProposedPassword","ChangePasswordResponse","ClientIdType","ClientMetadataType","ClientNameType","ClientPermissionListType","ClientPermissionType","ClientSecretType","CodeDeliveryDetailsListType","CodeDeliveryDetailsType","Destination","DeliveryMedium","AttributeName","CodeDeliveryFailureException","CodeMismatchException","CompletionMessageType","CompromisedCredentialsActionsType","CompromisedCredentialsEventActionType","CompromisedCredentialsRiskConfigurationType","ConcurrentModificationException","ConfirmDeviceRequest","DeviceSecretVerifierConfig","DeviceName","ConfirmDeviceResponse","UserConfirmationNecessary","ConfirmForgotPasswordRequest","ConfirmationCode","Password","UserContextData","ConfirmForgotPasswordResponse","ConfirmSignUpRequest","ConfirmSignUpResponse","ConfirmationCodeType","ContextDataType","IpAddress","ServerName","ServerPath","HttpHeaders","EncodedData","CreateGroupRequest","Description","Precedence","CreateGroupResponse","Group","CreateIdentityProviderRequest","ProviderType","ProviderDetails","AttributeMapping","IdpIdentifiers","CreateIdentityProviderResponse","IdentityProvider","CreateResourceServerRequest","Identifier","Scopes","CreateResourceServerResponse","ResourceServer","CreateUserImportJobRequest","JobName","CloudWatchLogsRoleArn","CreateUserImportJobResponse","UserImportJob","CreateUserPoolClientRequest","ClientName","GenerateSecret","RefreshTokenValidity","ReadAttributes","WriteAttributes","ExplicitAuthFlows","SupportedIdentityProviders","CallbackURLs","LogoutURLs","DefaultRedirectURI","AllowedOAuthFlows","AllowedOAuthScopes","AllowedOAuthFlowsUserPoolClient","AnalyticsConfiguration","CreateUserPoolClientResponse","UserPoolClient","CreateUserPoolDomainRequest","Domain","CreateUserPoolDomainResponse","CreateUserPoolRequest","PoolName","Policies","LambdaConfig","AutoVerifiedAttributes","AliasAttributes","UsernameAttributes","SmsVerificationMessage","EmailVerificationMessage","EmailVerificationSubject","VerificationMessageTemplate","SmsAuthenticationMessage","MfaConfiguration","DeviceConfiguration","EmailConfiguration","SmsConfiguration","UserPoolTags","AdminCreateUserConfig","Schema","UserPoolAddOns","CreateUserPoolResponse","UserPool","CustomAttributeNameType","CustomAttributesListType","DateType","DefaultEmailOptionType","DeleteGroupRequest","DeleteIdentityProviderRequest","DeleteResourceServerRequest","DeleteUserAttributesRequest","DeleteUserAttributesResponse","DeleteUserPoolClientRequest","DeleteUserPoolDomainRequest","DeleteUserPoolDomainResponse","DeleteUserPoolRequest","DeleteUserRequest","DeliveryMediumListType","DeliveryMediumType","DescribeIdentityProviderRequest","DescribeIdentityProviderResponse","DescribeResourceServerRequest","DescribeResourceServerResponse","DescribeRiskConfigurationRequest","DescribeRiskConfigurationResponse","RiskConfiguration","DescribeUserImportJobRequest","JobId","DescribeUserImportJobResponse","DescribeUserPoolClientRequest","DescribeUserPoolClientResponse","DescribeUserPoolDomainRequest","DescribeUserPoolDomainResponse","DomainDescription","DescribeUserPoolRequest","DescribeUserPoolResponse","DescriptionType","DeviceConfigurationType","ChallengeRequiredOnNewDevice","DeviceOnlyRememberedOnUserPrompt","DeviceKeyType","DeviceListType","DeviceNameType","DeviceRememberedStatusType","DeviceSecretVerifierConfigType","PasswordVerifier","Salt","DeviceType","DeviceAttributes","DeviceCreateDate","DeviceLastModifiedDate","DeviceLastAuthenticatedDate","DomainDescriptionType","AWSAccountId","S3Bucket","CloudFrontDistribution","Version","Status","DomainStatusType","DomainType","DomainVersionType","DuplicateProviderException","EmailAddressType","EmailConfigurationType","SourceArn","ReplyToEmailAddress","EmailNotificationBodyType","EmailNotificationSubjectType","EmailVerificationMessageByLinkType","EmailVerificationMessageType","EmailVerificationSubjectByLinkType","EmailVerificationSubjectType","EnableSoftwareTokenMFAException","EnhanceAuthRequest","Code","EnhanceAuthResponse","EventContextDataType","Timezone","City","Country","EventFeedbackType","Provider","FeedbackDate","EventFilterType","EventFiltersType","EventIdType","EventResponseType","EventRiskType","RiskDecision","RiskLevel","ExpiredCodeException","ExplicitAuthFlowsListType","ExplicitAuthFlowsType","FeedbackValueType","ForgetDeviceRequest","ForgotPasswordRequest","ForgotPasswordResponse","GetAuthenticationDetailsRequest","SrpA","GetAuthenticationDetailsResponse","SrpB","SecretBlock","GetCSVHeaderRequest","GetCSVHeaderResponse","CSVHeader","GetDeviceRequest","GetDeviceResponse","GetGroupRequest","GetGroupResponse","GetIdentityProviderByIdentifierRequest","IdpIdentifier","GetIdentityProviderByIdentifierResponse","GetJWKSRequest","GetJWKSResponse","keys","cacheControl","GetOpenIdConfigurationRequest","GetOpenIdConfigurationResponse","issuer","jwks_uri","authorization_endpoint","subject_types_supported","response_types_supported","id_token_signing_alg_values_supported","GetSigningCertificateRequest","GetSigningCertificateResponse","Certificate","GetUICustomizationRequest","GetUICustomizationResponse","UICustomization","GetUserAttributeVerificationCodeRequest","GetUserAttributeVerificationCodeResponse","GetUserPoolMfaConfigRequest","GetUserPoolMfaConfigResponse","SmsMfaConfiguration","SoftwareTokenMfaConfiguration","GetUserPoolUIConfigurationRequest","GetUserPoolUIConfigurationResponse","UserPoolUIConfiguration","GetUserRequest","GetUserResponse","GlobalSignOutRequest","GlobalSignOutResponse","GroupExistsException","GroupListType","GroupNameType","GroupType","HexStringType","HttpHeader","headerName","headerValue","HttpHeaderList","IdentityProviderType","IdentityProviderTypeType","IdpIdentifierType","IdpIdentifiersListType","ImageFileType","ImageUrlType","InitiateAuthRequest","InitiateAuthResponse","IntegerType","InternalErrorException","fault","InvalidEmailRoleAccessPolicyException","InvalidLambdaResponseException","InvalidOAuthFlowException","InvalidParameterException","InvalidPasswordException","InvalidSmsRoleAccessPolicyException","InvalidSmsRoleTrustRelationshipException","InvalidUserPoolConfigurationException","KeyListType","KeyType","kty","alg","use","kid","LambdaConfigType","PreSignUp","CustomMessage","PostConfirmation","PreAuthentication","PostAuthentication","DefineAuthChallenge","CreateAuthChallenge","VerifyAuthChallengeResponse","PreTokenGeneration","LimitExceededException","ListDevicesRequest","ListDevicesResponse","ListGroupsRequest","ListGroupsResponse","ListIdentityProvidersRequest","ListIdentityProvidersResponse","Providers","ListOfStringTypes","ListProvidersLimitType","ListResourceServersLimitType","ListResourceServersRequest","ListResourceServersResponse","ResourceServers","ListUserImportJobsRequest","ListUserImportJobsResponse","UserImportJobs","ListUserPoolClientsRequest","ListUserPoolClientsResponse","UserPoolClients","ListUserPoolsRequest","ListUserPoolsResponse","UserPools","ListUsersInGroupRequest","ListUsersInGroupResponse","Users","ListUsersRequest","AttributesToGet","Filter","ListUsersResponse","LogoutURLsListType","LongType","MFAMethodNotFoundException","MFAOptionListType","MFAOptionType","MessageActionType","MessageTemplateType","SMSMessage","EmailMessage","EmailSubject","MessageType","NewDeviceMetadataType","DeviceGroupKey","NotAuthorizedException","NotifyConfigurationType","From","ReplyTo","BlockEmail","NoActionEmail","MfaEmail","NotifyEmailType","Subject","HtmlBody","TextBody","NumberAttributeConstraintsType","MinValue","MaxValue","OAuthFlowType","OAuthFlowsType","PaginationKey","PaginationKeyType","PasswordClaimType","Signature","PasswordPolicyMinLengthType","PasswordPolicyType","MinimumLength","RequireUppercase","RequireLowercase","RequireNumbers","RequireSymbols","PasswordResetRequiredException","PasswordType","PoolQueryLimitType","PreSignedUrlType","PrecedenceType","PreconditionNotMetException","ProviderDescription","ProviderDetailsType","ProviderNameType","ProviderNameTypeV1","ProviderUserIdentifierType","ProviderAttributeName","ProviderAttributeValue","ProvidersListType","QueryLimit","QueryLimitType","RedirectUrlType","RefreshTokenValidityType","RefreshTokensRequest","ClientSecret","RefreshTokensResponse","ResendConfirmationCodeRequest","ResendConfirmationCodeResponse","ResourceNotFoundException","ResourceServerIdentifierType","ResourceServerNameType","ResourceServerScopeDescriptionType","ResourceServerScopeListType","ResourceServerScopeNameType","ResourceServerScopeType","ScopeName","ScopeDescription","ResourceServerType","ResourceServersListType","RespondToAuthChallengeRequest","RespondToAuthChallengeResponse","RiskConfigurationType","CompromisedCredentialsRiskConfiguration","BotRiskConfiguration","AccountTakeoverRiskConfiguration","RiskExceptionConfiguration","RiskDecisionType","RiskExceptionConfigurationType","BlockedIPRangeList","SkippedIPRangeList","RiskLevelType","S3BucketType","SMSMfaSettingsType","PreferredMfa","SchemaAttributeType","DeveloperOnlyAttribute","box","Mutable","Required","NumberAttributeConstraints","StringAttributeConstraints","SchemaAttributesListType","ScopeDoesNotExistException","ScopeListType","ScopeType","SearchPaginationTokenType","SearchedAttributeNamesListType","SecretCodeType","SecretHashType","SessionType","SetRiskConfigurationRequest","SetRiskConfigurationResponse","SetUICustomizationRequest","CSS","ImageFile","SetUICustomizationResponse","SetUserMFAPreferenceRequest","SetUserMFAPreferenceResponse","SetUserPoolMfaConfigRequest","SetUserPoolMfaConfigResponse","SetUserPoolUIConfigurationRequest","Details","SetUserPoolUIConfigurationResponse","SetUserSettingsRequest","SetUserSettingsResponse","SignUpRequest","SignUpResponse","UserConfirmed","UserSub","SkippedIPRangeListType","SmsConfigurationType","SnsCallerArn","SmsMfaConfigType","SmsVerificationMessageType","SoftwareTokenMFANotFoundException","SoftwareTokenMFAUserCodeType","SoftwareTokenMfaConfigType","SoftwareTokenMfaSettingsType","StartUserImportJobRequest","StartUserImportJobResponse","StatusType","StopUserImportJobRequest","StopUserImportJobResponse","StringAttributeConstraintsType","MinLength","MaxLength","StringType","SupportedIdentityProvidersListType","TokenModelType","TooManyFailedAttemptsException","TooManyRequestsException","UICustomizationType","ImageUrl","CSSVersion","UIDetailsMapType","UnexpectedLambdaException","UnsupportedIdentityProviderException","UnsupportedUserStateException","UpdateAuthEventFeedbackRequest","FeedbackToken","UpdateAuthEventFeedbackResponse","UpdateDeviceStatusRequest","UpdateDeviceStatusResponse","UpdateGroupRequest","UpdateGroupResponse","UpdateIdentityProviderRequest","UpdateIdentityProviderResponse","UpdateResourceServerRequest","UpdateResourceServerResponse","UpdateUserAttributesRequest","UpdateUserAttributesResponse","CodeDeliveryDetailsList","UpdateUserPoolClientRequest","UpdateUserPoolClientResponse","UpdateUserPoolRequest","UpdateUserPoolResponse","UserContextDataType","encodedData","UserFilterType","UserImportInProgressException","UserImportJobIdType","UserImportJobNameType","UserImportJobStatusType","UserImportJobType","PreSignedUrl","StartDate","CompletionDate","ImportedUsers","SkippedUsers","FailedUsers","CompletionMessage","UserImportJobsListType","UserLambdaValidationException","UserNotConfirmedException","UserNotFoundException","UserPoolAddOnNotEnabledException","UserPoolAddOnsType","AdvancedSecurityMode","UserPoolClientDescription","UserPoolClientListType","UserPoolClientType","UserPoolDescriptionType","Id","UserPoolIdType","UserPoolListType","UserPoolMfaType","UserPoolNameType","UserPoolPolicyType","PasswordPolicy","UserPoolTaggingException","UserPoolTagsType","UserPoolType","SchemaAttributes","EstimatedNumberOfUsers","SmsConfigurationFailure","EmailConfigurationFailure","UserPoolUIConfigurationType","UserPoolUIDetailsType","UserStatusType","UserType","Attributes","UsernameAttributeType","UsernameAttributesListType","UsernameExistsException","UsernameType","UsersListType","VerificationMessageTemplateType","SmsMessage","EmailMessageByLink","EmailSubjectByLink","DefaultEmailOption","VerifiedAttributeType","VerifiedAttributesListType","VerifySoftwareTokenRequest","UserCode","FriendlyDeviceName","VerifySoftwareTokenResponse","VerifySoftwareTokenResponseType","VerifyUserAttributeRequest","VerifyUserAttributeResponse","openIdListType","openIdUrlType","3","acm","cors","apigateway","applicationautoscaling","prefix","autoscaling","cloudformation","cloudfront","versions","cloudhsm","cloudsearch","cloudsearchdomain","cloudtrail","cloudwatch","cloudwatchevents","cloudwatchlogs","codecommit","codedeploy","codepipeline","cognitoidentity","cognitoidentityserviceprovider","cognitosync","configservice","datapipeline","devicefarm","directconnect","directoryservice","discovery","dms","dynamodb","dynamodbstreams","ec2","ecr","ecs","efs","elasticache","elasticbeanstalk","elb","elbv2","emr","es","elastictranscoder","firehose","gamelift","glacier","iam","importexport","inspector","iot","iotdata","kinesis","kinesisanalytics","kms","lambda","machinelearning","marketplacecommerceanalytics","marketplacemetering","mobileanalytics","opsworks","rds","redshift","route53","route53domains","s3","dualstackAvailable","servicecatalog","ses","simpledb","snowball","sns","sqs","ssm","storagegateway","sts","support","swf","waf","workspaces","4","globalEndpoint","serviceAbbreviation","xmlNamespace","AssumeRole","RoleSessionName","Policy","DurationSeconds","SerialNumber","TokenCode","resultWrapper","AssumedRoleUser","PackedPolicySize","AssumeRoleWithSAML","PrincipalArn","SAMLAssertion","SubjectType","Issuer","Audience","NameQualifier","AssumeRoleWithWebIdentity","WebIdentityToken","ProviderId","SubjectFromWebIdentityToken","DecodeAuthorizationMessage","EncodedMessage","DecodedMessage","GetCallerIdentity","UserId","Account","Arn","GetFederationToken","FederatedUser","FederatedUserId","GetSessionToken","SecretAccessKey","AssumedRoleId","5","AWS","Service","apiLoader","services","CognitoIdentity","defineService","Object","defineProperty","get","model","enumerable","configurable","../apis/cognito-identity-2014-06-30.min.json","../lib/api_loader","../lib/core","../lib/node_loader","../lib/service","../lib/services/cognitoidentity","6","STS","../apis/sts-2011-06-15.min.json","../lib/services/sts","7","svc","hasOwnProperty","./core","8","window","AWSCognito","self","prototype","CognitoIdentityServiceProvider","../apis/cognito-idp-2016-04-18.min","../apis/sts-2011-06-15.min","./browser_loader","./services/sts","9","process","util","crypto","lib","Buffer","url","querystring","XML","Parser","browser","this","./api_loader","./http/xhr","./util","./xml/browser_parser","FWaASH","buffer/","crypto-browserify","querystring/","url/","10","Config","inherit","constructor","options","undefined","extractCredentials","each","set","getCredentials","callback","finish","err","credentials","credError","msg","error","code","getAsyncCredentials","getStaticCredentials","accessKeyId","secretAccessKey","credentialProvider","resolve","creds","update","allowUnknownKeys","hasService","loadFromPath","path","clear","JSON","parse","readFileSync","fileSystemCreds","FileSystemCredentials","chain","CredentialProviderChain","providers","unshift","property","defaultValue","merge","region","logger","apiVersions","endpoint","httpOptions","timeout","maxRetries","maxRedirects","paramValidation","sslEnabled","s3ForcePathStyle","s3BucketEndpoint","s3DisableBodySigning","computeChecksums","convertResponseTypes","correctClockSkew","customUserAgent","dynamoDbCrc32","systemClockOffset","signatureCache","retryDelayOptions","base","useAccelerateEndpoint","copy","setPromisesDependency","dep","addPromisesToRequests","Request","config","./credentials","./credentials/credential_provider_chain","11","_hidden","toString","VERSION","Signers","Protocol","Json","Query","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Shape","Paginator","ResourceWaiter","events","SequentialExecutor","./config","./credentials/cognito_identity_credentials","./credentials/saml_credentials","./credentials/temporary_credentials","./credentials/web_identity_credentials","./event_listeners","./http","./json/builder","./json/parser","./model/api","./model/operation","./model/paginator","./model/resource_waiter","./model/shape","./param_validator","./protocol/json","./protocol/query","./protocol/rest","./protocol/rest_json","./protocol/rest_xml","./request","./resource_waiter","./response","./sequential_executor","./service","./signers/request_signer","./xml/builder","12","hideProperties","expired","expireTime","arguments","sessionToken","expiryWindow","needsRefresh","currentTime","date","getDate","getTime","adjustedTime","Date","refresh","13","CognitoIdentityCredentials","localStorageKey","id","params","data","identityId","loadCachedId","createClients","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","poolId","loginId","LoginId","storage","cognito","loadCredentials","cacheId","getOpenIdToken","webIdentityCredentials","webErr","credentialsFrom","isBrowser","getStorage","actualProviders","cachedProviders","split","intersect","filter","indexOf","WebIdentityCredentials","setStorage","join","val","_","localStorage","setItem","removeItem","../../clients/cognitoidentity","../../clients/sts","../core","14","defaultProviders","slice","resolveNext","index","provider","getErr","15","SAMLCredentials","service","assumeRoleWithSAML","16","TemporaryCredentials","loadMasterCredentials","masterCredentials","operation","assumeRole","getSessionToken","17","assumeRoleWithWebIdentity","18","EventListeners","Core","addNamedListeners","add","addAsync","req","done","api","response","isGlobalEndpoint","rules","validation","ParamValidator","validate","haltHandlersOnError","getSignerClass","V4","body","httpRequest","computeSha256","sha","headers","string","byteLength","host","retryable","HttpRequest","retryCount","SignerClass","signer","signingName","setServiceClientId","_clientId","addAuthorization","signedAt","resp","successfulResponse","httpResp","httpResponse","stream","on","statusCode","request","emit","streaming","HttpClient","streamsApiVersion","read","progress","hostname","executeSend","getInstance","handleRequest","_abortCallback","timeDiff","buffers","numBytes","dateHeader","serverTime","isClockSkewed","applyClockOffset","chunk","isNode","total","loaded","push","buffer","concat","retryableError","match","clockSkewError","Endpoint","redirect","redirectCount","retryDelay","retryDelays","delay","willRetry","setTimeout","CorePost","extractRequestId","errno","originalError","Logger","buildMessage","time","delta","startTime","ansi","isTTY","status","inspect","serviceIdentifier","lowerFirst","line","log","write","buildRequest","extractData","extractError","19","useSSL","urlParse","port","parseInt","setUserAgent","customSuffix","userAgent","pathname","search","query","queryStringParse","queryParamsToString","HttpResponse","createUnbufferedStream","singleton","20","EventEmitter","XHRClient","errCallback","emitter","href","xhr","XMLHttpRequest","headersEmitted","addEventListener","readyState","HEADERS_RECEIVED","responseType","parseHeaders","getAllResponseHeaders","DONE","finishRequest","upload","evt","open","xhrAsync","setRequestHeader","xhrWithCredentials","withCredentials","send","rawHeaders","arrayEach","substring","toLowerCase","ab","view","Uint8Array","responseText","../http","21","JsonBuilder","translate","translateStructure","translateMap","translateList","translateScalar","structure","struct","memberShape","location","locationName","isLocationName","result","list","out","map","toWireFormat","build","stringify","../util","22","JsonParser","shapeMembers","toType","23","timestampFormat","memoizedProperty","replace","Collection","create","paginators","paginator","waiters","waiter","documentationUrl","./collection","./operation","./paginator","./shape","24","memoize","fn","nameTr","iterable","String","25","26","input_token","limit_key","more_results","output_token","result_key","27","forEach","28","obj","apply","memberName","xmlName","queryName","isStreaming","isComposite","xmlAttribute","CompositeShape","flattened","StructureShape","requiredMap","firstInit","isShape","xmlOrder","payload","uri","ListShape","oldName","MapShape","TimestampShape","toUTCString","parseTimestamp","format","StringShape","FloatShape","parseFloat","IntegerShape","BinaryShape","base64","decode","encode","Base64Shape","BooleanShape","normalizedTypes","character","double","long","short","biginteger","bigdecimal","blob","types","boolean","timestamp","float","integer","binary","refShape","filteredKeys","InlineShape","origType","29","context","validateMember","fail","validateStructure","validateType","paramName","paramValue","memberContext","param","validateList","validateMap","validateScalar","Array","validateRange","mapCount","validateString","validatePayload","validateNumber","validateEnum","validatePattern","RegExp","test","descriptor","acceptedTypes","foundInvalidType","isType","typeName","acceptedType","vowel","castedValue","Stream","isBuffer","30","target","builder","__type","pop","Message","parser","../json/builder","../json/parser","31","Action","QueryParamSerializer","serialize","requestId","Errors","origRules","tmp","memberNames","_XAMZRequestId","requestIdShape","../model/shape","../query/query_param_serializer","32","populateMethod","httpMethod","populateURI","httpPath","queryString","queryStringSet","regex","plus","uriEscapePath","uriEscape","isArray","parts","sort","populateHeaders","memberValue","k","v","header","33","populateBody","payloadShape","payloadMember","./json","./rest","34","rootElement","toXML","upperFirst","35","ucfirst","isQueryName","toUpperCase","substr","serializeStructure","serializeMember","serializeMap","position","keyName","valueName","serializeList","memberRules","suffix","36","generateRegionPrefix","derivedKeys","regionPrefix","item","applyConfig","configureEndpoint","regionConfig","patterns","useDualstack","isDualstackAvailable","./region_config.json","37","*/*","cn-*/*","*/cloudfront","*/iam","*/sts","*/importexport","*/route53","*/waf","us-gov-*/iam","us-gov-*/sts","us-gov-west-1/s3","us-west-1/s3","us-west-2/s3","eu-west-1/s3","ap-southeast-1/s3","ap-southeast-2/s3","ap-northeast-1/s3","sa-east-1/s3","us-east-1/s3","us-east-1/sdb","*/sdb","globalSSL","globalGovCloud","s3dash","38","isTerminalState","machine","hardErrorStates","_asm","currentState","AcceptorStateMachine","domain","jmespath","success","complete","fsm","setupStates","transition","_haltHandlersOnError","domainEmitter","domainThrown","addState","active","Response","states","emitEvent","runTo","state","abort","removeAllListeners","eachPage","wrappedCallback","hasNextPage","nextPage","noop","makeAsync","eachItem","paginationConfig","resultKey","items","continueIteration","isPageable","createReadStream","streams","PassThrough","readable","sent","event","nextTick","removeListener","HTTP_DATA","HTTP_ERROR","expectedLen","shouldCheckContentLength","isNaN","receivedLen","checkContentLengthAndEmit","end","httpStream","lengthAccumulator","_write","pipe","arg","eventName","args","eventParameters","origEmit","presign","expires","Presign","sign","toGet","isPresigned","toUnauthenticated","VALIDATE_CREDENTIALS","SIGN","buildAsGet","addListener","mixin","./state_machine","39","CHECK_ACCEPTORS","_waiter","acceptors","acceptorMatched","acceptor","matcher","matchers","expected","argument","setSuccess","setError","loadWaiterConfig","strictDeepEqual","pathAll","results","numResults","ind","pathAny","listeners","wait","makeRequest","maxAttempts","addListeners","40","numRetries","nextPageTokens","inputTokens","inputToken","cacheNextPageTokens","moreResults","exprs","outputToken","expr","41","_events","listener","onAsync","_isAsync","splice","eventArgs","doneCallback","count","callListeners","prevError","callNextListener","shift","callbacks","addNamedListener","addNamedAsyncListener","42","clientCount","loadServiceClass","ServiceClass","originalConfig","initialize","svcConfig","validateService","endpointFromTemplate","setEndpoint","serviceConfig","isEmpty","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","iso8601","selectedVersion","defaultRetryCount","addAllRequestListeners","makeUnauthenticatedRequest","waitFor","serviceInterface","VALIDATE_PARAMETERS","setupRequestListeners","RequestSigner","getVersion","calculateRetryDelay","networkingError","expiredCredentialsError","throttledError","throwException","defineMethods","features","_serviceMap","addVersions","identifier","superclass","setApi","isApi","./region_config","43","44","45","signedUrlBuilder","expiresHeader","signerClass","S3","unixTimestamp","signedUrlSigner","parsedUrl","queryParams","auth","rest","signature","SET_CONTENT_LENGTH","COMPUTE_SHA256","urlFormat","46","serviceClientId","getServiceClientId","V2","V3","V3Https","./presign","./s3","./v2","./v3","./v3https","./v4","47","subResources","acl","accelerate","lifecycle","delete","logging","notification","partNumber","policy","requestPayment","replication","restore","tagging","torrent","uploadId","uploads","versionId","versioning","website","responseHeaders","response-content-type","response-content-language","response-expires","response-cache-control","response-content-disposition","response-content-encoding","rfc822","stringToSign","canonicalizedAmzHeaders","canonicalizedResource","amzHeaders","b","resource","virtualHostedBucket","resources","subresource","decodeURIComponent","res","secret","hmac","48","SignatureVersion","SignatureMethod","AWSAccessKeyId","SecurityToken","49","datetime","authorization","signedHeaders","headersToSign","h","canonicalHeaders","trim","sha256","50","51","cachedSecret","cacheQueue","maxCacheEntries","serviceName","algorithm","updateForPresigned","addHeaders","credString","credentialString","qs","X-Amz-Date","X-Amz-Algorithm","X-Amz-Credential","X-Amz-Expires","X-Amz-SignedHeaders","isSignableHeader","lowerKey","sep","cache","cacheIdentifier","akid","kSecret","kDate","kRegion","kService","kCredentials","hexEncodedHash","canonicalString","hexEncodedBodyHash","canonicalHeaderValues","values","unsignableHeaders","52","finalState","bindObject","inputError","accept","acceptState","failState","53","engine","navigator","platform","agent","encodeURIComponent","escape","ch","charCodeAt","part","sortedKeys","ename","vals","toStream","pos","_read","size","offset","lstatSync","object","ini","currentSection","section","expectedArgs","toISOString","from","formatter","crc32Table","crc32","tbl","crc","readUInt8","digest","createHmac","md5","hash","createHash","sliceFn","arraySliceFn","ArrayBuffer","FileReader","reader","onerror","onload","buf","_continueReading","back","readAsArrayBuffer","toHex","iterFunction","ret","array","idx","obj1","obj2","dupe","prop","webkitSlice","mozSlice","str","stack","writable","klass","newObject","ctor","__super__","props","isValue","opts","cachedValue","hoistPayloadMember","responsePayload","fs","settings","start","Math","abs","ResponseMetadata","RequestId","PromiseDependency","Promise","promise","reject","customBackoff","random","pow","handleRequestWithRetries","cb","sendRequest","retryAfter","../apis/metadata.json","54","DomXmlParser","parseXml","xml","parseStructure","parseMap","parseList","parseUnknown","parseScalar","isXmlAttribute","attributes","textContent","xmlChild","getElementsByTagName","xmlKey","xmlValue","tagName","child","firstElementChild","nodeName","nextElementSibling","getAttribute","encoding","text","parentNode","childNodes","tag","DOMParser","parseFromString","syntaxError","documentElement","isError","errorElement","ActiveXObject","async","loadXML","55","XmlBuilder","serializeScalar","att","element","ele","applyNamespaces","entry","txt","xmlNamespaceUri","xmlNamespacePrefix","isRoot","noEmpty","children","root","xmlbuilder","56","57","subject","noZero","stringtrim","coerce","_useTypedArrays","_augment","_isBuffer","_set","isArrayish","_hexWrite","Number","remaining","strLen","assert","byte","_charsWritten","_utf8Write","charsWritten","blitBuffer","utf8ToBytes","_asciiWrite","asciiToBytes","_binaryWrite","_base64Write","base64ToBytes","_utf16leWrite","utf16leToBytes","_base64Slice","fromByteArray","_utf8Slice","decodeUtf8Char","fromCharCode","_asciiSlice","_binarySlice","_hexSlice","len","_utf16leSlice","bytes","_readUInt16","littleEndian","noAssert","_readUInt32","_readInt16","neg","_readInt32","_readFloat","ieee754","_readDouble","_writeUInt16","verifuint","j","_writeUInt32","_writeInt16","verifsint","_writeInt32","_writeFloat","verifIEEE754","_writeDouble","clamp","ceil","byteArray","c","hi","lo","toByteArray","src","dst","floor","SlowBuffer","INSPECT_MAX_BYTES","poolSize","arr","foo","subarray","isEncoding","totalLength","isFinite","swap","toJSON","_arr","target_start","source","sliceLen","newBuf","console","writeUInt8","readUInt16LE","readUInt16BE","readUInt32LE","readUInt32BE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","fill","toArrayBuffer","BP","_get","toLocaleString","base64-js","58","lookup","elt","PLUS","PLUS_URL_SAFE","SLASH","SLASH_URL_SAFE","NUMBER","UPPER","LOWER","b64ToByteArray","b64","L","l","placeHolders","charAt","Arr","uint8ToBase64","uint8","num","tripletToBase64","temp","extraBytes","base64js","59","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","rt","LN2","60","_maxListeners","isFunction","isNumber","isObject","isUndefined","defaultMaxListeners","setMaxListeners","TypeError","er","handler","newListener","warned","trace","once","g","fired","listenerCount","61","superCtor","super_","TempCtor","62","canSetImmediate","setImmediate","canPost","postMessage","queue","ev","stopPropagation","title","env","argv","off","binding","cwd","chdir","dir","63","global","RangeError","mapDomain","regexSeparators","ucs2decode","extra","counter","ucs2encode","stringFromCharCode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","numPoints","firstTime","damp","baseMinusTMin","tMax","skew","basic","oldi","w","baseMinusT","inputLength","initialN","bias","initialBias","lastIndexOf","delimiter","maxInt","tMin","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","regexPunycode","toASCII","regexNonASCII","freeExports","freeModule","freeGlobal","punycode","overflow","not-basic","invalid-input","ucs2","define","amd","nodeType","64","eq","regexp","maxKeys","kstr","vstr","x","xs","65","stringifyPrimitive","objectKeys","ks","66","./decode","./encode","67","68","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","style","styles","arrayToHash","recurseTimes","isString","primitive","formatPrimitive","visibleKeys","getOwnPropertyNames","formatError","isRegExp","isDate","braces","formatArray","formatProperty","reduceToSingleString","simple","isNull","desc","getOwnPropertyDescriptor","numLinesEst","reduce","prev","cur","ar","isNullOrUndefined","isSymbol","re","objectToString","isPrimitive","pad","getHours","getMinutes","getSeconds","months","getMonth","formatRegExp","objects","deprecate","deprecated","throwDeprecation","traceDeprecation","noDeprecation","debugEnviron","debugs","debuglog","NODE_DEBUG","pid","bold","italic","underline","inverse","white","grey","black","blue","cyan","green","magenta","red","yellow","special","number","null","inherits","origin","./support/isBuffer","69","typedArraySupport","__proto__","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","checked","actual","fromArrayLike","byteOffset","isnan","isView","loweredCase","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","bidirectionalIndexOf","arrayIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","parsed","utf8Write","asciiWrite","latin1Write","base64Write","ucs2Write","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","checkOffset","ext","checkInt","objectWriteUInt16","objectWriteUInt32","checkIEEE754","writeFloat","writeDouble","base64clean","INVALID_BASE64_RE","units","leadSurrogate","Symbol","species","allocUnsafeSlow","compare","y","swap16","swap32","swap64","equals","thisStart","thisEnd","thisCopy","targetCopy","includes","readUIntLE","mul","readUIntBE","readIntLE","readIntBE","writeUIntLE","maxBytes","writeUIntBE","writeIntLE","limit","sub","writeIntBE","targetStart","isarray","70","init","revLookup","encodeChunk","maxChunkLength","len2","71","72","73","toArray","bigEndian","intSize","zeroBuffer","toBuffer","hashSize","chrsz","74","blocksize","ipad","opad","algorithms","bufs","enc","rng","sha1","randomBytes","./md5","./rng","./sha","./sha256","75","core_md5","olda","oldb","oldc","oldd","md5_ff","md5_gg","md5_hh","md5_ii","safe_add","md5_cmn","bit_rol","lsw","msw","cnt","helpers","./helpers","76","mathRNG","whatwgRNG","_global","getRandomValues","77","core_sha1","olde","rol","sha1_ft","sha1_kt","78","S","X","R","Ch","z","Maj","Sigma0256","Sigma1256","Gamma0256","Gamma1256","core_sha256","T1","T2","K","HASH","W","79","first","second","firstType","keysSeen","key2","isFalse","objValues","isAlpha","isNum","isAlphaNum","Lexer","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","TYPE_NUMBER","avg","_functionAvg","TYPE_ARRAY_NUMBER","_functionCeil","contains","_functionContains","TYPE_STRING","TYPE_ARRAY","TYPE_ANY","ends_with","_functionEndsWith","_functionFloor","_functionLength","TYPE_OBJECT","_functionMap","TYPE_EXPREF","_functionMax","TYPE_ARRAY_STRING","_functionMerge","variadic","max_by","_functionMaxBy","sum","_functionSum","starts_with","_functionStartsWith","_functionMin","min_by","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","sort_by","_functionSortBy","_functionJoin","reverse","_functionReverse","to_array","_functionToArray","to_string","_functionToString","to_number","_functionToNumber","not_null","_functionNotNull","compile","ast","tokenize","lexer","expression","node","trimLeft","TYPE_BOOLEAN","TYPE_NULL","TOK_EOF","TOK_UNQUOTEDIDENTIFIER","TOK_QUOTEDIDENTIFIER","TOK_RBRACKET","TOK_RPAREN","TOK_COMMA","TOK_COLON","TOK_RBRACE","TOK_NUMBER","TOK_CURRENT","TOK_EXPREF","TOK_PIPE","TOK_OR","TOK_AND","TOK_EQ","TOK_GT","TOK_LT","TOK_GTE","TOK_LTE","TOK_NE","TOK_FLATTEN","TOK_STAR","TOK_FILTER","TOK_DOT","TOK_NOT","TOK_LBRACE","TOK_LBRACKET","TOK_LPAREN","TOK_LITERAL","basicTokens",".","*",",",":","{","}","]","(",")","@","operatorStartToken","<",">","=","!","skipChars"," ","\t","\n","tokens","_current","token","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","current","startingChar","literalString","_looksLikeJSON","startingChars","jsonLiterals","numberLooking","ex","bindingPower","_loadTokens","_lookahead","_lookaheadToken","rbp","leftToken","_advance","left","nud","currentToken","led","right","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","condition","leftNode","rightNode","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","exprTokens","expressions","keyToken","pairs","identifierTypes","visit","matched","field","collected","sliceParams","computed","computeSliceParams","stop","step","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","argValue","subtype","searchStr","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","elements","maxElement","localeCompare","minElement","listToSum","joinChar","listJoin","convertedValue","sortedArray","requiredType","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","keyFunc","80","81","82","83","Url","slashes","parseQueryString","slashesDenoteHost","urlResolve","relative","urlResolveObject","resolveObject","protocolPattern","portPattern","delims","unwise","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","javascript:","hostlessProtocol","slashedProtocol","https","ftp","gopher","file","http:","https:","ftp:","gopher:","file:","proto","exec","lowerProto","hostEnd","hec","atSign","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","domainArray","newOut","p","ae","esc","qm","rel","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","last","hasTrailingSlash","up","isAbsolute","84","XMLAttribute","parent","attName","attValue","clone","level","lodash/object/create","85","XMLBuilder","XMLDeclaration","XMLDocType","XMLElement","XMLStringifier","documentObject","rootObject","headless","declaration","pubID","sysID","doctype","indent","newline","pretty","ref","ref1","ref2","xmldec","./XMLDeclaration","./XMLDocType","./XMLElement","./XMLStringifier","86","XMLCData","XMLNode","extend","hasProp","superClass","cdata","space","./XMLNode","87","XMLComment","comment","88","XMLDTDAttList","elementName","attributeName","attributeType","defaultValueType","eleName","dtdAttType","dtdAttDefault","89","XMLDTDElement","dtdElementValue","lodash/lang/isArray","90","XMLDTDEntity","pe","dtdPubID","dtdSysID","nData","dtdNData","dtdEntityValue","lodash/lang/isObject","91","XMLDTDNotation","92","standalone","xmlVersion","xmlEncoding","xmlStandalone","93","XMLProcessingInstruction","attList","entity","pEntity","notation","instruction","document","ref3","ent","pent","not","dat","com","ins","doc","./XMLCData","./XMLComment","./XMLDTDAttList","./XMLDTDElement","./XMLDTDEntity","./XMLDTDNotation","./XMLProcessingInstruction","94","every","instructions","attribute","clonedSelf","pi","clonedChild","valueOf","skipNullAttributes","removeAttribute","insTarget","insValue","len1","ref4","ref5","./XMLAttribute","lodash/collection/every","lodash/lang/isFunction","95","XMLRaw","XMLText","lastChild","ignoreDecorators","convertAttKey","convertPIKey","convertListKey","convertTextKey","convertCDataKey","convertCommentKey","convertRawKey","raw","insertBefore","removed","insertAfter","remove","next","importXMLBuilder","clonedRoot","nod","dec","dtd","./XMLRaw","./XMLText","lodash/lang/isEmpty","96","97","98","bind","me","assertLegalChar","allowSurrogateChars","eleText","elEscape","attEscape","chars","chr","99","100","assign","./XMLBuilder","lodash/object/assign","101","collection","predicate","thisArg","func","arrayEvery","baseEvery","baseCallback","../internal/arrayEvery","../internal/baseCallback","../internal/baseEvery","../lang/isArray","102","103","baseAssign","customizer","baseCopy","../object/keys","./baseCopy","104","argCount","isBindable","bindCallback","identity","baseMatches","baseProperty","baseMatchesProperty","../utility/identity","./baseMatches","./baseMatchesProperty","./baseProperty","./bindCallback","./isBindable","105","106","baseCreate","../lang/isObject","107","baseEach","iteratee","isLength","baseForOwn","toObject","./baseForOwn","./isLength","./toObject","108","./baseEach","109","baseFor","keysFunc","110","./baseFor","111","baseIsEqual","other","isWhere","stackA","stackB","valType","othType","baseIsEqualDeep","./baseIsEqualDeep","112","equalFunc","objIsArr","othIsArr","objTag","arrayTag","othTag","objToString","argsTag","objectTag","isTypedArray","objIsObj","othIsObj","isSameTag","equalByTag","valWrapped","othWrapped","equalArrays","equalObjects","objectProto","../lang/isTypedArray","./equalArrays","./equalByTag","./equalObjects","113","baseIsFunction","114","baseIsMatch","strictCompareFlags","noCustomizer","objValue","srcValue","./baseIsEqual","115","isStrictComparable","./baseIsMatch","./isStrictComparable","116","117","118","metaMap","baseSetData","./metaMap","119","baseToString","120","accumulator","121","createAssigner","assigner","guard","isIterateeCall","./isIterateeCall","122","othLength","arrValue","othValue","othIndex","123","boolTag","dateTag","errorTag","numberTag","regexpTag","stringTag","124","objProps","objLength","othProps","hasCtor","objCtor","othCtor","125","funcNames","funcDecomp","fnToString","reFuncName","reThis","isNative","Function","../lang/isNative","../support","./baseSetData","126","isIndex","MAX_SAFE_INTEGER","127","prereq","./isIndex","128","129","isObjectLike","130","131","WeakMap","132","shimKeys","keysIn","propsLength","allowIndexes","nonEnumArgs","isArguments","../lang/isArguments","../object/keysIn","133","134","../internal/isLength","../internal/isObjectLike","135","nativeIsArray","./isNative","136","./isArguments","./isArray","./isFunction","./isString","137","funcTag","../internal/baseIsFunction","138","reNative","reHostCtor","escapeRegExp","../string/escapeRegExp","139","140","141","typedArrayTags","mapTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","142","../internal/baseAssign","../internal/createAssigner","143","properties","../internal/baseCopy","../internal/baseCreate","../internal/isIterateeCall","./keys","144","nativeKeys","Ctor","../internal/shimKeys","145","isProto","skipIndexes","../internal/isIndex","146","reHasRegExpChars","reRegExpChars","../internal/baseToString","147","propertyIsEnumerable","WinRTError","dom","createDocumentFragment","./lang/isNative","148"],"mappings":";;;;;;;;;;;;;;;;;;CAGA,QAAUA,GAAEC,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,MAAM,IAAIK,OAAM,uBAAuBL,EAAE,KAAK,GAAIM,GAAET,EAAEG,IAAIO,WAAYX,GAAEI,GAAG,GAAGQ,KAAKF,EAAEC,QAAQ,SAASZ,GAAG,GAAIE,GAAED,EAAEI,GAAG,GAAGL,EAAG,OAAOI,GAAEF,EAAEA,EAAEF,IAAIW,EAAEA,EAAEC,QAAQZ,EAAEC,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGO,QAAkD,IAAI,GAA1CH,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEW,OAAOT,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKW,GAAG,SAASP,EAAQQ,EAAOJ,GACrbI,EAAOJ,SACLK,QAAW,MACXC,UACEC,WAAc,aACdC,eAAkB,mBAClBC,YAAe,MACfC,SAAY,OACZC,gBAAmB,0BACnBC,iBAAoB,KACpBC,aAAgB,6BAElBC,YACEC,oBACEC,OACEC,KAAQ,YACRC,UACE,mBACA,kCAEFC,SACEC,oBACAC,gCACEJ,KAAQ,WAEVK,yBACEC,MAAS,MAEXC,yBACAC,2BACEF,MAAS,MAEXG,0BACEH,MAAS,MAEXI,kBACEJ,MAAS,QAIfK,QACEL,MAAS,OAGbM,kBACEb,OACEC,KAAQ,YACRC,UACE,uBAEFC,SACEW,qBACEb,KAAQ,OACRc,aAINH,QACEX,KAAQ,YACRE,SACEa,wBACEf,KAAQ,OACRc,QACEd,KAAQ,YACRE,SACEc,cACAC,mBAOZC,oBACEnB,OACEC,KAAQ,YACRC,UACE,kBAEFC,SACEiB,qBAINC,kBACErB,OACEC,KAAQ,YACRC,UACE,cAEFC,SACEc,gBAGJL,QACEL,MAAS,OAGbe,sBACEtB,OACEC,KAAQ,YACRC,UACE,kBAEFC,SACEiB,oBAGJR,QACEL,MAAS,OAGbgB,2BACEvB,OACEC,KAAQ,YACRC,UACE,cAEFC,SACEc,cACAO,QACEjB,MAAS,MAEXkB,mBAGJb,QACEX,KAAQ,YACRE,SACEc,cACAS,aACEzB,KAAQ,YACRE,SACEwB,eACAC,aACAC,gBACAC,YACE7B,KAAQ,kBAOpB8B,OACE/B,OACEC,KAAQ,YACRC,UACE,kBAEFC,SACE6B,aACAZ,kBACAI,QACEjB,MAAS,QAIfK,QACEX,KAAQ,YACRE,SACEc,iBAINgB,sBACEjC,OACEC,KAAQ,YACRC,UACE,kBAEFC,SACEiB,oBAGJR,QACEX,KAAQ,YACRE,SACEiB,kBACAc,OACE3B,MAAS,UAKjB4B,gBACEnC,OACEC,KAAQ,YACRC,UACE,cAEFC,SACEc,cACAO,QACEjB,MAAS,QAIfK,QACEX,KAAQ,YACRE,SACEc,cACAmB,YAINC,oCACErC,OACEC,KAAQ,YACRC,UACE,iBACA,UAEFC,SACEiB,kBACAH,cACAO,QACEjB,MAAS,MAEX+B,eACErC,KAAQ,UAIdW,QACEX,KAAQ,YACRE,SACEc,cACAmB,YAING,gBACEvC,OACEC,KAAQ,YACRC,UACE,iBACA,cAEFC,SACEiB,kBACAoB,YACEvC,KAAQ,WAEVwC,aACAC,cACEzC,KAAQ,aAIdW,QACEX,KAAQ,YACRE,SACEiB,kBACAuB,YACE1C,KAAQ,OACRc,QACER,MAAS,OAGbkC,gBAING,mBACE5C,OACEC,KAAQ,YACRC,UACE,cAEFC,SACEqC,YACEvC,KAAQ,WAEVwC,eAGJ7B,QACEX,KAAQ,YACRE,SACE0C,eACE5C,KAAQ,OACRc,QACEd,KAAQ,YACRE,SACEiB,kBACAhB,uBAINqC,gBAINK,yBACE9C,OACEC,KAAQ,YACRC,UACE,kBAEFC,SACEiB,kBACAH,cACA8B,2BACAP,YACEvC,KAAQ,WAEVwC,eAGJ7B,QACEX,KAAQ,YACRE,SACEc,cACA+B,6BACE/C,KAAQ,OACRc,WAEF0B,gBAINQ,0BACEjD,OACEC,KAAQ,YACRC,UACE,uBACA,4BACA,wBACA,kBAEFC,SACE+C,wBACAC,6BACA3C,yBACAY,oBAGJR,QACEX,KAAQ,YACRE,SACEc,iBAINmC,sBACEpD,OACEC,KAAQ,YACRC,UACE,iBACA,SAEFC,SACEiB,kBACAc,OACE3B,MAAS,UAKjB8C,yBACErD,OACEC,KAAQ,YACRC,UACE,aACA,iBACA,wBACA,2BAEFC,SACEc,cACAG,kBACAZ,yBACAuC,8BAINO,gBACEtD,OACEC,KAAQ,YACRC,UACE,aACA,SACA,kBAEFC,SACEc,cACAO,QACEjB,MAAS,MAEXgD,gBACEhD,MAAS,SAKjBiD,oBACExD,OACEO,MAAS,MAEXK,QACEL,MAAS,QAIfkD,QACEC,IACEzD,KAAQ,MACR0D,OACAC,UAEFC,IACE5D,KAAQ,OACRc,WAEF+C,IACE7D,KAAQ,OACRc,QACEd,KAAQ,YACRE,SACE4D,gBACAC,eAINC,IACEhE,KAAQ,OACRc,WAEFmD,IACEjE,KAAQ,YACRC,UACE,iBACA,mBACA,kCAEFC,SACEiB,kBACAhB,oBACAC,gCACEJ,KAAQ,WAEVK,yBACEC,MAAS,MAEXC,yBACAC,2BACEF,MAAS,MAEXG,0BACEH,MAAS,MAEXI,kBACEJ,MAAS,QAIf4D,IACElE,KAAQ,YACRE,SACEc,cACAO,QACEjB,MAAS,MAEX6D,cACEnE,KAAQ,aAEVoE,kBACEpE,KAAQ,eAIdqE,IACErE,KAAQ,OACRc,WAEFwD,IACEtE,KAAQ,MACR0D,OACAC,UAEFY,KACEvE,KAAQ,MACR0D,OACAC,iBAIAa,GAAG,SAAS7F,EAAQQ,EAAOJ,GACjCI,EAAOJ,SACLK,QAAU,MACVC,UACEC,WAAa,aACbC,eAAiB,cACjBC,YAAc,MACdC,SAAW,OACXC,gBAAkB,mCAClBC,iBAAmB,KACnBC,aAAe,qCAEjBC,YACE4E,qBACEC,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBK,QAAUL,MAAQ,+BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,kCACRA,MAAQ,2BAEXyE,cAAgB,mEAElBC,qBACEN,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,iGAElBE,oBACEP,KAAO,qBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,6BACjBK,QAAUL,MAAQ,8BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,8IAElBG,iBACER,KAAO,kBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,0BACjBK,QAAUL,MAAQ,2BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0BACRA,MAAQ,4BACRA,MAAQ,6BACRA,MAAQ,iCACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,gCACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,kCACRA,MAAQ,2BAEXyE,cAAgB,8WAElBI,iBACET,KAAO,kBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,0BACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,wGAElBK,2BACEV,KAAO,4BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,oCACjBK,QAAUL,MAAQ,qCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,oIAElBM,6BACEX,KAAO,8BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sCACjBK,QAAUL,MAAQ,uCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,4BAGbgF,kBACEZ,KAAO,mBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,2BACjBK,QAAUL,MAAQ,4BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,qHAElBQ,iBACEb,KAAO,kBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,0BACjBK,QAAUL,MAAQ,2BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,oHAElBS,mBACEd,KAAO,oBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,4BACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,0FAElBU,gBACEf,KAAO,iBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,yBACjBK,QAAUL,MAAQ,0BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,uFAElBW,cACEhB,KAAO,eACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,uBACjBK,QAAUL,MAAQ,wBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,6IAElBY,mBACEjB,KAAO,oBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,4BACjBK,QAAUL,MAAQ,6BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,+BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BAEXyE,cAAgB,yGAElBa,0BACElB,KAAO,2BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,mCACjBK,QAAUL,MAAQ,oCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,4BAGbuF,kBACEnB,KAAO,mBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,2BACjBK,QAAUL,MAAQ,4BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,qFAElBe,wBACEpB,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,4FAElBgB,yBACErB,KAAO,0BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,kCACjBK,QAAUL,MAAQ,mCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,qCACRA,MAAQ,4BAGb0F,0BACEtB,KAAO,2BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,mCACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,sGAElBkB,wBACEvB,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,wCACRA,MAAQ,0CACRA,MAAQ,6CACRA,MAAQ,2BAEXyE,cAAgB,kwBAElBmB,6BACExB,KAAO,8BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sCACjBK,QAAUL,MAAQ,uCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,0CACRA,MAAQ,2BACRA,MAAQ,+BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,yBACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,sCAEXyE,cAAgB,+GAElBoB,2BACEzB,KAAO,4BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,oCACjBK,QAAUL,MAAQ,qCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,4BAGb8F,sBACE1B,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,0HAElBsB,8BACE3B,KAAO,+BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,uCACjBK,QAAUL,MAAQ,wCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,qCACRA,MAAQ,4BAGbgG,yBACE5B,KAAO,0BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,kCACjBK,QAAUL,MAAQ,mCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,gGAElBwB,2BACE7B,KAAO,4BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,oCACjBK,QAAUL,MAAQ,qCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,yBACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,iRAElByB,wBACE9B,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,wGAElB0B,wBACE/B,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,uCAGboG,cACEhC,KAAO,eACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,uBACjBK,QAAUL,MAAQ,wBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,+BACRA,MAAQ,6BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,iCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,mCACRA,MAAQ,2BAEXyE,cAAgB,+QAChB4B,SAAW,QAEbC,gBACElC,KAAO,iBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,yBACjBK,QAAUL,MAAQ,0BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,mEAChB4B,SAAW,QAEbE,eACEnC,KAAO,gBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,wBACjBK,QAAUL,MAAQ,yBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,4BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,kGAElB+B,uBACEpC,KAAO,wBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,gCACjBK,QAAUL,MAAQ,iCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,mCACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,mFAChB4B,SAAW,QAEbI,eACErC,KAAO,gBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,wBACjBK,QAAUL,MAAQ,yBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,mCACRA,MAAQ,yBACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,8FAChB4B,SAAW,QAEbK,aACEtC,KAAO,cACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sBACjBK,QAAUL,MAAQ,uBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,yBACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,iGAElBkC,wBACEvC,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,+BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,4BAGb4G,sBACExC,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,4BAGb6G,qBACEzC,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBK,QAAUL,MAAQ,+BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,gCACRA,MAAQ,2BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,uCAElBqC,gBACE1C,KAAO,iBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,yBACjBK,QAAUL,MAAQ,0BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BAEXyE,cAAgB,4FAElBsC,sBACE3C,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BACRA,MAAQ,+BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,wCAElBuC,sBACE5C,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,4BAGbiH,aACE7C,KAAO,cACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sBACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,wHAElByC,wBACE9C,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,yCACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbmH,sBACE/C,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGboH,YACEhD,KAAO,aACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,qBACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,6CAChB4B,SAAW,QAEbgB,sBACEjD,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,4CAChB4B,SAAW,QAEbiB,gBACElD,KAAO,iBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,yBACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,kCACRA,MAAQ,2BAEXyE,cAAgB,0DAElB8C,sBACEnD,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,+DAElB+C,sBACEpD,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa;EAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,4BAGbyH,0BACErD,KAAO,2BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,mCACjBK,QAAUL,MAAQ,oCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGb0H,wBACEtD,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGb2H,2BACEvD,KAAO,4BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,oCACjBK,QAAUL,MAAQ,qCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,qCACRA,MAAQ,4BAGb4H,uBACExD,KAAO,wBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,gCACjBK,QAAUL,MAAQ,iCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,yCAElBoD,kBACEzD,KAAO,mBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,2BACjBK,QAAUL,MAAQ,4BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BAEXyE,cAAgB,yFAElBqD,wBACE1D,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,oHAElBsD,wBACE3D,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,4BAGbgI,aACE5D,KAAO,cACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sBACjBK,QAAUL,MAAQ,uBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,mCACRA,MAAQ,2BAEXyE,cAAgB,mJAChB4B,SAAW,QAEb4B,cACE7D,KAAO,eACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,uBACjBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,0CACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,wCAElByD,gBACE9D,KAAO,iBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,yBACjBK,QAAUL,MAAQ,0BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,iCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,2oBAChB4B,SAAW,QAEb8B,0BACE/D,KAAO,2BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,mCACjBK,QAAUL,MAAQ,oCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,yLAChB4B,SAAW,QAEb+B,cACEhE,KAAO,eACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,uBACjBK,QAAUL,MAAQ,wBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,qGAElB4D,WACEjE,KAAO,YACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,oBACjBK,QAAUL,MAAQ,qBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,2BAElB6D,UACElE,KAAO,WACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,mBACjBK,QAAUL,MAAQ,oBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,+DAElB8D,iCACEnE,KAAO,kCACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,0CACjBK,QAAUL,MAAQ,2CAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbwI,SACEpE,KAAO,UACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,kBACjBK,QAAUL,MAAQ,mBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,6DAChB4B,SAAW,QAEboC,wBACErE,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,gFAChB4B,SAAW,QAEbqC,uBACEtE,KAAO,wBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,gCACjBK,QAAUL,MAAQ,iCAClBwE,SACGxE,MAAQ,2BACRA,MAAQ,+BAGb2I,oBACEvE,KAAO,qBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,6BACjBK,QAAUL,MAAQ,8BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGb4I,SACExE,KAAO,UACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,kBACjBK,QAAUL,MAAQ,mBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,2DAChB4B,SAAW,QAEbwC,kCACEzE,KAAO,mCACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,2CACjBK,QAAUL,MAAQ,4CAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,iCACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,qFAChB4B,SAAW,QAEbyC,sBACE1E,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,4BAGb+I,4BACE3E,KAAO,6BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,qCACjBK,QAAUL,MAAQ,sCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbgJ,eACE5E,KAAO,gBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,wBACjBK,QAAUL,MAAQ,yBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,4CAElBwE,cACE7E,KAAO,eACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,uBACjBK,QAAUL,MAAQ,wBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,6CAElByE,aACE9E,KAAO,cACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sBACjBK,QAAUL,MAAQ,uBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,6BAElB0E,YACE/E,KAAO,aACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,qBACjBK,QAAUL,MAAQ,sBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,+FAElB2E,uBACEhF,KAAO,wBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,gCACjBK,QAAUL,MAAQ,iCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbqJ,qBACEjF,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBK,QAAUL,MAAQ,+BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbsJ,oBACElF,KAAO,qBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,6BACjBK,QAAUL,MAAQ,8BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,sCAElB8E,qBACEnF,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBK,QAAUL,MAAQ,+BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,gFAElB+E,eACEpF,KAAO,gBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,wBACjBK,QAAUL,MAAQ,yBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,+DAElBgF,WACErF,KAAO,YACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,oBACjBK,QAAUL,MAAQ,qBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,2DAElBiF,kBACEtF,KAAO,mBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,2BACjBK,QAAUL,MAAQ,4BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,yFAElBkF,eACEvF,KAAO,gBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,wBACjBK,QAAUL,MAAQ,yBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,2BAEXyE,cAAgB,2DAChB4B,SAAW,QAEbuD,wBACExF,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,iCACRA,MAAQ,0BACRA,MAAQ,2BAEXyE,cAAgB,0GAChB4B,SAAW,QAEbwD,wBACEzF,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,0CACRA,MAAQ,+BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,yBACRA,MAAQ,2BACRA,MAAQ,sCAEXyE,cAAgB,oDAElBqF,sBACE1F,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,qCACRA,MAAQ,4BAGb+J,oBACE3F,KAAO,qBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,6BACjBK,QAAUL,MAAQ,8BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbgK,sBACE5F,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,4BAGbiK,sBACE7F,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,8BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,2BACRA,MAAQ,4BAGbkK,4BACE9F,KAAO,6BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,qCACjBK,QAAUL,MAAQ,sCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGbmK,iBACE/F,KAAO,kBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,0BACjBK,QAAUL,MAAQ,2BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,+NAChB4B,SAAW,QAEb+D,QACEhG,KAAO,SACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iBACjBK,QAAUL,MAAQ,kBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,4BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,iCAEXyE,cAAgB,+GAChB4B,SAAW,QAEbgE,oBACEjG,KAAO,qBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,6BACjBK,QAAUL,MAAQ,8BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,gCACRA,MAAQ,2BAEXyE,cAAgB,kCAElB6F,mBACElG,KAAO,oBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,4BACjBK,QAAUL,MAAQ,6BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,gCACRA,MAAQ,2BAEXyE,cAAgB,qCAElB8F,yBACEnG,KAAO,0BACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,kCACjBK,QAAUL,MAAQ,mCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,0BACRA,MAAQ,qCACRA,MAAQ,4BAGbwK,oBACEpG,KAAO,qBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,6BACjBK,QAAUL,MAAQ,8BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,0CACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,qCAElBgG,aACErG,KAAO,cACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,sBACjBK,QAAUL,MAAQ,uBAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,2BAEXyE,cAAgB,4GAElBiG,wBACEtG,KAAO,yBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,iCACjBK,QAAUL,MAAQ,kCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,yCACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGb2K,sBACEvG,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,4BAGb4K,sBACExG,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,2BACRA,MAAQ,8BACRA,MAAQ,kCACRA,MAAQ,mCACRA,MAAQ,6BACRA,MAAQ,yBACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,0CACRA,MAAQ,iCACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,uEAChB4B,SAAW,QAEbwE,gBACEzG,KAAO,iBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,yBACjBK,QAAUL,MAAQ,0BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,oCACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,kCACRA,MAAQ,2BACRA,MAAQ,wCACRA,MAAQ,6CACRA,MAAQ,6BACRA,MAAQ,0CAEXyE,cAAgB,yEAElBqG,sBACE1G,KAAO,uBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,+BACjBK,QAAUL,MAAQ,gCAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,+BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,6FAElBsG,qBACE3G,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBK,QAAUL,MAAQ,+BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0CACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BACRA,MAAQ,oCACRA,MAAQ,sCACRA,MAAQ,2BAGbgL,qBACE5G,KAAO,sBACPC,MACEC,OAAS,OACTC,WAAa,KAEf9E,OAASO,MAAQ,8BACjBK,QAAUL,MAAQ,+BAClBwE,SACGxE,MAAQ,8BACRA,MAAQ,8BACRA,MAAQ,0BACRA,MAAQ,yBACRA,MAAQ,2BACRA,MAAQ,6BACRA,MAAQ,2BACRA,MAAQ,mCACRA,MAAQ,0BACRA,MAAQ,8BACRA,MAAQ,2BAEXyE,cAAgB,kEAChB4B,SAAW,SAGfnD,QACE+H,qBACEvL,KAAO,SACPwL,IAAM,KACNC,IAAM,EACNC,QAAU,kBAEZC,kBAAoB3L,KAAO,UAC3B4L,iCAAmC5L,KAAO,WAC1C6L,2BACE7L,KAAO,YACPC,UACE,SACA,eAEFC,SACE4L,QAAUxL,MAAQ,mCAClByL,aAAezL,MAAQ,oCAG3B0L,4BACEhM,KAAO,YACPE,SACE+L,WAAa3L,MAAQ,6BACrB4L,cAAgB5L,MAAQ,6BACxB6L,YAAc7L,MAAQ,+BAG1B8L,gCACEpM,KAAO,SACPqM,MACE,QACA,oBACA,eACA,cAGJC,sCACEtM,KAAO,YACPC,UAAY,WACZC,SACEqM,qBAAuBjM,MAAQ,2BAC/BkM,SAAWlM,MAAQ,gCAGvBmM,4BACEzM,KAAO,YACPC,UACE,aACA,oBAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,sFAElB4H,kBACErM,MAAQ,2BACRyE,cAAgB,oEAGpBA,cAAgB,2DAElB6H,6BACE5M,KAAO,YACPE,WAEA6E,cAAgB,4FAElB8H,4BACE7M,KAAO,YACPC,UACE,aACA,WACA,aAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElB+H,UACExM,MAAQ,eACRyE,cAAgB,qCAElBgI,WACEzM,MAAQ,gBACRyE,cAAgB,4BAItBiI,2BACEhN,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,4EAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0EAGpBA,cAAgB,+DAElBkI,4BACEjN,KAAO,YACPE,WAEA6E,cAAgB,2FAElBmI,2BACElN,KAAO,YACPE,SACEiN,0BACE7M,MAAQ,cACRyE,cAAgB;EAElBqI,2BACE9M,MAAQ,+CACRyE,cAAgB,oRAElBsI,uBACE/M,MAAQ,sBACRyE,cAAgB,iFAGpBA,cAAgB,qEAElBuI,wBACEtN,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,6EAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0LAElBwI,gBACEjN,MAAQ,oBACRyE,cAAgB,y+CAElByI,gBACElN,MAAQ,oBACRyE,cAAgB,6mBAElB0I,mBACEnN,MAAQ,eACRyE,cAAgB,iuBAElB2I,oBACEpN,MAAQ,qBACRyE,cAAgB,8lBAElB4I,eACErN,MAAQ,oBACRyE,cAAgB,oOAElB6I,wBACEtN,MAAQ,yBACRyE,cAAgB,gMAGpBA,cAAgB,8EAElB8I,yBACE7N,KAAO,YACPE,SACE4N,MACExN,MAAQ,WACRyE,cAAgB,kEAGpBA,cAAgB,qFAElBgJ,8CACE/N,KAAO,UACPwL,IAAM,IACNC,IAAM,GAERuC,kCACEhO,KAAO,YACPC,UACE,aACA,WACA,sBAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,uFAElB+H,UACExM,MAAQ,eACRyE,cAAgB,oFAElBkJ,oBACE3N,MAAQ,wBACRyE,cAAgB,yFAGpBA,cAAgB,gFAElBmJ,mCACElO,KAAO,YACPE,WAEA6E,cAAgB,oGAElBoJ,wBACEnO,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,gFAElB+H,UACExM,MAAQ,eACRyE,cAAgB,yDAGpBA,cAAgB,uEAElBqJ,oCACEpO,KAAO,YACPC,UACE,aACA,QAEFC,SACEwM,YAAcpM,MAAQ,cACtBwN,MAAQxN,MAAQ,gCAGpB+N,qCACErO,KAAO,YACPE,YAGFoO,yBACEtO,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,iFAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0DAGpBA,cAAgB,0EAElBwJ,0BACEvO,KAAO,YACPE,WAEA6E,cAAgB,oGAElByJ,wBACExO,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,gFAElB+H,UACExM,MAAQ,eACRyE,cAAgB,yDAGpBA,cAAgB,4EAElB0J,yBACEzO,KAAO,YACPE,WAEA6E,cAAgB,wGAElB2J,0BACE1O,KAAO,YACPC,UACE,aACA,WACA,aAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,4BAElB+H,UACExM,MAAQ,eACRyE,cAAgB,yBAElB4J,WACErO,MAAQ,gBACRyE,cAAgB,2BAGpBA,cAAgB,gEAElB6J,uBACE5O,KAAO,YACPC,UACE,YACA,aACA,YAEFC,SACEyO,WACErO,MAAQ,gBACRyE,cAAgB,0BAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,4BAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0BAGpBA,cAAgB,yEAElB8J,wBACE7O,KAAO,YACPC,UAAY,UACZC,SACE4O,QACExO,MAAQ,aACRyE,cAAgB,uBAGpBA,cAAgB,yDAElBgK,qBACE/O,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,+FAElB+H,UACExM,MAAQ,eACRyE,cAAgB,2DAGpBA,cAAgB,gFAElBiK,sBACEhP,KAAO,YACPC,UAAY,YACZC,SACE4M,UACExM,MAAQ,eACRyE,cAAgB,8EAElBwI,gBACEjN,MAAQ,oBACRyE,cAAgB,qEAElBkK,gBACE3O,MAAQ,WACRyE,cAAgB,yCAElBmK,sBACE5O,MAAQ,WACRyE,cAAgB,+CAElBoK,SACE7O,MAAQ,cACRyE,cAAgB,gDAElBqK,YACE9O,MAAQ,iBACRyE,cAAgB,qYAElBsK,YACE/O,MAAQ,oBACRyE,cAAgB,wEAGpBA,cAAgB,kHAElBuK,0BACEtP,KAAO,YACPC,UACE,aACA,WACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,kDAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,6BAElBwK,UACEjP,MAAQ,eACRyE,cAAgB,q+BAElByK,gBACElP,MAAQ,qBACRyE,cAAgB,mkCAElB0K,gBACEnP,MAAQ,qBACRyE,cAAgB,qNAElB2K,mBAAqBpP,MAAQ,yBAC7BqP,aAAerP,MAAQ,oBAEzByE,cAAgB,oEAElB6K,2BACE5P,KAAO,YACPE,SACE2P,eACEvP,MAAQ,oBACRyE,cAAgB,8+CAElB+K,SACExP,MAAQ,cACRyE,cAAgB,yZAElBgL,qBACEzP,MAAQ,0BACRyE,cAAgB,2vBAElBiL,sBACE1P,MAAQ,2BACRyE,cAAgB,iTAGpBA,cAAgB,sEAElBkL,iCACEjQ,KAAO,YACPC,UACE,aACA,kBACA,cAEFC,SACEwM,YAAcpM,MAAQ,cACtB4P,iBAAmB5P,MAAQ,8BAC3B6P,YAAc7P,MAAQ,gCAG1B8P,kCACEpQ,KAAO,YACPE,YAGFmQ,yBACErQ,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,4BAElB+H,UACExM,MAAQ,eACRyE,cAAgB,yBAElBuL,OACEhQ,MAAQ,iBACRyE,cAAgB,4CAElBwL,iBACEjQ,MAAQ,4BACRyE,cAAgB,iCAGpBA,cAAgB,uEAElByL,0BACExQ,KAAO,YACPE,SACEuQ,SACEnQ,MAAQ,iBACRyE,cAAgB,uDAElBwL,iBACEjQ,MAAQ,4BACRyE,cAAgB,iCAGpBA,cAAgB,4DAElB2L,+BACE1Q,KAAO,YACPC,UACE,WACA,cAEFC,SACE4M,UACExM,MAAQ,eACRyE,cAAgB,qCAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElBuL,OACEhQ,MAAQ,iBACRyE,cAAgB,mDAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,qJAItB4L,gCACE3Q,KAAO,YACPE,SACE0Q,QACEtQ,MAAQ,gBACRyE,cAAgB,+CAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,qJAItB8L,gCACE7Q,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwM,UAAYxM,MAAQ,gBACpBiC,YAAcjC,MAAQ,kBACtBkC,WAAalC,MAAQ,mBAGzBwQ,iCACE9Q,KAAO,YACPE,SACE6Q,YAAczQ,MAAQ,kBACtBkC,WAAalC,MAAQ,mBAGzB0Q,iCACEhR,KAAO,YACPC,UACE,aACA,WACA,aAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElB+H,UACExM,MAAQ,eACRyE,cAAgB,qCAElBgI,WACEzM,MAAQ,gBACRyE,cAAgB,4BAItBkM,+BACEjR,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,0FAElB+H,UACExM,MAAQ,eACRyE,cAAgB,uEAGpBA,cAAgB,iFAElBmM,gCACElR,KAAO,YACPE,WAEA6E,cAAgB,gGAElBoM,oCACEnR,KAAO,YACPC,UACE,aACA,WACA,iBAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,kDAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,6BAElB8K,eACEvP,MAAQ,oBACRyE,cAAgB,oHAElBqM,oBACE9Q,MAAQ,yBACRyE,cAAgB,uyCAElB+K,SACExP,MAAQ,cACRyE,cAAgB,0YAElB2K,mBAAqBpP,MAAQ,yBAC7BqP,aAAerP,MAAQ,oBAEzByE,cAAgB,uFAElBsM,qCACErR,KAAO,YACPE,SACE2P,eACEvP,MAAQ,oBACRyE,cAAgB,2HAElB+K,SACExP,MAAQ,cACRyE,cAAgB,0YAElBgL,qBACEzP,MAAQ,0BACRyE,cAAgB,0HAElBiL,sBACE1P,MAAQ,2BACRyE,cAAgB,wFAGpBA,cAAgB,yEAElBuM,kCACEtR,KAAO,YACPC,UACE,WACA,cAEFC,SACEqR,gBAAkBjR,MAAQ,sBAC1BkR,0BAA4BlR,MAAQ,gCACpCwM,UAAYxM,MAAQ,gBACpBoM,YAAcpM,MAAQ,oBAG1BmR,mCACEzR,KAAO,YACPE,YAGFwR,6BACE1R,KAAO,YACPC,UACE,aACA,WACA,cAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,6GAElB+H,UACExM,MAAQ,eACRyE,cAAgB,4EAElBsK,YACE/O,MAAQ,oBACRyE,cAAgB,wEAGpBA,cAAgB,2EAElB4M,8BACE3R,KAAO,YACPE,WAEA6E,cAAgB,4FAElB6M,qCACE5R,KAAO,YACPC,UACE,aACA,WACA,UACA,iBAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwM,UAAYxM,MAAQ,gBACpBuR,SAAWvR,MAAQ,eACnBwR,eAAiBxR,MAAQ,uBAG7ByR,sCACE/R,KAAO,YACPE,YAGF8R,gCACEhS,KAAO,YACPC,UACE,aACA,WACA,aAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,+BAElB+H,UACExM,MAAQ,eACRyE,cAAgB,yBAElB4J,WACErO,MAAQ,gBACRyE,cAAgB,0BAElBkN,wBACE3R,MAAQ,6BACRyE,cAAgB,8EAGpBA,cAAgB,wEAElBmN,iCACElS,KAAO,YACPE,WAEA6E,cAAgB,0FAElBoN,kCACEnS,KAAO,YACPC,UACE,aACA,WACA,kBAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,uFAElB+H,UACExM,MAAQ,eACRyE,cAAgB,iFAElBwI,gBACEjN,MAAQ,oBACRyE,cAAgB,sEAGpBA,cAAgB,sFAElBqN,mCACEpS,KAAO,YACPE,WAEA6E,cAAgB,iHAElBsN,+BACErS,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,4BAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0BAGpBA,cAAgB,uEAElBuN,gCACEtS,KAAO,YACPE,WAEA6E,cAAgB,6DAElBwN,0BACEvS,KAAO,SACPqM,MACE,MACA,QACA,aAGJmG,oBACExS,KAAO,SACPqM,MACE,eACA,QACA,uBAGJoG,yBACEzS,KAAO,OACPc,QAAUR,MAAQ,uBAEpBoS,sBACE1S,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,8DAGpBA,cAAgB,iQAChB6N,WAAY,GAEdC,4BACE7S,KAAO,YACPC,UACE,gBACA,UACA,cAEFC,SACE4S,eAAiBxS,MAAQ,iBACzByS,SAAWzS,MAAQ,WACnB0S,YAAc1S,MAAQ,cACtB2S,gBAAkB3S,MAAQ,iBAG9B4S,uBACElT,KAAO,YACPE,SACEiT,qBAAuB7S,MAAQ,gBAGnC8S,SACEpT,KAAO,SACPwL,IAAM,KACNC,IAAM,GACNC,QAAU,2GAEZ2H,+BACErT,KAAO,YACPE,SACEoT,aAAehT,MAAQ,kBACvBwP,SAAWxP,MAAQ,iBAGvBiT,gCACEvT,KAAO,YACPE,SACEsT,YAAclT,MAAQ,kBACtBwP,SAAWxP,MAAQ,iBAGvBmT,mBACEzT,KAAO,SACPqM,MACE,SACA,SACA,WACA,YAGJqH,mBACE1T,KAAO,OACPc,QAAUR,MAAQ,kBAEpBqT,yBACE3T,KAAO,SACPwL,IAAM,GACNC,IAAM,GAERmI,sBACE5T,KAAO,MACP0D,KAAOpD,MAAQ,2BACfqD,OAASrD,MAAQ,eAEnBuT,uBACE7T,KAAO,OACPc,QAAUR,MAAQ,sBAEpBwT,mBACE9T,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,qCAEZqI,eACE/T,KAAO,YACPC,UAAY,QACZC,SACE8T,MACE1T,MAAQ,oBACRyE,cAAgB,qCAElBkP,OACE3T,MAAQ,qBACRyE,cAAgB,uCAGpBA,cAAgB,iEAElBmP,oBACElU,KAAO,SACPwL,IAAM,KACN2I,WAAY,GAEdC,eACEpU,KAAO,YACPE,SACE2R,SAAWvR,MAAQ,cACnB+T,WAAa/T,MAAQ,aACrB6D,cAAgB7D,MAAQ,YACxBgU,eAAiBhU,MAAQ,qBACzBiU,WAAajU,MAAQ,iBACrB8Q,oBAAsB9Q,MAAQ,6BAC9BkU,kBAAoBlU,MAAQ,wBAC5BmU,eAAiBnU,MAAQ,uBAG7BoU,gBACE1U,KAAO,OACPc,QAAUR,MAAQ,kBAEpBqU,cACE3U,KAAO,SACPqM,MACE,gBACA,qBACA,gBACA,cACA,sBAGJuI,oBACE5U,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnBuU,eACE7U,KAAO,SACP0L,QAAU,oBACVyI,WAAY,GAEdW,qBACE9U,KAAO,YACPC,UACE,WACA,WACA,iBAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB+H,UACExM,MAAQ,eACRyE,cAAgB,8DAElBiQ,eACE1U,MAAQ,oBACRyE,cAAgB,4DAElBkQ,WACE3U,MAAQ,WACRyE,cAAgB,uDAElB2K,mBAAqBpP,MAAQ,0BAE/ByE,cAAgB,kDAElBmQ,sBACElV,KAAO,YACPE,SACE8P,sBACE1P,MAAQ,2BACRyE,cAAgB,qDAElBoQ,WACE7U,MAAQ,gBACRyE,cAAgB,kEAElBqQ,qBACE9U,MAAQ,0BACRyE,cAAgB,2GAGpBA,cAAgB,kDAElBsQ,0BACErV,KAAO,YACPE;AACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,yDAElBuQ,WACEhV,MAAQ,cACRyE,cAAgB,8DAElBwQ,WACEjV,MAAQ,aACRyE,cAAgB,uDAElByQ,cACElV,MAAQ,iBACRyE,cAAgB,0DAElB0Q,SACEnV,MAAQ,iBACRyE,cAAgB,qDAElB2Q,mBACEpV,MAAQ,wBACRyE,cAAgB,kEAGpBA,cAAgB,wDAElB4Q,UAAY3V,KAAO,QACnB4V,wBACE5V,KAAO,OACPc,QAAUR,MAAQ,cAClBkL,IAAM,IAERqK,aAAe7V,KAAO,WACtB8V,eACE9V,KAAO,YACPC,UAAY,eACZC,SACE6L,aAAezL,MAAQ,wBAG3ByV,gBACE/V,KAAO,YACPE,SACE+L,WAAa3L,MAAQ,iBACrB4L,cAAgB5L,MAAQ,iBACxB6L,YAAc7L,MAAQ,mBAG1B0V,oBACEhW,KAAO,SACPqM,MACE,QACA,cAGJ4J,0BACEjW,KAAO,YACPC,UAAY,WACZC,SACEgW,aAAe5V,MAAQ,oBACvBkM,SAAWlM,MAAQ,oBAGvB6V,SAAWnW,KAAO,UAClBoW,gBAAkBpW,KAAO,UACzBqW,sBACErW,KAAO,OACPc,QAAUR,MAAQ,mBAClBkL,IAAM,IACNC,IAAM,GAERoE,eACE7P,KAAO,SACPqM,MACE,WACA,QAGJiK,mBACEtW,KAAO,SACPqM,MACE,UACA,qBACA,kBACA,YACA,oBACA,mBACA,kBACA,2BACA,oBACA,0BAGJkK,yBACEvW,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnBkW,mBACExW,KAAO,SACPqM,MACE,UACA,YAGJoK,2BACEzW,KAAO,OACPc,QAAUR,MAAQ,0BAEpBoW,uBACE1W,KAAO,YACPE,SACE2P,eAAiBvP,MAAQ,iBACzBkW,mBAAqBlW,MAAQ,uBAGjCqW,wBACE3W,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnBsW,uBACE5W,KAAO,YACPC,UACE,mBACA,mBACA,eAEFC,SACE2W,kBACEvW,MAAQ,eACRyE,cAAgB,2DAElB+R,kBACExW,MAAQ,eACRyE,cAAgB,2DAElBuO,aACEhT,MAAQ,iBACRyE,cAAgB,4DAGpBA,cAAgB,4DAElBgS,wBACE/W,KAAO,YACPE,WAEA6E,cAAgB,uEAElBiS,cACEhX,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,UACVyI,WAAY,GAEd8C,oBACEjX,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnB4W,gBACElX,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,mBAEZyL,0BACEnX,KAAO,OACPc,QAAUR,MAAQ,yBAEpB8W,sBACEpX,KAAO,SACPwL,IAAM,KACNC,IAAM,GAER4L,kBACErX,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,UACVyI,WAAY,GAEdmD,6BACEtX,KAAO,OACPc,QAAUR,MAAQ,4BAEpBiX,yBACEvX,KAAO,YACPE,SACEsX,aACElX,MAAQ,aACRyE,cAAgB,yDAElB0S,gBACEnX,MAAQ,qBACRyE,cAAgB,+DAElB2S,eACEpX,MAAQ,oBACRyE,cAAgB,wEAGpBA,cAAgB,4EAElB4S,8BACE3X,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,oFAGpBA,cAAgB,0FAChB6N,WAAY,GAEdgF,uBACE5X,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,4EAGpBA,cAAgB,qGAChB6N,WAAY,GAEdiF,uBACE7X,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,UAEZoM,mCACE9X,KAAO,YACPC,UAAY,eACZC,SACE6L,aAAezL,MAAQ,2CAG3ByX,uCACE/X,KAAO,SACPqM,MACE,QACA,cAGJ2L,6CACEhY,KAAO,YACPC,UAAY,WACZC,SACEgW,aAAe5V,MAAQ,oBACvBkM,SAAWlM,MAAQ,uCAGvB2X,iCACEjY,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,yEAGpBA,cAAgB,2FAChB6N,WAAY,GAEdsF,sBACElY,KAAO,YACPC,UACE,cACA,aAEFC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,4BAElB4J,WACErO,MAAQ,gBACRyE,cAAgB,0BAElBoT,4BACE7X,MAAQ,iCACRyE,cAAgB,2DAElBqT,YACE9X,MAAQ,iBACRyE,cAAgB,4BAGpBA,cAAgB,uCAElBsT,uBACErY,KAAO,YACPE,SACEoY,2BACEhY,MAAQ,cACRyE,cAAgB,gGAGpBA,cAAgB,wCAElBwT,8BACEvY,KAAO,YACPC,UACE,WACA,WACA,mBACA,YAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB+H,UACExM,MAAQ,eACRyE,cAAgB,wGAElByT,kBACElY,MAAQ,uBACRyE,cAAgB,4KAElB0T,UACEnY,MAAQ,eACRyE,cAAgB,kFAElB2K,mBAAqBpP,MAAQ,yBAC7BoY,iBAAmBpY,MAAQ,wBAE7ByE,cAAgB,0EAElB4T,+BACE3Y,KAAO,YACPE,WAEA6E,cAAgB,4GAElB6T,sBACE5Y,KAAO,YACPC,UACE,WACA,WACA,oBAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB+H,UACExM,MAAQ,eACRyE,cAAgB,4EAElByT,kBACElY,MAAQ,uBACRyE,cAAgB,kFAElB2I,oBACEpN,MAAQ,qBACRyE,cAAgB,kbAElB2K,mBAAqBpP,MAAQ,yBAC7BoY,iBAAmBpY,MAAQ,wBAE7ByE,cAAgB,oEAElB8T,uBACE7Y,KAAO,YACPE,WAEA6E,cAAgB,qFAElB+T,sBACE9Y,KAAO,SACPwL,IAAM,KACNC,IAAM,EACNC,QAAU,UAEZqN,iBACE/Y,KAAO,YACPC,UACE,YACA,aACA,aACA,cACA,eAEFC,SACE8Y,WAAa1Y,MAAQ,cACrB2Y,YAAc3Y,MAAQ,cACtB4Y,YAAc5Y,MAAQ,cACtB6Y,aAAe7Y,MAAQ,kBACvB8Y,aAAe9Y,MAAQ,gBAG3B+Y,oBACErZ,KAAO,YACPC,UACE,YACA,cAEFC,SACE6M,WACEzM,MAAQ,gBACRyE,cAAgB,iDAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElBuU,aACEhZ,MAAQ,kBACRyE,cAAgB,4DAElBgO,SACEzS,MAAQ,UACRyE,cAAgB,sCAElBwU,YACEjZ,MAAQ,iBACRyE,cAAgB,ugCAItByU,qBACExZ,KAAO,YACPE,SACEuZ,OACEnZ,MAAQ,YACRyE,cAAgB,4CAItB2U,+BACE1Z,KAAO,YACPC,UACE,aACA,eACA,eACA,mBAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwD,cAAgBxD,MAAQ,sBACxBqZ,cAAgBrZ,MAAQ,4BACxBsZ,iBAAmBtZ,MAAQ,uBAC3BuZ,kBAAoBvZ,MAAQ,wBAC5BwZ,gBAAkBxZ,MAAQ,4BAG9ByZ,gCACE/Z,KAAO,YACPC,UAAY,oBACZC,SACE8Z,kBAAoB1Z,MAAQ,0BAGhC2Z,6BACEja,KAAO,YACPC,UACE,aACA,aACA,QAEFC,SACEwM,YAAcpM,MAAQ,kBACtB4Z,YAAc5Z,MAAQ,gCACtB0T,MAAQ1T,MAAQ,0BAChB6Z,QAAU7Z,MAAQ,iCAGtB8Z,8BACEpa,KAAO,YACPC,UAAY,kBACZC,SACEma,gBAAkB/Z,MAAQ,wBAG9Bga,4BACEta,KAAO,YACPC,UACE,UACA,aACA,yBAEFC,SACEqa,SACEja,MAAQ,wBACRyE,cAAgB,gDAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElByV,uBACEla,MAAQ,UACRyE,cAAgB,wFAGpBA,cAAgB,gEAElB0V,6BACEza,KAAO,YACPE,SACEwa,eACEpa,MAAQ,oBACRyE,cAAgB,+DAGpBA,cAAgB,gGAElB4V,6BACE3a,KAAO,YACPC,UACE,aACA,cAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,0FAElB6V,YACEta,MAAQ,iBACRyE,cAAgB,6EAElB8V,gBACEva,MAAQ,iBACRyE,cAAgB,2GAElB+V,sBACExa,MAAQ,2BACRyE,cAAgB,wGAElBgW,gBACEza,MAAQ,2BACRyE,cAAgB,+BAElBiW,iBACE1a,MAAQ,2BACRyE,cAAgB,gCAElBkW,mBACE3a,MAAQ,4BACRyE,cAAgB,6CAElBmW,4BAA8B5a,MAAQ,sCACtC6a,cAAgB7a,MAAQ,wBACxB8a,YAAc9a,MAAQ,sBACtB+a,oBAAsB/a,MAAQ,mBAC9Bgb,mBAAqBhb,MAAQ,kBAC7Bib,oBAAsBjb,MAAQ,iBAC9Bkb,iCAAmClb,MAAQ,eAC3Cmb,wBAA0Bnb,MAAQ,+BAEpCyE,cAAgB,+DAElB2W,8BACE1b,KAAO,YACPE,SACEyb,gBACErb,MAAQ,qBACRyE,cAAgB,uDAGpBA,cAAgB,gFAElB6W,6BACE5b,KAAO,YACPC,UACE,SACA,cAEFC,SACE2b,QAAUvb,MAAQ,cAClBoM,YAAcpM,MAAQ,oBAG1Bwb,8BACE9b,KAAO,YACPE,YAGF6b,uBACE/b,KAAO,YACPC,UAAY,YACZC,SACE8b,UACE1b,MAAQ,mBACRyE,cAAgB,+CAElBkX,UACE3b,MAAQ,qBACRyE,cAAgB,0DAElBmX,cACE5b,MAAQ,mBACRyE,cAAgB,8EAElBoX,wBACE7b,MAAQ,6BACRyE,cAAgB,kGAElBqX,iBACE9b,MAAQ,0BACRyE,cAAgB,iJAElBsX,oBAAsB/b,MAAQ,8BAC9Bgc,wBACEhc,MAAQ,6BACRyE,cAAgB,8DAElBwX,0BACEjc,MAAQ,+BACRyE,cAAgB,gEAElByX,0BACElc,MAAQ,+BACRyE,cAAgB,gEAElB0X,6BAA+Bnc,MAAQ,mCACvCoc,0BACEpc,MAAQ,6BACRyE,cAAgB,gEAElB4X,kBACErc,MAAQ,kBACRyE,cAAgB,+CAElB6X,qBACEtc,MAAQ,0BACRyE,cAAgB,oCAElB8X,oBACEvc,MAAQ,yBACRyE,cAAgB,mCAElB+X,kBACExc,MAAQ,uBACRyE,cAAgB,iCAElBgY,cACEzc,MAAQ,mBACRyE,cAAgB,sPAElBiY,uBACE1c,MAAQ,4BACRyE,cAAgB,0DAElBkY,QACE3c,MAAQ,2BACRyE,cAAgB,sHAElBmY,gBAAkB5c,MAAQ,uBAE5ByE,cAAgB,wDAElBoY,wBACEnd,KAAO,YACPE,SACEkd,UACE9c,MAAQ,eACRyE,cAAgB,kDAGpBA,cAAgB,yFAElBsY,yBACErd,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,qCAEZ4R,0BACEtd,KAAO,OACPc,QAAUR,MAAQ,uBAClBkL,IAAM,GACNC,IAAM,GAER8R,UAAYvd,KAAO,aACnBwd,wBACExd,KAAO,SACPqM,MACE,oBACA,sBAGJoR,oBACEzd,KAAO,YACPC,UACE,YACA,cAEFC,SACE6M,WACEzM,MAAQ,gBACRyE,cAAgB,iCAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,gDAItB2Y,+BACE1d,KAAO,YACPC,UACE,aACA,gBAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwD,cAAgBxD,MAAQ,sBAG5Bqd,6BACE3d,KAAO,YACPC,UACE,aACA,cAEFC,SACEwM,YAAcpM,MAAQ,kBACtB4Z,YAAc5Z,MAAQ,kCAG1Bsd,6BACE5d,KAAO,YACPC,UACE,qBACA,eAEFC,SACE+N,oBACE3N,MAAQ,wBACRyE,cAAgB,wFAElBuO,aACEhT,MAAQ,iBACRyE,cAAgB,2EAGpBA,cAAgB,4DAElB8Y,8BACE7d,KAAO,YACPE,WAEA6E,cAAgB,6EAElB+Y,6BACE9d,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,kFAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,+DAGpBA,cAAgB,+DAElBgZ,6BACE/d,KAAO,YACPC,UACE,SACA,cAEFC,SACE2b,QAAUvb,MAAQ,cAClBoM,YAAcpM,MAAQ,oBAG1B0d,8BACEhe,KAAO,YACPE,YAGF+d,uBACEje,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,kEAGpBA,cAAgB,wDAElBmZ,mBACEle,KAAO,YACPC,UAAY,eACZC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,6DAGpBA,cAAgB,mDAElBoZ,wBACEne,KAAO,OACPc,QAAUR,MAAQ,uBAEpB8d,oBACEpe,KAAO,SACPqM,MACE,MACA,UAGJgS,iCACEre,KAAO,YACPC,UACE,aACA,gBAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwD,cAAgBxD,MAAQ,sBAG5Bge,kCACEte,KAAO,YACPC,UAAY,oBACZC,SACE8Z,kBAAoB1Z,MAAQ,0BAGhCie,+BACEve,KAAO,YACPC,UACE,aACA,cAEFC,SACEwM,YAAcpM,MAAQ,kBACtB4Z,YAAc5Z,MAAQ,kCAG1Bke,gCACExe,KAAO,YACPC,UAAY,kBACZC,SACEma,gBAAkB/Z,MAAQ,wBAG9Bme,kCACEze,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtByD,UAAYzD,MAAQ,kBAGxBoe,mCACE1e,KAAO,YACPC,UAAY,qBACZC,SACEye,mBAAqBre,MAAQ,2BAGjCse,8BACE5e,KAAO,YACPC,UACE,aACA,SAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElB8Z,OACEve,MAAQ,sBACRyE,cAAgB,+CAGpBA,cAAgB,kEAElB+Z,+BACE9e,KAAO,YACPE,SACEwa,eACEpa,MAAQ,oBACRyE,cAAgB,+DAGpBA,cAAgB,kGAElBga,+BACE/e,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,mEAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,+DAGpBA,cAAgB,iEAElBia,gCACEhf,KAAO,YACPE,SACEyb,gBACErb,MAAQ,qBACRyE,cAAgB,yFAGpBA,cAAgB,mGAElBka,+BACEjf,KAAO,YACPC,UAAY,UACZC,SACE2b,QAAUvb,MAAQ,gBAGtB4e,gCACElf,KAAO,YACPE,SACEif,mBAAqB7e,MAAQ,2BAGjC8e,yBACEpf,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,oEAGpBA,cAAgB,4DAElBsa,0BACErf,KAAO,YACPE,SACEkd,UACE9c,MAAQ,eACRyE,cAAgB,kFAGpBA,cAAgB,6DAElBua,iBACEtf,KAAO,SACPwL,IAAM,MAER+T,yBACEvf,KAAO,YACPE,SACEsf,8BACElf,MAAQ,cACRyE,cAAgB,sGAElB0a,kCACEnf,MAAQ,cACRyE,cAAgB,gEAGpBA,cAAgB,yEAElB2a,eACE1f,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,sBAEZiU,gBACE3f,KAAO,OACPc,QAAUR,MAAQ,eAEpBsf,gBACE5f,KAAO,SACPwL,IAAM,KACNC,IAAM,GAERoU,4BACE7f,KAAO,SACPqM,MACE,aACA,mBAGJyT,gCACE9f,KAAO,YACPE,SACE6f,kBACEzf,MAAQ,aACRyE,cAAgB,iCAElBib,MACE1f,MAAQ,aACRyE,cAAgB,qBAGpBA,cAAgB,sEAElBkb,YACEjgB,KAAO,YACPE,SACEyO,WACErO,MAAQ,gBACRyE,cAAgB,0BAElBmb,kBACE5f,MAAQ,oBACRyE,cAAgB,iCAElBob,kBACE7f,MAAQ,WACRyE,cAAgB,2CAElBqb,wBACE9f,MAAQ,WACRyE,cAAgB,gDAElBsb,6BACE/f,MAAQ,WACRyE,cAAgB,gEAGpBA,cAAgB,2BAElBub,uBACEtgB,KAAO,YACPE,SACEwM,YAAcpM,MAAQ,kBACtBigB,cAAgBjgB,MAAQ,oBACxBub,QAAUvb,MAAQ,cAClBkgB,UAAYlgB,MAAQ,gBACpBmgB,wBAA0BngB,MAAQ,WAClCogB,SAAWpgB,MAAQ,qBACnBqgB,QAAUrgB,MAAQ,sBAGtBsgB,kBACE5gB,KAAO,SACPqM,MACE,WACA,WACA,WACA,SACA,WAGJwU,YACE7gB,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,4CAEZoV,mBACE9gB,KAAO,SACPwL,IAAM,GACNC,IAAM,GAERsV,4BACE/gB,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEdoO,kBACEhhB,KAAO,SACP0L,QAAU,uEAEZuV,wBACEjhB,KAAO,YACPE,SACEghB,WACE5gB,MAAQ,UACRyE,cAAgB,8DAElBoc,qBACE7gB,MAAQ,mBACRyE,cAAgB,uCAGpBA,cAAgB,wCAElBqc,2BACEphB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,yCAEZ2V,8BACErhB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,wCAEZ4V,oCACEthB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,6HAEZ6V,8BACEvhB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,wFAEZ8V,oCACExhB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,wCAEZ+V,8BACEzhB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,wCAEZgW,iCACE1hB,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEd+O,oBACE3hB,KAAO,YACPC,UACE,WACA,WACA,YACA,QAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB+H,UACExM,MAAQ,eACRyE,cAAgB,iFAElBoQ,WACE7U,MAAQ,gBACRyE,cAAgB,oCAElB6c,MACEthB,MAAQ,aACRyE,cAAgB,sEAElB2K,mBAAqBpP,MAAQ,0BAE/ByE,cAAgB,gGAElB8c,qBACE7hB,KAAO,YACPE,SACE8P,sBACE1P,MAAQ,2BACRyE,cAAgB,gFAGpBA,cAAgB,4EAElB+c,sBACE9hB,KAAO,YACPE,SACE8Y,WAAa1Y,MAAQ,cACrB8X,YAAc9X,MAAQ,cACtByhB,UAAYzhB,MAAQ,cACpB0hB,MAAQ1hB,MAAQ,cAChB2hB,SAAW3hB,MAAQ,gBAGvB4hB,mBACEliB,KAAO,YACPC,UACE,gBACA,YAEFC,SACE4R,eAAiBxR,MAAQ,qBACzB6hB,UAAY7hB,MAAQ,cACpB8hB,cAAgB9hB,MAAQ,cAG5B+hB,iBACEriB,KAAO,SACPqM,MACE,UACA,kBACA,QAGJiW,kBACEtiB,KAAO,OACPc,QAAUR,MAAQ,oBAEpBiiB,aACEviB,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,YAEZ8W,mBACExiB,KAAO,SACPqM,MACE,UACA,YAGJoW,eACEziB,KAAO,YACPE,SACEwiB,cAAgBpiB,MAAQ,oBACxBqiB,WAAariB,MAAQ,mBAGzB+T,WACErU,KAAO,SACPqM,MACE,SACA,SACA,mBAGJuW,sBACE5iB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,2EAGpBA,cAAgB,yDAChB6N,WAAY,GAEdiQ,2BACE7iB,KAAO,OACPc,QAAUR,MAAQ,0BAEpBwiB,uBACE9iB,KAAO,SACPqM,MACE,oBACA,0BAGJ0W,mBACE/iB,KAAO,SACPqM,MACE,MACA,SAGJqB,oBAAsB1N,KAAO,WAC7BgjB,qBACEhjB,KAAO,YACPC,UAAY,aACZC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,6DAElB4J,WACErO,MAAQ,gBACRyE,cAAgB,2BAGpBA,cAAgB,uDAElBke,uBACEjjB,KAAO,YACPC,UACE,WACA,YAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB2T,iBAAmBpY,MAAQ,uBAC3BwM,UACExM,MAAQ,eACRyE,cAAgB,qGAElB2K,mBAAqBpP,MAAQ,0BAE/ByE,cAAgB,6DAElBme,wBACEljB,KAAO,YACPE,SACEkV,qBACE9U,MAAQ,0BACRyE,cAAgB,4GAGpBA,cAAgB,8FAElB8V,gBAAkB7a,KAAO,WACzBmjB,iCACEnjB,KAAO,YACPC,UACE,WACA,WACA,QAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0FAElBqe,MACE9iB,MAAQ,sBACRyE,cAAgB,gMAElByI,gBACElN,MAAQ,oBACRyE,cAAgB,4EAElB2K,mBAAqBpP,MAAQ,0BAE/ByE,cAAgB,uEAElBse,kCACErjB,KAAO,YACPC,UACE,OACA,OACA,eAEFC,SACE8f,MACE1f,MAAQ,gBACRyE,cAAgB;EAElBue,MACEhjB,MAAQ,gBACRyE,cAAgB,gMAElBwe,aACEjjB,MAAQ,WACRyE,cAAgB,yFAElB+H,UACExM,MAAQ,eACRyE,cAAgB,uFAGpBA,cAAgB,iFAElBye,qBACExjB,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,sFAGpBA,cAAgB,0GAElB0e,sBACEzjB,KAAO,YACPE,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElB2e,WACEpjB,MAAQ,oBACRyE,cAAgB,6EAGpBA,cAAgB,0IAElB4e,kBACE3jB,KAAO,YACPC,UAAY,aACZC,SACEyO,WACErO,MAAQ,gBACRyE,cAAgB,0BAElBuO,aACEhT,MAAQ,iBACRyE,cAAgB,6BAGpBA,cAAgB,oDAElB6e,mBACE5jB,KAAO,YACPC,UAAY,UACZC,SACE4O,QACExO,MAAQ,aACRyE,cAAgB,uBAGpBA,cAAgB,oCAElB8e,iBACE7jB,KAAO,YACPC,UACE,YACA,cAEFC,SACE6M,WACEzM,MAAQ,gBACRyE,cAAgB,iCAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,gDAItB+e,kBACE9jB,KAAO,YACPE,SACEuZ,OACEnZ,MAAQ,YACRyE,cAAgB,4CAItBgf,wCACE/jB,KAAO,YACPC,UACE,aACA,iBAEFC,SACEwM,YAAcpM,MAAQ,kBACtB0jB,eAAiB1jB,MAAQ,uBAG7B2jB,yCACEjkB,KAAO,YACPC,UAAY,oBACZC,SACE8Z,kBAAoB1Z,MAAQ,0BAGhC4jB,gBACElkB,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,mFAGpBA,cAAgB,uDAElBof,iBACEnkB,KAAO,YACPE,SACEkkB,MACE9jB,MAAQ,cACRyE,cAAgB,oDAElBsf,cACE/jB,MAAQ,aACRyE,cAAgB,+SAGpBA,cAAgB,wEAElBuf,+BACEtkB,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,uGAGpBA,cAAgB,mEAElBwf,gCACEvkB,KAAO,YACPE,SACEskB,QACElkB,MAAQ,gBACRyE,cAAgB,4DAElB0f,UACEnkB,MAAQ,gBACRyE,cAAgB,wGAElB2f,wBACEpkB,MAAQ,gBACRyE,cAAgB,mHAElB4f,yBACErkB,MAAQ,iBACRyE,cAAgB,oHAElB6f,0BACEtkB,MAAQ,iBACRyE,cAAgB,qHAElB8f,uCACEvkB,MAAQ,iBACRyE,cAAgB,sIAGpBA,cAAgB,gGAElB+f,8BACE9kB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,oBAG1BykB,+BACE/kB,KAAO,YACPE,SACE8kB,aAAe1kB,MAAQ,gBAG3B2kB,2BACEjlB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtByD,UAAYzD,MAAQ,kBAGxB4kB,4BACEllB,KAAO,YACPC,UAAY,mBACZC,SACEilB,iBAAmB7kB,MAAQ,yBAG/B8kB,yCACEplB,KAAO,YACPC,UACE,cACA,iBAEFC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,wGAElB2S,eACEpX,MAAQ,oBACRyE,cAAgB,2GAGpBA,cAAgB,qEAElBsgB,0CACErlB,KAAO,YACPE,SACEkV,qBACE9U,MAAQ,0BACRyE,cAAgB,oIAGpBA,cAAgB,sHAElBugB,6BACEtlB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,oBAG1BilB,8BACEvlB,KAAO,YACPE,SACEslB,qBAAuBllB,MAAQ,oBAC/BmlB,+BAAiCnlB,MAAQ,8BACzCqc,kBAAoBrc,MAAQ,qBAGhColB,mCACE1lB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,oBAG1BqlB,oCACE3lB,KAAO,YACPC,UAAY,2BACZC,SACE0lB,yBAA2BtlB,MAAQ,iCAGvCulB,gBACE7lB,KAAO,YACPC,UAAY,eACZC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,+FAGpBA,cAAgB,oEAElB+gB,iBACE9lB,KAAO,YACPC,UACE,WACA,kBAEFC,SACE4M,UACExM,MAAQ,eACRyE,cAAgB,oFAElBwI,gBACEjN,MAAQ,oBACRyE,cAAgB,qEAElBsK,YACE/O,MAAQ,oBACRyE,cAAgB,wEAGpBA,cAAgB,sGAElBghB,sBACE/lB,KAAO,YACPC,UAAY,eACZC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,6BAGpBA,cAAgB,0DAElBihB,uBACEhmB,KAAO,YACPE,WAEA6E,cAAgB,+DAElBkhB,sBACEjmB,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErByE,cAAgB,+GAChB6N,WAAY,GAEdsT,eACElmB,KAAO,OACPc,QAAUR,MAAQ,cAEpB6lB,eACEnmB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,qCAEZ0a,WACEpmB,KAAO,YACPE,SACE6M,WACEzM,MAAQ,gBACRyE,cAAgB,iCAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElBuU,aACEhZ,MAAQ,kBACRyE,cAAgB,4DAElBgO,SACEzS,MAAQ,UACRyE,cAAgB,sCAElBwU,YACEjZ,MAAQ,iBACRyE,cAAgB,8/BAElBX,kBACE9D,MAAQ,WACRyE,cAAgB,gDAElBZ,cACE7D,MAAQ,WACRyE,cAAgB,2CAGpBA,cAAgB,0BAElBshB,eACErmB,KAAO,SACP0L,QAAU,kBAEZ4a,YACEtmB,KAAO,YACPE,SACEqmB,YAAcjmB,MAAQ,cACtBkmB,aAAelmB,MAAQ,gBAG3BmmB,gBACEzmB,KAAO,OACPc,QAAUR,MAAQ,eAEpBomB,sBACE1mB,KAAO,YACPE,SACEwM,YAAcpM,MAAQ,kBACtBwD,cAAgBxD,MAAQ,oBACxBqZ,cAAgBrZ,MAAQ,4BACxBsZ,iBAAmBtZ,MAAQ,uBAC3BuZ,kBAAoBvZ,MAAQ,wBAC5BwZ,gBAAkBxZ,MAAQ,0BAC1B8D,kBAAoB9D,MAAQ,YAC5B6D,cAAgB7D,MAAQ,cAG5BqmB,0BACE3mB,KAAO,SACPqM,MACE,OACA,WACA,SACA,kBACA,oBAGJua,mBACE5mB,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,kBAEZmb,wBACE7mB,KAAO,OACPc,QAAUR,MAAQ,qBAClBkL,IAAM,GACNC,IAAM,GAERqb,eAAiB9mB,KAAO,QACxB+mB,cAAgB/mB,KAAO,UACvBgnB,qBACEhnB,KAAO,YACPC,UACE,WACA,YAEFC,SACEqP,UACEjP,MAAQ,eACRyE,cAAgB,m1BAElByK,gBACElP,MAAQ,qBACRyE,cAAgB,q2BAElB0K,gBACEnP,MAAQ,qBACRyE,cAAgB,qNAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,6BAElB2K,mBAAqBpP,MAAQ,yBAC7BoY,iBAAmBpY,MAAQ,wBAE7ByE,cAAgB,gDAElBkiB,sBACEjnB,KAAO,YACPE,SACE2P,eACEvP,MAAQ,oBACRyE,cAAgB,08CAElB+K,SACExP,MAAQ,cACRyE,cAAgB,0YAElBgL,qBACEzP,MAAQ,0BACRyE,cAAgB,2WAElBiL,sBACE1P,MAAQ,2BACRyE,cAAgB,iTAGpBA,cAAgB,iDAElBmiB,aAAelnB,KAAO,WACtBmnB,wBACEnnB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,wFAGpBA,cAAgB,oFAChB6N,WAAY,EACZwU,OAAQ,GAEVC,uCACErnB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,gKAGpBA,cAAgB,wHAChB6N,WAAY,GAEd0U,gCACEtnB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,iHAGpBA,cAAgB,6GAChB6N,WAAY,GAEd2U,2BACEvnB,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEd4U,2BACExnB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,uGAGpBA,cAAgB,mGAChB6N,WAAY,GAEd6U,0BACEznB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,2GAGpBA,cAAgB,kGAChB6N,WAAY,GAEd8U,qCACE1nB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,4FAGpBA,cAAgB,uIAChB6N,WAAY,GAEd+U,0CACE3nB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,iGAGpBA,cAAgB,+SAChB6N,WAAY,GAEdgV,uCACE5nB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,6EAGpBA,cAAgB,+EAChB6N,WAAY,GAEdiV,aACE7nB,KAAO,OACPc,QAAUR,MAAQ,YAEpBwnB,SACE9nB,KAAO,YACPE,SACE6nB,KACEznB,MAAQ,aACRyE,cAAgB,wKAElBijB,KACE1nB,MAAQ,aACRyE,cAAgB,kLAElBkjB,KACE3nB,MAAQ,aACRyE,cAAgB,8LAElBmjB,KACE5nB,MAAQ,aACRyE,cAAgB,8KAElB1G,GACEiC,MAAQ,aACRyE,cAAgB,4BAElB5G,GACEmC,MAAQ,aACRyE,cAAgB,6BAGpBA,cAAgB,2JAElBojB,kBACEnoB,KAAO,YACPE,SACEkoB,WACE9nB,MAAQ,UACRyE,cAAgB,iDAElBsjB,eACE/nB,MAAQ,UACRyE,cAAgB,+CAElBujB,kBACEhoB,MAAQ,UACRyE,cAAgB,kDAElBwjB,mBACEjoB,MAAQ,UACRyE,cAAgB,mDAElByjB,oBACEloB,MAAQ,UACRyE,cAAgB,oDAElB0jB,qBACEnoB,MAAQ,UACRyE,cAAgB,gDAElB2jB,qBACEpoB,MAAQ,UACRyE,cAAgB,+CAElB4jB,6BACEroB,MAAQ,UACRyE,cAAgB,0DAElB6jB,oBAAsBtoB,MAAQ,YAEhCyE,cAAgB,uEAElB8jB,wBACE7oB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,uFAGpBA,cAAgB,8FAChB6N,WAAY,GAEdkW,oBACE9oB,KAAO,YACPC,UAAY,eACZC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,6DAElBuL,OACEhQ,MAAQ,iBACRyE,cAAgB,2CAElBwL,iBACEjQ,MAAQ,4BACRyE,cAAgB,sDAGpBA,cAAgB,sDAElBgkB,qBACE/oB,KAAO,YACPE,SACEuQ,SACEnQ,MAAQ,iBACRyE,cAAgB,6DAElBwL,iBACEjQ,MAAQ,4BACRyE,cAAgB,8DAGpBA,cAAgB,mDAElBikB,mBACEhpB,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElBuL,OACEhQ,MAAQ,iBACRyE,cAAgB,mDAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,qJAItBkkB,oBACEjpB,KAAO,YACPE,SACE0Q,QACEtQ,MAAQ,gBACRyE,cAAgB,4CAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,qJAItBmkB,8BACElpB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtBiC,YAAcjC,MAAQ,0BACtBkC,WAAalC,MAAQ,uBAGzB6oB,+BACEnpB,KAAO,YACPC,UAAY,aACZC,SACEkpB,WAAa9oB,MAAQ,qBACrBkC,WAAalC,MAAQ,uBAGzB+oB,mBACErpB,KAAO,OACPc,QAAUR,MAAQ,eAEpBgpB,wBACEtpB,KAAO,UACPwL,IAAM,GACNC,IAAM,GAER8d,8BACEvpB,KAAO,UACPwL,IAAM,GACNC,IAAM,GAER+d,4BACExpB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtBiC,YAAcjC,MAAQ,gCACtBkC,WAAalC,MAAQ,uBAGzBmpB,6BACEzpB,KAAO,YACPC,UAAY,mBACZC,SACEwpB,iBAAmBppB,MAAQ,2BAC3BkC,WAAalC,MAAQ,uBAGzBqpB,2BACE3pB,KAAO,YACPC,UACE,aACA,cAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElBxC,YACEjC,MAAQ,qBACRyE,cAAgB,4EAElBwL,iBACEjQ,MAAQ,oBACRyE,cAAgB,8JAGpBA,cAAgB,+DAElB6kB,4BACE5pB,KAAO,YACPE,SACE2pB,gBACEvpB,MAAQ,yBACRyE,cAAgB,gCAElBwL,iBACEjQ,MAAQ,oBACRyE,cAAgB,kGAGpBA,cAAgB,+FAElB+kB,4BACE9pB,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,uFAElBxC,YACEjC,MAAQ,aACRyE,cAAgB,2GAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,oJAGpBA,cAAgB,gEAElBglB,6BACE/pB,KAAO,YACPE,SACE8pB,iBACE1pB,MAAQ,yBACRyE,cAAgB,8EAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,oJAGpBA,cAAgB,gFAElBklB,sBACEjqB,KAAO,YACPC,UAAY,cACZC,SACEsC,WACElC,MAAQ,oBACRyE,cAAgB,mJAElBxC,YACEjC,MAAQ,qBACRyE,cAAgB,qGAGpBA,cAAgB,qDAElBmlB,uBACElqB,KAAO,YACPE,SACEiqB,WACE7pB,MAAQ,mBACRyE,cAAgB,0DAElBvC,WACElC,MAAQ,oBACRyE,cAAgB,oJAGpBA,cAAgB,sDAElBqlB,yBACEpqB,KAAO,YACPC,UACE,aACA,aAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElBgI,WACEzM,MAAQ,gBACRyE,cAAgB,iCAElBuL,OACEhQ,MAAQ,iBACRyE,cAAgB,kDAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,qJAItBslB,0BACErqB,KAAO,YACPE,SACEoqB,OACEhqB,MAAQ,gBACRyE,cAAgB,2DAElBvC,WACElC,MAAQ,gBACRyE,cAAgB,qJAItBwlB,kBACEvqB,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,sFAElBylB,iBACElqB,MAAQ,iCACRyE,cAAgB,yLAElBuL,OACEhQ,MAAQ,iBACRyE,cAAgB,kDAElBwL,iBACEjQ,MAAQ,4BACRyE,cAAgB,mJAElB0lB,QACEnqB,MAAQ,iBACRyE,cAAgB,q3DAGpBA,cAAgB,gDAElB2lB,mBACE1qB,KAAO,YACPE,SACEoqB,OACEhqB,MAAQ,gBACRyE,cAAgB,2DAElBwL,iBACEjQ,MAAQ,4BACRyE,cAAgB,oJAGpBA,cAAgB,uDAElB4lB,oBACE3qB,KAAO,OACPc,QAAUR,MAAQ,mBAClBkL,IAAM,IACNC,IAAM,GAERmf,UAAY5qB,KAAO,QACnB6qB,4BACE7qB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,8FAGpBA,cAAgB;AAChB6N,WAAY,GAEdkY,mBACE9qB,KAAO,OACPc,QAAUR,MAAQ,kBAEpByqB,eACE/qB,KAAO,YACPE,SACEuX,gBACEnX,MAAQ,qBACRyE,cAAgB,mFAElB2S,eACEpX,MAAQ,oBACRyE,cAAgB,sDAGpBA,cAAgB,kFAElBimB,mBACEhrB,KAAO,SACPqM,MACE,SACA,aAGJ4e,qBACEjrB,KAAO,YACPE,SACEgrB,YACE5qB,MAAQ,6BACRyE,cAAgB,iDAElBomB,cACE7qB,MAAQ,+BACRyE,cAAgB,mDAElBqmB,cACE9qB,MAAQ,+BACRyE,cAAgB,gDAGpBA,cAAgB,0CAElBsmB,aAAerrB,KAAO,UACtBsrB,uBACEtrB,KAAO,YACPE,SACEyO,WACErO,MAAQ,gBACRyE,cAAgB,0BAElBwmB,gBACEjrB,MAAQ,aACRyE,cAAgB,iCAGpBA,cAAgB,wCAElBymB,wBACExrB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,oGAGpBA,cAAgB,mEAChB6N,WAAY,GAEd6Y,yBACEzrB,KAAO,YACPC,UAAY,aACZC,SACEwrB,MAAQprB,MAAQ,cAChBqrB,SAAWrrB,MAAQ,cACnB4gB,WAAa5gB,MAAQ,WACrBsrB,YAActrB,MAAQ,mBACtBurB,eAAiBvrB,MAAQ,mBACzBwrB,UAAYxrB,MAAQ,qBAGxByrB,iBACE/rB,KAAO,YACPC,UAAY,WACZC,SACE8rB,SAAW1rB,MAAQ,gCACnB2rB,UAAY3rB,MAAQ,6BACpB4rB,UAAY5rB,MAAQ,+BAGxB6rB,gCACEnsB,KAAO,YACPE,SACEksB,UACE9rB,MAAQ,aACRyE,cAAgB,6EAElBsnB,UACE/rB,MAAQ,aACRyE,cAAgB,8EAGpBA,cAAgB,yFAElBunB,eACEtsB,KAAO,SACPqM,MACE,OACA,WACA,uBAGJkgB,gBACEvsB,KAAO,OACPc,QAAUR,MAAQ,iBAClBkL,IAAM,EACNC,IAAM,GAER+gB,eACExsB,KAAO,SACPyL,IAAM,EACNC,QAAU,UAEZ+gB,mBACEzsB,KAAO,SACPyL,IAAM,EACNC,QAAU,UAEZghB,mBACE1sB,KAAO,YACPE,SACEqjB,aACEjjB,MAAQ,WACRyE,cAAgB,oDAElB4nB,WACErsB,MAAQ,WACRyE,cAAgB,kDAGpBA,cAAgB,uCAChBoP,WAAY,GAEdyY,6BACE5sB,KAAO,UACPwL,IAAM,GACNC,IAAM,GAERohB,oBACE7sB,KAAO,YACPE,SACE4sB,eACExsB,MAAQ,8BACRyE,cAAgB,8FAElBgoB,kBACEzsB,MAAQ,cACRyE,cAAgB,sJAElBioB,kBACE1sB,MAAQ,cACRyE,cAAgB,sJAElBkoB,gBACE3sB,MAAQ,cACRyE,cAAgB,4IAElBmoB,gBACE5sB,MAAQ,cACRyE,cAAgB,6IAGpBA,cAAgB,oCAElBooB,gCACEntB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,mEAGpBA,cAAgB,qEAChB6N,WAAY,GAEdwa,cACEptB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,SACVyI,WAAY,GAEdkZ,oBACErtB,KAAO,UACPwL,IAAM,GACNC,IAAM,GAER6hB,kBACEttB,KAAO,SACPwL,IAAM,KACNC,IAAM,GAER8hB,gBACEvtB,KAAO,UACPyL,IAAM,GAER+hB,6BACExtB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,gEAGpBA,cAAgB,kEAChB6N,WAAY,GAEd6a,qBACEztB,KAAO,YACPE,SACE4D,cAAgBxD,MAAQ,oBACxBqZ,cAAgBrZ,MAAQ,4BACxB8D,kBAAoB9D,MAAQ,YAC5B6D,cAAgB7D,MAAQ,cAG5BotB,qBACE1tB,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnBqtB,kBACE3tB,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,qCAEZkiB,oBACE5tB,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,6CAEZmiB,4BACE7tB,KAAO,YACPE,SACE4D,cAAgBxD,MAAQ,oBACxBwtB,uBAAyBxtB,MAAQ,cACjCytB,wBAA0BztB,MAAQ,gBAGtC0tB,mBACEhuB,KAAO,OACPc,QAAUR,MAAQ,uBAClBkL,IAAM,GACNC,IAAM,GAERwiB,YACEjuB,KAAO,UACPwL,IAAM,GACNC,IAAM,GAERyiB,gBACEluB,KAAO,UACPwL,IAAM,GACNC,IAAM,GAER0iB,iBACEnuB,KAAO,SACPwL,IAAM,KACNC,IAAM,EACNC,QAAU,qCAEZ0iB,0BACEpuB,KAAO,UACPwL,IAAM,KACNC,IAAM,GAER4iB,sBACEruB,KAAO,YACPC,UACE,WACA,gBAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBupB,cACEhuB,MAAQ,mBACRyE,cAAgB,oEAElByQ,cACElV,MAAQ,iBACRyE,cAAgB,oEAElB2K,mBAAqBpP,MAAQ,0BAE/ByE,cAAgB,oDAElBwpB,uBACEvuB,KAAO,YACPE,SACE8P,sBACE1P,MAAQ,2BACRyE,cAAgB,kGAGpBA,cAAgB,yFAElBypB,+BACExuB,KAAO,YACPC,UACE,WACA,YAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB2T,iBAAmBpY,MAAQ,uBAC3BwM,UACExM,MAAQ,eACRyE,cAAgB,oFAElB2K,mBAAqBpP,MAAQ,0BAE/ByE,cAAgB,kEAElB0pB,gCACEzuB,KAAO,YACPE,SACEkV,qBACE9U,MAAQ,0BACRyE,cAAgB,wHAGpBA,cAAgB,wIAElB2pB,2BACE1uB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,wGAGpBA,cAAgB,sGAChB6N,WAAY,GAEd+b,8BACE3uB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,kCAEZkjB,wBACE5uB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,mBAEZmjB,oCACE7uB,KAAO,SACPwL,IAAM,IACNC,IAAM,GAERqjB,6BACE9uB,KAAO,OACPc,QAAUR,MAAQ,2BAClBkL,IAAM,IAERujB,6BACE/uB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,6CAEZsjB,yBACEhvB,KAAO,YACPC,UACE,YACA,oBAEFC,SACE+uB,WAAa3uB,MAAQ,+BACrB4uB,kBAAoB5uB,MAAQ,wCAGhC6uB,oBACEnvB,KAAO,YACPE,SACEwM,YAAcpM,MAAQ,kBACtB4Z,YAAc5Z,MAAQ,gCACtB0T,MAAQ1T,MAAQ,0BAChB6Z,QAAU7Z,MAAQ,iCAGtB8uB,yBACEpvB,KAAO,OACPc,QAAUR,MAAQ,uBAEpB+uB,+BACErvB,KAAO,YACPC,UACE,WACA,iBAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,6BAElB8K,eACEvP,MAAQ,oBACRyE,cAAgB,uKAElB+K,SACExP,MAAQ,cACRyE,cAAgB,0YAElBqM,oBACE9Q,MAAQ,yBACRyE,cAAgB,8vBAElB2K,mBAAqBpP,MAAQ,yBAC7BoY,iBAAmBpY,MAAQ,wBAE7ByE,cAAgB,iEAElBuqB,gCACEtvB,KAAO,YACPE,SACE2P,eACEvP,MAAQ,oBACRyE,cAAgB,0GAElB+K,SACExP,MAAQ,cACRyE,cAAgB,0YAElBgL,qBACEzP,MAAQ,0BACRyE,cAAgB,gHAElBiL,sBACE1P,MAAQ,2BACRyE,cAAgB,oHAGpBA,cAAgB,mEAElBwqB,uBACEvvB,KAAO,YACPE,SACEwM,YAAcpM,MAAQ,kBACtByD,UAAYzD,MAAQ,gBACpBkvB,yCAA2ClvB,MAAQ,+CACnDmvB,sBAAwBnvB,MAAQ,4BAChCovB,kCAAoCpvB,MAAQ,wCAC5CqvB,4BAA8BrvB,MAAQ,kCACtC8D,kBAAoB9D,MAAQ,cAGhCsvB,kBACE5vB,KAAO,SACPqM,MACE,SACA,MACA,oBAGJwjB,gCACE7vB,KAAO,YACPE,SACE4vB,oBAAsBxvB,MAAQ,0BAC9ByvB,oBAAsBzvB,MAAQ,4BAGlC0vB,eACEhwB,KAAO,SACPqM,MACE,MACA,SACA,SAGJ4jB,cACEjwB,KAAO,SACPwL,IAAM,KACNC,IAAM,EACNC,QAAU,iCAEZwkB,oBACElwB,KAAO,YACPE,SACEiP,SAAW7O,MAAQ,eACnB6vB,cAAgB7vB,MAAQ,iBAG5B8vB,qBACEpwB,KAAO,YACPE,SACE8T,MACE1T,MAAQ,0BACRyE,cAAgB,+CAElB0O,mBACEnT,MAAQ,oBACRyE,cAAgB,mCAElBsrB,wBACE/vB,MAAQ,cACRyE,cAAgB,iEAChBurB,KAAM,GAERC,SACEjwB,MAAQ,cACRyE,cAAgB,kFAChBurB,KAAM,GAERE,UACElwB,MAAQ,cACRyE,cAAgB,qKAChBurB,KAAM,GAERG,4BACEnwB,MAAQ,iCACRyE,cAAgB,yEAElB2rB,4BACEpwB,MAAQ,iCACRyE,cAAgB,0EAGpBA,cAAgB,2DAElB4rB,0BACE3wB,KAAO,OACPc,QAAUR,MAAQ,uBAClBkL,IAAM,GACNC,IAAM,GAERmlB,4BACE5wB,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEdie,eACE7wB,KAAO,OACPc,QAAUR,MAAQ,aAClBkL,IAAM,IAERslB,WACE9wB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,kCAEZqlB,2BACE/wB,KAAO,SACPyL,IAAM,EACNC,QAAU,UAEZslB,gCACEhxB,KAAO,OACPc,QAAUR,MAAQ,sBAEpB2wB,gBACEjxB,KAAO,SACPyL,IAAM,GACNC,QAAU,eACVyI,WAAY,GAEd+c,gBACElxB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,YACVyI,WAAY,GAEdgd,aACEnxB,KAAO,SACPwL,IAAM,KACNC,IAAM,IAER2lB,6BACEpxB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtByD,UAAYzD,MAAQ,gBACpBkvB,yCAA2ClvB,MAAQ,+CACnDmvB,sBAAwBnvB,MAAQ,4BAChCovB,kCAAoCpvB,MAAQ,wCAC5CqvB,4BAA8BrvB,MAAQ,oCAG1C+wB,8BACErxB,KAAO,YACPC,UAAY,qBACZC,SACEye,mBAAqBre,MAAQ,2BAGjCgxB,2BACEtxB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtByD,UAAYzD,MAAQ,gBACpBixB,KAAOjxB,MAAQ,WACfkxB,WAAalxB,MAAQ,mBAGzBmxB,4BACEzxB,KAAO,YACPC,UAAY,mBACZC,SACEilB,iBAAmB7kB,MAAQ,yBAG/BoxB,6BACE1xB,KAAO,YACPC,UAAY,eACZC,SACEqR,gBAAkBjR,MAAQ,sBAC1BkR,0BAA4BlR,MAAQ,gCACpCgT,aAAehT,MAAQ,oBAG3BqxB,8BACE3xB,KAAO,YACPE,YAGF0xB,6BACE5xB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtBklB,qBAAuBllB,MAAQ,oBAC/BmlB,+BAAiCnlB,MAAQ,8BACzCqc,kBAAoBrc,MAAQ,qBAGhCuxB,8BACE7xB,KAAO,YACPE,SACEslB,qBAAuBllB,MAAQ,oBAC/BmlB,+BAAiCnlB,MAAQ,8BACzCqc,kBAAoBrc,MAAQ,qBAGhCwxB,mCACE9xB,KAAO,YACPC,UAAY,cACZC,SACEwM,YAAcpM,MAAQ,kBACtByxB,SAAWzxB,MAAQ,sBAGvB0xB,oCACEhyB,KAAO,YACPC,UAAY,2BACZC,SACE0lB,yBAA2BtlB,MAAQ,iCAGvC2xB,wBACEjyB,KAAO,YACPC,UACE,cACA,cAEFC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,8DAElBsK,YACE/O,MAAQ,oBACRyE,cAAgB,wEAGpBA,cAAgB,uDAElBmtB,yBACElyB,KAAO,YACPE,WAEA6E,cAAgB,wEAElBotB,eACEnyB,KAAO,YACPC,UACE,WACA,WACA,YAEFC,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBgQ,YACEzU,MAAQ,iBACRyE,cAAgB,gKAElB+H,UACExM,MAAQ,eACRyE,cAAgB,0DAElB0T,UACEnY,MAAQ,eACRyE,cAAgB,yDAElBwI,gBACEjN,MAAQ,oBACRyE,cAAgB,qEAElByI,gBACElN,MAAQ,oBACRyE,cAAgB,iEAElB2K,mBAAqBpP,MAAQ,yBAC7BoY,iBAAmBpY,MAAQ,wBAE7ByE,cAAgB,qDAElBqtB,gBACEpyB,KAAO,YACPC,UACE,gBACA,WAEFC,SACEmyB,eACE/xB,MAAQ,cACRyE,cAAgB,6FAElBqQ,qBACE9U,MAAQ,0BACRyE,cAAgB,sGAElButB,SAAWhyB,MAAQ,eAErByE,cAAgB,mEAElBwtB,wBACEvyB,KAAO,OACPc,QAAUR,MAAQ,cAClBkL,IAAM,IAERgnB,sBACExyB,KAAO,YACPC,UAAY,gBACZC,SACEuyB,cACEnyB,MAAQ,UACRyE,cAAgB,iGAElBiO,YACE1S,MAAQ,aACRyE,cAAgB,4BAGpBA,cAAgB,sCAElB2tB,kBACE1yB,KAAO,YACPE,SACEwc,0BAA4Bpc,MAAQ,8BACpCwc,kBAAoBxc,MAAQ,0BAGhCqyB,4BACE3yB,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,kBAEZknB,mCACE5yB,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEdigB,8BACE7yB,KAAO,SACPwL,IAAM,EACNC,IAAM,EACNC,QAAU,UAEZonB,4BACE9yB,KAAO,YACPE,SACEiP,SAAW7O,MAAQ,iBAGvByyB,8BACE/yB,KAAO,YACPE,SACEiP,SAAW7O,MAAQ,eACnB6vB,cAAgB7vB,MAAQ,iBAG5B0yB,2BACEhzB,KAAO,YACPC,UACE,aACA,SAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElB8Z,OACEve,MAAQ,sBACRyE,cAAgB,+CAGpBA,cAAgB,+DAElBkuB,4BACEjzB,KAAO,YACPE,SACEwa,eACEpa,MAAQ,oBACRyE,cAAgB,+DAGpBA,cAAgB,+FAElBmuB,YACElzB,KAAO,SACPqM,MACE,UACA,aAGJ8mB,0BACEnzB,KAAO,YACPC,UACE,aACA,SAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElB8Z,OACEve,MAAQ,sBACRyE,cAAgB,+CAGpBA,cAAgB,8DAElBquB,2BACEpzB,KAAO,YACPE,SACEwa,eACEpa,MAAQ,oBACRyE,cAAgB,+DAGpBA,cAAgB,8FAElBsuB,gCACErzB,KAAO,YACPE,SACEozB,WACEhzB,MAAQ,aACRyE,cAAgB,uEAElBwuB,WACEjzB,MAAQ,aACRyE,cAAgB,wEAGpBA,cAAgB,mFAElByuB,YAAcxzB,KAAO,UACrByzB,oCACEzzB,KAAO,OACPc,QAAUR,MAAQ,qBAEpBozB,gBACE1zB,KAAO,SACP0L,QAAU,mBACVyI,WAAY,GAEdwf,gCACE3zB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,8GAGpBA,cAAgB,wHAChB6N,WAAY,GAEdghB,0BACE5zB,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,uGAGpBA,cAAgB,oGAChB6N,WAAY,GAEdihB,qBACE7zB,KAAO,YACPE,SACEwM,YAAcpM,MAAQ,kBACtByD,UAAYzD,MAAQ,gBACpBwzB,UAAYxzB,MAAQ,gBACpBixB,KAAOjxB,MAAQ,WACfyzB,YAAczzB,MAAQ,kBACtB8D,kBAAoB9D,MAAQ,YAC5B6D,cAAgB7D,MAAQ,cAG5B0zB,kBACEh0B,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnB2zB,2BACEj0B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,4GAGpBA,cAAgB,oIAChB6N,WAAY,GAEdshB,sCACEl0B,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEduhB,+BACEn0B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,0EAGpBA,cAAgB,yEAChB6N,WAAY,GAEdwhB,gCACEp0B,KAAO,YACPC,UACE,aACA,WACA,UACA,gBACA,iBAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwM,UAAYxM,MAAQ,gBACpBuR,SAAWvR,MAAQ,eACnB+zB,eAAiB/zB,MAAQ,kBACzBwR,eAAiBxR,MAAQ,uBAG7Bg0B,iCACEt0B,KAAO,YACPE,YAGFq0B,2BACEv0B,KAAO,YACPC,UACE,cACA,aAEFC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,4BAElB4J,WACErO,MAAQ,gBACRyE,cAAgB,0BAElBkN,wBACE3R,MAAQ,6BACRyE,cAAgB,yDAGpBA,cAAgB,8DAElByvB,4BACEx0B,KAAO,YACPE,WAEA6E,cAAgB,mEAElB0vB,oBACEz0B,KAAO,YACPC,UACE,YACA,cAEFC,SACE6M,WACEzM,MAAQ,gBACRyE,cAAgB,iCAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,8CAElBuU,aACEhZ,MAAQ,kBACRyE,cAAgB,gEAElBgO,SACEzS,MAAQ,UACRyE,cAAgB,+JAElBwU,YACEjZ,MAAQ,iBACRyE,cAAgB,mJAItB2vB,qBACE10B,KAAO,YACPE,SACEuZ,OACEnZ,MAAQ,YACRyE,cAAgB,4CAItB4vB,+BACE30B,KAAO,YACPC,UACE,aACA,gBAEFC,SACEwM,YAAcpM,MAAQ,kBACtBwD,cAAgBxD,MAAQ,oBACxBsZ,iBAAmBtZ,MAAQ,uBAC3BuZ,kBAAoBvZ,MAAQ,wBAC5BwZ,gBAAkBxZ,MAAQ,4BAG9Bs0B,gCACE50B,KAAO,YACPC,UAAY,oBACZC,SACE8Z,kBAAoB1Z,MAAQ,0BAGhCu0B,6BACE70B,KAAO,YACPC,UACE,aACA,aACA,QAEFC,SACEwM,YAAcpM,MAAQ,kBACtB4Z,YAAc5Z,MAAQ,gCACtB0T,MAAQ1T,MAAQ,0BAChB6Z,QAAU7Z,MAAQ,iCAGtBw0B,8BACE90B,KAAO,YACPC,UAAY,kBACZC,SACEma,gBAAkB/Z,MAAQ,wBAG9By0B,6BACE/0B,KAAO,YACPC,UACE,iBACA,eAEFC,SACEqN,gBACEjN,MAAQ,oBACRyE,cAAgB,qEAElBuO,aACEhT,MAAQ,iBACRyE,cAAgB,uEAGpBA,cAAgB,4DAElBiwB,8BACEh1B,KAAO,YACPE,SACE+0B,yBACE30B,MAAQ,8BACRyE,cAAgB,qGAGpBA,cAAgB,6FAElBmwB,6BACEl1B,KAAO,YACPC,UACE,aACA,YAEFC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,4FAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,8DAElB6V,YACEta,MAAQ,iBACRyE,cAAgB,oEAElB+V,sBACExa,MAAQ,2BACRyE,cAAgB,wGAElBgW,gBACEza,MAAQ,2BACRyE,cAAgB,qDAElBiW,iBACE1a,MAAQ,2BACRyE,cAAgB,qDAElBkW,mBACE3a,MAAQ,4BACRyE,cAAgB,yCAElBmW,4BAA8B5a,MAAQ,sCACtC6a,cAAgB7a,MAAQ,wBACxB8a,YAAc9a,MAAQ,sBACtB+a,oBAAsB/a,MAAQ,mBAC9Bgb,mBAAqBhb,MAAQ,kBAC7Bib,oBAAsBjb,MAAQ,iBAC9Bkb,iCAAmClb,MAAQ,eAC3Cmb,wBAA0Bnb,MAAQ,+BAEpCyE,cAAgB,iEAElBowB,8BACEn1B,KAAO,YACPE,SACEyb,gBACErb,MAAQ,qBACRyE,cAAgB,yHAGpBA,cAAgB,iGAElBqwB,uBACEp1B,KAAO,YACPC,UAAY,cACZC,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,iEAElBkX,UACE3b,MAAQ,qBACRyE,cAAgB,2EAElBmX,cACE5b,MAAQ,mBACRyE,cAAgB,6FAElBoX,wBACE7b,MAAQ,6BACRyE,cAAgB,+HAElBuX,wBACEhc,MAAQ,6BACRyE,cAAgB,2EAElBwX,0BACEjc,MAAQ,+BACRyE,cAAgB,0DAElByX,0BACElc,MAAQ,+BACRyE,cAAgB,yDAElB0X,6BAA+Bnc,MAAQ,mCACvCoc,0BACEpc,MAAQ,6BACRyE,cAAgB,0DAElB4X,kBACErc,MAAQ,kBACRyE,cAAgB,2bAElB6X,qBACEtc,MAAQ,0BACRyE,cAAgB,gCAElB8X,oBACEvc,MAAQ,yBACRyE,cAAgB,+BAElB+X,kBACExc,MAAQ,uBACRyE,cAAgB,6BAElBgY,cACEzc,MAAQ,mBACRyE,cAAgB,sPAElBiY,uBACE1c,MAAQ,4BACRyE,cAAgB,0DAElBmY,gBAAkB5c,MAAQ,uBAE5ByE,cAAgB,0DAElBswB,wBACEr1B,KAAO,YACPE,WAEA6E,cAAgB,mGAElBuwB,qBACEt1B,KAAO,YACPE,SACEq1B,aAAej1B,MAAQ,gBAG3Bk1B,gBACEx1B,KAAO,SACPwL,IAAM,KAERiqB,+BACEz1B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,8EAGpBA,cAAgB;AAChB6N,WAAY,GAEd8iB,qBACE11B,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,wBAEZiqB,uBACE31B,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,mBAEZkqB,yBACE51B,KAAO,SACPqM,MACE,UACA,UACA,aACA,WACA,UACA,UACA,SACA,cAGJwpB,mBACE71B,KAAO,YACPE,SACEqa,SACEja,MAAQ,wBACRyE,cAAgB,gDAElB8Z,OACEve,MAAQ,sBACRyE,cAAgB,8CAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,qFAElB+wB,cACEx1B,MAAQ,mBACRyE,cAAgB,iEAElBZ,cACE7D,MAAQ,WACRyE,cAAgB,yDAElBgxB,WACEz1B,MAAQ,WACRyE,cAAgB,yDAElBixB,gBACE11B,MAAQ,WACRyE,cAAgB,2DAElB4b,QACErgB,MAAQ,0BACRyE,cAAgB,w0BAElByV,uBACEla,MAAQ,UACRyE,cAAgB,gMAElBkxB,eACE31B,MAAQ,WACRyE,cAAgB,+DAElBmxB,cACE51B,MAAQ,WACRyE,cAAgB,iDAElBoxB,aACE71B,MAAQ,WACRyE,cAAgB,0DAElBqxB,mBACE91B,MAAQ,wBACRyE,cAAgB,uEAGpBA,cAAgB,oCAElBsxB,wBACEr2B,KAAO,OACPc,QAAUR,MAAQ,qBAClBkL,IAAM,GACNC,IAAM,GAER6qB,+BACEt2B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,iIAGpBA,cAAgB,wIAChB6N,WAAY,GAEd2jB,2BACEv2B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,2EAGpBA,cAAgB,6EAChB6N,WAAY,GAEd4jB,uBACEx2B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,0DAGpBA,cAAgB,4DAChB6N,WAAY,GAEd6jB,kCACEz2B,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErBsS,WAAY,GAEd8jB,oBACE12B,KAAO,YACPC,UAAY,wBACZC,SACEy2B,sBAAwBr2B,MAAQ,8BAGpCs2B,2BACE52B,KAAO,YACPE,SACE6D,UACEzD,MAAQ,eACRyE,cAAgB,8DAElB2H,YACEpM,MAAQ,iBACRyE,cAAgB,8FAElB6V,YACEta,MAAQ,iBACRyE,cAAgB,kEAGpBA,cAAgB,mDAElB8xB,wBACE72B,KAAO,OACPc,QAAUR,MAAQ,8BAEpBw2B,oBACE92B,KAAO,YACPE,SACEwM,YACEpM,MAAQ,iBACRyE,cAAgB,qDAElB6V,YACEta,MAAQ,iBACRyE,cAAgB,yEAElBhB,UACEzD,MAAQ,eACRyE,cAAgB,8DAElBupB,cACEhuB,MAAQ,mBACRyE,cAAgB,2EAElBX,kBACE9D,MAAQ,WACRyE,cAAgB,gFAElBZ,cACE7D,MAAQ,WACRyE,cAAgB,2EAElB+V,sBACExa,MAAQ,2BACRyE,cAAgB,wGAElBgW,gBACEza,MAAQ,2BACRyE,cAAgB,oCAElBiW,iBACE1a,MAAQ,2BACRyE,cAAgB,oCAElBkW,mBACE3a,MAAQ,4BACRyE,cAAgB,6CAElBmW,4BAA8B5a,MAAQ,sCACtC6a,cAAgB7a,MAAQ,wBACxB8a,YAAc9a,MAAQ,sBACtB+a,oBAAsB/a,MAAQ,mBAC9Bgb,mBAAqBhb,MAAQ,kBAC7Bib,oBAAsBjb,MAAQ,iBAC9Bkb,iCACElb,MAAQ,cACRgwB,KAAM,GAER7U,wBAA0Bnb,MAAQ,+BAEpCyE,cAAgB,0CAElBgyB,yBACE/2B,KAAO,YACPE,SACE82B,IACE12B,MAAQ,iBACRyE,cAAgB,6CAElBiP,MACE1T,MAAQ,mBACRyE,cAAgB,+CAElBmX,cACE5b,MAAQ,mBACRyE,cAAgB,+EAElB4b,QACErgB,MAAQ,aACRyE,cAAgB,2DAElBX,kBACE9D,MAAQ,WACRyE,cAAgB,6DAElBZ,cACE7D,MAAQ,WACRyE,cAAgB,yDAGpBA,cAAgB,mCAElBkyB,gBACEj3B,KAAO,SACPwL,IAAM,GACNC,IAAM,EACNC,QAAU,wBAEZwrB,kBACEl3B,KAAO,OACPc,QAAUR,MAAQ,4BAEpB62B,iBACEn3B,KAAO,SACPqM,MACE,MACA,KACA,aAGJ+qB,kBACEp3B,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,mBAEZ2rB,oBACEr3B,KAAO,YACPE,SACEo3B,gBACEh3B,MAAQ,qBACRyE,cAAgB,6EAGpBA,cAAgB,6CAElBwyB,0BACEv3B,KAAO,YACPE,SACEyS,SAAWrS,MAAQ,gBAErByE,cAAgB,mFAChB6N,WAAY,GAEd4kB,kBACEx3B,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,eAEnBm3B,cACEz3B,KAAO,YACPE,SACE82B,IACE12B,MAAQ,iBACRyE,cAAgB,mCAElBiP,MACE1T,MAAQ,mBACRyE,cAAgB,qCAElBkX,UACE3b,MAAQ,qBACRyE,cAAgB,2EAElBmX,cACE5b,MAAQ,mBACRyE,cAAgB,sFAElB4b,QACErgB,MAAQ,aACRyE,cAAgB,qCAElBX,kBACE9D,MAAQ,WACRyE,cAAgB,iDAElBZ,cACE7D,MAAQ,WACRyE,cAAgB,4CAElB2yB,kBACEp3B,MAAQ,2BACRyE,cAAgB,iEAElBoX,wBACE7b,MAAQ,6BACRyE,cAAgB,0EAElBqX,iBACE9b,MAAQ,0BACRyE,cAAgB,oEAElBsX,oBAAsB/b,MAAQ,8BAC9Bgc,wBACEhc,MAAQ,6BACRyE,cAAgB,wDAElBwX,0BACEjc,MAAQ,+BACRyE,cAAgB,0DAElByX,0BACElc,MAAQ,+BACRyE,cAAgB,yDAElB0X,6BAA+Bnc,MAAQ,mCACvCoc,0BACEpc,MAAQ,6BACRyE,cAAgB,0DAElB4X,kBACErc,MAAQ,kBACRyE,cAAgB,2bAElB6X,qBACEtc,MAAQ,0BACRyE,cAAgB,oCAElB4yB,wBACEr3B,MAAQ,cACRyE,cAAgB,yDAElB8X,oBACEvc,MAAQ,yBACRyE,cAAgB,mCAElB+X,kBACExc,MAAQ,uBACRyE,cAAgB,iCAElBgY,cACEzc,MAAQ,mBACRyE,cAAgB,sPAElB6yB,yBACEt3B,MAAQ,aACRyE,cAAgB,yFAElB8yB,2BACEv3B,MAAQ,aACRyE,cAAgB,yFAElBiY,uBACE1c,MAAQ,4BACRyE,cAAgB,0DAElBmY,gBAAkB5c,MAAQ,uBAE5ByE,cAAgB,iEAElB+yB,6BACE93B,KAAO,YACPE,SACEwM,YAAcpM,MAAQ,kBACtByxB,SAAWzxB,MAAQ,yBACnB8D,kBAAoB9D,MAAQ,YAC5B6D,cAAgB7D,MAAQ,cAG5By3B,uBACE/3B,KAAO,MACP0D,KAAOpD,MAAQ,cACfqD,OAASrD,MAAQ,qBAEnB03B,gBACEh4B,KAAO,SACPqM,MACE,cACA,YACA,WACA,cACA,UACA,iBACA,0BAGJ4rB,UACEj4B,KAAO,YACPE,SACE4M,UACExM,MAAQ,eACRyE,cAAgB,0DAElBmzB,YACE53B,MAAQ,oBACRyE,cAAgB,uEAElBkK,gBACE3O,MAAQ,WACRyE,cAAgB,yCAElBmK,sBACE5O,MAAQ,WACRyE,cAAgB,8CAElBoK,SACE7O,MAAQ,cACRyE,cAAgB,iDAElBqK,YACE9O,MAAQ,iBACRyE,cAAgB,qYAElBsK,YACE/O,MAAQ,oBACRyE,cAAgB,yCAGpBA,cAAgB,yBAElBozB,uBACEn4B,KAAO,SACPqM,MACE,eACA,UAGJ+rB,4BACEp4B,KAAO,OACPc,QAAUR,MAAQ,0BAEpB+3B,yBACEr4B,KAAO,YACPE,SACEyS,SACErS,MAAQ,cACRyE,cAAgB,yFAGpBA,cAAgB,mHAChB6N,WAAY,GAEd0lB,cACEt4B,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,oCACVyI,WAAY,GAEdokB,eACEv4B,KAAO,OACPc,QAAUR,MAAQ,aAEpBk4B,iCACEx4B,KAAO,YACPE,SACEu4B,YAAcn4B,MAAQ,8BACtB6qB,cAAgB7qB,MAAQ,gCACxB8qB,cAAgB9qB,MAAQ,gCACxBo4B,oBAAsBp4B,MAAQ,sCAC9Bq4B,oBAAsBr4B,MAAQ,sCAC9Bs4B,oBAAsBt4B,MAAQ,4BAGlCu4B,uBACE74B,KAAO,SACPqM,MACE,eACA,UAGJysB,4BACE94B,KAAO,OACPc,QAAUR,MAAQ,0BAEpBy4B,4BACE/4B,KAAO,YACPC,UAAY,YACZC,SACEoT,aAAehT,MAAQ,kBACvBwP,SAAWxP,MAAQ,eACnB04B,UAAY14B,MAAQ,gCACpB24B,oBAAsB34B,MAAQ,gBAGlC44B,6BACEl5B,KAAO,YACPE,SACEygB,QAAUrgB,MAAQ,mCAClBwP,SAAWxP,MAAQ,iBAGvB64B,iCACEn5B,KAAO,SACPqM,MACE,UACA,UAGJ+sB,4BACEp5B,KAAO,YACPC,UACE,cACA,gBACA,QAEFC,SACEoT,aACEhT,MAAQ,iBACRyE,cAAgB,gFAElB2S,eACEpX,MAAQ,oBACRyE,cAAgB,uEAElB6c,MACEthB,MAAQ,uBACRyE,cAAgB,2EAGpBA,cAAgB,4DAElBs0B,6BACEr5B,KAAO,YACPE,WAEA6E,cAAgB,4GAElBu0B,gBACEt5B,KAAO,OACPc,QAAUR,MAAQ,eAEpBi5B,eACEv5B,KAAO,SACPwL,IAAM,IACNC,IAAM,EACNC,QAAU,sDAGd3G,cAAgB,0XAEZy0B,GAAG,SAAS76B,EAAQQ,EAAOJ,GACjCI,EAAOJ,SACL06B,KACE/0B,KAAQ,MACRg1B,MAAQ,GAEVC,YACEj1B,KAAQ,aACRg1B,MAAQ,GAEVE,wBACEC,OAAU,0BACVn1B,KAAQ,yBACRg1B,MAAQ,GAEVI,aACEp1B,KAAQ,cACRg1B,MAAQ,GAEVK,gBACEr1B,KAAQ,iBACRg1B,MAAQ,GAEVM,YACEt1B,KAAQ,aACRu1B,UAAa,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,eAClLP,MAAQ,GAEVQ,UACEx1B,KAAQ,WACRg1B,MAAQ,GAEVS,aACEz1B,KAAQ,eAEV01B,mBACE11B,KAAQ,qBAEV21B,YACE31B,KAAQ,aACRg1B,MAAQ,GAEVY,YACET,OAAU,aACVn1B,KAAQ,aACRg1B,MAAQ,GAEVa,kBACEV,OAAU,SACVn1B,KAAQ,mBACRu1B,UAAa,eACbP,MAAQ,GAEVc,gBACEX,OAAU,OACVn1B,KAAQ,iBACRg1B,MAAQ,GAEVe,YACE/1B,KAAQ,aACRg1B,MAAQ,GAEVgB,YACEh2B,KAAQ,aACRg1B,MAAQ,GAEViB,cACEj2B,KAAQ,eACRg1B,MAAQ,GAEVkB,iBACEf,OAAU,mBACVn1B,KAAQ,kBACRg1B,MAAQ,GAEVmB,gCACEhB,OAAU,cACVn1B,KAAQ,iCACRg1B,MAAQ,GAEVoB,aACEjB,OAAU,eACVn1B,KAAQ,cACRg1B,MAAQ,GAEVqB,eACElB,OAAU,SACVn1B,KAAQ,gBACRg1B,MAAQ,GAEVsB,cACEt2B,KAAQ,gBAEVu2B,YACEv2B,KAAQ,aACRg1B,MAAQ,GAEVwB,eACEx2B,KAAQ,gBACRg1B,MAAQ,GAEVyB,kBACEtB,OAAU,KACVn1B,KAAQ,oBAEV02B,WACE12B,KAAQ,aAEV22B,KACE32B,KAAQ,OAEV42B,UACE52B,KAAQ,WACRg1B,MAAQ,GAEV6B,iBACE1B,OAAU,mBACVn1B,KAAQ,kBACRg1B,MAAQ,GAEV8B,KACE92B,KAAQ,MACRu1B,UAAa,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,eACpJP,MAAQ,GAEV+B,KACE/2B,KAAQ,MACRg1B,MAAQ,GAEVgC,KACEh3B,KAAQ,MACRg1B,MAAQ,GAEViC,KACE9B,OAAU,oBACVn1B,KAAQ,OAEVk3B,aACEl3B,KAAQ,cACRu1B,UAAa,cAAe,cAAe,cAAe,eAC1DP,MAAQ,GAEVmC,kBACEn3B,KAAQ,mBACRg1B,MAAQ,GAEVoC,KACEjC,OAAU,uBACVn1B,KAAQ,MACRg1B,MAAQ,GAEVqC,OACElC,OAAU,yBACVn1B,KAAQ,QACRg1B,MAAQ,GAEVsC,KACEnC,OAAU,mBACVn1B,KAAQ,MACRg1B,MAAQ,GAEVuC,IACEv3B,KAAQ,MAEVw3B,mBACEx3B,KAAQ,oBACRg1B,MAAQ,GAEVyC,UACEz3B,KAAQ,WACRg1B,MAAQ,GAEV0C,UACE13B,KAAQ,WACRg1B,MAAQ,GAEV2C,SACE33B,KAAQ,WAEV43B,KACE53B,KAAQ,OAEV63B,cACE73B,KAAQ,gBAEV83B,WACE93B,KAAQ,YACRu1B,UAAa,eACbP,MAAQ,GAEV+C,KACE/3B,KAAQ,MACRg1B,MAAQ,GAEVgD,SACE7C,OAAU,WACVn1B,KAAQ,UACRg1B,MAAQ,GAEViD,SACEj4B,KAAQ,UACRg1B,MAAQ,GAEVkD,kBACEl4B,KAAQ,oBAEVm4B,KACEn4B,KAAQ,MACRg1B,MAAQ,GAEVoD,QACEp4B,KAAQ,SACRg1B,MAAQ,GAEVqD,iBACEr4B,KAAQ,kBACRg1B,MAAQ,GAEVsD,8BACEt4B,KAAQ,+BACRg1B,MAAQ,GAEVuD,qBACIpD,OAAU,sBACVn1B,KAAQ,uBAEZw4B,iBACEx4B,KAAQ,kBACRg1B,MAAQ,GAEVyD,UACEz4B,KAAQ,WACRg1B,MAAQ,GAEV0D,KACE14B,KAAQ,MACRu1B,UAAa,eACbP,MAAQ,GAEV2D,UACE34B,KAAQ,WACRg1B,MAAQ,GAEV4D,SACE54B,KAAQ,UACRg1B,MAAQ,GAEV6D,gBACE74B,KAAQ,iBACRg1B,MAAQ,GAEV8D,IACE94B,KAAQ,KACR+4B,oBAAsB,EACtB/D,MAAQ,GAEVgE,gBACEh5B,KAAQ,iBACRg1B,MAAQ,GAEViE,KACE9D,OAAU,QACVn1B,KAAQ,MACRg1B,MAAQ,GAEVkE,UACE/D,OAAU,MACVn1B,KAAQ,YAEVm5B,UACEn5B,KAAQ,YAEVo5B,KACEp5B,KAAQ,MACRg1B,MAAQ,GAEVqE,KACEr5B,KAAQ,MACRg1B,MAAQ,GAEVsE,KACEt5B,KAAQ,MACRg1B,MAAQ,GAEVuE,gBACEv5B,KAAQ,iBACRg1B,MAAQ,GAEVwE,KACEx5B,KAAQ,MACRg1B,MAAQ,GAEVyE,SACEz5B,KAAQ,WAEV05B,KACE15B,KAAQ,OAEV25B,KACE35B,KAAQ,MACRg1B,MAAQ,GAEV4E,YACE55B,KAAQ,oBAIN65B,GAAG,SAAS5/B,EAAQQ,EAAOJ,GACjCI,EAAOJ,SACLK,QAAW,MACXC,UACEC,WAAc,aACdC,eAAkB,MAClBi/B,eAAkB,oBAClB/+B,SAAY,QACZg/B,oBAAuB,UACvB/+B,gBAAmB,6BACnBC,iBAAoB,KACpB++B,aAAgB,6CAElB7+B,YACE8+B,YACE5+B,OACEC,KAAQ,YACRC,UACE,UACA,mBAEFC,SACE6S,WACA6rB,mBACAC,UACAC,iBACE9+B,KAAQ,WAEVgT,cACA+rB,gBACAC,eAGJr+B,QACEs+B,cAAiB,mBACjBj/B,KAAQ,YACRE,SACEuB,aACEnB,MAAS,MAEX4+B,iBACE5+B,MAAS,MAEX6+B,kBACEn/B,KAAQ,cAKhBo/B,oBACEr/B,OACEC,KAAQ,YACRC,UACE,UACA,eACA,iBAEFC,SACE6S,WACAssB,gBACAC,iBACAT,UACAC,iBACE9+B,KAAQ,aAIdW,QACEs+B,cAAiB,2BACjBj/B,KAAQ,YACRE,SACEuB,aACEnB,MAAS,MAEX4+B,iBACE5+B,MAAS,MAEX6+B,kBACEn/B,KAAQ,WAEVgsB,WACAuT,eACAC,UACAC,YACAC,oBAINC,2BACE5/B,OACEC,KAAQ,YACRC,UACE,UACA,kBACA,oBAEFC,SACE6S,WACA6rB,mBACAgB,oBACAC,cACAhB,UACAC,iBACE9+B,KAAQ,aAIdW,QACEs+B,cAAiB,kCACjBj/B,KAAQ,YACRE,SACEuB,aACEnB,MAAS,MAEXw/B,+BACAZ,iBACE5+B,MAAS,MAEX6+B,kBACEn/B,KAAQ,WAEVmiB,YACAsd,eAINM,4BACEhgC,OACEC,KAAQ,YACRC,UACE,kBAEFC,SACE8/B,oBAGJr/B,QACEs+B,cAAiB,mCACjBj/B,KAAQ,YACRE,SACE+/B,qBAINC,mBACEngC,OACEC,KAAQ,YACRE,YAEFS,QACEs+B,cAAiB,0BACjBj/B,KAAQ,YACRE,SACEigC,UACAC,WACAC,UAINC,oBACEvgC,OACEC,KAAQ,YACRC,UACE,QAEFC,SACE8T,QACA6qB,UACAC,iBACE9+B,KAAQ,aAIdW,QACEs+B,cAAiB,2BACjBj/B,KAAQ,YACRE,SACEuB,aACEnB,MAAS,MAEXigC,eACEvgC,KAAQ,YACRC,UACE,kBACA,OAEFC,SACEsgC,mBACAH,SAGJlB,kBACEn/B,KAAQ,cAKhBygC,iBACE1gC,OACEC,KAAQ,YACRE,SACE4+B,iBACE9+B,KAAQ,WAEV++B,gBACAC,eAGJr+B,QACEs+B,cAAiB,wBACjBj/B,KAAQ,YACRE,SACEuB,aACEnB,MAAS,UAMnBkD,QACEK,IACE7D,KAAQ,YACRC,UACE,cACA,kBACA,eACA,cAEFC,SACEwB,eACAg/B,mBACA9+B,gBACAC,YACE7B,KAAQ,eAIdiE,IACEjE,KAAQ,YACRC,UACE,gBACA,OAEFC,SACEygC,iBACAN,gBAKFO,GAAG,SAASjiC,EAAQQ,EAAOJ,GACjCJ,EAAQ,qBACR,IAAIkiC,GAAMliC,EAAQ,eACdmiC,EAAUniC,EAAQ,kBAClBoiC,EAAYpiC,EAAQ,oBAExBoiC,GAAUC,SAA0B,mBACpCH,EAAII,gBAAkBH,EAAQI,cAAc,mBAAoB,eAChEviC,EAAQ,mCACRwiC,OAAOC,eAAeL,EAAUC,SAA0B,gBAAG,cAC3DK,IAAK,WACH,GAAIC,GAAQ3iC,EAAQ,+CACpB,OAAO2iC,IAETC,YAAY,EACZC,cAAc,IAGhBriC,EAAOJ,QAAU8hC,EAAII,kBAElBQ,+CAA+C,EAAEC,oBAAoB,EAAEC,cAAc,GAAGC,qBAAqB,EAAEC,iBAAiB,GAAGC,kCAAkC,KAAKC,GAAG,SAASpjC,EAAQQ,EAAOJ,GACxMJ,EAAQ,qBACR,IAAIkiC,GAAMliC,EAAQ,eACdmiC,EAAUniC,EAAQ,kBAClBoiC,EAAYpiC,EAAQ,oBAExBoiC,GAAUC,SAAc,OACxBH,EAAImB,IAAMlB,EAAQI,cAAc,OAAQ,eACxCviC,EAAQ,uBACRwiC,OAAOC,eAAeL,EAAUC,SAAc,IAAG,cAC/CK,IAAK,WACH,GAAIC,GAAQ3iC,EAAQ,kCACpB,OAAO2iC,IAETC,YAAY,EACZC,cAAc,IAGhBriC,EAAOJ,QAAU8hC,EAAImB,MAElBC,kCAAkC,EAAEP,oBAAoB,EAAEC,cAAc,GAAGC,qBAAqB,EAAEC,iBAAiB,GAAGK,sBAAsB,KAAKC,GAAG,SAASxjC,EAAQQ,EAAOJ,GAC/K,GAAI8hC,GAAMliC,EAAQ,SAElBkiC,GAAIE,UAAY,SAASqB,EAAKhjC,GAC5B,IAAKyhC,EAAIE,UAAUC,SAASqB,eAAeD,GACzC,KAAM,IAAIvjC,OAAM,0CAA4CujC,EAE9D,OAAOvB,GAAIE,UAAUC,SAASoB,GAAKhjC,IAGrCyhC,EAAIE,UAAUC,YAEd7hC,EAAOJ,QAAU8hC,EAAIE,YAClBuB,SAAS,KAAKC,GAAG,SAAS5jC,EAAQQ,EAAOJ,GAC5CJ,EAAQ,mBAER,IAAIkiC,GAAMliC,EAAQ,SAEI,oBAAX6jC,UAAwBA,OAAOC,WAAa5B,GACjC,mBAAX1hC,KAAwBA,EAAOJ,QAAU8hC,GAChC,mBAAT6B,QAAsBA,KAAKD,WAAa5B,GAE9CM,OAAOwB,UAAUN,eAAerjC,KAAK6hC,EAAK,oCAC7CA,EAAIE,UAAUC,SAAyC,kCACvDH,EAAI+B,+BAAiC/B,EAAIC,QAAQI,cAAc,kCAAoC,gBAErGL,EAAIE,UAAUC,SAAyC,+BAAE,cAAgBriC,EAAQ,sCAE5EwiC,OAAOwB,UAAUN,eAAerjC,KAAK6hC,EAAK,SAC7CA,EAAIE,UAAUC,SAAc,OAC5BH,EAAImB,IAAMnB,EAAIC,QAAQI,cAAc,OAAS,eAC7CviC,EAAQ,mBAEVkiC,EAAIE,UAAUC,SAAc,IAAE,cAAgBriC,EAAQ,gCAGnDkkC,qCAAqC,EAAEC,6BAA6B,EAAEC,mBAAmB,EAAET,SAAS,GAAGU,iBAAiB,KAAKC,GAAG,SAAStkC,EAAQQ,EAAOJ,IAC3J,SAAWmkC,GACX,GAAIC,GAAOxkC,EAAQ,SAEnBwkC,GAAKC,OAAOC,IAAM1kC,EAAQ,qBAC1BwkC,EAAKG,OAAS3kC,EAAQ,WAAW2kC,OACjCH,EAAKI,IAAM5kC,EAAQ,QACnBwkC,EAAKK,YAAc7kC,EAAQ,eAE3B,IAAIkiC,GAAMliC,EAAQ,SAElBA,GAAQ,gBAERkiC,EAAI4C,IAAIC,OAAS/kC,EAAQ,wBAEzBA,EAAQ,cAEe,mBAAZukC,KACTA,GACES,SAAS,MAGV3kC,KAAK4kC,KAAKjlC,EAAQ,aAClBklC,eAAe,EAAEvB,SAAS,GAAGwB,aAAa,GAAGC,SAAS,GAAGC,uBAAuB,GAAGC,OAAS,GAAGC,UAAU,GAAGC,oBAAoB,GAAGC,eAAe,GAAGC,OAAO,KAAKC,IAAI,SAAS3lC,EAAQQ,EAAOJ,GAChM,GAAI8hC,GAAMliC,EAAQ,SAClBA,GAAQ,iBACRA,EAAQ,2CAGRkiC,EAAI0D,OAAS1D,EAAIsC,KAAKqB,SAIpBC,YAAa,SAAgBC,GACXC,SAAZD,IAAuBA,MAC3BA,EAAUd,KAAKgB,mBAAmBF,GAElC7D,EAAIsC,KAAK0B,KAAK7lC,KAAK4kC,KAAMA,KAAKxf,KAAM,SAAU1gB,EAAKC,GACjDigC,KAAKkB,IAAIphC,EAAKghC,EAAQhhC,GAAMC,MAOhCohC,eAAgB,SAAwBC,GAGtC,QAASC,GAAOC,GACdF,EAASE,EAAKA,EAAM,KAAOxC,EAAKyC,aAGlC,QAASC,GAAUC,EAAKH,GACtB,MAAO,IAAIrE,GAAIsC,KAAKmC,MAAMJ,GAAO,GAAIrmC,QACnC0mC,KAAM,mBAAoB5yB,QAAS0yB,IAIvC,QAASG,KACP9C,EAAKyC,YAAY9D,IAAI,SAAS6D,GAC5B,GAAIA,EAAK,CACP,GAAIG,GAAM,mCACR3C,EAAKyC,YAAYV,YAAY//B,IAC/BwgC,GAAME,EAAUC,EAAKH,GAEvBD,EAAOC,KAIX,QAASO,KACP,GAAIP,GAAM,IACLxC,GAAKyC,YAAYO,aAAgBhD,EAAKyC,YAAYQ,kBACrDT,EAAME,EAAU,wBAElBH,EAAOC,GA5BT,GAAIxC,GAAOkB,IA+BPlB,GAAKyC,YAC6B,kBAAzBzC,GAAKyC,YAAY9D,IAC1BmE,IAEAC,IAEO/C,EAAKkD,mBACdlD,EAAKkD,mBAAmBC,QAAQ,SAASX,EAAKY,GACxCZ,IACFA,EAAME,EAAU,gDAAiDF,IAEnExC,EAAKyC,YAAcW,EACnBb,EAAOC,KAGTD,EAAOG,EAAU,4BAOrBW,OAAQ,SAAgBrB,EAASsB,GAC/BA,EAAmBA,IAAoB,EACvCtB,EAAUd,KAAKgB,mBAAmBF,GAClC7D,EAAIsC,KAAK0B,KAAK7lC,KAAK4kC,KAAMc,EAAS,SAAUhhC,EAAKC,IAC3CqiC,GAAoB7E,OAAOwB,UAAUN,eAAerjC,KAAK4kC,KAAKxf,KAAM1gB,IACpEm9B,EAAIC,QAAQmF,WAAWviC,KACzBkgC,KAAKkB,IAAIphC,EAAKC,MAMpBuiC,aAAc,SAAsBC,GAClCvC,KAAKwC,OAEL,IAAI1B,GAAU2B,KAAKC,MAAMzF,EAAIsC,KAAKoD,aAAaJ,IAC3CK,EAAkB,GAAI3F,GAAI4F,sBAAsBN,GAChDO,EAAQ,GAAI7F,GAAI8F,uBASpB,OARAD,GAAME,UAAUC,QAAQL,GACxBE,EAAMb,QAAQ,SAAUX,EAAKY,GAC3B,GAAIZ,EAAK,KAAMA,EACVR,GAAQS,YAAcW,IAG7BlC,KAAKa,YAAYC,GAEVd,MAITwC,MAAO,WAELvF,EAAIsC,KAAK0B,KAAK7lC,KAAK4kC,KAAMA,KAAKxf,KAAM,SAAU1gB,SACrCkgC,MAAKlgC,KAGdkgC,KAAKkB,IAAI,cAAeH,QACxBf,KAAKkB,IAAI,qBAAsBH,SAIjCG,IAAK,SAAagC,EAAUnjC,EAAOojC,GACnBpC,SAAVhhC,GACmBghC,SAAjBoC,IACFA,EAAenD,KAAKxf,KAAK0iB,IAEC,kBAAjBC,GACTnD,KAAKkD,GAAYC,EAAa/nC,KAAK4kC,MAEnCA,KAAKkD,GAAYC,GAEG,gBAAbD,GAA8BlD,KAAKkD,GAC5ClD,KAAKkD,GAAYjG,EAAIsC,KAAK6D,MAAMpD,KAAKkD,GAAWnjC,GAEhDigC,KAAKkD,GAAYnjC,GAKrBygB,MACE+gB,YAAa,KACbS,mBAAoB,KACpBqB,OAAQ,KACRC,OAAQ,KACRC,eACA7nC,WAAY,KACZ8nC,SAAUzC,OACV0C,aACEC,QAAS,MAEXC,WAAY5C,OACZ6C,aAAc,GACdC,iBAAiB,EACjBC,YAAY,EACZC,kBAAkB,EAClBC,kBAAkB,EAClBC,sBAAsB,EACtBC,kBAAkB,EAClBC,sBAAsB,EACtBC,kBAAkB,EAClBC,gBAAiB,KACjBC,eAAe,EACfC,kBAAmB,EACnBxoC,iBAAkB,KAClByoC,gBAAgB,EAChBC,mBACEC,KAAM,KAERC,uBAAuB,GAIzB3D,mBAAoB,SAA4BF,GAK9C,MAJIA,GAAQgB,aAAehB,EAAQiB,kBACjCjB,EAAU7D,EAAIsC,KAAKqF,KAAK9D,GACxBA,EAAQS,YAAc,GAAItE,GAAIp/B,YAAYijC,IAErCA,GAIT+D,sBAAuB,SAA+BC,GACpD7H,EAAIsC,KAAKwF,sBAAsB9H,EAAI+H,QAASF,MAKhD7H,EAAIgI,OAAS,GAAIhI,GAAI0D,SAElBjC,SAAS,GAAGwG,gBAAgB,GAAGC,0CAA0C,KAAKC,IAAI,SAASrqC,EAAQQ,EAAOJ,GAE7G,GAAI8hC,IAAQsC,KAAMxkC,EAAQ,WAGtBsqC,IAAcA,GAAQC,WAE1B/pC,EAAOJ,QAAU8hC,EAEjBA,EAAIsC,KAAK4C,OAAOlF,GAGdsI,QAAS,QAGTC,WAGAC,UACEC,KAAM3qC,EAAQ,mBACd4qC,MAAO5qC,EAAQ,oBACf6qC,KAAM7qC,EAAQ,mBACd8qC,SAAU9qC,EAAQ,wBAClB+qC,QAAS/qC,EAAQ,wBAInB8kC,KACEkG,QAAShrC,EAAQ,iBACjB+kC,OAAQ,MAIV2C,MACEsD,QAAShrC,EAAQ,kBACjB+kC,OAAQ/kC,EAAQ,kBAIlBirC,OACEC,IAAKlrC,EAAQ,eACbmrC,UAAWnrC,EAAQ,qBACnBorC,MAAOprC,EAAQ,iBACfqrC,UAAWrrC,EAAQ,qBACnBsrC,eAAgBtrC,EAAQ,4BAG1BwkC,KAAMxkC,EAAQ,UAGdoiC,UAAW,WAAa,KAAM,IAAIliC,OAAM,wBAG1CF,EAAQ,aAERA,EAAQ,iBACRA,EAAQ,2CACRA,EAAQ,uCACRA,EAAQ,0CACRA,EAAQ,8CACRA,EAAQ,kCAERA,EAAQ,YACRA,EAAQ,UACRA,EAAQ,yBACRA,EAAQ,qBACRA,EAAQ,aACRA,EAAQ,cACRA,EAAQ,qBACRA,EAAQ,4BACRA,EAAQ,qBAGRkiC,EAAIqJ,OAAS,GAAIrJ,GAAIsJ,qBAElBC,WAAW,GAAGtB,gBAAgB,GAAGuB,6CAA6C,GAAGtB,0CAA0C,GAAGuB,iCAAiC,GAAGC,sCAAsC,GAAGC,yCAAyC,GAAGC,oBAAoB,GAAGC,SAAS,GAAGC,iBAAiB,GAAGC,gBAAgB,GAAGC,cAAc,GAAGC,oBAAoB,GAAGC,oBAAoB,GAAGC,0BAA0B,GAAGC,gBAAgB,GAAGC,oBAAoB,GAAGC,kBAAkB,GAAGC,mBAAmB,GAAGC,kBAAkB,GAAGC,uBAAuB,GAAGC,sBAAsB,GAAGC,YAAY,GAAGC,oBAAoB,GAAGC,aAAa,GAAGC,wBAAwB,GAAGC,YAAY,GAAGC,2BAA2B,GAAG9H,SAAS,GAAG+H,gBAAgB,KAAKC,IAAI,SAASptC,EAAQQ,EAAOJ,GACxvB,GAAI8hC,GAAMliC,EAAQ,SAGlBkiC,GAAIp/B,YAAco/B,EAAIsC,KAAKqB,SAEzBC,YAAa,WAKX,GAJA5D,EAAIsC,KAAK6I,eAAepI,MAAO,oBAE/BA,KAAKqI,SAAU,EACfrI,KAAKsI,WAAa,KACO,IAArBC,UAAUltC,QAAwC,gBAAjBktC,WAAU,GAAiB,CAC9D,GAAIrG,GAAQqG,UAAU,GAAGhH,aAAegH,UAAU,EAClDvI,MAAK8B,YAAcI,EAAMJ,YACzB9B,KAAK+B,gBAAkBG,EAAMH,gBAC7B/B,KAAKwI,aAAetG,EAAMsG,iBAE1BxI,MAAK8B,YAAcyG,UAAU,GAC7BvI,KAAK+B,gBAAkBwG,UAAU,GACjCvI,KAAKwI,aAAeD,UAAU,IAKlCE,aAAc,GAGdC,aAAc,WACZ,GAAIC,GAAc1L,EAAIsC,KAAKqJ,KAAKC,UAAUC,UACtCC,EAAe,GAAIC,MAAKL,EAAkC,IAApB3I,KAAKyI,aAE/C,UAAIzI,KAAKsI,YAAcS,EAAe/I,KAAKsI,cAGlCtI,KAAKqI,UAAYrI,KAAK8B,cAAgB9B,KAAK+B,kBAKtDtE,IAAK,SAAa2D,GAChB,GAAItC,GAAOkB,IACPA,MAAK0I,eACP1I,KAAKiJ,QAAQ,SAAS3H,GACfA,IAAKxC,EAAKuJ,SAAU,GACrBjH,GAAUA,EAASE,KAEhBF,GACTA,KAKJ6H,QAAS,SAAiB7H,GACxBpB,KAAKqI,SAAU,EACfjH,SAID1C,SAAS,KAAKwK,IAAI,SAASnuC,EAAQQ,EAAOJ,GAC7C,GAAI8hC,GAAMliC,EAAQ,WACdsiC,EAAkBtiC,EAAQ,iCAC1BqjC,EAAMrjC,EAAQ,oBAGlBkiC,GAAIkM,2BAA6BlM,EAAIsC,KAAKqB,QAAQ3D,EAAIp/B,aAEpDurC,iBACEC,GAAI,2BACJrG,UAAW,mCAIbnC,YAAa,SAAoCyI,GAC/CrM,EAAIp/B,YAAYzC,KAAK4kC,MACrBA,KAAKqI,SAAU,EACfrI,KAAKsJ,OAASA,EACdtJ,KAAKuJ,KAAO,KACZvJ,KAAKwJ,WAAa,KAClBxJ,KAAKyJ,gBAIPR,QAAS,SAAiB7H,GACxB,GAAItC,GAAOkB,IACXlB,GAAK4K,gBACL5K,EAAKyK,KAAO,KACZzK,EAAK0K,WAAa,KAClB1K,EAAK6K,MAAM,SAASrI,GACbA,GAOHxC,EAAK8K,uBAAuBtI,GAC5BF,EAASE,IAPJxC,EAAKwK,OAAOn6B,QAGf2vB,EAAK+K,sBAAsBzI,GAF3BtC,EAAKgL,0BAA0B1I,MAYvC2I,cAAe,WACb/J,KAAKwJ,WAAa,WACXxJ,MAAKsJ,OAAOlsC,UAEnB,IAAI4sC,GAAShK,KAAKsJ,OAAO/rC,eACrB0sC,EAAUjK,KAAKsJ,OAAOY,SAAW,SAC9BlK,MAAKmK,QAAQnK,KAAKoJ,gBAAgBC,GAAKW,EAASC,SAChDjK,MAAKmK,QAAQnK,KAAKoJ,gBAAgBpG,UAAYgH,EAASC,IAIhEL,uBAAwB,SAAgCtI,GACtD,GAAIxC,GAAOkB,IACK,2BAAZsB,EAAIK,MACN7C,EAAKiL,iBAKTJ,MAAO,SAAevI,GACpB,GAAItC,GAAOkB,IACX,OAAsC,gBAA3BlB,GAAKwK,OAAOlsC,WACdgkC,EAAS,KAAMtC,EAAKwK,OAAOlsC,gBAGpC0hC,GAAKsL,QAAQT,MAAM,SAASrI,EAAKiI,IAC1BjI,GAAOiI,EAAKnsC,YACf0hC,EAAKwK,OAAOlsC,WAAamsC,EAAKnsC,WAC9BgkC,EAAS,KAAMmI,EAAKnsC,aAEpBgkC,EAASE,MAOf+I,gBAAiB,SAAyBd,EAAMhI,GACzCgI,GAAShI,IACdA,EAAY8G,SAAU,EACtB9G,EAAYO,YAAcyH,EAAK1rC,YAAYC,YAC3CyjC,EAAYQ,gBAAkBwH,EAAK1rC,YAAYE,UAC/CwjC,EAAYiH,aAAee,EAAK1rC,YAAYG,aAC5CujC,EAAY+G,WAAaiB,EAAK1rC,YAAYI,aAI5C6rC,0BAA2B,SAAmC1I,GAC5D,GAAItC,GAAOkB,IACXlB,GAAKsL,QAAQN,0BAA0B,SAASxI,EAAKiI,GAC9CjI,EAKHxC,EAAK8K,uBAAuBtI,IAJ5BxC,EAAKwL,QAAQf,GACbzK,EAAKyK,KAAOA,EACZzK,EAAKuL,gBAAgBvL,EAAKyK,KAAMzK,IAIlCsC,EAASE,MAKbuI,sBAAuB,SAA+BzI,GACpD,GAAItC,GAAOkB,IACXlB,GAAKsL,QAAQG,eAAe,SAASjJ,EAAKiI,GACnCjI,GAWHxC,EAAK8K,uBAAuBtI,GAC5BF,EAASE,KAXTxC,EAAKwL,QAAQf,GACbzK,EAAKwK,OAAOtN,iBAAmBuN,EAAKhrC,MACpCugC,EAAK0L,uBAAuBvB,QAAQ,SAASwB,GACtCA,IACH3L,EAAKyK,KAAOzK,EAAK0L,uBAAuBjB,KACxCzK,EAAKxE,IAAIoQ,gBAAgB5L,EAAKyK,KAAMzK,IAEtCsC,EAASqJ,SAUjBhB,aAAc,WACZ,GAAI3K,GAAOkB,IAEX,IAAI/C,EAAIsC,KAAKoL,cAAgB7L,EAAKwK,OAAOlsC,WAAY;AACnD,GAAIisC,GAAKvK,EAAK8L,WAAW,KACzB,IAAIvB,GAAMvK,EAAKwK,OAAO3rC,OAAQ,CAC5B,GAAIktC,GAAkBtN,OAAO/c,KAAKse,EAAKwK,OAAO3rC,QAC1CmtC,GACDhM,EAAK8L,WAAW,cAAgB,IAAIG,MAAM,KAEzCC,EAAYF,EAAgBG,OAAO,SAASxwC,GAC9C,MAAOowC,GAAgBK,QAAQzwC,MAAO,GAEf,KAArBuwC,EAAU3vC,SACZyjC,EAAKwK,OAAOlsC,WAAaisC,OAElBA,KACTvK,EAAKwK,OAAOlsC,WAAaisC,KAM/BK,cAAe,WACb1J,KAAKwK,uBAAyBxK,KAAKwK,wBACjC,GAAIvN,GAAIkO,uBAAuBnL,KAAKsJ,QACtCtJ,KAAKoK,QAAUpK,KAAKoK,SAClB,GAAI/M,IAAiBiM,OAAQtJ,KAAKsJ,SACpCtJ,KAAK1F,IAAM0F,KAAK1F,KAAO,GAAI8D,IAI7BkM,QAAS,SAAiBf,GACxBvJ,KAAKwJ,WAAaD,EAAKnsC,WACvB4iC,KAAKsJ,OAAOlsC,WAAa4iC,KAAKwJ,WAE1BvM,EAAIsC,KAAKoL,cACX3K,KAAKoL,WAAW,KAAM7B,EAAKnsC,YAEvB4iC,KAAKsJ,OAAO3rC,QACdqiC,KAAKoL,WAAW,YAAa7N,OAAO/c,KAAKwf,KAAKsJ,OAAO3rC,QAAQ0tC,KAAK,QAMxET,WAAY,SAAoB9qC,GAC9B,MAAOkgC,MAAKmK,QAAQnK,KAAKoJ,gBAAgBtpC,GAAOkgC,KAAKsJ,OAAO/rC,gBAAkByiC,KAAKsJ,OAAOY,SAAW,MAIvGkB,WAAY,SAAoBtrC,EAAKwrC,GACnC,IACEtL,KAAKmK,QAAQnK,KAAKoJ,gBAAgBtpC,GAAOkgC,KAAKsJ,OAAO/rC,gBAAkByiC,KAAKsJ,OAAOY,SAAW,KAAOoB,EACrG,MAAOC,MAIXpB,QAAS,WACP,IAIE,MAHAvL,QAAO4M,aAAaC,QAAQ,mBAAoB,UAChD7M,OAAO4M,aAAaE,WAAW,oBAExBzO,EAAIsC,KAAKoL,YAAc/L,OAAO4M,gBACrC,MAAOD,GACP,iBAKHI,gCAAgC,EAAEC,oBAAoB,EAAEC,UAAU,KAAKC,IAAI,SAAS/wC,EAAQQ,EAAOJ,GACtG,GAAI8hC,GAAMliC,EAAQ,UAGlBkiC,GAAI8F,wBAA0B9F,EAAIsC,KAAKqB,QAAQ3D,EAAIp/B,aAGjDgjC,YAAa,SAAiCmC,GACxCA,EACFhD,KAAKgD,UAAYA,EAEjBhD,KAAKgD,UAAY/F,EAAI8F,wBAAwBgJ,iBAAiBC,MAAM,IAKxE/J,QAAS,SAAiBb,GASxB,QAAS6K,GAAY3K,EAAKY,GACxB,IAAMZ,GAAOY,GAAUgK,IAAUlJ,EAAU3nC,OAEzC,WADA+lC,GAASE,EAAKY,EAIhB,IAAIiK,GAAWnJ,EAAUkJ,IAEvBhK,GADsB,kBAAbiK,GACDA,EAAS/wC,OAET+wC,EAGNjK,EAAMzE,IACRyE,EAAMzE,IAAI,SAAS2O,GACjBH,EAAYG,EAAQA,EAAS,KAAOlK,KAGtC+J,EAAY,KAAM/J,GA1BtB,GAA8B,IAA1BlC,KAAKgD,UAAU3nC,OAEjB,MADA+lC,GAAS,GAAInmC,OAAM,iBACZ+kC,IAGT,IAAIkM,GAAQ,EACRlJ,EAAYhD,KAAKgD,UAAUgJ,MAAM,EAyBrC,OADAC,KACOjM,QAMX/C,EAAI8F,wBAAwBgJ,sBAEzBF,UAAU,KAAKQ,IAAI,SAAStxC,EAAQQ,EAAOJ,GAC9C,GAAI8hC,GAAMliC,EAAQ,WACdqjC,EAAMrjC,EAAQ,oBAGlBkiC,GAAIqP,gBAAkBrP,EAAIsC,KAAKqB,QAAQ3D,EAAIp/B,aAEzCgjC,YAAa,SAAyByI,GACpCrM,EAAIp/B,YAAYzC,KAAK4kC,MACrBA,KAAKqI,SAAU,EACfrI,KAAKsJ,OAASA,GAIhBL,QAAS,SAAiB7H,GACxB,GAAItC,GAAOkB,IACXlB,GAAK4K,gBACAtI,IAAUA,EAAW,SAASE,GAAO,GAAIA,EAAK,KAAMA,KAEzDxC,EAAKyN,QAAQC,mBAAmB,SAAUlL,EAAKiI,GACxCjI,GACHxC,EAAKyN,QAAQ7B,gBAAgBnB,EAAMzK,GAErCsC,EAASE,MAKboI,cAAe,WACb1J,KAAKuM,QAAUvM,KAAKuM,SAAW,GAAInO,IAAKkL,OAAQtJ,KAAKsJ,cAKtDsC,oBAAoB,EAAEC,UAAU,KAAKY,IAAI,SAAS1xC,EAAQQ,EAAOJ,GACpE,GAAI8hC,GAAMliC,EAAQ,WACdqjC,EAAMrjC,EAAQ,oBAGlBkiC,GAAIyP,qBAAuBzP,EAAIsC,KAAKqB,QAAQ3D,EAAIp/B,aAE9CgjC,YAAa,SAA8ByI,GACzCrM,EAAIp/B,YAAYzC,KAAK4kC,MACrBA,KAAK2M,wBACL3M,KAAKqI,SAAU,EAEfrI,KAAKsJ,OAASA,MACVtJ,KAAKsJ,OAAOn6B,UACd6wB,KAAKsJ,OAAOtO,gBACVgF,KAAKsJ,OAAOtO,iBAAmB,0BAKrCiO,QAAS,SAAiB7H,GACxB,GAAItC,GAAOkB,IACXlB,GAAK4K,gBACAtI,IAAUA,EAAW,SAASE,GAAO,GAAIA,EAAK,KAAMA,KAEzDxC,EAAKyN,QAAQtH,OAAO1D,YAAczC,EAAK8N,iBACvC,IAAIC,GAAY/N,EAAKwK,OAAOn6B,QAC1B2vB,EAAKyN,QAAQO,WAAahO,EAAKyN,QAAQQ,eACzCF,GAAUzxC,KAAK0jC,EAAKyN,QAAS,SAAUjL,EAAKiI,GACrCjI,GACHxC,EAAKyN,QAAQ7B,gBAAgBnB,EAAMzK,GAErCsC,EAASE,MAKbqL,sBAAuB,WAErB,IADA3M,KAAK4M,kBAAoB3P,EAAIgI,OAAO1D,YAC7BvB,KAAK4M,kBAAkBA,mBAC5B5M,KAAK4M,kBAAoB5M,KAAK4M,kBAAkBA,mBAKpDlD,cAAe,WACb1J,KAAKuM,QAAUvM,KAAKuM,SAAW,GAAInO,IAAKkL,OAAQtJ,KAAKsJ,cAKtDsC,oBAAoB,EAAEC,UAAU,KAAKmB,IAAI,SAASjyC,EAAQQ,EAAOJ,GACpE,GAAI8hC,GAAMliC,EAAQ,WACdqjC,EAAMrjC,EAAQ,oBAGlBkiC,GAAIkO,uBAAyBlO,EAAIsC,KAAKqB,QAAQ3D,EAAIp/B,aAEhDgjC,YAAa,SAAgCyI,GAC3CrM,EAAIp/B,YAAYzC,KAAK4kC,MACrBA,KAAKqI,SAAU,EACfrI,KAAKsJ,OAASA,EACdtJ,KAAKsJ,OAAOtO,gBAAkBgF,KAAKsJ,OAAOtO,iBAAmB,eAC7DgF,KAAKuJ,KAAO,MAIdN,QAAS,SAAiB7H,GACxB,GAAItC,GAAOkB,IACXlB,GAAK4K,gBACAtI,IAAUA,EAAW,SAASE,GAAO,GAAIA,EAAK,KAAMA,KAEzDxC,EAAKyN,QAAQU,0BAA0B,SAAU3L,EAAKiI,GACpDzK,EAAKyK,KAAO,KACPjI,IACHxC,EAAKyK,KAAOA,EACZzK,EAAKyN,QAAQ7B,gBAAgBnB,EAAMzK,IAErCsC,EAASE,MAKboI,cAAe,WACb1J,KAAKuM,QAAUvM,KAAKuM,SAAW,GAAInO,IAAKkL,OAAQtJ,KAAKsJ,cAKtDsC,oBAAoB,EAAEC,UAAU,KAAKqB,IAAI,SAASnyC,EAAQQ,EAAOJ,GACpE,GAAI8hC,GAAMliC,EAAQ,UACdwrC,EAAqBxrC,EAAQ,wBAGjCkiC,GAAIkQ,gBAEFC,SAGFnQ,EAAIkQ,gBACFC,MAAM,GAAI7G,IAAqB8G,kBAAkB,SAASC,EAAKC,GAC7DA,EAAS,uBAAwB,WAC7B,SAA8BC,EAAKC,GACrC,MAAKD,GAAIjB,QAAQmB,IAAI3xC,qBACrByxC,GAAIjB,QAAQtH,OAAO9D,eAAe,SAASG,GACrCA,IACFkM,EAAIG,SAASjM,MAAQzE,EAAIsC,KAAKmC,MAAMJ,GACjCK,KAAM,mBAAoB5yB,QAAS,mCAExC0+B,MAN4CA,MAUhDH,EAAI,kBAAmB,WAAY,SAAyBE,GACrDA,EAAIjB,QAAQtH,OAAO5B,QAAWmK,EAAIjB,QAAQqB,mBAC7CJ,EAAIG,SAASjM,MAAQzE,EAAIsC,KAAKmC,MAAM,GAAIzmC,QACrC0mC,KAAM,cAAe5yB,QAAS,gCAIrCu+B,EAAI,sBAAuB,WAAY,SAA6BE,GAClE,GAAIK,GAAQL,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAAW1wC,MAClD2xC,EAAaN,EAAIjB,QAAQtH,OAAOpB,eACpC,IAAI5G,GAAI8Q,eAAeD,GAAYE,SAASH,EAAOL,EAAIlE,UAGzDiE,EAAS,iBAAkB,aAAc,SAAwBC,EAAKC,GAEpE,GADAD,EAAIS,uBACCT,EAAIjB,QAAQmB,IAAI3xC,iBAAkB,MAAO0xC,IAC9C,IAAID,EAAIjB,QAAQ2B,eAAeV,KAASvQ,EAAIuI,QAAQ2I,GAAI,CACtD,GAAIC,GAAOZ,EAAIa,YAAYD,MAAQ,EACnCnR,GAAIsC,KAAK+O,cAAcF,EAAM,SAAS9M,EAAKiN,GACrCjN,EACFmM,EAAKnM,IAGLkM,EAAIa,YAAYG,QAAQ,wBAA0BD,EAClDd,WAIJA,OAIJH,EAAI,qBAAsB,aAAc,SAA4BE,GAClE,GAAkDzM,SAA9CyM,EAAIa,YAAYG,QAAQ,kBAAiC,CAC3D,GAAInzC,GAAS4hC,EAAIsC,KAAKkP,OAAOC,WAAWlB,EAAIa,YAAYD,KACxDZ,GAAIa,YAAYG,QAAQ,kBAAoBnzC,KAIhDiyC,EAAI,gBAAiB,aAAc,SAAuBE,GACxDA,EAAIa,YAAYG,QAAc,KAAIhB,EAAIa,YAAY7K,SAASmL,OAG7DrB,EAAI,UAAW,UAAW,WACxB,GAAIhM,GAAMtB,KAAK2N,SAASjM,KACnBJ,IAAQA,EAAIsN,YAEjB5O,KAAKqO,YAAc,GAAIpR,GAAI4R,YACzB7O,KAAKuM,QAAQ/I,SACbxD,KAAKuM,QAAQlJ,QAGXrD,KAAK2N,SAASmB,WAAa9O,KAAKuM,QAAQtH,OAAOtB,WACjD3D,KAAK2N,SAASmB,aAEd9O,KAAK2N,SAASjM,MAAQ,QAI1B6L,EAAS,OAAQ,OAAQ,SAAcC,EAAKC,GAC1C,GAAIlB,GAAUiB,EAAIjB,OAClB,OAAKA,GAAQmB,IAAI3xC,qBAEjBwwC,GAAQtH,OAAO9D,eAAe,SAAUG,EAAKC,GAC3C,GAAID,EAEF,MADAkM,GAAIG,SAASjM,MAAQJ,EACdmM,GAGT,KACE,GAAI7E,GAAO3L,EAAIsC,KAAKqJ,KAAKC,UACrBkG,EAAcxC,EAAQ2B,eAAeV,GACrCwB,EAAS,GAAID,GAAYvB,EAAIa,YAC/B9B,EAAQmB,IAAIuB,aAAe1C,EAAQmB,IAAI/xC,eACxC4wC,EAAQtH,OAAOT,eAChBwK,GAAOE,mBAAmB3C,EAAQ4C,iBAE3B3B,GAAIa,YAAYG,QAAuB,oBACvChB,GAAIa,YAAYG,QAAc,WAC9BhB,GAAIa,YAAYG,QAAQ,cAE/BQ,EAAOI,iBAAiB7N,EAAaqH,GACrC4E,EAAI6B,SAAWzG,EACf,MAAOruC,GACPizC,EAAIG,SAASjM,MAAQnnC,EAEvBkzC,MAzBwCA,MA6B5CH,EAAI,oBAAqB,mBAAoB,SAA2BgC,GAClEtP,KAAKuM,QAAQgD,mBAAmBD,EAAMtP,OACxCsP,EAAK/F,QACL+F,EAAK5N,MAAQ,OAEb4N,EAAK/F,KAAO,KACZ+F,EAAK5N,MAAQzE,EAAIsC,KAAKmC,MAAM,GAAIzmC,QAC7B0mC,KAAM,eAAgB5yB,QAAS,kCAItCw+B,EAAS,OAAQ,OAAQ,SAAc+B,EAAM7B,GAK3C,QAASrM,GAASoO,GAChBF,EAAKG,aAAaC,OAASF,EAE3BA,EAASG,GAAG,UAAW,SAAmBC,EAAYpB,GACpDc,EAAKO,QAAQC,KAAK,eAAgBF,EAAYpB,EAASc,IAElDA,EAAKG,aAAaM,YACoB,IAArC9S,EAAI+S,WAAWC,kBACjBT,EAASG,GAAG,WAAY,WACtB,GAAIpG,GAAOiG,EAASU,MACP,QAAT3G,GACF+F,EAAKO,QAAQC,KAAK,YAAavG,EAAM+F,MAIzCE,EAASG,GAAG,OAAQ,SAAgBpG,GAClC+F,EAAKO,QAAQC,KAAK,YAAavG,EAAM+F,SAM7CE,EAASG,GAAG,MAAO,WACjBL,EAAKO,QAAQC,KAAK,YAClBrC,MAIJ,QAAS0C,GAASX,GAChBA,EAASG,GAAG,eAAgB,SAAwB5vC,GAClDuvC,EAAKO,QAAQC,KAAK,sBAAuB/vC,EAAOuvC,MAGlDE,EAASG,GAAG,kBAAmB,SAA2B5vC,GACxDuvC,EAAKO,QAAQC,KAAK,wBAAyB/vC,EAAOuvC,MAItD,QAAS5N,GAAMJ,GACbgO,EAAK5N,MAAQzE,EAAIsC,KAAKmC,MAAMJ,GAC1BK,KAAM,kBACN0B,OAAQiM,EAAKO,QAAQxB,YAAYhL,OACjC+M,SAAUd,EAAKO,QAAQxB,YAAY7K,SAAS4M,SAC5CxB,WAAW,IAEbU,EAAKO,QAAQC,KAAK,aAAcR,EAAK5N,MAAO4N,GAAO,WACjD7B,MAIJ,QAAS4C,KACP,GAAItvC,GAAOk8B,EAAI+S,WAAWM,cACtB7M,EAAc6L,EAAKO,QAAQtD,QAAQtH,OAAOxB,eAC9C,KACE,GAAIiM,GAAS3uC,EAAKwvC,cAAcjB,EAAKO,QAAQxB,YAAa5K,EAC1BrC,EAAUM,EAC1CyO,GAAST,GACT,MAAOpO,GACPI,EAAMJ,IA9DVgO,EAAKG,aAAae,eAAiB/C,EACnC6B,EAAK5N,MAAQ,KACb4N,EAAK/F,KAAO,IAgEZ,IAAIkH,IAAYxT,EAAIsC,KAAKqJ,KAAKC,UAAY7I,KAAKqP,UAAY,GACvDoB,IAAY,IACdzQ,KAAK8P,KAAK,QAAS9P,MAAO,SAASsB,GAC7BA,EAAKmM,EAAKnM,GACT+O,MAGPA,MAIJ/C,EAAI,eAAgB,cAChB,SAAsBsC,EAAYpB,EAASc,GAC7CA,EAAKG,aAAaG,WAAaA,EAC/BN,EAAKG,aAAajB,QAAUA,EAC5Bc,EAAKG,aAAarB,KAAO,GAAInR,GAAIsC,KAAKG,OAAO,IAC7C4P,EAAKG,aAAaiB,WAClBpB,EAAKG,aAAakB,SAAW,CAC7B,IAAIC,GAAapC,EAAQ5F,MAAQ4F,EAAQxF,IACzC,IAAI4H,EAAY,CACd,GAAIC,GAAa7H,KAAKtG,MAAMkO,EACxBtB,GAAKO,QAAQtD,QAAQtH,OAAOb,kBACzBnH,EAAIsC,KAAKuR,cAAcD,IAC5B5T,EAAIsC,KAAKwR,iBAAiBF,MAKhCvD,EAAI,YAAa,WAAY,SAAmB0D,EAAO1B,GACrD,GAAI0B,EAAO,CACT,GAAI/T,EAAIsC,KAAK0R,SAAU,CACrB3B,EAAKG,aAAakB,UAAYK,EAAM31C,MAEpC,IAAI61C,GAAQ5B,EAAKG,aAAajB,QAAQ,kBAClC2B,GAAagB,OAAQ7B,EAAKG,aAAakB,SAAUO,MAAOA,EAC5D5B,GAAKO,QAAQC,KAAK,wBAAyBK,EAAUb,IAGvDA,EAAKG,aAAaiB,QAAQU,KAAK,GAAInU,GAAIsC,KAAKG,OAAOsR,OAIvD1D,EAAI,YAAa,WAAY,SAAmBgC,GAC9C,GAAIA,EAAKG,aAAaiB,SAAWpB,EAAKG,aAAaiB,QAAQr1C,OAAS,EAAG,CACrE,GAAI+yC,GAAOnR,EAAIsC,KAAK8R,OAAOC,OAAOhC,EAAKG,aAAaiB,QACpDpB,GAAKG,aAAarB,KAAOA,QAEpBkB,GAAKG,aAAakB,eAClBrB,GAAKG,aAAaiB,UAG3BpD,EAAI,iBAAkB,QAAS,SAAwBgC,GACjDA,EAAKG,aAAaG,aACpBN,EAAK5N,MAAMkO,WAAaN,EAAKG,aAAaG,WACb7O,SAAzBuO,EAAK5N,MAAMkN,YACbU,EAAK5N,MAAMkN,UAAY5O,KAAKuM,QAAQgF,eAAejC,EAAK5N,MAAO1B,UAKrEsN,EAAI,yBAA0B,QAAS,SAAgCgC,GACrE,GAAKA,EAAK5N,MACV,OAAQ4N,EAAK5N,MAAMC,MACjB,IAAK,iBACL,IAAK,wBACL,IAAK,eACH2N,EAAK5N,MAAMkN,WAAY,EACvBU,EAAKO,QAAQtD,QAAQtH,OAAO1D,YAAY8G,SAAU,KAIxDiF,EAAI,oBAAqB,QAAS,SAA2BgC,GAC3D,GAAIhO,GAAMgO,EAAK5N,KACVJ,IACmB,gBAAbA,GAAIK,MAA4C,gBAAhBL,GAAIvyB,SACzCuyB,EAAIK,KAAK6P,MAAM,cAAgBlQ,EAAIvyB,QAAQyiC,MAAM,aACnDlC,EAAK5N,MAAMkN,WAAY,KAK7BtB,EAAI,eAAgB,QAAS,SAAsBgC,GAC5CA,EAAK5N,OACN1B,KAAKuM,QAAQkF,eAAenC,EAAK5N,QAC9B1B,KAAKuM,QAAQtH,OAAOb,kBACpBnH,EAAIgI,OAAO6L,gBAChBxB,EAAK5N,MAAMkN,WAAY,KAI3BtB,EAAI,WAAY,QAAS,SAAkBgC,GACrCA,EAAK5N,OAAS4N,EAAK5N,MAAMkO,YAAc,KACvCN,EAAK5N,MAAMkO,WAAa,KAAON,EAAKG,aAAajB,QAAkB,WACrExO,KAAKqO,YAAY7K,SACf,GAAIvG,GAAIyU,SAASpC,EAAKG,aAAajB,QAAkB,UACvDxO,KAAKqO,YAAYG,QAAc,KAAIxO,KAAKqO,YAAY7K,SAASmL,KAC7DW,EAAK5N,MAAMiQ,UAAW,EACtBrC,EAAK5N,MAAMkN,WAAY,KAI3BtB,EAAI,cAAe,QAAS,SAAqBgC,GAC3CA,EAAK5N,QACH4N,EAAK5N,MAAMiQ,UAAYrC,EAAKsC,cAAgBtC,EAAK1L,aACnD0L,EAAK5N,MAAMmQ,WAAa,EACfvC,EAAKR,WAAaQ,EAAK3L,aAChC2L,EAAK5N,MAAMmQ,WAAa7R,KAAKuM,QAAQuF,YAAYxC,EAAKR,aAAe,MAK3EvB,EAAS,oBAAqB,aAAc,SAA2B+B,EAAM7B,GAC3E,GAAIsE,GAAOC,GAAY,CAEnB1C,GAAK5N,QACPqQ,EAAQzC,EAAK5N,MAAMmQ,YAAc,EAC7BvC,EAAK5N,MAAMkN,WAAaU,EAAKR,WAAaQ,EAAK3L,YACjD2L,EAAKR,aACLkD,GAAY,GACH1C,EAAK5N,MAAMiQ,UAAYrC,EAAKsC,cAAgBtC,EAAK1L,eAC1D0L,EAAKsC,gBACLI,GAAY,IAIZA,GACF1C,EAAK5N,MAAQ,KACbuQ,WAAWxE,EAAMsE,IAEjBtE,QAKNyE,UAAU,GAAI3L,IAAqB8G,kBAAkB,SAASC,GAC5DA,EAAI,qBAAsB,cAAerQ,EAAIsC,KAAK4S,kBAClD7E,EAAI,qBAAsB,eAAgBrQ,EAAIsC,KAAK4S,kBAEnD7E,EAAI,kBAAmB,YAAa,SAAyBhM,GAC3D,GAAiB,oBAAbA,EAAIK,MAA4C,cAAdL,EAAI8Q,MAAuB,CAC/D,GAAIrjC,GAAU,uBAAyBuyB,EAAI8O,SACzC,gDAAmD9O,EAAI+B,OACvD,WACFrD,MAAK2N,SAASjM,MAAQzE,EAAIsC,KAAKmC,MAAM,GAAIzmC,OAAM8T,IAC7C4yB,KAAM,kBACN0B,OAAQ/B,EAAI+B,OACZ+M,SAAU9O,EAAI8O,SACdxB,WAAW,EACXyD,cAAe/Q,SAMvBgR,QAAQ,GAAI/L,IAAqB8G,kBAAkB,SAASC,GAC1DA,EAAI,cAAe,WAAY,SAAqBgC,GAKlD,QAASiD,KACP,GAAIC,GAAOvV,EAAIsC,KAAKqJ,KAAKC,UAAUC,UAC/B2J,GAASD,EAAOhF,EAAIkF,UAAU5J,WAAa,IAC3C6J,IAAOrP,EAAOsP,MACdC,EAASvD,EAAKG,aAAaG,WAC3BtG,EAASvuC,EAAQ,QAAQ+3C,QAAQtF,EAAIlE,QAAQ,EAAM,MAEnDv6B,EAAU,EAQd,OAPI4jC,KAAM5jC,GAAW,SACrBA,GAAW,QAAUy+B,EAAIjB,QAAQwG,kBAAoB,IAAMF,EAC3D9jC,GAAW,IAAM0jC,EAAMnN,WAAa,KAAOgK,EAAKR,WAAa,YACzD6D,IAAM5jC,GAAW,UACrBA,GAAW,IAAMkuB,EAAIsC,KAAKkP,OAAOuE,WAAWxF,EAAIX,WAChD99B,GAAW,IAAMu6B,EAAS,IACtBqJ,IAAM5jC,GAAW,QACdA,EAnBT,GAAIy+B,GAAM8B,EAAKO,QACXvM,EAASkK,EAAIjB,QAAQtH,OAAO3B,MAChC,IAAKA,EAAL,CAoBA,GAAI2P,GAAOV,GACe,mBAAfjP,GAAO4P,IAChB5P,EAAO4P,IAAID,GACsB,kBAAjB3P,GAAO6P,OACvB7P,EAAO6P,MAAMF,EAAO,WAK1BvN,MAAM,GAAIa,IAAqB8G,kBAAkB,SAASC,GACxD,GAAI9O,GAAMzjC,EAAQ,kBAClBuyC,GAAI,QAAS,QAAS9O,EAAI4U,cAC1B9F,EAAI,eAAgB,cAAe9O,EAAI6U,aACvC/F,EAAI,gBAAiB,eAAgB9O,EAAI8U,gBAG3C1N,MAAM,GAAIW,IAAqB8G,kBAAkB,SAASC,GACxD,GAAI9O,GAAMzjC,EAAQ,kBAClBuyC,GAAI,QAAS,QAAS9O,EAAI4U,cAC1B9F,EAAI,eAAgB,cAAe9O,EAAI6U,aACvC/F,EAAI,gBAAiB,eAAgB9O,EAAI8U,gBAG3CzN,UAAU,GAAIU,IAAqB8G,kBAAkB,SAASC,GAC5D,GAAI9O,GAAMzjC,EAAQ,uBAClBuyC,GAAI,QAAS,QAAS9O,EAAI4U,cAC1B9F,EAAI,eAAgB,cAAe9O,EAAI6U,aACvC/F,EAAI,gBAAiB,eAAgB9O,EAAI8U,gBAG3CxN,SAAS,GAAIS,IAAqB8G,kBAAkB,SAASC,GAC3D,GAAI9O,GAAMzjC,EAAQ,sBAClBuyC,GAAI,QAAS,QAAS9O,EAAI4U,cAC1B9F,EAAI,eAAgB,cAAe9O,EAAI6U,aACvC/F,EAAI,gBAAiB,eAAgB9O,EAAI8U,gBAG3C3N,OAAO,GAAIY,IAAqB8G,kBAAkB,SAASC,GACzD,GAAI9O,GAAMzjC,EAAQ,mBAClBuyC,GAAI,QAAS,QAAS9O,EAAI4U,cAC1B9F,EAAI,eAAgB,cAAe9O,EAAI6U,aACvC/F,EAAI,gBAAiB,eAAgB9O,EAAI8U,mBAI1C5U,SAAS,GAAG6I,kBAAkB,GAAGC,mBAAmB,GAAGC,kBAAkB,GAAGC,uBAAuB,GAAGC,sBAAsB,GAAGI,wBAAwB,GAAGxI,KAAO,KAAKgU,IAAI,SAASx4C,EAAQQ,EAAOJ,GACrM,GAAI8hC,GAAMliC,EAAQ,UACd6lC,EAAU3D,EAAIsC,KAAKqB,OAGvB3D,GAAIyU,SAAW9Q,GAGbC,YAAa,SAAkB2C,EAAUyB,GAGvC,GAFAhI,EAAIsC,KAAK6I,eAAepI,MAAO,UAAW,OAAQ,OAAQ,SAAU,UAE5C,mBAAbwD,IAAyC,OAAbA,EACrC,KAAM,IAAIvoC,OAAM,qBAAuBuoC,EAClC,IAAwB,gBAAbA,GAChB,MAAOvG,GAAIsC,KAAKqF,KAAKpB,EAGvB,KAAKA,EAASgO,MAAM,SAAU,CAC5B,GAAIgC,GAASvO,GAAgClE,SAAtBkE,EAAOnB,WAC5BmB,EAAOnB,WAAa7G,EAAIgI,OAAOnB,UACjCN,IAAYgQ,EAAS,QAAU,QAAU,MAAQhQ,EAGnDvG,EAAIsC,KAAK4C,OAAOnC,KAAM/C,EAAIsC,KAAKkU,SAASjQ,IAEpCxD,KAAK0T,KACP1T,KAAK0T,KAAOC,SAAS3T,KAAK0T,KAAM,IAEhC1T,KAAK0T,KAAyB,WAAlB1T,KAAKnkC,SAAwB,IAAM,MAOrDohC,EAAI4R,YAAcjO,GAGhBC,YAAa,SAAqB2C,EAAUH,EAAQgB,GAClDb,EAAW,GAAIvG,GAAIyU,SAASlO,GAC5BxD,KAAKh/B,OAAS,OACdg/B,KAAKuC,KAAOiB,EAASjB,MAAQ,IAC7BvC,KAAKwO,WACLxO,KAAKoO,KAAO,GACZpO,KAAKwD,SAAWA,EAChBxD,KAAKqD,OAASA,EACdrD,KAAK4T,aAAavP,IAIpBuP,aAAc,SAAsBvP,GAClC,GAAIpO,GAASgH,EAAIsC,KAAKoL,YAAc,SAAW,GAC3CkJ,EAAe,EACY,iBAApBxP,IAAgCA,IACzCwP,GAAgB,IAAMxP,GAExBrE,KAAKwO,QAAQvY,EAAS,cAAgBgH,EAAIsC,KAAKuU,YAAcD,GAI/DE,SAAU,WACR,MAAO/T,MAAKuC,KAAKwI,MAAM,IAAK,GAAG,IAIjCiJ,OAAQ,WACN,GAAIC,GAAQjU,KAAKuC,KAAKwI,MAAM,IAAK,GAAG,EACpC,OAAIkJ,IACFA,EAAQhX,EAAIsC,KAAK2U,iBAAiBD,GAC3BhX,EAAIsC,KAAK4U,oBAAoBF,IAE/B,MAMXhX,EAAImX,aAAexT,GAGjBC,YAAa,WACXb,KAAK4P,WAAa7O,OAClBf,KAAKwO,WACLxO,KAAKoO,KAAOrN,OACZf,KAAK+P,WAAY,EACjB/P,KAAK0P,OAAS,MAIhB2E,uBAAwB,WAEtB,MADArU,MAAK+P,WAAY,EACV/P,KAAK0P,UAKhBzS,EAAI+S,WAAapP,MAGjB3D,EAAI+S,WAAWM,YAAc,WAI3B,MAHuBvP,UAAnBf,KAAKsU,YACPtU,KAAKsU,UAAY,GAAItU,OAEhBA,KAAKsU,aAGX5V,SAAS,KAAK6V,IAAI,SAASx5C,EAAQQ,EAAOJ,GAC7C,GAAI8hC,GAAMliC,EAAQ,WACdy5C,EAAez5C,EAAQ,UAAUy5C,YACrCz5C,GAAQ,WAGRkiC,EAAIwX,UAAYxX,EAAIsC,KAAKqB,SACvB2P,cAAe,SAAuBlC,EAAa5K,EAAarC,EAAUsT,GACxE,GAAI5V,GAAOkB,KACPwD,EAAW6K,EAAY7K,SACvBmR,EAAU,GAAIH,GACdI,EAAOpR,EAAS3nC,SAAW,KAAO2nC,EAAS4M,QACzB,MAAlB5M,EAASkQ,MAAiC,MAAlBlQ,EAASkQ,OACnCkB,GAAQ,IAAMpR,EAASkQ,MAEzBkB,GAAQvG,EAAY9L,IAEpB,IAAIsS,GAAM,GAAIC,gBAAkBC,GAAiB,CACjD1G,GAAYqB,OAASmF,EAErBA,EAAIG,iBAAiB,mBAAoB,WACvC,IACE,GAAmB,IAAfH,EAAIhC,OAAc,OACtB,MAAOt4C,GAAK,OAEd,GAAIylC,KAAKiV,YAAcjV,KAAKkV,mBAAqBH,EAAgB,CAC/D,IAAMF,EAAIM,aAAe,cAAiB,MAAO56C,IACjDo6C,EAAQ/E,WAAaiF,EAAIhC,OACzB8B,EAAQnG,QAAU1P,EAAKsW,aAAaP,EAAIQ,yBACxCV,EAAQ7E,KAAK,UAAW6E,EAAQ/E,WAAY+E,EAAQnG,SACpDuG,GAAiB,EAEf/U,KAAKiV,aAAejV,KAAKsV,MAC3BxW,EAAKyW,cAAcV,EAAKF,KAEzB,GACHE,EAAIW,OAAOR,iBAAiB,WAAY,SAAUS,GAChDd,EAAQ7E,KAAK,eAAgB2F,KAE/BZ,EAAIG,iBAAiB,WAAY,SAAUS,GACzCd,EAAQ7E,KAAK,kBAAmB2F,KAC/B,GACHZ,EAAIG,iBAAiB,UAAW,WAC9BN,EAAYzX,EAAIsC,KAAKmC,MAAM,GAAIzmC,OAAM,YAAa0mC,KAAM,oBACvD,GACHkT,EAAIG,iBAAiB,QAAS,WAC5BN,EAAYzX,EAAIsC,KAAKmC,MAAM,GAAIzmC,OAAM,oBACnC0mC,KAAM,uBAEP,GAEHP,EAASuT,GACTE,EAAIa,KAAKrH,EAAYrtC,OAAQ4zC,EAAMnR,EAAYkS,YAAa,GAC5D1Y,EAAIsC,KAAK0B,KAAKoN,EAAYG,QAAS,SAAU1uC,EAAKC,GACpC,mBAARD,GAAoC,eAARA,GAAgC,SAARA,GACtD+0C,EAAIe,iBAAiB91C,EAAKC,KAI1B0jC,EAAYC,SAAWD,EAAYkS,YAAa,IAClDd,EAAInR,QAAUD,EAAYC,SAGxBD,EAAYoS,qBACdhB,EAAIiB,iBAAkB,EAGxB,KACEjB,EAAIkB,KAAK1H,EAAYD,MACrB,MAAO9M,GACP,IAAI+M,EAAYD,MAA2C,gBAA5BC,GAAYD,KAAKiD,OAG9C,KAAM/P,EAFNuT,GAAIkB,KAAK1H,EAAYD,KAAKiD,QAM9B,MAAOsD,IAGTS,aAAc,SAAsBY,GAClC,GAAIxH,KAMJ,OALAvR,GAAIsC,KAAK0W,UAAUD,EAAWjL,MAAM,SAAU,SAAUkI,GACtD,GAAInzC,GAAMmzC,EAAKlI,MAAM,IAAK,GAAG,GACzBhrC,EAAQkzC,EAAKiD,UAAUp2C,EAAIzE,OAAS,EACpCyE,GAAIzE,OAAS,IAAGmzC,EAAQ1uC,EAAIq2C,eAAiBp2C,KAE5CyuC,GAGT+G,cAAe,SAAuBV,EAAKF,GACzC,GAAItD,EACJ,IAAyB,gBAArBwD,EAAIM,cAAkCN,EAAIlH,SAAU,CACtD,GAAIyI,GAAKvB,EAAIlH,QACb0D,GAAS,GAAIpU,GAAIsC,KAAKG,OAAO0W,EAAG1H,WAEhC,KAAK,GADD2H,GAAO,GAAIC,YAAWF,GACjBp7C,EAAI,EAAGA,EAAIq2C,EAAOh2C,SAAUL,EACnCq2C,EAAOr2C,GAAKq7C,EAAKr7C,GAIrB,IACOq2C,GAAsC,gBAArBwD,GAAI0B,eACxBlF,EAAS,GAAIpU,GAAIsC,KAAKG,OAAOmV,EAAI0B,eAEnC,MAAOh8C,IAEL82C,GAAQsD,EAAQ7E,KAAK,OAAQuB,GACjCsD,EAAQ7E,KAAK,UAKjB7S,EAAI+S,WAAWjR,UAAY9B,EAAIwX,UAAU1V,UAGzC9B,EAAI+S,WAAWC,kBAAoB,IAEhCpE,UAAU,GAAG2K,UAAU,GAAGlQ,OAAS,KAAKmQ,IAAI,SAAS17C,EAAQQ,EAAOJ,GAGvE,QAASu7C,MAMT,QAASC,GAAU52C,EAAOrD,GACxB,GAAKA,GAAmBqkC,SAAVhhC,GAAiC,OAAVA,EAErC,OAAQrD,EAAMN,MACZ,IAAK,YAAa,MAAOw6C,GAAmB72C,EAAOrD,EACnD,KAAK,MAAO,MAAOm6C,GAAa92C,EAAOrD,EACvC,KAAK,OAAQ,MAAOo6C,GAAc/2C,EAAOrD,EACzC,SAAS,MAAOq6C,GAAgBh3C,EAAOrD,IAI3C,QAASk6C,GAAmBI,EAAWt6C,GACrC,GAAIu6C,KAUJ,OATA1X,GAAK0B,KAAK+V,EAAW,SAASl2C,EAAMf,GAClC,GAAIm3C,GAAcx6C,EAAMJ,QAAQwE,EAChC,IAAIo2C,EAAa,CACf,GAA6B,SAAzBA,EAAYC,SAAqB,MACrC,IAAIC,GAAeF,EAAYG,eAAiBH,EAAYp2C,KAAOA,EAC/Dw2C,EAASX,EAAU52C,EAAOm3C,EACfnW,UAAXuW,IAAsBL,EAAOG,GAAgBE,MAG9CL,EAGT,QAASH,GAAcS,EAAM76C,GAC3B,GAAI86C,KAKJ,OAJAjY,GAAK0W,UAAUsB,EAAM,SAASx3C,GAC5B,GAAIu3C,GAASX,EAAU52C,EAAOrD,EAAMQ,OACrB6jC,UAAXuW,GAAsBE,EAAIpG,KAAKkG,KAE9BE,EAGT,QAASX,GAAaY,EAAK/6C,GACzB,GAAI86C,KAKJ,OAJAjY,GAAK0B,KAAKwW,EAAK,SAAS33C,EAAKC,GAC3B,GAAIu3C,GAASX,EAAU52C,EAAOrD,EAAMqD,MACrBghC,UAAXuW,IAAsBE,EAAI13C,GAAOw3C,KAEhCE,EAGT,QAAST,GAAgBh3C,EAAOrD,GAC9B,MAAOA,GAAMg7C,aAAa33C,GApD5B,GAAIw/B,GAAOxkC,EAAQ,UAInB27C,GAAY3X,UAAU4Y,MAAQ,SAAS53C,EAAOrD,GAC5C,MAAO+lC,MAAKmV,UAAUjB,EAAU52C,EAAOrD,KAkDzCnB,EAAOJ,QAAUu7C,IAEdmB,UAAU,KAAKC,IAAI,SAAS/8C,EAAQQ,EAAOJ,GAG9C,QAAS48C,MAMT,QAASpB,GAAU52C,EAAOrD,GACxB,GAAKA,GAAmBqkC,SAAVhhC,EAEd,OAAQrD,EAAMN,MACZ,IAAK,YAAa,MAAOw6C,GAAmB72C,EAAOrD,EACnD,KAAK,MAAO,MAAOm6C,GAAa92C,EAAOrD,EACvC,KAAK,OAAQ,MAAOo6C,GAAc/2C,EAAOrD,EACzC,SAAS,MAAOq6C,GAAgBh3C,EAAOrD,IAI3C,QAASk6C,GAAmBI,EAAWt6C,GACrC,GAAiB,MAAbs6C,EAAJ,CAEA,GAAIC,MACAe,EAAet7C,EAAMJ,OASzB,OARAijC,GAAK0B,KAAK+W,EAAc,SAASl3C,EAAMo2C,GACrC,GAAIE,GAAeF,EAAYG,eAAiBH,EAAYp2C,KAAOA,CACnE,IAAIy8B,OAAOwB,UAAUN,eAAerjC,KAAK47C,EAAWI,GAAe,CACjE,GAAIr3C,GAAQi3C,EAAUI,GAClBE,EAASX,EAAU52C,EAAOm3C,EACfnW,UAAXuW,IAAsBL,EAAOn2C,GAAQw2C,MAGtCL,GAGT,QAASH,GAAcS,EAAM76C,GAC3B,GAAY,MAAR66C,EAAJ,CAEA,GAAIC,KAMJ,OALAjY,GAAK0W,UAAUsB,EAAM,SAASx3C,GAC5B,GAAIu3C,GAASX,EAAU52C,EAAOrD,EAAMQ,OACrB6jC,UAAXuW,EAAsBE,EAAIpG,KAAK,MAC9BoG,EAAIpG,KAAKkG,KAETE,GAGT,QAASX,GAAaY,EAAK/6C,GACzB,GAAW,MAAP+6C,EAAJ,CAEA,GAAID,KAMJ,OALAjY,GAAK0B,KAAKwW,EAAK,SAAS33C,EAAKC,GAC3B,GAAIu3C,GAASX,EAAU52C,EAAOrD,EAAMqD,MACrBghC,UAAXuW,EAAsBE,EAAI13C,GAAO,KAChC03C,EAAI13C,GAAOw3C,IAEXE,GAGT,QAAST,GAAgBh3C,EAAOrD,GAC9B,MAAOA,GAAMu7C,OAAOl4C,GA5DtB,GAAIw/B,GAAOxkC,EAAQ,UAInBg9C,GAAWhZ,UAAU2D,MAAQ,SAAS3iC,EAAOrD,GAC3C,MAAOi6C,GAAUlU,KAAKC,MAAM3iC,GAAQrD,IA0DtCnB,EAAOJ,QAAU48C,IAEdF,UAAU,KAAKK,IAAI,SAASn9C,EAAQQ,EAAOJ,GAW9C,QAAS8qC,GAAIyH,EAAK5M,GAChB4M,EAAMA,MACN5M,EAAUA,MACVA,EAAQ4M,IAAM1N,KAEd0N,EAAIjyC,SAAWiyC,EAAIjyC,aAEnBynC,EAASlD,KAAM,SAAS,GAAM,GAC9BkD,EAASlD,KAAM,aAAc0N,EAAIjyC,SAASC,YAC1CwnC,EAASlD,KAAM,iBAAkB0N,EAAIjyC,SAASE,gBAC9CunC,EAASlD,KAAM,cAAe0N,EAAIjyC,SAASwzC,aAC3C/L,EAASlD,KAAM,iBAAkB0N,EAAIjyC,SAASm/B,gBAC9CsI,EAASlD,KAAM,mBAAoB0N,EAAIjyC,SAASM,kBAChDmnC,EAASlD,KAAM,cAAe0N,EAAIjyC,SAASG,aAC3CsnC,EAASlD,KAAM,eAAgB0N,EAAIjyC,SAASO,cAC5CknC,EAASlD,KAAM,WAAY0N,EAAIjyC,SAASI,UACxCqnC,EAASlD,KAAM,kBAAmB0N,EAAIjyC,SAAS08C,iBAC/CjV,EAASlD,KAAM,kBAAmB0N,EAAIjyC,SAASq/B,cAC/CoI,EAASlD,KAAM,eAAgB0N,EAAIjyC,SAASo/B,qBAC5CqI,EAASlD,KAAM,WAAY0N,EAAIjyC,SAASK,iBAExCs8C,EAAiBpY,KAAM,YAAa,WAClC,GAAIl/B,GAAO4sC,EAAIjyC,SAASo/B,qBAAuB6S,EAAIjyC,SAASK,eAC5D,OAAKgF,IAELA,EAAOA,EAAKu3C,QAAQ,+BAAgC,IACvC,yBAATv3C,IAAiCA,EAAO,OACrCA,GAJW,OAOpBoiC,EAASlD,KAAM,aAAc,GAAIsY,GAAW5K,EAAIzxC,WAAY6kC,EAAS,SAAShgC,EAAM+rC,GAClF,MAAO,IAAI3G,GAAUplC,EAAM+rC,EAAW/L,IACrCvB,EAAKkP,OAAOuE,aAEf9P,EAASlD,KAAM,SAAU,GAAIsY,GAAW5K,EAAI9tC,OAAQkhC,EAAS,SAAShgC,EAAMpE,GAC1E,MAAOypC,GAAMoS,OAAO77C,EAAOokC,MAG7BoC,EAASlD,KAAM,aAAc,GAAIsY,GAAW5K,EAAI8K,WAAY1X,EAAS,SAAShgC,EAAM23C,GAClF,MAAO,IAAIrS,GAAUtlC,EAAM23C,EAAW3X,MAGxCoC,EAASlD,KAAM,UAAW,GAAIsY,GAAW5K,EAAIgL,QAAS5X,EAAS,SAAShgC,EAAM63C,GAC5E,MAAO,IAAItS,GAAevlC,EAAM63C,EAAQ7X,IACvCvB,EAAKkP,OAAOuE,aAEXlS,EAAQ3/B,gBACV+hC,EAASlD,KAAM,gBAAiB0N,EAAIvsC,eACpC+hC,EAASlD,KAAM,mBAAoB0N,EAAIkL,mBA1D3C,GAAIN,GAAav9C,EAAQ,gBACrBmrC,EAAYnrC,EAAQ,eACpBorC,EAAQprC,EAAQ,WAChBqrC,EAAYrrC,EAAQ,eACpBsrC,EAAiBtrC,EAAQ,qBAEzBwkC,EAAOxkC,EAAQ,WACfmoC,EAAW3D,EAAK2D,SAChBkV,EAAmB7Y,EAAK6Y,gBAsD5B78C,GAAOJ,QAAU8qC,IAEd4R,UAAU,GAAGgB,eAAe,GAAGC,cAAc,GAAGC,cAAc,GAAGlR,oBAAoB,GAAGmR,UAAU,KAAKC,IAAI,SAASl+C,EAAQQ,EAAOJ,GAGtI,QAAS+9C,GAAQp4C,EAAMf,EAAOo5C,EAAIC,GAChChB,EAAiBpY,KAAMoZ,EAAOt4C,GAAO,WACnC,MAAOq4C,GAAGr4C,EAAMf,KAIpB,QAASu4C,GAAWe,EAAUvY,EAASqY,EAAIC,GACzCA,EAASA,GAAUE,MACnB,IAAIxa,GAAOkB,IAEX,KAAK,GAAIqJ,KAAMgQ,GACT9b,OAAOwB,UAAUN,eAAerjC,KAAKi+C,EAAUhQ,IACjD6P,EAAQ99C,KAAK0jC,EAAMuK,EAAIgQ,EAAShQ,GAAK8P,EAAIC,GAd/C,GAAIhB,GAAmBr9C,EAAQ,WAAWq9C,gBAmB1C78C,GAAOJ,QAAUm9C,IAEdT,UAAU,KAAK0B,IAAI,SAASx+C,EAAQQ,EAAOJ,GAO9C,QAAS+qC,GAAUplC,EAAM+rC,EAAW/L,GAClCA,EAAUA,MAEVoC,EAASlD,KAAM,OAAQ6M,EAAU/rC,MAAQA,GACzCoiC,EAASlD,KAAM,MAAOc,EAAQ4M,KAAK,GAEnCb,EAAU9rC,KAAO8rC,EAAU9rC,SAC3BmiC,EAASlD,KAAM,aAAc6M,EAAU9rC,KAAKC,QAAU,QACtDkiC,EAASlD,KAAM,WAAY6M,EAAU9rC,KAAKE,YAAc,KACxDiiC,EAASlD,KAAM,WAAY6M,EAAU9pC,UAAY,IAEjDq1C,EAAiBpY,KAAM,QAAS,WAC9B,MAAK6M,GAAU1wC,MAGRgqC,EAAMoS,OAAO1L,EAAU1wC,MAAO2kC,GAF5B,GAAIqF,GAAMoS,QAAQn8C,KAAM,aAAc0kC,KAKjDsX,EAAiBpY,KAAM,SAAU,WAC/B,MAAK6M,GAAU9vC,OAGRopC,EAAMoS,OAAO1L,EAAU9vC,OAAQ+jC,GAF7B,GAAIqF,GAAMoS,QAAQn8C,KAAM,aAAc0kC,KAKjDsX,EAAiBpY,KAAM,SAAU,WAC/B,GAAIuX,KACJ,KAAK1K,EAAU3rC,OAAQ,MAAO,KAE9B,KAAK,GAAIlG,GAAI,EAAGA,EAAI6xC,EAAU3rC,OAAO7F,OAAQL,IAC3Cu8C,EAAKnG,KAAKjL,EAAMoS,OAAO1L,EAAU3rC,OAAOlG,GAAI8lC,GAG9C,OAAOyW,KAGTa,EAAiBpY,KAAM,YAAa,WAClC,MAAOc,GAAQ4M,IAAI8K,WAAW13C,KAG5BggC,EAAQ3/B,gBACV+hC,EAASlD,KAAM,gBAAiB6M,EAAU1rC,eAC1C+hC,EAASlD,KAAM,mBAAoB6M,EAAU+L,mBAhDjD,GAAIzS,GAAQprC,EAAQ,WAEhBwkC,EAAOxkC,EAAQ,WACfmoC,EAAW3D,EAAK2D,SAChBkV,EAAmB7Y,EAAK6Y,gBAgD5B78C,GAAOJ,QAAU+qC,IAEd2R,UAAU,GAAGmB,UAAU,KAAKQ,IAAI,SAASz+C,EAAQQ,EAAOJ,GAG3D,QAASirC,GAAUtlC,EAAM23C,GACvBvV,EAASlD,KAAM,aAAcyY,EAAUgB,aACvCvW,EAASlD,KAAM,WAAYyY,EAAUiB,WACrCxW,EAASlD,KAAM,cAAeyY,EAAUkB,cACxCzW,EAASlD,KAAM,cAAeyY,EAAUmB,cACxC1W,EAASlD,KAAM,YAAayY,EAAUoB,YAPxC,GAAI3W,GAAWnoC,EAAQ,WAAWmoC,QAUlC3nC,GAAOJ,QAAUirC,IAEdyR,UAAU,KAAKiC,IAAI,SAAS/+C,EAAQQ,EAAOJ,GAI9C,QAASkrC,GAAevlC,EAAM63C,EAAQ7X,GACpCA,EAAUA,MACVoC,EAASlD,KAAM,OAAQl/B,GACvBoiC,EAASlD,KAAM,MAAOc,EAAQ4M,KAAK,GAE/BiL,EAAO9L,WACT3J,EAASlD,KAAM,YAAaT,EAAKkP,OAAOuE,WAAW2F,EAAO9L,WAG5D,IAAI/N,GAAOkB,KACPxf,GACF,OACA,cACA,QACA,cACA,YAGFA,GAAKu5B,QAAQ,SAASj6C,GACpB,GAAIC,GAAQ44C,EAAO74C,EACfC,IACFmjC,EAASpE,EAAMh/B,EAAKC,KAxB1B,GAAIw/B,GAAOxkC,EAAQ,WACfmoC,EAAW3D,EAAK2D,QA4BpB3nC,GAAOJ,QAAUkrC,IAEdwR,UAAU,KAAKmC,IAAI,SAASj/C,EAAQQ,EAAOJ,GAK9C,QAAS+nC,GAAS+W,EAAKn5C,EAAMf,GACb,OAAVA,GAA4BghC,SAAVhhC,GACpBw/B,EAAK2D,SAASgX,MAAMla,KAAMuI,WAI9B,QAAS6P,GAAiB6B,EAAKn5C,GACxBm5C,EAAIpZ,YAAY9B,UAAUj+B,IAC7By+B,EAAK6Y,iBAAiB8B,MAAMla,KAAMuI,WAItC,QAASpC,GAAMzpC,EAAOokC,EAASqZ,GAC7BrZ,EAAUA,MAEVoC,EAASlD,KAAM,QAAStjC,EAAMA,OAC9BwmC,EAASlD,KAAM,MAAOc,EAAQ4M,KAAK,GACnCxK,EAASlD,KAAM,OAAQtjC,EAAMN,MAC7B8mC,EAASlD,KAAM,OAAQtjC,EAAM+L,MAC7By6B,EAASlD,KAAM,MAAOtjC,EAAMmL,KAC5Bq7B,EAASlD,KAAM,MAAOtjC,EAAMkL,KAC5Bs7B,EAASlD,KAAM,UAAWtjC,EAAMoL,SAChCo7B,EAASlD,KAAM,WAAYtjC,EAAMy6C,UAAYnX,KAAKmX,UAAY,QAC9DjU,EAASlD,KAAM,OAAQA,KAAKl/B,MAAQpE,EAAM09C,SAAW19C,EAAM29C,WACzD39C,EAAM06C,cAAgB+C,GACxBjX,EAASlD,KAAM,cAAetjC,EAAMqzC,WAAa/P,KAAKsa,cAAe,GACrEpX,EAASlD,KAAM,cAAetjC,EAAM69C,cAAe,GACnDrX,EAASlD,KAAM,WAAW,GAAM,GAChCkD,EAASlD,KAAM,gBAAetjC,EAAM29C,WAA0B,GAC9DnX,EAASlD,KAAM,mBAAkBtjC,EAAM06C,cAA6B,GAEhEtW,EAAQ3/B,gBACV+hC,EAASlD,KAAM,gBAAiBtjC,EAAMyE,eACtC+hC,EAASlD,KAAM,mBAAoBtjC,EAAMk8C,mBAGvCl8C,EAAM89C,cACRtX,EAASlD,KAAM,iBAAkBtjC,EAAM89C,eAAgB,GAGzDtX,EAASlD,KAAM,eAAgB,MAC/BA,KAAK0X,aAAe,SAAS33C,GAC3B,MAAc,QAAVA,GAA4BghC,SAAVhhC,EAA4B,GAC3CA,GAETigC,KAAKiY,OAAS,SAASl4C,GAAS,MAAOA,IAkFzC,QAAS06C,GAAe/9C,GACtBypC,EAAM+T,MAAMla,KAAMuI,WAClBrF,EAASlD,KAAM,eAAe,GAE1BtjC,EAAMg+C,WACRxX,EAASlD,KAAM,YAAatjC,EAAMg+C,YAAa,GAInD,QAASC,GAAej+C,EAAOokC,GAC7B,GAAI8Z,GAAc,KAAMC,GAAa7a,KAAK8a,OAE1CL,GAAeP,MAAMla,KAAMuI,WAEvBsS,IACF3X,EAASlD,KAAM,eAAgB,WAAa,WAC5CkD,EAASlD,KAAM,cACfkD,EAASlD,KAAM,kBACfkD,EAASlD,KAAM,eACfkD,EAASlD,KAAM,aAAc,WAAa,OAAO,KAG/CtjC,EAAMJ,UACR4mC,EAASlD,KAAM,UAAW,GAAIsY,GAAW57C,EAAMJ,QAASwkC,EAAS,SAAShgC,EAAM5D,GAC9E,MAAOipC,GAAMoS,OAAOr7C,EAAQ4jC,EAAShgC,MAEvCs3C,EAAiBpY,KAAM,cAAe,WACpC,MAAOtjC,GAAMq+C,UAAYxd,OAAO/c,KAAK9jB,EAAMJ,YAI3CI,EAAML,WACR6mC,EAASlD,KAAM,WAAYtjC,EAAML,UACjC6mC,EAASlD,KAAM,aAAc,SAASl/B,GACpC,IAAK85C,EAAa,CAChBA,IACA,KAAK,GAAI5/C,GAAI,EAAGA,EAAI0B,EAAML,SAAShB,OAAQL,IACzC4/C,EAAYl+C,EAAML,SAASrB,KAAM,EAIrC,MAAO4/C,GAAY95C,KAClB,GAAO,IAGZoiC,EAASlD,KAAM,gBAAiBtjC,EAAM2+B,eAAiB,MAEnD3+B,EAAMs+C,SACR9X,EAASlD,KAAM,UAAWtjC,EAAMs+C,SAGA,gBAAvBt+C,GAAMo+B,aACfoI,EAASlD,KAAM,kBAAmBtjC,EAAMo+B,cACD,gBAAvBp+B,GAAMo+B,eACtBoI,EAASlD,KAAM,qBAAsBtjC,EAAMo+B,aAAa7E,QACxDiN,EAASlD,KAAM,kBAAmBtjC,EAAMo+B,aAAamgB,MAIzD,QAASC,GAAUx+C,EAAOokC,GACxB,GAAIhC,GAAOkB,KAAM6a,GAAa7a,KAAK8a,OAanC,IAZAL,EAAeP,MAAMla,KAAMuI,WAEvBsS,GACF3X,EAASlD,KAAM,eAAgB,WAAa,WAG1CtjC,EAAMQ,QACRk7C,EAAiBpY,KAAM,SAAU,WAC/B,MAAOmG,GAAMoS,OAAO77C,EAAMQ,OAAQ4jC,KAIlCd,KAAK0a,UAAW,CAClB,GAAIS,GAAUnb,KAAKl/B,IACnBs3C,GAAiBpY,KAAM,OAAQ,WAC7B,MAAOlB,GAAK5hC,OAAO4D,MAAQq6C,KAKjC,QAASC,GAAS1+C,EAAOokC,GACvB,GAAI+Z,IAAa7a,KAAK8a,OACtBL,GAAeP,MAAMla,KAAMuI,WAEvBsS,IACF3X,EAASlD,KAAM,eAAgB,WAAa,WAC5CkD,EAASlD,KAAM,MAAOmG,EAAMoS,QAAQn8C,KAAM,UAAW0kC,IACrDoC,EAASlD,KAAM,QAASmG,EAAMoS,QAAQn8C,KAAM,UAAW0kC,KAGrDpkC,EAAMoD,KACRs4C,EAAiBpY,KAAM,MAAO,WAC5B,MAAOmG,GAAMoS,OAAO77C,EAAMoD,IAAKghC,KAG/BpkC,EAAMqD,OACRq4C,EAAiBpY,KAAM,QAAS,WAC9B,MAAOmG,GAAMoS,OAAO77C,EAAMqD,MAAO+gC,KAKvC,QAASua,GAAe3+C,GACtB,GAAIoiC,GAAOkB,IAGX,IAFAmG,EAAM+T,MAAMla,KAAMuI,WAEI,WAAlBvI,KAAKmX,SACPjU,EAASlD,KAAM,kBAAmB,cAC7B,IAAItjC,EAAMy7C,gBACfjV,EAASlD,KAAM,kBAAmBtjC,EAAMy7C,qBACnC,IAAInY,KAAK0N,IACd,GAAI1N,KAAK0N,IAAIyK,gBACXjV,EAASlD,KAAM,kBAAmBA,KAAK0N,IAAIyK,qBAE3C,QAAQnY,KAAK0N,IAAI7xC,UACf,IAAK,OACL,IAAK,YACHqnC,EAASlD,KAAM,kBAAmB,gBAClC,MACF,KAAK,WACL,IAAK,QACL,IAAK,MACHkD,EAASlD,KAAM,kBAAmB,WAM1CA,KAAKiY,OAAS,SAASl4C,GACrB,MAAc,QAAVA,GAA4BghC,SAAVhhC,EAA4B,KACjB,kBAAtBA,GAAMu7C,YAAmCv7C,EAC5B,gBAAVA,IAAuC,gBAAVA,GACpCw/B,EAAKqJ,KAAK2S,eAAex7C,GAAS,MAG3CigC,KAAK0X,aAAe,SAAS33C,GAC3B,MAAOw/B,GAAKqJ,KAAK4S,OAAOz7C,EAAO++B,EAAKqZ,kBAIxC,QAASsD,KAGP,GAFAtV,EAAM+T,MAAMla,KAAMuI,WAEdvI,KAAK0N,IACP,OAAQ1N,KAAK0N,IAAI7xC,UACf,IAAK,WACL,IAAK,QACL,IAAK,MACHmkC,KAAKiY,OAAS,SAASl4C,GAAS,MAAOA,IAAS,KAKxD,QAAS27C,KACPvV,EAAM+T,MAAMla,KAAMuI,WAElBvI,KAAKiY,OAAS,SAASl4C,GACrB,MAAc,QAAVA,GAA4BghC,SAAVhhC,EAA4B,KAC3C47C,WAAW57C,IAEpBigC,KAAK0X,aAAe1X,KAAKiY,OAG3B,QAAS2D,KACPzV,EAAM+T,MAAMla,KAAMuI,WAElBvI,KAAKiY,OAAS,SAASl4C,GACrB,MAAc,QAAVA,GAA4BghC,SAAVhhC,EAA4B,KAC3C4zC,SAAS5zC,EAAO,KAEzBigC,KAAK0X,aAAe1X,KAAKiY,OAG3B,QAAS4D,KACP1V,EAAM+T,MAAMla,KAAMuI,WAClBvI,KAAKiY,OAAS1Y,EAAKuc,OAAOC,OAC1B/b,KAAK0X,aAAenY,EAAKuc,OAAOE,OAGlC,QAASC,KACPJ,EAAY3B,MAAMla,KAAMuI,WAG1B,QAAS2T,KACP/V,EAAM+T,MAAMla,KAAMuI,WAElBvI,KAAKiY,OAAS,SAASl4C,GACrB,MAAqB,iBAAVA,GAA4BA,EACzB,OAAVA,GAA4BghC,SAAVhhC,EAA4B,KACjC,SAAVA,GAjUX,GAAIu4C,GAAav9C,EAAQ,gBAErBwkC,EAAOxkC,EAAQ,UAmDnBorC,GAAMgW,iBACJC,UAAW,SACXC,OAAQ,QACRC,KAAM,UACNC,MAAO,UACPC,WAAY,UACZC,WAAY,QACZC,KAAM,UAIRvW,EAAMwW,OACJ3F,UAAa2D,EACbpD,KAAQ2D,EACRzD,IAAO2D,EACPwB,QAAWV,EACXW,UAAaxB,EACbyB,MAASpB,EACTqB,QAAWnB,EACXnN,OAAUgN,EACVK,OAAUG,EACVe,OAAUnB,GAGZ1V,EAAMlE,QAAU,SAAiBvlC,EAAOokC,GACtC,GAAIpkC,EAAMA,MAAO,CACf,GAAIugD,GAAWnc,EAAQ4M,IAAI9tC,OAAOlD,EAAMA,MACxC,KAAKugD,EACH,KAAM,IAAIhiD,OAAM,gCAAkCyB,EAAMA,MAG1D,OAAOugD,GAEP,MAAO,OAIX9W,EAAMoS,OAAS,SAAgB77C,EAAOokC,EAASqZ,GAC7C,GAAIz9C,EAAMo+C,QAAS,MAAOp+C,EAE1B,IAAIugD,GAAW9W,EAAMlE,QAAQvlC,EAAOokC,EACpC,IAAImc,EAAU,CACZ,GAAIC,GAAe3f,OAAO/c,KAAK9jB,EAM/B,IALKokC,EAAQ3/B,gBACX+7C,EAAeA,EAAajS,OAAO,SAASnqC,GAC1C,OAAQA,EAAK0wC,MAAM,oBAGnB0L,KAAkB,SACpB,MAAOD,EAGT,IAAIE,GAAc,WAChBF,EAASpc,YAAYzlC,KAAK4kC,KAAMtjC,EAAOokC,EAASqZ,GAGlD,OADAgD,GAAYpe,UAAYke,EACjB,GAAIE,GAENzgD,EAAMN,OACLM,EAAMJ,QAASI,EAAMN,KAAO,YACvBM,EAAMQ,OAAQR,EAAMN,KAAO,OAC3BM,EAAMoD,IAAKpD,EAAMN,KAAO,MAC5BM,EAAMN,KAAO,SAGpB,IAAIghD,GAAW1gD,EAAMN,IAKrB,IAJI+pC,EAAMgW,gBAAgBz/C,EAAMN,QAC9BM,EAAMN,KAAO+pC,EAAMgW,gBAAgBz/C,EAAMN,OAGvC+pC,EAAMwW,MAAMjgD,EAAMN,MACpB,MAAO,IAAI+pC,GAAMwW,MAAMjgD,EAAMN,MAAMM,EAAOokC,EAASqZ,EAEnD,MAAM,IAAIl/C,OAAM,4BAA8BmiD,IAwMpDjX,EAAMvmC,QACJ+6C,eAAgBA,EAChBO,UAAWA,EACXE,SAAUA,EACVK,YAAaA,EACbS,aAAcA,EACdD,YAAaA,GAGf1gD,EAAOJ,QAAUgrC,IAEd0R,UAAU,GAAGgB,eAAe,KAAKwE,IAAI,SAAStiD,EAAQQ,EAAOJ,GAChE,GAAI8hC,GAAMliC,EAAQ,SAGlBkiC,GAAI8Q,eAAiB9Q,EAAIsC,KAAKqB,SAE5BC,YAAa,SAAwBiN,GAC/BA,KAAe,GAAuB/M,SAAf+M,IACzBA,GAAcjmC,KAAO,IAEvBm4B,KAAK8N,WAAaA,GAGpBE,SAAU,SAAkBtxC,EAAO4sC,EAAQgU,GAIzC,GAHAtd,KAAK9+B,UACL8+B,KAAKud,eAAe7gD,EAAO4sC,MAAcgU,GAAW,UAEhDtd,KAAK9+B,OAAO7F,OAAS,EAAG,CAC1B,GAAIomC,GAAMzB,KAAK9+B,OAAOmqC,KAAK,OAG3B,MAFA5J,GAAM,cAAgBzB,KAAK9+B,OAAO7F,OAChC,0BAA4BomC,EACxBxE,EAAIsC,KAAKmC,MAAM,GAAIzmC,OAAMwmC,IAC5BE,KAAM,2BAA4BzgC,OAAQ8+B,KAAK9+B,SAC7C,GAA2B,IAAvB8+B,KAAK9+B,OAAO7F,OACrB,KAAM2kC,MAAK9+B,OAAO,EAElB,QAAO,GAIXs8C,KAAM,SAAc7b,EAAM5yB,GACxBixB,KAAK9+B,OAAOkwC,KAAKnU,EAAIsC,KAAKmC,MAAM,GAAIzmC,OAAM8T,IAAW4yB,KAAMA,MAG7D8b,kBAAmB,SAA2B/gD,EAAO4sC,EAAQgU,GAC3Dtd,KAAK0d,aAAapU,EAAQgU,GAAU,UAAW,YAG/C,KAAK,GADDK,GACK3iD,EAAI,EAAG0B,EAAML,UAAYrB,EAAI0B,EAAML,SAAShB,OAAQL,IAAK,CAChE2iD,EAAYjhD,EAAML,SAASrB,EAC3B,IAAI+E,GAAQupC,EAAOqU,EACL5c,UAAVhhC,GAAiC,OAAVA,GACzBigC,KAAKwd,KAAK,2BACR,yBAA4BG,EAAY,QAAWL,GAIzD,IAAKK,IAAarU,GAChB,GAAK/L,OAAOwB,UAAUN,eAAerjC,KAAKkuC,EAAQqU,GAAlD,CAEA,GAAIC,GAAatU,EAAOqU,GACpBzG,EAAcx6C,EAAMJ,QAAQqhD,EAEhC,IAAoB5c,SAAhBmW,EAA2B,CAC7B,GAAI2G,IAAiBP,EAASK,GAAWtS,KAAK,IAC9CrL,MAAKud,eAAerG,EAAa0G,EAAYC,OAE7C7d,MAAKwd,KAAK,sBACR,mBAAsBG,EAAY,cAAiBL,GAIzD,OAAO,GAGTC,eAAgB,SAAwB7gD,EAAOohD,EAAOR,GACpD,OAAQ5gD,EAAMN,MACZ,IAAK,YACH,MAAO4jC,MAAKyd,kBAAkB/gD,EAAOohD,EAAOR,EAC9C,KAAK,OACH,MAAOtd,MAAK+d,aAAarhD,EAAOohD,EAAOR,EACzC,KAAK,MACH,MAAOtd,MAAKge,YAAYthD,EAAOohD,EAAOR,EACxC,SACE,MAAOtd,MAAKie,eAAevhD,EAAOohD,EAAOR,KAI/CS,aAAc,SAAsBrhD,EAAO4sC,EAAQgU,GACjD,GAAItd,KAAK0d,aAAapU,EAAQgU,GAAUY,QAAS,CAC/Cle,KAAKme,cAAczhD,EAAO4sC,EAAOjuC,OAAQiiD,EAAS,oBAClD,KAAK,GAAItiD,GAAI,EAAGA,EAAIsuC,EAAOjuC,OAAQL,IACjCglC,KAAKud,eAAe7gD,EAAMQ,OAAQosC,EAAOtuC,GAAIsiD,EAAU,IAAMtiD,EAAI,OAKvEgjD,YAAa,SAAqBthD,EAAO4sC,EAAQgU,GAC/C,GAAItd,KAAK0d,aAAapU,EAAQgU,GAAU,UAAW,OAAQ,CACzD,GAAIc,GAAW,CACf,KAAK,GAAIN,KAASxU,GACX/L,OAAOwB,UAAUN,eAAerjC,KAAKkuC,EAAQwU,KAClD9d,KAAKud,eAAe7gD,EAAMoD,IAAKg+C,EACXR,EAAU,SAAYQ,EAAQ,MAClD9d,KAAKud,eAAe7gD,EAAMqD,MAAOupC,EAAOwU,GACpBR,EAAU,KAAQQ,EAAQ,MAC9CM,IAEFpe,MAAKme,cAAczhD,EAAO0hD,EAAUd,EAAS,sBAIjDW,eAAgB,SAAwBvhD,EAAOqD,EAAOu9C,GACpD,OAAQ5gD,EAAMN,MACZ,IAAK,MACL,IAAK2kC,QACL,IAAK,SACH,MAAOf,MAAKqe,eAAe3hD,EAAOqD,EAAOu9C,EAC3C,KAAK,SACL,IAAK,SACH,MAAOtd,MAAKse,gBAAgBv+C,EAAOu9C,EACrC,KAAK,UACL,IAAK,QACH,MAAOtd,MAAKue,eAAe7hD,EAAOqD,EAAOu9C,EAC3C,KAAK,UACH,MAAOtd,MAAK0d,aAAa39C,EAAOu9C,GAAU,WAC5C,KAAK,YACH,MAAOtd,MAAK0d,aAAa39C,EAAOu9C,GAAUtU,KACxC,iDAAkD,UAClD,oDACJ,SACE,MAAOhJ,MAAKwd,KAAK,aAAc,kBACd9gD,EAAMN,KAAO,QAAUkhD,KAI9Ce,eAAgB,SAAwB3hD,EAAOqD,EAAOu9C,GAChDtd,KAAK0d,aAAa39C,EAAOu9C,GAAU,aACrCtd,KAAKwe,aAAa9hD,EAAOqD,EAAOu9C,GAChCtd,KAAKme,cAAczhD,EAAOqD,EAAM1E,OAAQiiD,EAAS,iBACjDtd,KAAKye,gBAAgB/hD,EAAOqD,EAAOu9C,KAIvCmB,gBAAiB,SAAyB/hD,EAAOqD,EAAOu9C,GAClDtd,KAAK8N,WAAoB,SAA0B/M,SAArBrkC,EAAe,UAC1C,GAAKgiD,QAAOhiD,EAAe,SAAIiiD,KAAK5+C,IACvCigC,KAAKwd,KAAK,oBAAqB,mBAAqBz9C,EAAQ,mCACrBrD,EAAe,QAAI,SACtD4gD,KAKVa,cAAe,SAAuBzhD,EAAOqD,EAAOu9C,EAASsB,GACvD5e,KAAK8N,WAAgB,KACF/M,SAAjBrkC,EAAW,KAAmBqD,EAAQrD,EAAW,KACnDsjC,KAAKwd,KAAK,gBAAiB,YAAcoB,EAAa,OAClDliD,EAAW,IAAI,eAAiBqD,EAAQ,QAAUu9C,GAGtDtd,KAAK8N,WAAgB,KACF/M,SAAjBrkC,EAAW,KAAmBqD,EAAQrD,EAAW,KACnDsjC,KAAKwd,KAAK,gBAAiB,YAAcoB,EAAa,OAClDliD,EAAW,IAAI,eAAiBqD,EAAQ,QAAUu9C,IAK5DkB,aAAc,SAAuB9hD,EAAOqD,EAAOu9C,GAC7Ctd,KAAK8N,WAAiB,MAAuB/M,SAAlBrkC,EAAY,MACrCA,EAAY,KAAEwuC,QAAQnrC,MAAW,GACnCigC,KAAKwd,KAAK,YAAa,yBAA2Bz9C,EAAQ,kBACxCrD,EAAY,KAAE2uC,KAAK,KAAO,QAAUiS,IAK5DI,aAAc,SAAsB39C,EAAOu9C,EAASuB,EAAeziD,GACjE,GAAc,OAAV2D,GAA4BghC,SAAVhhC,EAAqB,OAAO,CAGlD,KAAK,GADD++C,IAAmB,EACd9jD,EAAI,EAAGA,EAAI6jD,EAAcxjD,OAAQL,IAAK,CAC7C,GAAgC,gBAArB6jD,GAAc7jD,IACvB,SAAW+E,KAAU8+C,EAAc7jD,GAAI,OAAO,MACzC,IAAI6jD,EAAc7jD,YAAc0jD,SACrC,IAAK3+C,GAAS,IAAIulC,WAAWkM,MAAMqN,EAAc7jD,IAAK,OAAO,MACxD,CACL,GAAI+E,YAAiB8+C,GAAc7jD,GAAI,OAAO,CAC9C,IAAIiiC,EAAIsC,KAAKwf,OAAOh/C,EAAO8+C,EAAc7jD,IAAK,OAAO,CAChDoB,IAAS0iD,IAAkBD,EAAgBA,EAAc7S,SAC9D6S,EAAc7jD,GAAKiiC,EAAIsC,KAAKyf,SAASH,EAAc7jD,IAErD8jD,GAAmB,EAGrB,GAAIG,GAAe7iD,CACd6iD,KACHA,EAAeJ,EAAcxT,KAAK,MAAMgN,QAAQ,YAAa,UAG/D,IAAI6G,GAAQD,EAAazN,MAAM,aAAe,IAAM,EAGpD,OAFAxR,MAAKwd,KAAK,uBAAwB,YAAcF,EAAU,WAChD4B,EAAQ,IAAMD,IACjB,GAGTV,eAAgB,SAAwB7hD,EAAOqD,EAAOu9C,GACpD,GAAc,OAAVv9C,GAA4BghC,SAAVhhC,EAAtB,CACA,GAAqB,gBAAVA,GAAoB,CAC7B,GAAIo/C,GAAcxD,WAAW57C,EACzBo/C,GAAY7Z,aAAevlC,IAAOA,EAAQo/C,GAE5Cnf,KAAK0d,aAAa39C,EAAOu9C,GAAU,YACrCtd,KAAKme,cAAczhD,EAAOqD,EAAOu9C,EAAS,mBAI9CgB,gBAAiB,SAAyBv+C,EAAOu9C,GAC/C,GAAc,OAAVv9C,GAA4BghC,SAAVhhC,GACD,gBAAVA,MACPA,GAAqC,gBAArBA,GAAM2uC,YAA1B,CACA,GAAIzR,EAAIsC,KAAK0R,SAAU,CACrB,GAAImO,GAASniB,EAAIsC,KAAKmQ,OAAO0P,MAC7B,IAAIniB,EAAIsC,KAAKG,OAAO2f,SAASt/C,IAAUA,YAAiBq/C,GAAQ,OAGlE,GAAIzC,IAAS,SAAU,SAAU,OAAQ,OAAQ,cAAe,WAChE,IAAI58C,EACF,IAAK,GAAI/E,GAAI,EAAGA,EAAI2hD,EAAMthD,OAAQL,IAAK,CACrC,GAAIiiC,EAAIsC,KAAKwf,OAAOh/C,EAAO48C,EAAM3hD,IAAK,MACtC,IAAIiiC,EAAIsC,KAAKyf,SAASj/C,EAAM8gC,eAAiB8b,EAAM3hD,GAAI,OAI3DglC,KAAKwd,KAAK,uBAAwB,YAAcF,EAAU,sEAK3D5e,SAAS,KAAK4gB,IAAI,SAASvkD,EAAQQ,EAAOJ,GAK7C,QAASi4C,GAAa5F,GACpB,GAAIa,GAAcb,EAAIa,YAClBX,EAAMF,EAAIjB,QAAQmB,IAClB6R,EAAS7R,EAAI1xC,aAAe,IAAM0xC,EAAIzxC,WAAWuxC,EAAIX,WAAW/rC,KAChEtF,EAAUkyC,EAAI9xC,aAAe,MAC7BO,EAAQuxC,EAAIzxC,WAAWuxC,EAAIX,WAAW1wC,MACtCqjD,EAAU,GAAI9I,EAEF,KAAZl7C,IAAeA,EAAU,OAC7B6yC,EAAYD,KAAOoR,EAAQ7H,MAAMnK,EAAIlE,WAAcntC,GACnDkyC,EAAYG,QAAQ,gBAAkB,0BAA4BhzC,EAClE6yC,EAAYG,QAAQ,gBAAkB+Q,EAGxC,QAASjM,GAAahE,GACpB,GAAI5N,MACA+N,EAAeH,EAAKG,YAOxB,IALA/N,EAAMC,KAAO8N,EAAajB,QAAQ,qBAAuB,eAC/B,gBAAf9M,GAAMC,OACfD,EAAMC,KAAOD,EAAMC,KAAKoJ,MAAM,KAAK,IAGjC0E,EAAarB,KAAK/yC,OAAS,EAAG,CAChC,GAAId,GAAIkoC,KAAKC,MAAM+M,EAAarB,KAAK9I,aACjC/qC,EAAEklD,QAAUllD,EAAEonC,QAChBD,EAAMC,MAAQpnC,EAAEklD,QAAUllD,EAAEonC,MAAMoJ,MAAM,KAAK2U,OAE5B,0BAAfhe,EAAMC,KACRD,EAAM3yB,QAAU,sCAEhB2yB,EAAM3yB,QAAWxU,EAAEwU,SAAWxU,EAAEolD,SAAW,SAG7Cje,GAAMkO,WAAaH,EAAaG,WAChClO,EAAM3yB,QAAU0gC,EAAaG,WAAWtK,UAG1CgK,GAAK5N,MAAQnC,EAAKmC,MAAM,GAAIzmC,OAASymC,GAGvC,QAAS2R,GAAY/D,GACnB,GAAIlB,GAAOkB,EAAKG,aAAarB,KAAK9I,YAAc,IAChD,IAAIgK,EAAKO,QAAQtD,QAAQtH,OAAOd,wBAAyB,EACvDmL,EAAK/F,KAAO9G,KAAKC,MAAM0L,OAClB,CACL,GAAIvB,GAAYyC,EAAKO,QAAQtD,QAAQmB,IAAIzxC,WAAWqzC,EAAKO,QAAQhD,WAC7DnwC,EAAQmwC,EAAU9vC,WAClB6iD,EAAS,GAAI7H,EACjBzI,GAAK/F,KAAOqW,EAAOld,MAAM0L,EAAM1xC,IArDnC,GAAI6iC,GAAOxkC,EAAQ,WACf27C,EAAc37C,EAAQ,mBACtBg9C,EAAah9C,EAAQ,iBAuDzBQ,GAAOJ,SACLi4C,aAAcA,EACdE,aAAcA,EACdD,YAAaA,KAGZwM,kBAAkB,GAAGC,iBAAiB,GAAGjI,UAAU,KAAKkI,IAAI,SAAShlD,EAAQQ,EAAOJ,GAMvF,QAASi4C,GAAa5F,GACpB,GAAIX,GAAYW,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAC3CwB,EAAcb,EAAIa,WACtBA,GAAYG,QAAQ,gBAClB,mDACFH,EAAY/E,QACVxsB,QAAS0wB,EAAIjB,QAAQmB,IAAIhyC,WACzBskD,OAAQnT,EAAU/rC,KAGpB,IAAI0+C,GAAU,GAAIS,EAClBT,GAAQU,UAAU1S,EAAIlE,OAAQuD,EAAU1wC,MAAO,SAAS2E,EAAMf,GAC5DsuC,EAAY/E,OAAOxoC,GAAQf,IAE7BsuC,EAAYD,KAAO7O,EAAK4U,oBAAoB9F,EAAY/E,QAG1D,QAASgK,GAAahE,GACpB,GAAI/F,GAAM6E,EAAOkB,EAAKG,aAAarB,KAAK9I,UAEtCiE,GADE6E,EAAKoD,MAAM,+BAEXxzB,KAAM,mBACN2hC,QAAS,qBAAuBrQ,EAAKO,QAAQhD,YAGxC,GAAI5P,GAAI4C,IAAIC,QAAS4C,MAAM0L,GAGhC7E,EAAK4W,YAAc7Q,EAAK6Q,YAAW7Q,EAAK6Q,UAAY5W,EAAK4W,WACzD5W,EAAK6W,SAAQ7W,EAAOA,EAAK6W,QACzB7W,EAAKtuC,QAAOsuC,EAAOA,EAAKtuC,OACxBsuC,EAAKvrB,KACPsxB,EAAK5N,MAAQnC,EAAKmC,MAAM,GAAIzmC,QAC1B0mC,KAAM4H,EAAKvrB,KACXjP,QAASw6B,EAAKoW,UAGhBrQ,EAAK5N,MAAQnC,EAAKmC,MAAM,GAAIzmC,QAC1B0mC,KAAM2N,EAAKG,aAAaG,WACxB7gC,QAAS,OAKf,QAASskC,GAAY/D,GACnB,GAAI9B,GAAM8B,EAAKO,QACXhD,EAAYW,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAC3CnwC,EAAQmwC,EAAU9vC,WAClBsjD,EAAY3jD,CAEhB,IAAI2jD,EAAUhlB,cAAe,CAC3B,GAAIilB,GAAMna,EAAMoS,QAAQn8C,KAAM,aAC9BkkD,GAAIhkD,QAAQ+jD,EAAUhlB,eAAiB3+B,EACvC4jD,EAAIC,aAAeF,EAAUhlB,eAC7BkE,EAAK2D,SAASxmC,EAAO,OAAQA,EAAM2+B,eACnC3+B,EAAQ4jD,EAGV,GAAIV,GAAS,GAAI3iB,GAAI4C,IAAIC,MAEzB,IAAIpjC,GAASA,EAAMJ,UAAYI,EAAMJ,QAAQkkD,eAAgB,CAC3D,GAAIC,GAAiBta,EAAMoS,QACvBn8C,KAAM;GACNsxC,KAAO7xC,SAAU,UACnB,YAEFa,GAAMJ,QAAQkkD,eAAiBC,EAGjC,GAAIlX,GAAOqW,EAAOld,MAAM4M,EAAKG,aAAarB,KAAK9I,WAAY5oC,EAC3D4yC,GAAK6Q,UAAY5W,EAAKiX,gBAAkBjX,EAAK4W,UAEzC5W,EAAKiX,sBAAuBjX,GAAKiX,eAEjCH,EAAUhlB,eACRkO,EAAK8W,EAAUhlB,iBACjBkE,EAAK4C,OAAOoH,EAAMA,EAAK8W,EAAUhlB,sBAC1BkO,GAAK8W,EAAUhlB,gBAI1BiU,EAAK/F,KAAOA,EAtFd,GAAItM,GAAMliC,EAAQ,WACdwkC,EAAOxkC,EAAQ,WACfklD,EAAuBllD,EAAQ,mCAC/BorC,EAAQprC,EAAQ,iBAsFpBQ,GAAOJ,SACLi4C,aAAcA,EACdE,aAAcA,EACdD,YAAaA,KAGZxH,UAAU,GAAG6U,iBAAiB,GAAGC,kCAAkC,GAAG9I,UAAU,KAAK+I,IAAI,SAAS7lD,EAAQQ,EAAOJ,GAGpH,QAAS0lD,GAAerT,GACtBA,EAAIa,YAAYrtC,OAASwsC,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAAWiU,WAGrE,QAASC,GAAYvT,GACnB,GAAIX,GAAYW,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAC3C1wC,EAAQ0wC,EAAU1wC,MAClB8+C,GAAOzN,EAAIa,YAAY7K,SAASjB,KAAMsK,EAAUmU,UAAU3V,KAAK,IACnE4P,GAAMA,EAAI5C,QAAQ,OAAQ,IAE1B,IAAI4I,MAAkBC,GAAiB,CAiCvC,IAhCA3hB,EAAK0B,KAAK9kC,EAAMG,QAAS,SAAUwE,EAAM5D,GACvC,GAAI0gD,GAAapQ,EAAIlE,OAAOxoC,EAC5B,IAAmB,OAAf88C,GAAsC7c,SAAf6c,EAC3B,GAAwB,QAApB1gD,EAAOi6C,SAAoB,CAC7B,GAAIgK,GAAQ,GAAIzC,QAAO,MAAQxhD,EAAO4D,KAAO,YAC7Cm6C,GAAMA,EAAI5C,QAAQ8I,EAAO,SAAS5V,EAAG6V,GACnC,GAAIjI,GAAKiI,EAAO7hB,EAAK8hB,cAAgB9hB,EAAK+hB,SAC1C,OAAOnI,GAAGG,OAAOsE,UAEU,gBAApB1gD,EAAOi6C,WAChB+J,GAAiB,EAEG,SAAhBhkD,EAAOd,KACT6kD,EAAY/jD,EAAO4D,MAAQ88C,EAAWnG,IAAI,SAASnM,GACjD,MAAO/L,GAAK+hB,UAAUhI,OAAOhO,MAEN,QAAhBpuC,EAAOd,KAChBmjC,EAAK0B,KAAK2c,EAAY,SAAS99C,EAAKC,GAC9Bm+C,MAAMqD,QAAQxhD,GAChBkhD,EAAYnhD,GAAOC,EAAM03C,IAAI,SAASnM,GACpC,MAAO/L,GAAK+hB,UAAUhI,OAAOhO,MAG/B2V,EAAYnhD,GAAOy/B,EAAK+hB,UAAUhI,OAAOv5C,MAI7CkhD,EAAY/jD,EAAO4D,MAAQy+B,EAAK+hB,UAAUhI,OAAOsE,OAKnDsD,EAAgB,CAClBjG,GAAQA,EAAI/P,QAAQ,MAAQ,EAAI,IAAM,GACtC,IAAIsW,KACJjiB,GAAK0W,UAAU1Y,OAAO/c,KAAKygC,GAAaQ,OAAQ,SAAS3hD,GAClDo+C,MAAMqD,QAAQN,EAAYnhD,MAC7BmhD,EAAYnhD,IAAQmhD,EAAYnhD,IAElC,KAAK,GAAI9E,GAAI,EAAGA,EAAIimD,EAAYnhD,GAAKzE,OAAQL,IAC3CwmD,EAAMpQ,KAAK7R,EAAK+hB,UAAUhI,OAAOx5C,IAAQ,IAAMmhD,EAAYnhD,GAAK9E,MAGpEigD,GAAOuG,EAAMnW,KAAK,KAGpBmC,EAAIa,YAAY9L,KAAO0Y,EAGzB,QAASyG,GAAgBlU,GACvB,GAAIX,GAAYW,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,UAC/CtN,GAAK0B,KAAK4L,EAAU1wC,MAAMG,QAAS,SAAUwE,EAAM5D,GACjD,GAAI6C,GAAQytC,EAAIlE,OAAOxoC,EACT,QAAVf,GAA4BghC,SAAVhhC,IAEE,YAApB7C,EAAOi6C,UAA0C,QAAhBj6C,EAAOd,KAC1CmjC,EAAK0B,KAAKlhC,EAAO,SAASD,EAAK6hD,GAC7BnU,EAAIa,YAAYG,QAAQtxC,EAAO4D,KAAOhB,GAAO6hD,IAElB,WAApBzkD,EAAOi6C,WAChBp3C,EAAQ7C,EAAOw6C,aAAa33C,GAAOulC,WACnCkI,EAAIa,YAAYG,QAAQtxC,EAAO4D,MAAQf,MAK7C,QAASqzC,GAAa5F,GACpBqT,EAAerT,GACfuT,EAAYvT,GACZkU,EAAgBlU,GAGlB,QAAS8F,MAGT,QAASD,GAAY/D,GACnB,GAAI9B,GAAM8B,EAAKO,QACXtG,KACA7uC,EAAI40C,EAAKG,aACT5C,EAAYW,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAC3C9vC,EAAS8vC,EAAU9vC,OAEnByxC,IACJjP,GAAK0B,KAAKvmC,EAAE8zC,QAAS,SAAUoT,EAAGC,GAChCrT,EAAQoT,EAAEzL,eAAiB0L,IAG7BtiB,EAAK0B,KAAKlkC,EAAOT,QAAS,SAASwE,EAAM5D,GACvC,GAAI4kD,IAAU5kD,EAAO4D,MAAQA,GAAMq1C,aACnC,IAAwB,YAApBj5C,EAAOi6C,UAA0C,QAAhBj6C,EAAOd,KAAgB,CAC1DmtC,EAAKzoC,KACL,IAAIq2C,GAAWj6C,EAAOm6C,eAAiBn6C,EAAO4D,KAAO,GACjDgH,EAAU,GAAI42C,QAAO,IAAMvH,EAAW,OAAQ,IAClD5X,GAAK0B,KAAKvmC,EAAE8zC,QAAS,SAAUoT,EAAGC,GAChC,GAAIvK,GAASsK,EAAEpQ,MAAM1pC,EACN,QAAXwvC,IACF/N,EAAKzoC,GAAMw2C,EAAO,IAAMuK,SAGC,WAApB3kD,EAAOi6C,SACQpW,SAApByN,EAAQsT,KACVvY,EAAKzoC,GAAQ0tC,EAAQsT,IAEM,eAApB5kD,EAAOi6C,WAChB5N,EAAKzoC,GAAQ6yC,SAASj5C,EAAEk1C,WAAY,OAIxCN,EAAK/F,KAAOA,EAzHd,GAAIhK,GAAOxkC,EAAQ,UA4HnBQ,GAAOJ,SACLi4C,aAAcA,EACdE,aAAcA,EACdD,YAAaA,KAGZwE,UAAU,KAAKkK,IAAI,SAAShnD,EAAQQ,EAAOJ,GAO9C,QAAS6mD,GAAaxU,GACpB,GAAIgS,GAAU,GAAI9I,GACdv6C,EAAQqxC,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAAW1wC,KAEtD,IAAIA,EAAM6+C,QAAS,CACjB,GAAI1R,MACA2Y,EAAe9lD,EAAMG,QAAQH,EAAM6+C,QAEvC,IADA1R,EAASkE,EAAIlE,OAAOntC,EAAM6+C,SACXja,SAAXuI,EAAsB,MAEA,eAAtB2Y,EAAa7lD,KACfoxC,EAAIa,YAAYD,KAAOoR,EAAQ7H,MAAMrO,EAAQ2Y,GAE7CzU,EAAIa,YAAYD,KAAO9E,MAGzBkE,GAAIa,YAAYD,KAAOoR,EAAQ7H,MAAMnK,EAAIlE,OAAQntC,GAIrD,QAASi3C,GAAa5F,GACpB5H,EAAKwN,aAAa5F,IAEb,MAAO,OAAQ,UAAUtC,QAAQsC,EAAIa,YAAYrtC,QAAU,GAC9DghD,EAAaxU,GAIjB,QAAS8F,GAAahE,GACpB5J,EAAK4N,aAAahE,GAGpB,QAAS+D,GAAY/D,GACnB1J,EAAKyN,YAAY/D,EAEjB,IAAI9B,GAAM8B,EAAKO,QACXhC,EAAQL,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAAW9vC,UACtD,IAAI8wC,EAAMmN,QAAS,CACjB,GAAIkH,GAAgBrU,EAAMvxC,QAAQuxC,EAAMmN,SACpC5M,EAAOkB,EAAKG,aAAarB,IAC7B,IAAI8T,EAAc5H,YAChBhL,EAAK/F,KAAKsE,EAAMmN,SAAW5M,MACtB,IAA2B,cAAvB8T,EAAc9lD,MAA+C,SAAvB8lD,EAAc9lD,KAAiB,CAC9E,GAAIwjD,GAAS,GAAI7H,EACjBzI,GAAK/F,KAAKsE,EAAMmN,SAAW4E,EAAOld,MAAM0L,EAAM8T,OAE9C5S,GAAK/F,KAAKsE,EAAMmN,SAAW5M,EAAK9I,eAE7B,CACL,GAAIiE,GAAO+F,EAAK/F,IAChB7D,GAAK2N,YAAY/D,GACjBA,EAAK/F,KAAOhK,EAAK6D,MAAMmG,EAAM+F,EAAK/F,OAzDtC,GAAIhK,GAAOxkC,EAAQ,WACf6qC,EAAO7qC,EAAQ,UACf2qC,EAAO3qC,EAAQ,UACf27C,EAAc37C,EAAQ,mBACtBg9C,EAAah9C,EAAQ,iBAyDzBQ,GAAOJ,SACLi4C,aAAcA,EACdE,aAAcA,EACdD,YAAaA,KAGZwM,kBAAkB,GAAGC,iBAAiB,GAAGjI,UAAU,GAAGsK,SAAS,GAAGC,SAAS,KAAKC,IAAI,SAAStnD,EAAQQ,EAAOJ,GAK/G,QAAS6mD,GAAaxU,GACpB,GAAIrxC,GAAQqxC,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAAW1wC,MAClDqjD,EAAU,GAAIviB,GAAI4C,IAAIkG,QACtBuD,EAASkE,EAAIlE,OAEb0R,EAAU7+C,EAAM6+C,OACpB,IAAIA,EAAS,CACX,GAAIkH,GAAgB/lD,EAAMG,QAAQ0+C,EAElC,IADA1R,EAASA,EAAO0R,GACDja,SAAXuI,EAAsB,MAE1B,IAA2B,cAAvB4Y,EAAc9lD,KAAsB,CACtC,GAAIkmD,GAAcJ,EAAcphD,IAChC0sC,GAAIa,YAAYD,KAAOoR,EAAQ+C,MAAMjZ,EAAQ4Y,EAAeI,GAAa,OAEzE9U,GAAIa,YAAYD,KAAO9E,MAGzBkE,GAAIa,YAAYD,KAAOoR,EAAQ+C,MAAMjZ,EAAQntC,EAAOA,EAAM2E,MACxD3E,EAAMO,OAAS6iC,EAAKkP,OAAO+T,WAAWhV,EAAIX,WAAa,WAI7D,QAASuG,GAAa5F,GACpB5H,EAAKwN,aAAa5F,IAEb,MAAO,QAAQtC,QAAQsC,EAAIa,YAAYrtC,QAAU,GACpDghD,EAAaxU,GAIjB,QAAS8F,GAAahE,GACpB1J,EAAK0N,aAAahE,EAElB,IAAI/F,IAAO,GAAItM,GAAI4C,IAAIC,QAAS4C,MAAM4M,EAAKG,aAAarB,KAAK9I,WACzDiE,GAAK6W,SAAQ7W,EAAOA,EAAK6W,QACzB7W,EAAKtuC,QAAOsuC,EAAOA,EAAKtuC,OACxBsuC,EAAKvrB,KACPsxB,EAAK5N,MAAQnC,EAAKmC,MAAM,GAAIzmC,QAC1B0mC,KAAM4H,EAAKvrB,KACXjP,QAASw6B,EAAKoW,UAGhBrQ,EAAK5N,MAAQnC,EAAKmC,MAAM,GAAIzmC,QAC1B0mC,KAAM2N,EAAKG,aAAaG,WACxB7gC,QAAS,OAKf,QAASskC,GAAY/D,GACnB1J,EAAKyN,YAAY/D,EAEjB,IAAIsQ,GACApS,EAAM8B,EAAKO,QACXzB,EAAOkB,EAAKG,aAAarB,KACzBvB,EAAYW,EAAIjB,QAAQmB,IAAIzxC,WAAWuxC,EAAIX,WAC3C9vC,EAAS8vC,EAAU9vC,OAEnBi+C,EAAUj+C,EAAOi+C,OACrB,IAAIA,EAAS,CACX,GAAIkH,GAAgBnlD,EAAOT,QAAQ0+C,EAC/BkH,GAAc5H,YAChBhL,EAAK/F,KAAKyR,GAAW5M,EACW,cAAvB8T,EAAc9lD,MACvBwjD,EAAS,GAAI3iB,GAAI4C,IAAIC,OACrBwP,EAAK/F,KAAKyR,GAAW4E,EAAOld,MAAM0L,EAAK9I,WAAY4c,IAEnD5S,EAAK/F,KAAKyR,GAAW5M,EAAK9I,eAEvB,IAAI8I,EAAK/yC,OAAS,EAAG,CAC1BukD,EAAS,GAAI3iB,GAAI4C,IAAIC,MACrB,IAAIyJ,GAAOqW,EAAOld,MAAM0L,EAAK9I,WAAYvoC,EACzCwiC,GAAK4C,OAAOmN,EAAK/F,KAAMA,IA7E3B,GAAItM,GAAMliC,EAAQ,WACdwkC,EAAOxkC,EAAQ,WACf6qC,EAAO7qC,EAAQ,SA+EnBQ,GAAOJ,SACLi4C,aAAcA,EACdE,aAAcA,EACdD,YAAaA,KAGZxH,UAAU,GAAGgM,UAAU,GAAGuK,SAAS,KAAKK,IAAI,SAAS1nD,EAAQQ,EAAOJ,GAGvE,QAAS8kD,MAOT,QAASyC,GAAQhmD,GACf,MAAIA,GAAMimD,aAAsC,QAAvBjmD,EAAMgxC,IAAI7xC,SAC1Ba,EAAMoE,KAENpE,EAAMoE,KAAK,GAAG8hD,cAAgBlmD,EAAMoE,KAAK+hD,OAAO,GAI3D,QAASC,GAAmB7sB,EAAQghB,EAAQpJ,EAAOsL,GACjD5Z,EAAK0B,KAAK4M,EAAMvxC,QAAS,SAASwE,EAAM5D,GACtC,GAAI6C,GAAQk3C,EAAOn2C,EACnB,IAAc,OAAVf,GAA4BghC,SAAVhhC,EAAtB,CAEA,GAAIo6C,GAAauI,EAAQxlD,EACzBi9C,GAAalkB,EAASA,EAAS,IAAMkkB,EAAaA,EAClD4I,EAAgB5I,EAAYp6C,EAAO7C,EAAQi8C,MAI/C,QAAS6J,GAAaliD,EAAM22C,EAAK5J,EAAOsL,GACtC,GAAIn+C,GAAI,CACRukC,GAAK0B,KAAKwW,EAAK,SAAU33C,EAAKC,GAC5B,GAAIk2B,GAAS4X,EAAM6M,UAAY,IAAM,UACjCuI,EAAWhtB,EAAUj7B,KAAO,IAC5BkoD,EAAUD,GAAYpV,EAAM/tC,IAAIgB,MAAQ,OACxCqiD,EAAYF,GAAYpV,EAAM9tC,MAAMe,MAAQ,QAChDiiD,GAAgBjiD,EAAOoiD,EAASpjD,EAAK+tC,EAAM/tC,IAAKq5C,GAChD4J,EAAgBjiD,EAAOqiD,EAAWpjD,EAAO8tC,EAAM9tC,MAAOo5C,KAI1D,QAASiK,GAActiD,EAAMy2C,EAAM1J,EAAOsL,GACxC,GAAIkK,GAAcxV,EAAM3wC,UAExB,OAAoB,KAAhBq6C,EAAKl8C,WACP89C,GAAG/9C,KAAK4kC,KAAMl/B,EAAM,UAItBy+B,GAAK0W,UAAUsB,EAAM,SAAUsK,EAAGpnD,GAChC,GAAI6oD,GAAS,KAAO7oD,EAAI,EACxB,IAA2B,QAAvBozC,EAAMH,IAAI7xC,SACZynD,GAAkB,OACb,IAAIzV,EAAM6M,WACf,GAAI2I,EAAYviD,KAAM,CACpB,GAAI0gD,GAAQ1gD,EAAKiqC,MAAM,IACvByW,GAAM9B,MACN8B,EAAMpQ,KAAKsR,EAAQW,IACnBviD,EAAO0gD,EAAMnW,KAAK,UAGpBiY,GAAS,UAAYA,CAEvBP,GAAgBjiD,EAAOwiD,EAAQzB,EAAGwB,EAAalK,KAInD,QAAS4J,GAAgBjiD,EAAMf,EAAO8tC,EAAOsL,GAC7B,OAAVp5C,GAA4BghC,SAAVhhC,IACH,cAAf8tC,EAAMzxC,KACR0mD,EAAmBhiD,EAAMf,EAAO8tC,EAAOsL,GACf,SAAftL,EAAMzxC,KACfgnD,EAActiD,EAAMf,EAAO8tC,EAAOsL,GACV,QAAftL,EAAMzxC,KACf4mD,EAAaliD,EAAMf,EAAO8tC,EAAOsL,GAEjCA,EAAGr4C,EAAM+sC,EAAM6J,aAAa33C,GAAOulC,aA3EvC,GAAI/F,GAAOxkC,EAAQ,UAKnBklD,GAAqBlhB,UAAUmhB,UAAY,SAAS5W,EAAQ5sC,EAAOy8C,GACjE2J,EAAmB,GAAIxZ,EAAQ5sC,EAAOy8C,IAyExC59C,EAAOJ,QAAU8kD,IAEdpI,UAAU,KAAK0L,IAAI,SAASxoD,EAAQQ,EAAOJ,GAI9C,QAASqoD,GAAqBngB,GAC5B,IAAKA,EAAQ,MAAO,KAEpB,IAAIme,GAAQne,EAAO0H,MAAM,IACzB,OAAIyW,GAAMnmD,OAAS,EAAU,KACtBmmD,EAAMxV,MAAM,EAAGwV,EAAMnmD,OAAS,GAAGgwC,KAAK,KAAO,KAGtD,QAASoY,GAAYlX,GACnB,GAAIlJ,GAASkJ,EAAQtH,OAAO5B,OACxBqgB,EAAeF,EAAqBngB,GACpC1nC,EAAiB4wC,EAAQmB,IAAI/xC,cAEjC,SACG0nC,EAAQ1nC,IACR+nD,EAAc/nD,IACd0nC,EAAQ,MACRqgB,EAAc,MACd,IAAK/nD,IACL,IAAK,MACN87C,IAAI,SAASkM,GACb,MAAOA,GAAK,IAAMA,EAAK,GAAKA,EAAKtY,KAAK,KAAO,OAIjD,QAASuY,GAAYrX,EAAStH,GAC5B1F,EAAK0B,KAAKgE,EAAQ,SAASnlC,EAAKC,GAClB,mBAARD,IACwBihC,SAAxBwL,EAAQtH,OAAOnlC,IAA8C,OAAxBysC,EAAQtH,OAAOnlC,KACtDysC,EAAQtH,OAAOnlC,GAAOC,MAK5B,QAAS8jD,GAAkBtX,GAEzB,IAAK,GADD/rB,GAAOijC,EAAYlX,GACdvxC,EAAI,EAAGA,EAAIwlB,EAAKnlB,OAAQL,IAAK,CACpC,GAAI8E,GAAM0gB,EAAKxlB,EACf,IAAK8E,GAEDy9B,OAAOwB,UAAUN,eAAerjC,KAAK0oD,EAAajW,MAAO/tC,GAAM,CACjE,GAAImlC,GAAS6e,EAAajW,MAAM/tC,EAehC,OAdsB,gBAAXmlC,KACTA,EAAS6e,EAAaC,SAAS9e,IAG7BsH,EAAQtH,OAAO+e,cAAgBzkB,EAAK0kB,qBAAqB1X,KAC3DtH,EAAS1F,EAAKqF,KAAKK,GACnBA,EAAOzB,SAAW,8CAGpB+I,EAAQqB,mBAAqB3I,EAAOrK,eAE/BqK,EAAOlpC,mBAAkBkpC,EAAOlpC,iBAAmB,UAExD6nD,GAAYrX,EAAStH,KA1D3B,GAAI1F,GAAOxkC,EAAQ,UACf+oD,EAAe/oD,EAAQ,uBA+D3BQ,GAAOJ,QAAU0oD,IAEdK,uBAAuB,GAAG/jB,SAAS,KAAKgkB,IAAI,SAASppD,EAAQQ,EAAOJ,GACvEI,EAAOJ,SACL0yC,OACEuW,OACE5gB,SAAY,oCAEd6gB,UACE7gB,SAAY,uCAEd8gB,eAAgB,YAChBC,QAAS,YACTC,QAAS,YACTC,kBACEjhB,SAAY,0BACZznC,iBAAoB,KACpB6+B,gBAAkB,GAEpB8pB,aACElhB,SAAY,kCACZznC,iBAAoB,UACpB6+B,gBAAkB,GAEpB+pB,QAAS,YACTC,eAAgB,iBAChBC,gBACErhB,SAAY,oCAEdshB,mBAAoB,SACpBC,eAAgB,SAChBC,eAAgB,SAChBC,eAAgB,SAChBC,oBAAqB,SACrBC,oBAAqB,SACrBC,oBAAqB,SACrBC,eAAgB,SAChBC,gBACE9hB,SAAY,0BACZznC,iBAAoB,MAEtBwpD,iBACE/hB,SAAY,0BACZznC,iBAAoB,MAEtBypD,SACEhiB,SAAY,mCACZznC,iBAAoB,OAIxBgoD,UACE0B,WACEjiB,SAAY,kCACZ5I,gBAAkB,GAEpB8qB,gBACEliB,SAAY,kCAEdmiB,QACEniB,SAAY,mCACZznC,iBAAoB,aAKpB6pD,IAAI,SAAS7qD,EAAQQ,EAAOJ,IAClC,SAAWmkC,GAUX,QAASumB,GAAgBC,GACvB,MAAOvoB,QAAOwB,UAAUN,eAAerjC,KAAK2qD,EAAiBD,EAAQE,KAAKC,cAV5E,GAAIhpB,GAAMliC,EAAQ,UACdmrD,EAAuBnrD,EAAQ,mBAC/B6lC,EAAU3D,EAAIsC,KAAKqB,QACnBulB,EAASlpB,EAAIsC,KAAK4mB,OAClBC,EAAWrrD,EAAQ,YAGnBgrD,GAAmBM,QAAS,EAAG3kB,MAAO,EAAG4kB,SAAU,GAMnDC,EAAM,GAAIL,EACdK,GAAIC,YAAc,WAChB,GAAIC,GAAa,SAASlb,EAAGkC,GAC3B,GAAI3O,GAAOkB,IACXlB,GAAK4nB,sBAAuB,EAE5B5nB,EAAKgR,KAAKhR,EAAKknB,KAAKC,aAAc,SAAS3kB,GACzC,GAAIA,EACF,GAAIukB,EAAgB/mB,GAAO,CACzB,KAAIqnB,GAAUrnB,EAAKqnB,iBAAkBA,GAAOluC,QAM1C,KAAMqpB,EALNA,GAAIqlB,cAAgB7nB,EACpBwC,EAAI6kB,OAASrnB,EAAKqnB,OAClB7kB,EAAIslB,cAAe,EACnB9nB,EAAKqnB,OAAOrW,KAAK,QAASxO,OAK5BxC,GAAK6O,SAASjM,MAAQJ,EACtBmM,EAAKnM,OAGPmM,GAAK3O,EAAK6O,SAASjM,SAMzB1B,MAAK6mB,SAAS,WAAY,QAAS,QAASJ,GAC5CzmB,KAAK6mB,SAAS,QAAS,aAAc,UAAWJ,GAChDzmB,KAAK6mB,SAAS,aAAc,OAAQ,UAAWJ,GAC/CzmB,KAAK6mB,SAAS,OAAQ,OAAQ,QAASJ,GACvCzmB,KAAK6mB,SAAS,QAAS,aAAc,aAAcJ,GACnDzmB,KAAK6mB,SAAS,aAAc,OAAQ,QAASJ,GAC7CzmB,KAAK6mB,SAAS,OAAQ,mBAAoB,QAASJ,GACnDzmB,KAAK6mB,SAAS,mBAAoB,cAAe,eAAgBJ,GACjEzmB,KAAK6mB,SAAS,eAAgB,cAAe,QAASJ,GACtDzmB,KAAK6mB,SAAS,cAAe,UAAW,QAASJ,GACjDzmB,KAAK6mB,SAAS,UAAW,QAAS,QAASJ,GAC3CzmB,KAAK6mB,SAAS,UAAW,WAAY,WAAYJ,GACjDzmB,KAAK6mB,SAAS,QAAS,WAAY,WAAYJ,GAC/CzmB,KAAK6mB,SAAS,WAAY,KAAM,KAAMJ,IAExCF,EAAIC,cAGJvpB,EAAI+H,QAAUpE,GAGZC,YAAa,SAAiB0L,EAASM,EAAWvD,GAChD,GAAI9F,GAAW+I,EAAQ/I,SACnBH,EAASkJ,EAAQtH,OAAO5B,OACxBgB,EAAkBkI,EAAQtH,OAAOZ,eAEjCkI,GAAQqB,mBAAkBvK,EAAS,aAEvCrD,KAAKmmB,OAASA,GAAUA,EAAOW,OAC/B9mB,KAAKuM,QAAUA,EACfvM,KAAK6M,UAAYA,EACjB7M,KAAKsJ,OAASA,MACdtJ,KAAKqO,YAAc,GAAIpR,GAAI4R,YAAYrL,EAAUH,EAAQgB,GACzDrE,KAAK0S,UAAYzV,EAAIsC,KAAKqJ,KAAKC,UAE/B7I,KAAK2N,SAAW,GAAI1Q,GAAI8pB,SAAS/mB,MACjCA,KAAKgmB,KAAO,GAAIE,GAAqBK,EAAIS,OAAQ,YACjDhnB,KAAK0mB,sBAAuB,EAE5BzpB,EAAIsJ,mBAAmBnrC,KAAK4kC,MAC5BA,KAAK8P,KAAO9P,KAAKinB,WAMnBlR,KAAM,SAAc3U,GAQlB,MAPIA,IACFpB,KAAK2P,GAAG,WAAY,SAAUL,GAC5BlO,EAAShmC,KAAKk0C,EAAMA,EAAK5N,MAAO4N,EAAK/F,QAGzCvJ,KAAKknB,QAEElnB,KAAK2N,UAMdgK,MAAO,SAAevW,GACpB,MAAOpB,MAAKknB,MAAM,OAAQ9lB,IAI5B8lB,MAAO,SAAeC,EAAO1Z,GAE3B,MADAzN,MAAKgmB,KAAKkB,MAAMC,EAAO1Z,EAAMzN,MACtBA,MAITonB,MAAO,WAkBL,MAjBApnB,MAAKqnB,mBAAmB,oBACxBrnB,KAAKqnB,mBAAmB,gBACxBrnB,KAAK2P,GAAG,mBAAoB,SAAyBL,GACnDA,EAAK5N,MAAQzE,EAAIsC,KAAKmC,MAAM,GAAIzmC,OAAM,4BACnC0mC,KAAM,sBAAuBiN,WAAW,MAIzC5O,KAAKqO,YAAYqB,SACnB1P,KAAKqO,YAAYqB,OAAO0X,QACpBpnB,KAAKqO,YAAYmC,eAClBxQ,KAAKqO,YAAYmC,iBAElBxQ,KAAKqnB,mBAAmB,SAIrBrnB,MAITsnB,SAAU,SAAkBlmB,GAG1B,QAASmmB,GAAgB5Z,GACvBvM,EAAShmC,KAAKuyC,EAAUA,EAASjM,MAAOiM,EAASpE,KAAM,SAAU+N,GAC3DA,KAAW,IAEX3J,EAAS6Z,cACX7Z,EAAS8Z,WAAW9X,GAAG,WAAY4X,GAAiBxR,OAEpD3U,EAAShmC,KAAKuyC,EAAU,KAAM,KAAM1Q,EAAIsC,KAAK4Z,GAAGuO,SATtDtmB,EAAWnE,EAAIsC,KAAK4Z,GAAGwO,UAAUvmB,EAAU,GAc3CpB,KAAK2P,GAAG,WAAY4X,GAAiBxR,QAIvC6R,SAAU,SAAkBxmB,GAE1B,QAASmmB,GAAgBjmB,EAAKiI,GAC5B,GAAIjI,EAAK,MAAOF,GAASE,EAAK,KAC9B,IAAa,OAATiI,EAAe,MAAOnI,GAAS,KAAM,KAEzC,IAAI6D,GAASnG,EAAKyN,QAAQsb,iBAAiB/oB,EAAK+N,WAC5Cib,EAAY7iB,EAAO6iB,SACnB5J,OAAMqD,QAAQuG,KAAYA,EAAYA,EAAU,GACpD,IAAIC,GAAQ3B,EAASpS,OAAOzK,EAAMue,GAC9BE,GAAoB,CAOxB,OANA/qB,GAAIsC,KAAK0W,UAAU8R,EAAO,SAASpE,GAEjC,GADAqE,EAAoB5mB,EAAS,KAAMuiB,GAC/BqE,KAAsB,EACxB,MAAO/qB,GAAIsC,KAAK6nB,QAGbY,EAhBT,GAAIlpB,GAAOkB,IAmBXA,MAAKsnB,SAASC,IAIhBU,WAAY,WACV,QAAOjoB,KAAKuM,QAAQsb,iBAAiB7nB,KAAK6M,YAI5Cqb,iBAAkB,WAChB,GAAIC,GAAUlrB,EAAIsC,KAAKmQ,OACnBlC,EAAMxN,KACN0P,EAAS,IA+Fb,OA7FyC,KAArCzS,EAAI+S,WAAWC,mBACjBP,EAAS,GAAIyY,GAAQC,YACrB5a,EAAIuI,SAEJrG,EAAS,GAAIyY,GAAQ/I,OACrB1P,EAAO2Y,UAAW,EAElB3Y,EAAO4Y,MAAO,EACd5Y,EAAOC,GAAG,cAAe,SAAS4Y,GAC3B7Y,EAAO4Y,MAAkB,SAAVC,IAClB7Y,EAAO4Y,MAAO,EACdhpB,EAAQkpB,SAAS,WAAahb,EAAIuI,aAKxC/V,KAAK2P,GAAG,cAAe,SAAuBC,EAAYpB,EAASc,GACjE,GAAIM,EAAa,IAAK,CACpBpC,EAAIib,eAAe,WAAYxrB,EAAIkQ,eAAeC,KAAKsb,WACvDlb,EAAIib,eAAe,YAAaxrB,EAAIkQ,eAAeC,KAAKub,YACxDnb,EAAImC,GAAG,YAAa,SAAyBjO,GAC3C4N,EAAK5N,MAAQA,EACb4N,EAAK5N,MAAMkN,WAAY,GAGzB,IACIga,GADAC,GAA2B,CAK/B,IAH+B,SAA3Brb,EAAIa,YAAYrtC,SAClB4nD,EAAcjV,SAASnF,EAAQ,kBAAmB,KAEhCzN,SAAhB6nB,IAA8BE,MAAMF,IAAgBA,GAAe,EAAG,CACxEC,GAA2B,CAC3B,IAAIE,GAAc,EAGpB,GAAIC,GAA4B,WAC1BH,GAA4BE,IAAgBH,EAC9ClZ,EAAOI,KAAK,QAAS7S,EAAIsC,KAAKmC,MAC5B,GAAIzmC,OAAM,4CACR8tD,EAAc,OAASH,EAAc,YACrCjnB,KAAM,iCAEoC,IAArC1E,EAAI+S,WAAWC,kBACxBP,EAAOuZ,MAEPvZ,EAAOI,KAAK,QAIZoZ,EAAa5Z,EAAKG,aAAa4E,wBAEnC,IAAyC,IAArCpX,EAAI+S,WAAWC,kBACjB,GAAI4Y,EAA0B,CAC5B,GAAIM,GAAoB,GAAIhB,GAAQC,WACpCe,GAAkBC,OAAS,SAASpY,GAIlC,MAHIA,IAASA,EAAM31C,SACjB0tD,GAAe/X,EAAM31C,QAEhB8sD,EAAQC,YAAYrpB,UAAUqqB,OAAOlP,MAAMla,KAAMuI,YAG1D4gB,EAAkBxZ,GAAG,MAAOqZ,GAC5BE,EAAWG,KAAKF,GAAmBE,KAAK3Z,GAAUuZ,KAAK,QAEvDC,GAAWG,KAAK3Z,OAIdmZ,IACFK,EAAWvZ,GAAG,OAAQ,SAAS2Z,GACzBA,GAAOA,EAAIjuD,SACb0tD,GAAeO,EAAIjuD,UAKzB6tD,EAAWvZ,GAAG,OAAQ,SAAS2Z,GAC7B5Z,EAAOI,KAAK,OAAQwZ,KAEtBJ,EAAWvZ,GAAG,MAAOqZ,EAGvBE,GAAWvZ,GAAG,QAAS,SAASrO,GAC9BunB,GAA2B,EAC3BnZ,EAAOI,KAAK,QAASxO,QAK3BtB,KAAK2P,GAAG,QAAS,SAASrO,GACxBoO,EAAOI,KAAK,QAASxO,KAGhBoO,GAITuX,UAAW,SAAcsC,EAAWC,EAAM/b,GACpB,kBAAT+b,KAAuB/b,EAAO+b,EAAMA,EAAO,MACjD/b,IAAMA,EAAO,cACb+b,IAAMA,EAAOxpB,KAAKypB,gBAAgBF,EAAWvpB,KAAK2N,UAEvD,IAAI+b,GAAWzsB,EAAIsJ,mBAAmBxH,UAAU+Q,IAChD4Z,GAAStuD,KAAK4kC,KAAMupB,EAAWC,EAAM,SAAUloB,GACzCA,IAAKtB,KAAK2N,SAASjM,MAAQJ,GAC/BmM,EAAKryC,KAAK4kC,KAAMsB,MAKpBmoB,gBAAiB,SAAyBF,GACxC,OAAQA,GACN,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,gBACL,IAAK,aACH,OAAQvpB,KACV,KAAK,QACH,OAAQA,KAAK2N,SAASjM,MAAO1B,KAAK2N,SACpC,SACE,OAAQ3N,KAAK2N,YAKnBgc,QAAS,SAAiBC,EAASxoB,GAKjC,MAJKA,IAA+B,kBAAZwoB,KACtBxoB,EAAWwoB,EACXA,EAAU,OAEL,GAAI3sB,GAAIuI,QAAQqkB,SAAUC,KAAK9pB,KAAK+pB,QAASH,EAASxoB,IAI/D4oB,YAAa,WACX,MAAOzsB,QAAOwB,UAAUN,eAAerjC,KAAK4kC,KAAKqO,YAAYG,QAAS,sBAIxEyb,kBAAmB,WAGjB,MAFAjqB,MAAKyoB,eAAe,WAAYxrB,EAAIkQ,eAAeC,KAAK8c,sBACxDlqB,KAAKyoB,eAAe,OAAQxrB,EAAIkQ,eAAeC,KAAK+c,MAC7CnqB,MAIT+pB,MAAO,WAML,MALkC,UAA9B/pB,KAAKuM,QAAQmB,IAAI7xC,UACa,QAA9BmkC,KAAKuM,QAAQmB,IAAI7xC,WACnBmkC,KAAKyoB,eAAe,QAASzoB,KAAKoqB,YAClCpqB,KAAKqqB,YAAY,QAASrqB,KAAKoqB,aAE1BpqB,MAIToqB,WAAY,SAAoBva,GAC9BA,EAAQxB,YAAYrtC,OAAS,MAC7B6uC,EAAQxB,YAAY9L,KAAOsN,EAAQtD,QAAQ/I,SAASjB,KACzB,IAAMsN,EAAQxB,YAAYD,KACrDyB,EAAQxB,YAAYD,KAAO,SAEpByB,GAAQxB,YAAYG,QAAQ,wBAC5BqB,GAAQxB,YAAYG,QAAQ,iBAIrCP,oBAAqB,WACnBjO,KAAK0mB,sBAAuB,KAIhCzpB,EAAIsC,KAAKwF,sBAAsB9H,EAAI+H,SAEnC/H,EAAIsC,KAAK+qB,MAAMrtB,EAAI+H,QAAS/H,EAAIsJ,sBAE7BnrC,KAAK4kC,KAAKjlC,EAAQ,aAClB2jC,SAAS,GAAG6rB,kBAAkB,GAAGlqB,OAAS,GAAG+lB,SAAW,KAAKoE,IAAI,SAASzvD,EAAQQ,EAAOJ,GAQ5F,QAASsvD,GAAgBnb,GACvB,GAAIqJ,GAASrJ,EAAKO,QAAQ6a,QACtBC,EAAYhS,EAAO1T,OAAO0lB,UAC1BC,GAAkB,EAClBzD,EAAQ,OAEZwD,GAAU5Q,QAAQ,SAAS8Q,GACzB,IAAKD,EAAiB,CACpB,GAAIE,GAAUnS,EAAOoS,SAASF,EAASC,QACnCA,IAAWA,EAAQxb,EAAMub,EAASG,SAAUH,EAASI,YACvDL,GAAkB,EAClBzD,EAAQ0D,EAAS1D,WAKlByD,GAAmBtb,EAAK5N,QAAOylB,EAAQ,WAE9B,YAAVA,EACFxO,EAAOuS,WAAW5b,GAElBqJ,EAAOwS,SAAS7b,EAAgB,UAAV6X,GA1B1B,GAAIlqB,GAAMliC,EAAQ,UACd6lC,EAAU3D,EAAIsC,KAAKqB,QACnBwlB,EAAWrrD,EAAQ,WA6BvBkiC,GAAIoJ,eAAiBzF,GAEnBC,YAAa,SAAqB0L,EAAS4a,GACzCnnB,KAAKuM,QAAUA,EACfvM,KAAKmnB,MAAQA,EACbnnB,KAAKorB,iBAAiBprB,KAAKmnB,QAG7B5a,QAAS,KAET4a,MAAO,KAEPliB,OAAQ,KAER8lB,UACExoB,KAAM,SAAS+M,EAAM0b,EAAUC,GAC7B,GAAI3T,GAAS8O,EAASpS,OAAO1E,EAAK/F,KAAM0hB,EACxC,OAAO7E,GAASiF,gBAAgB/T,EAAO0T,IAGzCM,QAAS,SAAShc,EAAM0b,EAAUC,GAChC,GAAIM,GAAUnF,EAASpS,OAAO1E,EAAK/F,KAAM0hB,EACpC/M,OAAMqD,QAAQgK,KAAUA,GAAWA,GACxC,IAAIC,GAAaD,EAAQlwD,MACzB,KAAKmwD,EAAY,OAAO,CACxB,KAAK,GAAIC,GAAM,EAAIA,EAAMD,EAAYC,IACnC,IAAKrF,EAASiF,gBAAgBE,EAAQE,GAAMT,GAC1C,OAAO,CAGX,QAAO,GAGTU,QAAS,SAASpc,EAAM0b,EAAUC,GAChC,GAAIM,GAAUnF,EAASpS,OAAO1E,EAAK/F,KAAM0hB,EACpC/M,OAAMqD,QAAQgK,KAAUA,GAAWA,GAExC,KAAK,GADDC,GAAaD,EAAQlwD,OAChBowD,EAAM,EAAIA,EAAMD,EAAYC,IACnC,GAAIrF,EAASiF,gBAAgBE,EAAQE,GAAMT,GACzC,OAAO,CAGX,QAAO,GAGTnY,OAAQ,SAASvD,EAAM0b,GACrB,GAAIpb,GAAaN,EAAKG,aAAaG,UACnC,OAA8B,gBAAfA,IAA6BA,IAAeob,GAG7DtpB,MAAO,SAAS4N,EAAM0b,GACpB,MAAwB,gBAAbA,IAAyB1b,EAAK5N,MAChCspB,IAAa1b,EAAK5N,MAAMC,KAE1BqpB,MAAe1b,EAAK5N,QAI/BiqB,WAAW,GAAI1uB,GAAIsJ,oBAAqB8G,kBAAkB,SAASC,GACjEA,EAAI,cAAe,QAAS,SAASgC,GACnC,GAAIqJ,GAASrJ,EAAKO,QAAQ6a,OACtBpb,GAAK5N,OAA6B,qBAApB4N,EAAK5N,MAAMC,OAC3B2N,EAAK5N,MAAMmQ,WAA0C,KAA5B8G,EAAO1T,OAAO8M,OAAS,MAIpDzE,EAAI,eAAgB,cAAemd,GAEnCnd,EAAI,cAAe,eAAgBmd,KAIrCmB,KAAM,SAActiB,EAAQlI,GACJ,kBAAXkI,KACTlI,EAAWkI,EAAQA,EAASvI,OAG9B,IAAI8O,GAAU7P,KAAKuM,QAAQsf,YAAY7rB,KAAKiF,OAAO4H,UAAWvD,EAM9D,OALAuG,GAAQ6a,QAAU1qB,KAClB6P,EAAQlC,SAAShK,WAAa3D,KAAKiF,OAAO6mB,YAC1Cjc,EAAQkc,aAAa/rB,KAAK2rB,WAEtBvqB,GAAUyO,EAAQkG,KAAK3U,GACpByO,GAGTqb,WAAY,SAAoB5b,GAC9BA,EAAK5N,MAAQ,KACb4N,EAAK/F,KAAO+F,EAAK/F,SACjB+F,EAAKO,QAAQwX,mBAAmB,gBAGlC8D,SAAU,SAAkB7b,EAAMV,GAChCU,EAAK/F,KAAO,KACZ+F,EAAK5N,MAAQzE,EAAIsC,KAAKmC,MAAM4N,EAAK5N,OAAS,GAAIzmC,QAC5C0mC,KAAM,mBACN5yB,QAAS,gCAAkCixB,KAAKmnB,MAChDvY,UAAWA,KAKfwc,iBAAkB,SAA0BjE,GAC1C,IAAKnnB,KAAKuM,QAAQmB,IAAIgL,QAAQyO,GAC5B,KAAM,IAAIlqB,GAAIsC,KAAKmC,MAAM,GAAIzmC,QAC3B0mC,KAAM,qBACN5yB,QAAS,SAAWo4C,EAAQ,eAIhCnnB,MAAKiF,OAASjF,KAAKuM,QAAQmB,IAAIgL,QAAQyO,QAIxCzoB,SAAS,GAAG0nB,SAAW,KAAK4F,IAAI,SAASjxD,EAAQQ,EAAOJ,GAC3D,GAAI8hC,GAAMliC,EAAQ,UACd6lC,EAAU3D,EAAIsC,KAAKqB,QACnBwlB,EAAWrrD,EAAQ,WAGvBkiC,GAAI8pB,SAAWnmB,GAGbC,YAAa,SAAkBgP,GAC7B7P,KAAK6P,QAAUA,EACf7P,KAAKuJ,KAAO,KACZvJ,KAAK0B,MAAQ,KACb1B,KAAK8O,WAAa,EAClB9O,KAAK4R,cAAgB,EACrB5R,KAAKyP,aAAe,GAAIxS,GAAImX,aACxBvE,IACF7P,KAAK2D,WAAakM,EAAQtD,QAAQ0f,aAClCjsB,KAAK4D,aAAeiM,EAAQtD,QAAQtH,OAAOrB,eAK/C6jB,SAAU,SAAkBrmB,GAC1B,GAAI6D,GACAsH,EAAUvM,KAAK6P,QAAQtD,QACvBM,EAAY7M,KAAK6P,QAAQhD,SAC7B,KACE5H,EAASsH,EAAQsb,iBAAiBhb,GAAW,GAC7C,MAAOtyC,GAAKylC,KAAK0B,MAAQnnC,EAE3B,IAAKylC,KAAKwnB,cAAe,CACvB,GAAIpmB,EAAUA,EAASpB,KAAK0B,MAAO,UAC9B,IAAI1B,KAAK0B,MAAO,KAAM1B,MAAK0B,KAChC,OAAO,MAGT,GAAI4H,GAASrM,EAAIsC,KAAKqF,KAAK5E,KAAK6P,QAAQvG,OACxC,IAAKtJ,KAAKksB,eAEH,CACL,GAAIC,GAAclnB,EAAOmnB,UACE,iBAAhBD,KAA0BA,GAAeA,GACpD,KAAK,GAAInxD,GAAI,EAAGA,EAAImxD,EAAY9wD,OAAQL,IACtCsuC,EAAO6iB,EAAYnxD,IAAMglC,KAAKksB,eAAelxD,EAE/C,OAAOuxC,GAAQsf,YAAY7rB,KAAK6P,QAAQhD,UAAWvD,EAAQlI,GAP3D,MAAOA,GAAWA,EAAS,KAAM,MAAQ,MAY7ComB,YAAa,WAEX,MADAxnB,MAAKqsB,wBACDrsB,KAAKksB,gBACmBnrB,SAAxBf,KAAKksB,gBAA8B,QAKzCG,oBAAqB,WACnB,GAAI9uB,OAAOwB,UAAUN,eAAerjC,KAAK4kC,KAAM,kBAAmB,MAAOA,MAAKksB,cAC9ElsB,MAAKksB,eAAiBnrB,MAEtB,IAAIkE,GAASjF,KAAK6P,QAAQtD,QAAQsb,iBAAiB7nB,KAAK6P,QAAQhD,UAChE,KAAK5H,EAAQ,MAAOjF,MAAKksB,cAGzB,IADAlsB,KAAKksB,eAAiB,KAClBjnB,EAAOqnB,cACJlG,EAASpS,OAAOhU,KAAKuJ,KAAMtE,EAAOqnB,aACrC,MAAOtsB,MAAKksB,cAIhB,IAAIK,GAAQtnB,EAAOunB,WAUnB,OATqB,gBAAVD,KAAoBA,GAASA,IACxCtvB,EAAIsC,KAAK0W,UAAU76C,KAAK4kC,KAAMusB,EAAO,SAAUE,GAC7C,GAAI1vD,GAASqpD,EAASpS,OAAOhU,KAAKuJ,KAAMkjB,EACpC1vD,KACFijC,KAAKksB,eAAiBlsB,KAAKksB,mBAC3BlsB,KAAKksB,eAAe9a,KAAKr0C,MAItBijC,KAAKksB,oBAKbxtB,SAAS,GAAG0nB,SAAW,KAAKsG,IAAI,SAAS3xD,EAAQQ,EAAOJ,GAC3D,GAAI8hC,GAAMliC,EAAQ,SAGlBkiC,GAAIsJ,mBAAqBtJ,EAAIsC,KAAKqB,SAEhCC,YAAa,WACXb,KAAK2sB,YAIPhB,UAAW,SAAmBpC,GAC5B,MAAOvpB,MAAK2sB,QAAQpD,GAAavpB,KAAK2sB,QAAQpD,GAAWvd,MAAM,OAGjE2D,GAAI,SAAY4Z,EAAWqD,GAMzB,MALI5sB,MAAK2sB,QAAQpD,GACfvpB,KAAK2sB,QAAQpD,GAAWnY,KAAKwb,GAE7B5sB,KAAK2sB,QAAQpD,IAAcqD,GAEtB5sB,MAIT6sB,QAAS,SAAiBtD,EAAWqD,GAEnC,MADAA,GAASE,UAAW,EACb9sB,KAAK2P,GAAG4Z,EAAWqD,IAG5BnE,eAAgB,SAAwBc,EAAWqD,GACjD,GAAIjB,GAAY3rB,KAAK2sB,QAAQpD,EAC7B,IAAIoC,EAAW,CAGb,IAAK,GAFDtwD,GAASswD,EAAUtwD,OACnB4nD,GAAW,EACNjoD,EAAI,EAAGA,EAAIK,IAAUL,EACxB2wD,EAAU3wD,KAAO4xD,IACnB3J,EAAWjoD,EAGXioD,IAAW,GACb0I,EAAUoB,OAAO9J,EAAU,GAG/B,MAAOjjB,OAGTqnB,mBAAoB,SAA4BkC,GAM9C,MALIA,SACKvpB,MAAK2sB,QAAQpD,GAEpBvpB,KAAK2sB,WAEA3sB,MAIT8P,KAAM,SAAcyZ,EAAWyD,EAAWC,GACnCA,IAAcA,EAAe,aAClC,IAAItB,GAAY3rB,KAAK2rB,UAAUpC,GAC3B2D,EAAQvB,EAAUtwD,MAEtB,OADA2kC,MAAKmtB,cAAcxB,EAAWqB,EAAWC,GAClCC,EAAQ,GAIjBC,cAAe,SAAuBxB,EAAWnC,EAAMyD,EAAcG,GAInE,QAASC,GAAiB/rB,GACxB,MAAIA,KACFI,EAAQzE,EAAIsC,KAAKmC,MAAMA,GAAS,GAAIzmC,OAASqmC,GACzCxC,EAAK4nB,sBACAuG,EAAa7xD,KAAK0jC,EAAM4C,OAGnC5C,GAAKquB,cAAcxB,EAAWnC,EAAMyD,EAAcvrB,GAGpD,IAbA,GAAI5C,GAAOkB,KACP0B,EAAQ0rB,GAAa,KAYlBzB,EAAUtwD,OAAS,GAAG,CAC3B,GAAIuxD,GAAWjB,EAAU2B,OACzB,IAAIV,EAASE,SAEX,WADAF,GAAS1S,MAAMpb,EAAM0qB,EAAKlY,QAAQ+b,IAGlC,KACET,EAAS1S,MAAMpb,EAAM0qB,GACrB,MAAOloB,GACPI,EAAQzE,EAAIsC,KAAKmC,MAAMA,GAAS,GAAIzmC,OAASqmC,GAE/C,GAAII,GAAS5C,EAAK4nB,qBAEhB,WADAuG,GAAa7xD,KAAK0jC,EAAM4C,GAK9BurB,EAAa7xD,KAAK0jC,EAAM4C,IAI1BqqB,aAAc,SAAsBJ,GAClC,GAAI7sB,GAAOkB,IAWX,OATI2rB,GAAUgB,UAAShB,EAAYA,EAAUgB,SAE7C1vB,EAAIsC,KAAK0B,KAAK0qB,EAAW,SAASpD,EAAOgF,GACd,kBAAdA,KAA0BA,GAAaA,IAClDtwB,EAAIsC,KAAK0W,UAAUsX,EAAW,SAASnsB,GACrCtC,EAAK6Q,GAAG4Y,EAAOnnB,OAIZtC,GAIT0uB,iBAAkB,SAA0B1sD,EAAMyoD,EAAWnoB,GAG3D,MAFApB,MAAKl/B,GAAQsgC,EACbpB,KAAKqqB,YAAYd,EAAWnoB,GACrBpB,MAITytB,sBAAuB,SAA+B3sD,EAAMyoD,EAAWnoB,GAErE,MADAA,GAAS0rB,UAAW,EACb9sB,KAAKwtB,iBAAiB1sD,EAAMyoD,EAAWnoB,IAIhDiM,kBAAmB,SAA2BjM,GAC5C,GAAItC,GAAOkB,IASX,OARAoB,GACE,WACEtC,EAAK0uB,iBAAiBtT,MAAMpb,EAAMyJ,YAEpC,WACEzJ,EAAK2uB,sBAAsBvT,MAAMpb,EAAMyJ,aAGpCvI,QAKX/C,EAAIsJ,mBAAmBxH,UAAUsrB,YAAcptB,EAAIsJ,mBAAmBxH,UAAU4Q,GAEhFp0C,EAAOJ,QAAU8hC,EAAIsJ,qBAElB7H,SAAS,KAAKgvB,IAAI,SAAS3yD,EAAQQ,EAAOJ,GAC7C,GAAI8hC,GAAMliC,EAAQ,UACdkrC,EAAMlrC,EAAQ,eACd+oD,EAAe/oD,EAAQ,mBACvB6lC,EAAU3D,EAAIsC,KAAKqB,QACnB+sB,EAAc,CAGlB1wB,GAAIC,QAAU0D,GAEZC,YAAa,SAAiBoE,GAC5B,IAAKjF,KAAK4tB,iBACR,KAAM3wB,GAAIsC,KAAKmC,MAAM,GAAIzmC,OACvB,kDAEJ,IAAI4yD,GAAe7tB,KAAK4tB,iBAAiB3oB,MACzC,IAAI4oB,EAAc,CAChB,GAAIC,GAAiB7wB,EAAIsC,KAAKqF,KAAKK,GAC/BzG,EAAM,GAAIqvB,GAAa5oB,EAO3B,OANA1H,QAAOC,eAAegB,EAAK,mBACzBf,IAAK,WAAa,MAAOqwB,IACzBnwB,YAAY,EACZC,cAAc,IAEhBY,EAAI2Q,YAAcwe,EACXnvB,EAETwB,KAAK+tB,WAAW9oB,IAIlB8oB,WAAY,SAAoB9oB,GAC9B,GAAI+oB,GAAY/wB,EAAIgI,OAAOjF,KAAK+S,kBAEhC/S,MAAKiF,OAAS,GAAIhI,GAAI0D,OAAO1D,EAAIgI,QAC7B+oB,GAAWhuB,KAAKiF,OAAO9C,OAAO6rB,GAAW,GACzC/oB,GAAQjF,KAAKiF,OAAO9C,OAAO8C,GAAQ,GAEvCjF,KAAKiuB,kBACAjuB,KAAKiF,OAAOzB,UAAUsgB,EAAa9jB,MAExCA,KAAKiF,OAAOzB,SAAWxD,KAAKkuB,qBAAqBluB,KAAKiF,OAAOzB,UAC7DxD,KAAKmuB,YAAYnuB,KAAKiF,OAAOzB,WAI/ByqB,gBAAiB,aAIjBL,iBAAkB,SAA0BQ,GAC1C,GAAInpB,GAASmpB,CACb,IAAKnxB,EAAIsC,KAAK8uB,QAAQruB,KAAK0N,KAEpB,CAAA,GAAIzI,EAAOqpB,UAChB,MAAOrxB,GAAIC,QAAQqxB,iBAAiBvuB,KAAKa,YAAaoE,EAAOqpB,UACxD,IAAKtuB,KAAKa,YAAYzD,SAEtB,CACL6H,EAAS,GAAIhI,GAAI0D,OAAO1D,EAAIgI,QAC5BA,EAAO9C,OAAOisB,GAAe,EAC7B,IAAI5yD,GAAUypC,EAAO1B,YAAYvD,KAAKa,YAAYkS,kBAElD,OADAv3C,GAAUA,GAAWypC,EAAOvpC,WACrBskC,KAAKwuB,sBAAsBhzD,GANlC,MAAO,MAJP,MAAO,OAeXgzD,sBAAuB,SAA+BhzD,GAMpD,MALAA,GAAUwkC,KAAKyuB,wBAAwBjzD,GACI,OAAvCwkC,KAAKa,YAAYzD,SAAS5hC,IAC5ByhC,EAAIC,QAAQqxB,iBAAiBvuB,KAAKa,YAAarlC,GAG1CwkC,KAAKa,YAAYzD,SAAS5hC,IAInCizD,wBAAyB,SAAiCjzD,GACxD,IAAKwkC,KAAKa,YAAYzD,UAAiD,IAArC4C,KAAKa,YAAYzD,SAAS/hC,OAC1D,KAAM,IAAIJ,OAAM,0BACA+kC,KAAKa,YAAYkS,kBASnC,IANKv3C,EAEMyhC,EAAIsC,KAAKwf,OAAOvjD,EAASwtC,QAClCxtC,EAAUyhC,EAAIsC,KAAKqJ,KAAK8lB,QAAQlzD,GAASuvC,MAAM,KAAK,IAFpDvvC,EAAU,SAKR+hC,OAAOkB,eAAeuB,KAAKa,YAAYzD,SAAU5hC,GACnD,MAAOA,EAKT,KAAK,GAFDglB,GAAO+c,OAAO/c,KAAKwf,KAAKa,YAAYzD,UAAUqkB,OAC9CkN,EAAkB,KACb3zD,EAAIwlB,EAAKnlB,OAAS,EAAGL,GAAK,EAAGA,IAIpC,GAHoC,MAAhCwlB,EAAKxlB,GAAGwlB,EAAKxlB,GAAGK,OAAS,KAC3BszD,EAAkBnuC,EAAKxlB,IAErBwlB,EAAKxlB,GAAG6nD,OAAO,EAAG,KAAOrnD,EAC3B,MAAOmzD,EAIX,MAAM,IAAI1zD,OAAM,kBAAoB+kC,KAAKa,YAAYkS,kBACrC,uCAAyCv3C,EAAU,MAIrEkyC,OAGAkhB,kBAAmB,EAGnB/C,YAAa,SAAqBhf,EAAWvD,EAAQlI,GAOnD,GANsB,kBAAXkI,KACTlI,EAAWkI,EACXA,EAAS,MAGXA,EAASA,MACLtJ,KAAKiF,OAAOqE,OAAQ,CACtB,GAAIuE,GAAQ7N,KAAK0N,IAAIzxC,WAAW4wC,EAC5BgB,KACFvE,EAASrM,EAAIsC,KAAKqF,KAAK0E,GACvBrM,EAAIsC,KAAK0B,KAAKjB,KAAKiF,OAAOqE,OAAQ,SAASxpC,EAAKC,GAC1C8tC,EAAM1xC,MAAMG,QAAQwD,KACFihC,SAAhBuI,EAAOxpC,IAAsC,OAAhBwpC,EAAOxpC,KACtCwpC,EAAOxpC,GAAOC,OAOxB,GAAI8vC,GAAU,GAAI5S,GAAI+H,QAAQhF,KAAM6M,EAAWvD,EAI/C,OAHAtJ,MAAK6uB,uBAAuBhf,GAExBzO,GAAUyO,EAAQkG,KAAK3U,GACpByO,GAITif,2BAA4B,SAAoCjiB,EAAWvD,EAAQlI,GAC3D,kBAAXkI,KACTlI,EAAWkI,EACXA,KAGF,IAAIuG,GAAU7P,KAAK6rB,YAAYhf,EAAWvD,GAAQ2gB,mBAClD,OAAO7oB,GAAWyO,EAAQkG,KAAK3U,GAAYyO,GAI7Ckf,QAAS,SAAiB5H,EAAO7d,EAAQlI,GACvC,GAAIuX,GAAS,GAAI1b,GAAIoJ,eAAerG,KAAMmnB,EAC1C,OAAOxO,GAAOiT,KAAKtiB,EAAQlI,IAI7BytB,uBAAwB,SAAgChf,GAGtD,IAAK,GAFD0H,IAAQta,EAAIqJ,OAAQrJ,EAAIkQ,eAAeC,KAAMpN,KAAKgvB,mBAC1C/xB,EAAIkQ,eAAe+E,UACtBl3C,EAAI,EAAGA,EAAIu8C,EAAKl8C,OAAQL,IAC3Bu8C,EAAKv8C,IAAI60C,EAAQkc,aAAaxU,EAAKv8C,GAGpCglC,MAAKiF,OAAOpB,iBACfgM,EAAQ4Y,eAAe,WACrBxrB,EAAIkQ,eAAeC,KAAK6hB,qBAGxBjvB,KAAKiF,OAAO3B,QACduM,EAAQkc,aAAa9uB,EAAIkQ,eAAemF,QAG1CtS,KAAKkvB,sBAAsBrf,IAI7Bqf,sBAAuB,aAIvBhhB,eAAgB,WACd,GAAI1yC,EAMJ,OAJEA,GADEwkC,KAAKiF,OAAOlpC,iBACJikC,KAAKiF,OAAOlpC,iBAEZikC,KAAK0N,IAAI3xC,iBAEdkhC,EAAIuI,QAAQ2pB,cAAcC,WAAW5zD,IAI9CwzD,iBAAkB,WAChB,OAAQhvB,KAAK0N,IAAI7xC,UACf,IAAK,MAAO,MAAOohC,GAAIkQ,eAAexH,KACtC,KAAK,QAAS,MAAO1I,GAAIkQ,eAAexH,KACxC,KAAK,OAAQ,MAAO1I,GAAIkQ,eAAezH,IACvC,KAAK,YAAa,MAAOzI,GAAIkQ,eAAetH,QAC5C,KAAK,WAAY,MAAO5I,GAAIkQ,eAAerH,QAE7C,GAAI9F,KAAK0N,IAAI7xC,SACX,KAAM,IAAIZ,OAAM,8BACd+kC,KAAK0N,IAAI7xC,SAAW,mBAK1B0zC,mBAAoB,SAA4BD,GAC9C,MAAOA,GAAKG,aAAaG,WAAa,KAIxCqc,WAAY,WACV,MAA+BlrB,UAA3Bf,KAAKiF,OAAOtB,WACP3D,KAAKiF,OAAOtB,WAEZ3D,KAAK4uB,mBAKhB9c,YAAa,SAAqBhD,GAChC,MAAO7R,GAAIsC,KAAK8vB,oBAAoBvgB,EAAY9O,KAAKiF,OAAOR,oBAI9D8M,eAAgB,SAAwB7P,GACtC,QAAI1B,KAAKsvB,gBAAgB5tB,OACrB1B,KAAKuvB,wBAAwB7tB,OAC7B1B,KAAKwvB,eAAe9tB,IACpBA,EAAMkO,YAAc,OAK1B0f,gBAAiB,SAAyB5tB,GACxC,MAAsB,oBAAfA,EAAMC,MAIf4tB,wBAAyB,SAAiC7tB,GACxD,MAAuB,0BAAfA,EAAMC,MAIhB8P,eAAgB,SAAwB/P,GACtC,OAAQA,EAAMC,MACZ,IAAK,uBACL,IAAK,iBACL,IAAK,4BACL,IAAK,wBACL,IAAK,cACL,IAAK,qBACH,OAAO,CACT,SAAS,OAAO,IAKpB6tB,eAAgB,SAAwB9tB,GACtC,OAAQA,EAAMC,MACZ,IAAK,yCACL,IAAK,aACL,IAAK,sBACL,IAAK,uBACL,IAAK,mBACH,OAAO,CACT,SACE,OAAO,IAKbusB,qBAAsB,SAA8B1qB,GAClD,GAAwB,gBAAbA,GAAuB,MAAOA,EAEzC,IAAIjpC,GAAIipC,CAIR,OAHAjpC,GAAIA,EAAE89C,QAAQ,eAAgBrY,KAAK0N,IAAI/xC,gBACvCpB,EAAIA,EAAE89C,QAAQ,cAAerY,KAAKiF,OAAO5B,QACzC9oC,EAAIA,EAAE89C,QAAQ,cAAerY,KAAKiF,OAAOnB,WAAa,QAAU,SAKlEqqB,YAAa,SAAqB3qB,GAChCxD,KAAKwD,SAAW,GAAIvG,GAAIyU,SAASlO,EAAUxD,KAAKiF,SAIlD4iB,iBAAkB,SAA0Bhb,EAAW4iB,GACrD,GAAIhX,GAAYzY,KAAK0N,IAAIzxC,WAAW4wC,GAAW4L,SAC/C,KAAKA,EAAW,CACd,GAAIgX,EAAgB,CAClB,GAAIl1D,GAAI,GAAIU,MACZ,MAAMgiC,GAAIsC,KAAKmC,MAAMnnC,EAAG,mCAAqCsyC,GAE/D,MAAO,MAGT,MAAO4L,MAIXxb,EAAIsC,KAAK4C,OAAOlF,EAAIC,SAGlBwyB,cAAe,SAAuBlxB,GACpCvB,EAAIsC,KAAK0B,KAAKzC,EAAIO,UAAU2O,IAAIzxC,WAAY,SAAkB+E,GAC5D,IAAIw9B,EAAIO,UAAU/9B,GAAlB,CACA,GAAI6rC,GAAYrO,EAAIO,UAAU2O,IAAIzxC,WAAW+E,EAClB,UAAvB6rC,EAAU9pC,SACZy7B,EAAIO,UAAU/9B,GAAU,SAAUsoC,EAAQlI,GACxC,MAAOpB,MAAK8uB,2BAA2B9tD,EAAQsoC,EAAQlI,IAGzD5C,EAAIO,UAAU/9B,GAAU,SAAUsoC,EAAQlI,GACxC,MAAOpB,MAAK6rB,YAAY7qD,EAAQsoC,EAAQlI,QAOhD9D,cAAe,SAAuByV,EAAmB1c,EAAUs5B,GACjE1yB,EAAIC,QAAQ0yB,YAAY7c,IAAqB,EACxCmL,MAAMqD,QAAQlrB,KACjBs5B,EAAWt5B,EACXA,KAGF,IAAImI,GAAMoC,EAAQ3D,EAAIC,QAASyyB,MAE/B,IAAiC,gBAAtB5c,GAAgC,CACzC9V,EAAIC,QAAQ2yB,YAAYrxB,EAAKnI,EAE7B,IAAIy5B,GAAatxB,EAAIuU,mBAAqBA,CAC1CvU,GAAIuU,kBAAoB+c,MAExBtxB,GAAIO,UAAU2O,IAAMqF,EACpB9V,EAAIC,QAAQwyB,cAAclxB,EAG5B,OAAOA,IAITqxB,YAAa,SAAqBrxB,EAAKnI,GAChC6nB,MAAMqD,QAAQlrB,KAAWA,GAAYA,IAE1CmI,EAAIpB,SAAWoB,EAAIpB,YACnB,KAAK,GAAIpiC,GAAI,EAAGA,EAAIq7B,EAASh7B,OAAQL,IACD+lC,SAA9BvC,EAAIpB,SAAS/G,EAASr7B,MACxBwjC,EAAIpB,SAAS/G,EAASr7B,IAAM,KAIhCwjC,GAAI+E,YAAchG,OAAO/c,KAAKge,EAAIpB,UAAUqkB,QAI9C8M,iBAAkB,SAA0BwB,EAAYv0D,EAAS8yD,GAK/D,QAAS0B,GAAOtiB,GACVA,EAAIuiB,MACNzxB,EAAIO,UAAU2O,IAAMA,EAEpBlP,EAAIO,UAAU2O,IAAM,GAAIzH,GAAIyH,GARhC,GAAIlP,GAAMoC,EAAQmvB,GAChBhd,kBAAmBgd,EAAWhd,mBAWhC,IAAuB,gBAAZv3C,GAAsB,CAC/B,GAAI8yD,EACF0B,EAAO1B,OAEP,KACE0B,EAAO/yB,EAAIE,UAAU4yB,EAAWhd,kBAAmBv3C,IACnD,MAAO8lC,GACP,KAAMrE,GAAIsC,KAAKmC,MAAMJ,GACnBvyB,QAAS,oCACPghD,EAAWhd,kBAAoB,IAAMv3C,IAIxC+hC,OAAOwB,UAAUN,eAAerjC,KAAK20D,EAAW3yB,SAAU5hC,KAC7Du0D,EAAWxsB,YAAcwsB,EAAWxsB,YAAY+N,OAAO91C,GAASimD,QAElEsO,EAAW3yB,SAAS5hC,GAAWgjC,MAE/BwxB,GAAOx0D,EAIT,OADAyhC,GAAIC,QAAQwyB,cAAclxB,GACnBA,GAIT6D,WAAY,SAASytB,GACnB,MAAOvyB,QAAOwB,UAAUN,eAAerjC,KAAK6hC,EAAIC,QAAQ0yB,YAAaE,IAIvEF,iBAGFr0D,EAAOJ,QAAU8hC,EAAIC,UAClBwB,SAAS,GAAGuI,cAAc,GAAGipB,kBAAkB,KAAKC,IAAI,SAASp1D,EAAQQ,EAAOJ,GACnF,GAAI8hC,GAAMliC,EAAQ,UAElBkiC,GAAIsC,KAAK4C,OAAOlF,EAAII,gBAAgB0B,WAClCwL,eAAgB,SAAwBjB,EAAQlI,GAC9C,MAAOpB,MAAK8uB,2BAA2B,iBAAkBxlB,EAAQlI,IAGnEuI,MAAO,SAAeL,EAAQlI,GAC5B,MAAOpB,MAAK8uB,2BAA2B,QAASxlB,EAAQlI,IAG1D0I,0BAA2B,SAAmCR,EAAQlI,GACpE,MAAOpB,MAAK8uB,2BAA2B,4BAA6BxlB,EAAQlI,QAI7EyK,UAAU,KAAKukB,IAAI,SAASr1D,EAAQQ,EAAOJ,GAC9C,GAAI8hC,GAAMliC,EAAQ,UAElBkiC,GAAIsC,KAAK4C,OAAOlF,EAAImB,IAAIW,WAEtB2L,gBAAiB,SAAyBnB,EAAMhI,GAC9C,MAAKgI,IACAhI,IAAaA,EAAc,GAAItE,GAAIyP,sBACxCnL,EAAY8G,SAAU,EACtB9G,EAAYO,YAAcyH,EAAK1rC,YAAYC,YAC3CyjC,EAAYQ,gBAAkBwH,EAAK1rC,YAAYi/B,gBAC/CyE,EAAYiH,aAAee,EAAK1rC,YAAYG,aAC5CujC,EAAY+G,WAAaiB,EAAK1rC,YAAYI,WACnCsjC,GAPW,MAUpB0L,0BAA2B,SAAmC3D,EAAQlI,GACpE,MAAOpB,MAAK8uB,2BAA2B,4BAA6BxlB,EAAQlI,IAG9EoL,mBAAoB,SAA4BlD,EAAQlI,GACtD,MAAOpB,MAAK8uB,2BAA2B,qBAAsBxlB,EAAQlI,QAItEyK,UAAU,KAAKwkB,IAAI,SAASt1D,EAAQQ,EAAOJ,GAQ9C,QAASm1D,GAAiBzgB,GACxB,GAAI+Z,GAAU/Z,EAAQxB,YAAYG,QAAQ+hB,GACtCC,EAAc3gB,EAAQtD,QAAQ2B,eAAe2B,EAKjD,UAHOA,GAAQxB,YAAYG,QAAQ,oBAC5BqB,GAAQxB,YAAYG,QAAQ,oBAE/BgiB,IAAgBvzB,EAAIuI,QAAQ2I,GAAI,CAClC,GAAIyb,EAAU,OAAQ,CACpB,GAAI76C,GAAU,iFAEd,MAAMkuB,GAAIsC,KAAKmC,MAAM,GAAIzmC,QACvB0mC,KAAM,oBAAqB5yB,QAASA,EAAS6/B,WAAW,IAG5DiB,EAAQxB,YAAYG,QAAQ+hB,GAAiB3G,MACxC,CAAA,GAAI4G,IAAgBvzB,EAAIuI,QAAQirB,GAIrC,KAAMxzB,GAAIsC,KAAKmC,MAAM,GAAIzmC,QACvB8T,QAAS,gDACT4yB,KAAM,oBAAqBiN,WAAW,GALxCiB,GAAQxB,YAAYG,QAAQ+hB,GAAiB5c,SAC3C1W,EAAIsC,KAAKqJ,KAAK8nB,gBAAkB9G,EAAS,IAAItkB,YAUnD,QAASqrB,GAAgB9gB,GACvB,GAAIrM,GAAWqM,EAAQxB,YAAY7K,SAC/BotB,EAAY3zB,EAAIsC,KAAKkU,SAAS5D,EAAQxB,YAAY9L,MAClDsuB,IAEAD,GAAU5c,SACZ6c,EAAc5zB,EAAIsC,KAAK2U,iBAAiB0c,EAAU5c,OAAO6O,OAAO,KAGlE5lB,EAAIsC,KAAK0B,KAAK4O,EAAQxB,YAAYG,QAAS,SAAU1uC,EAAKC,GACpDD,IAAQywD,IAAezwD,EAAM,WACE,IAA/BA,EAAIorC,QAAQ,uBACP2lB,GAAY/wD,GACnBA,EAAMA,EAAIq2C,eAEZ0a,EAAY/wD,GAAOC,UAEd8vC,GAAQxB,YAAYG,QAAQ+hB,EAEnC,IAAIO,GAAOD,EAA2B,cAAE9lB,MAAM,IAC9C,IAAgB,QAAZ+lB,EAAK,GACPA,EAAOA,EAAK,GAAG/lB,MAAM,KACrB8lB,EAA4B,eAAIC,EAAK,GACrCD,EAAuB,UAAIC,EAAK,OAC3B,IAAgB,qBAAZA,EAAK,GAA2B,CACzCA,EAAKxD,OACL,IAAIyD,GAAOD,EAAKzlB,KAAK,KACjB2lB,EAAYD,EAAKvf,MAAM,mCAAmC,EAC9Dqf,GAAY,mBAAqBG,QAC1BH,GAAqB,cAEvBA,GAA2B,oBAC3BA,GAAkB,KAEzBrtB,EAASuQ,SAAW6c,EAAU7c,SAC9BvQ,EAASwQ,OAAS/W,EAAIsC,KAAK4U,oBAAoB0c,GAtEjD,GAAI5zB,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,QAGnB2vB,EAAgB,mBAsEpBtzB,GAAIuI,QAAQqkB,QAAUjpB,GAEpBkpB,KAAM,SAAcja,EAASvH,EAAYlH,GAWvC,GAVAyO,EAAQxB,YAAYG,QAAQ+hB,GAAiBjoB,GAAc,KAC3DuH,EAAQF,GAAG,QAAS2gB,GACpBzgB,EAAQF,GAAG,OAAQghB,GACnB9gB,EAAQ4Y,eAAe,aACrBxrB,EAAIkQ,eAAeC,KAAK6jB,oBAC1BphB,EAAQ4Y,eAAe,aACrBxrB,EAAIkQ,eAAeC,KAAK8jB,gBAE1BrhB,EAAQC,KAAK,iBAAkBD,KAE3BzO,EAOG,CAEL,GADAyO,EAAQ8H,QACJ9H,EAAQlC,SAASjM,MAAO,KAAMmO,GAAQlC,SAASjM,KACnD,OAAOzE,GAAIsC,KAAK4xB,UAAUthB,EAAQxB,YAAY7K,UAT9CqM,EAAQ8H,MAAM,WACR3X,KAAK2N,SAASjM,MAAON,EAASpB,KAAK2N,SAASjM,OAE9CN,EAAS,KAAMnE,EAAIsC,KAAK4xB,UAAUthB,EAAQxB,YAAY7K,gBAWhEjoC,EAAOJ,QAAU8hC,EAAIuI,QAAQqkB,UAE1Bhe,UAAU,KAAKulB,IAAI,SAASr2D,EAAQQ,EAAOJ,GAC9C,GAAI8hC,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,OAGvB3D,GAAIuI,QAAQ2pB,cAAgBvuB,GAC1BC,YAAa,SAAuBgP,GAClC7P,KAAK6P,QAAUA,GAGjBX,mBAAoB,SAA4B7F,GAC9CrJ,KAAKqxB,gBAAkBhoB,GAGzBioB,mBAAoB,WAClB,MAAOtxB,MAAKqxB,mBAIhBp0B,EAAIuI,QAAQ2pB,cAAcC,WAAa,SAAoB5zD,GACzD,OAAQA,GACN,IAAK,KAAM,MAAOyhC,GAAIuI,QAAQ+rB,EAC9B,KAAK,KAAM,MAAOt0B,GAAIuI,QAAQgsB,EAC9B,KAAK,KAAM,MAAOv0B,GAAIuI,QAAQ2I,EAC9B,KAAK,KAAM,MAAOlR,GAAIuI,QAAQirB,EAC9B,KAAK,UAAW,MAAOxzB,GAAIuI,QAAQisB,QAErC,KAAM,IAAIx2D,OAAM,2BAA6BO,IAG/CT,EAAQ,QACRA,EAAQ,QACRA,EAAQ,aACRA,EAAQ,QACRA,EAAQ,QACRA,EAAQ,eAEL8wC,UAAU,GAAG6lB,YAAY,GAAGC,OAAO,GAAGC,OAAO,GAAGC,OAAO,GAAGC,YAAY,GAAGC,OAAO,KAAKC,IAAI,SAASj3D,EAAQQ,EAAOJ,GACpH,GAAI8hC,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,OAGvB3D,GAAIuI,QAAQirB,GAAK7vB,EAAQ3D,EAAIuI,QAAQ2pB,eAEnC8C,cACEC,IAAO,EACPC,WAAc,EACdr8B,KAAQ,EACRs8B,UAAa,EACbC,OAAU,EACVlb,SAAY,EACZmb,QAAW,EACXC,aAAgB,EAChBC,WAAc,EACdC,OAAU,EACVC,eAAkB,EAClBC,YAAe,EACfC,QAAW,EACXC,QAAW,EACXC,QAAW,EACXC,SAAY,EACZC,QAAW,EACXC,UAAa,EACbC,WAAc,EACd78B,SAAY,EACZ88B,QAAW,GAGbC,iBACEC,wBAAyB,EACzBC,4BAA6B,EAC7BC,mBAAoB,EACpBC,yBAA0B,EAC1BC,+BAAgC,EAChCC,4BAA6B,GAG/BtkB,iBAAkB,SAA0B7N,EAAaqH,GAClD5I,KAAK6P,QAAQrB,QAAQ,uBACxBxO,KAAK6P,QAAQrB,QAAQ,cAAgBvR,EAAIsC,KAAKqJ,KAAK+qB,OAAO/qB,IAGxDrH,EAAYiH,eACdxI,KAAK6P,QAAQrB,QAAQ,wBAA0BjN,EAAYiH,aAG7D,IAAIwoB,GAAYhxB,KAAK8pB,KAAKvoB,EAAYQ,gBAAiB/B,KAAK4zB,gBACxD9C,EAAO,OAASvvB,EAAYO,YAAc,IAAMkvB,CAEpDhxB,MAAK6P,QAAQrB,QAAuB,cAAIsiB,GAG1C8C,aAAc,WACZ,GAAIl5D,GAAIslC,KAAK6P,QAET2R,IACJA,GAAMpQ,KAAK12C,EAAEsG,QACbwgD,EAAMpQ,KAAK12C,EAAE8zC,QAAQ,gBAAkB,IACvCgT,EAAMpQ,KAAK12C,EAAE8zC,QAAQ,iBAAmB,IAExCgT,EAAMpQ,KAAK12C,EAAE8zC,QAAQ,sBAAwB,GAE7C,IAAIA,GAAUxO,KAAK6zB,yBAInB,OAHIrlB,IAASgT,EAAMpQ,KAAK5C,GACxBgT,EAAMpQ,KAAKpR,KAAK8zB,yBAETtS,EAAMnW,KAAK,OAIpBwoB,wBAAyB,WAEvB,GAAIE,KAEJ92B,GAAIsC,KAAK0B,KAAKjB,KAAK6P,QAAQrB,QAAS,SAAU1tC,GACxCA,EAAK0wC,MAAM,aACbuiB,EAAW3iB,KAAKtwC,KAGpBizD,EAAWtS,KAAK,SAAU3mD,EAAGk5D,GAC3B,MAAOl5D,GAAEq7C,cAAgB6d,EAAE7d,eAAgB,EAAK,GAGlD,IAAIqL,KAKJ,OAJAvkB,GAAIsC,KAAK0W,UAAU76C,KAAK4kC,KAAM+zB,EAAY,SAAUjzD,GAClD0gD,EAAMpQ,KAAKtwC,EAAKq1C,cAAgB,IAAMmD,OAAOtZ,KAAK6P,QAAQrB,QAAQ1tC,OAG7D0gD,EAAMnW,KAAK,OAIpByoB,sBAAuB,WAErB,GAAIp5D,GAAIslC,KAAK6P,QAET2R,EAAQ9mD,EAAE6nC,KAAKwI,MAAM,KACrBxI,EAAOif,EAAM,GACb5hB,EAAc4hB,EAAM,GAEpByS,EAAW,EAOf,IALIv5D,EAAEw5D,sBACJD,GAAY,IAAMv5D,EAAEw5D,qBAEtBD,GAAY1xB,EAER3C,EAAa,CAEf,GAAIu0B,KAEJl3B,GAAIsC,KAAK0W,UAAU76C,KAAK4kC,KAAMJ,EAAYmL,MAAM,KAAM,SAAU+S,GAC9D,GAAIh9C,GAAOg9C,EAAM/S,MAAM,KAAK,GACxBhrC,EAAQ+9C,EAAM/S,MAAM,KAAK,EAC7B,IAAI/K,KAAKiyB,aAAanxD,IAASk/B,KAAKozB,gBAAgBtyD,GAAO,CACzD,GAAIszD,IAAgBtzD,KAAMA,EACZigC,UAAVhhC,IACEigC,KAAKiyB,aAAanxD,GACpBszD,EAAYr0D,MAAQA,EAEpBq0D,EAAYr0D,MAAQs0D,mBAAmBt0D,IAG3Co0D,EAAU/iB,KAAKgjB,MAInBD,EAAU1S,KAAK,SAAU3mD,EAAGk5D,GAAK,MAAOl5D,GAAEgG,KAAOkzD,EAAElzD,MAAO,EAAK,IAE3DqzD,EAAU94D,SAEZukC,KACA3C,EAAIsC,KAAK0W,UAAUke,EAAW,SAAUG,GACpBvzB,SAAduzB,EAAIv0D,MACN6/B,EAAYwR,KAAKkjB,EAAIxzD,MAErB8+B,EAAYwR,KAAKkjB,EAAIxzD,KAAO,IAAMwzD,EAAIv0D,SAI1Ck0D,GAAY,IAAMr0B,EAAYyL,KAAK,MAKvC,MAAO4oB,IAITnK,KAAM,SAAcyK,EAAQ9lB,GAC1B,MAAOxR,GAAIsC,KAAKC,OAAOg1B,KAAKD,EAAQ9lB,EAAQ,SAAU,WAI1DlzC,EAAOJ,QAAU8hC,EAAIuI,QAAQirB,KAE1B5kB,UAAU,KAAK4oB,IAAI,SAAS15D,EAAQQ,EAAOJ,GAC9C,GAAI8hC,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,OAGvB3D,GAAIuI,QAAQ+rB,GAAK3wB,EAAQ3D,EAAIuI,QAAQ2pB,eACnC/f,iBAAkB,SAA0B7N,EAAaqH,GAElDA,IAAMA,EAAO3L,EAAIsC,KAAKqJ,KAAKC,UAEhC,IAAInuC,GAAIslC,KAAK6P,OAEbn1C,GAAE4uC,OAAOj4B,UAAY4rB,EAAIsC,KAAKqJ,KAAK8lB,QAAQ9lB,GAC3CluC,EAAE4uC,OAAOorB,iBAAmB,IAC5Bh6D,EAAE4uC,OAAOqrB,gBAAkB,aAC3Bj6D,EAAE4uC,OAAOsrB,eAAiBrzB,EAAYO,YAElCP,EAAYiH,eACd9tC,EAAE4uC,OAAOurB,cAAgBtzB,EAAYiH,oBAGhC9tC,GAAE4uC,OAAOvgB,UAChBruB,EAAE4uC,OAAOvgB,UAAYiX,KAAKgxB,UAAUzvB,GAEpC7mC,EAAE0zC,KAAOnR,EAAIsC,KAAK4U,oBAAoBz5C,EAAE4uC,QACxC5uC,EAAE8zC,QAAQ,kBAAoB9zC,EAAE0zC,KAAK/yC,QAGvC21D,UAAW,SAAmBzvB,GAC5B,MAAOtE,GAAIsC,KAAKC,OAAOg1B,KAAKjzB,EAAYQ,gBAAiB/B,KAAK4zB,eAAgB,WAGhFA,aAAc,WACZ,GAAIpS,KAKJ,OAJAA,GAAMpQ,KAAKpR,KAAK6P,QAAQ7uC,QACxBwgD,EAAMpQ,KAAKpR,KAAK6P,QAAQrM,SAASmL,KAAKwH,eACtCqL,EAAMpQ,KAAKpR,KAAK6P,QAAQkE,YACxByN,EAAMpQ,KAAKnU,EAAIsC,KAAK4U,oBAAoBnU,KAAK6P,QAAQvG;AAC9CkY,EAAMnW,KAAK,SAKtB9vC,EAAOJ,QAAU8hC,EAAIuI,QAAQ+rB,KAE1B1lB,UAAU,KAAKipB,IAAI,SAAS/5D,EAAQQ,EAAOJ,GAC9C,GAAI8hC,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,OAGvB3D,GAAIuI,QAAQgsB,GAAK5wB,EAAQ3D,EAAIuI,QAAQ2pB,eACnC/f,iBAAkB,SAA0B7N,EAAaqH,GAEvD,GAAImsB,GAAW93B,EAAIsC,KAAKqJ,KAAK+qB,OAAO/qB,EAEpC5I,MAAK6P,QAAQrB,QAAQ,cAAgBumB,EAEjCxzB,EAAYiH,eACdxI,KAAK6P,QAAQrB,QAAQ,wBAA0BjN,EAAYiH,cAG7DxI,KAAK6P,QAAQrB,QAAQ,wBACnBxO,KAAKg1B,cAAczzB,EAAawzB,IAIpCC,cAAe,SAAuBzzB,GACpC,MAAO,uBACeA,EAAYO,YAAc,uCAE3B9B,KAAKi1B,gBAAkB,cAC3Bj1B,KAAKgxB,UAAUzvB,IAGlC0zB,cAAe,WACb,GAAIzmB,KAIJ,OAHAvR,GAAIsC,KAAK0W,UAAUjW,KAAKk1B,gBAAiB,SAAkBC,GACzD3mB,EAAQ4C,KAAK+jB,EAAEhf,iBAEV3H,EAAQiT,OAAOpW,KAAK,MAG7B+pB,iBAAkB,WAChB,GAAI5mB,GAAUxO,KAAK6P,QAAQrB,QACvBgT,IAIJ,OAHAvkB,GAAIsC,KAAK0W,UAAUjW,KAAKk1B,gBAAiB,SAAkBC,GACzD3T,EAAMpQ,KAAK+jB,EAAEhf,cAAckf,OAAS,IAAM/b,OAAO9K,EAAQ2mB,IAAIE,UAExD7T,EAAMC,OAAOpW,KAAK,MAAQ,MAGnC6pB,cAAe,WACb,GAAI1mB,KAMJ,OALAvR,GAAIsC,KAAK0B,KAAKjB,KAAK6P,QAAQrB,QAAS,SAAkBoT,IAC1C,SAANA,GAAsB,qBAANA,GAA4BA,EAAEpQ,MAAM,aACtDhD,EAAQ4C,KAAKwQ,KAGVpT,GAGTwiB,UAAW,SAAmBzvB,GAC5B,MAAOtE,GAAIsC,KAAKC,OAAOg1B,KAAKjzB,EAAYQ,gBAAiB/B,KAAK4zB,eAAgB,WAGhFA,aAAc,WACZ,GAAIpS,KAMJ,OALAA,GAAMpQ,KAAKpR,KAAK6P,QAAQ7uC,QACxBwgD,EAAMpQ,KAAK,KACXoQ,EAAMpQ,KAAK,IACXoQ,EAAMpQ,KAAKpR,KAAKo1B,oBAChB5T,EAAMpQ,KAAKpR,KAAK6P,QAAQzB,MACjBnR,EAAIsC,KAAKC,OAAO81B,OAAO9T,EAAMnW,KAAK,UAK7C9vC,EAAOJ,QAAU8hC,EAAIuI,QAAQgsB,KAE1B3lB,UAAU,KAAK0pB,IAAI,SAASx6D,EAAQQ,EAAOJ,GAC9C,GAAI8hC,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,OAEvB7lC,GAAQ,QAGRkiC,EAAIuI,QAAQisB,QAAU7wB,EAAQ3D,EAAIuI,QAAQgsB,IACxCwD,cAAe,SAAuBzzB,GACpC,MAAO,6BACeA,EAAYO,YAAc,mCAE/B9B,KAAKgxB,UAAUzvB,IAGlCqyB,aAAc,WACZ,MAAO5zB,MAAK6P,QAAQrB,QAAQ,iBAIhCjzC,EAAOJ,QAAU8hC,EAAIuI,QAAQisB,UAE1B5lB,UAAU,GAAGgmB,OAAO,KAAK2D,IAAI,SAASz6D,EAAQQ,EAAOJ,GACxD,GAAI8hC,GAAMliC,EAAQ,WACd6lC,EAAU3D,EAAIsC,KAAKqB,QAGnB60B,KAGAC,KAGAC,EAAkB,GAGlBpF,EAAgB,mBAGpBtzB,GAAIuI,QAAQ2I,GAAKvN,EAAQ3D,EAAIuI,QAAQ2pB,eACnCtuB,YAAa,SAAYgP,EAAS+lB,EAAapxB,GAC7CvH,EAAIuI,QAAQ2pB,cAAc/zD,KAAK4kC,KAAM6P,GACrC7P,KAAK41B,YAAcA,EACnB51B,KAAKwE,eAAiBA,GAGxBqxB,UAAW,mBAEXzmB,iBAAkB,SAA0B7N,EAAaqH,GACvD,GAAImsB,GAAW93B,EAAIsC,KAAKqJ,KAAK8lB,QAAQ9lB,GAAMyP,QAAQ,iBAAkB,GAEjErY,MAAKgqB,cACPhqB,KAAK81B,mBAAmBv0B,EAAawzB,GAErC/0B,KAAK+1B,WAAWx0B,EAAawzB,GAG/B/0B,KAAK6P,QAAQrB,QAAuB,cAClCxO,KAAKg1B,cAAczzB,EAAawzB,IAGpCgB,WAAY,SAAoBx0B,EAAawzB,GAC3C/0B,KAAK6P,QAAQrB,QAAQ,cAAgBumB,EACjCxzB,EAAYiH,eACdxI,KAAK6P,QAAQrB,QAAQ,wBAA0BjN,EAAYiH,eAI/DstB,mBAAoB,SAA4Bv0B,EAAawzB,GAC3D,GAAIiB,GAAah2B,KAAKi2B,iBAAiBlB,GACnCmB,GACFC,aAAcpB,EACdqB,kBAAmBp2B,KAAK61B,UACxBQ,mBAAoB90B,EAAYO,YAAc,IAAMk0B,EACpDM,gBAAiBt2B,KAAK6P,QAAQrB,QAAQ+hB,GACtCgG,sBAAuBv2B,KAAKi1B,gBAG1B1zB,GAAYiH,eACd0tB,EAAG,wBAA0B30B,EAAYiH,cAGvCxI,KAAK6P,QAAQrB,QAAQ,kBACvB0nB,EAAG,gBAAkBl2B,KAAK6P,QAAQrB,QAAQ,iBAExCxO,KAAK6P,QAAQrB,QAAQ,iBACvB0nB,EAAG,eAAiBl2B,KAAK6P,QAAQrB,QAAQ,gBAEvCxO,KAAK6P,QAAQrB,QAAQ,mBACvB0nB,EAAG,iBAAmBl2B,KAAK6P,QAAQrB,QAAQ,kBAG7CvR,EAAIsC,KAAK0B,KAAK7lC,KAAK4kC,KAAMA,KAAK6P,QAAQrB,QAAS,SAAS1uC,EAAKC,GAC3D,GAAID,IAAQywD,GACRvwB,KAAKw2B,iBAAiB12D,GAAM,CAC9B,GAAI22D,GAAW32D,EAAIq2C,aACqB,KAApCsgB,EAASvrB,QAAQ,eACnBgrB,EAAGO,GAAY12D,EACyB,IAA/B02D,EAASvrB,QAAQ,YAC1BgrB,EAAGp2D,GAAOC,KAKhB,IAAI22D,GAAM12B,KAAK6P,QAAQtN,KAAK2I,QAAQ,MAAQ,EAAI,IAAM,GACtDlL,MAAK6P,QAAQtN,MAAQm0B,EAAMz5B,EAAIsC,KAAK4U,oBAAoB+hB,IAG1DlB,cAAe,SAAuBzzB,EAAawzB,GACjD,GAAIvT,MACAwU,EAAah2B,KAAKi2B,iBAAiBlB,EAKvC,OAJAvT,GAAMpQ,KAAKpR,KAAK61B,UAAY,eAC1Bt0B,EAAYO,YAAc,IAAMk0B,GAClCxU,EAAMpQ,KAAK,iBAAmBpR,KAAKi1B,iBACnCzT,EAAMpQ,KAAK,aAAepR,KAAKgxB,UAAUzvB,EAAawzB,IAC/CvT,EAAMnW,KAAK,OAGpB2lB,UAAW,SAAmBzvB,EAAawzB,GACzC,GAAI4B,GAAQ,KACRC,EAAkB52B,KAAK41B,aAAe51B,KAAKsxB,qBAAuB,IAAMtxB,KAAKsxB,qBAAuB,GACxG,IAAItxB,KAAKwE,eAAgB,CACvB,GAAImyB,GAAQlB,EAAamB,EACpBD,KACHjB,EAAWtkB,KAAKwlB,GACZlB,EAAWr6D,OAASs6D,SACfF,GAAaC,EAAWpI,UAKrC,GAAI1kB,GAAOmsB,EAASlS,OAAO,EAAG,EAE9B,KAAK8T,GACDA,EAAME,OAASt1B,EAAYO,aAC3B60B,EAAMtzB,SAAWrD,KAAK6P,QAAQxM,QAC9BszB,EAAM/tB,OAASA,EAAM,CAEvB,GAAIkuB,GAAUv1B,EAAYQ,gBACtBg1B,EAAQ95B,EAAIsC,KAAKC,OAAOg1B,KAAK,OAASsC,EAASluB,EAAM,UACrDouB,EAAU/5B,EAAIsC,KAAKC,OAAOg1B,KAAKuC,EAAO/2B,KAAK6P,QAAQxM,OAAQ,UAC3D4zB,EAAWh6B,EAAIsC,KAAKC,OAAOg1B,KAAKwC,EAASh3B,KAAK41B,YAAa,UAC3DsB,EAAej6B,EAAIsC,KAAKC,OAAOg1B,KAAKyC,EAAU,eAAgB,SAElE,KAAKj3B,KAAKwE,eACR,MAAOvH,GAAIsC,KAAKC,OAAOg1B,KAAK0C,EAAcl3B,KAAK4zB,aAAamB,GAAW,MAGzEU,GAAamB,IACXvzB,OAAQrD,KAAK6P,QAAQxM,OAAQuF,KAAMA,EACnC9oC,IAAKo3D,EAAcL,KAAMt1B,EAAYO,aAIzC,GAAIhiC,GAAM21D,EAAamB,GAAiB92D,GACxC,OAAOm9B,GAAIsC,KAAKC,OAAOg1B,KAAK10D,EAAKkgC,KAAK4zB,aAAamB,GAAW,QAGhEnB,aAAc,SAAsBmB,GAClC,GAAIvT,KAKJ,OAJAA,GAAMpQ,KAAK,oBACXoQ,EAAMpQ,KAAK2jB,GACXvT,EAAMpQ,KAAKpR,KAAKi2B,iBAAiBlB,IACjCvT,EAAMpQ,KAAKpR,KAAKm3B,eAAen3B,KAAKo3B,oBAC7B5V,EAAMnW,KAAK,OAGpB+rB,gBAAiB,WACf,GAAI5V,MAAYzN,EAAW/T,KAAK6P,QAAQkE,UASxC,OARyB,OAArB/T,KAAK41B,cAAsB7hB,EAAW9W,EAAIsC,KAAK8hB,cAActN,IAEjEyN,EAAMpQ,KAAKpR,KAAK6P,QAAQ7uC,QACxBwgD,EAAMpQ,KAAK2C,GACXyN,EAAMpQ,KAAKpR,KAAK6P,QAAQmE,UACxBwN,EAAMpQ,KAAKpR,KAAKo1B,mBAAqB,MACrC5T,EAAMpQ,KAAKpR,KAAKi1B,iBAChBzT,EAAMpQ,KAAKpR,KAAKq3B,sBACT7V,EAAMnW,KAAK,OAGpB+pB,iBAAkB,WAChB,GAAI5mB,KACJvR,GAAIsC,KAAK0B,KAAK7lC,KAAK4kC,KAAMA,KAAK6P,QAAQrB,QAAS,SAAU1uC,EAAK6jD,GAC5DnV,EAAQ4C,MAAMtxC,EAAK6jD,MAErBnV,EAAQiT,KAAK,SAAU3mD,EAAGk5D,GACxB,MAAOl5D,GAAE,GAAGq7C,cAAgB6d,EAAE,GAAG7d,eAAgB,EAAK,GAExD,IAAIqL,KAQJ,OAPAvkB,GAAIsC,KAAK0W,UAAU76C,KAAK4kC,KAAMwO,EAAS,SAAUmV,GAC/C,GAAI7jD,GAAM6jD,EAAK,GAAGxN,aACdnW,MAAKw2B,iBAAiB12D,IACxB0hD,EAAMpQ,KAAKtxC,EAAM,IACfkgC,KAAKs3B,sBAAsB3T,EAAK,GAAGre,eAGlCkc,EAAMnW,KAAK,OAGpBisB,sBAAuB,SAA+BC,GACpD,MAAOA,GAAOlf,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,KAG3D4c,cAAe,WACb,GAAIz0C,KAKJ,OAJAyc,GAAIsC,KAAK0B,KAAK7lC,KAAK4kC,KAAMA,KAAK6P,QAAQrB,QAAS,SAAU1uC,GACvDA,EAAMA,EAAIq2C,cACNnW,KAAKw2B,iBAAiB12D,IAAM0gB,EAAK4wB,KAAKtxC,KAErC0gB,EAAKihC,OAAOpW,KAAK,MAG1B4qB,iBAAkB,SAA0BlB,GAC1C,GAAIvT,KAKJ,OAJAA,GAAMpQ,KAAK2jB,EAASlS,OAAO,EAAG,IAC9BrB,EAAMpQ,KAAKpR,KAAK6P,QAAQxM,QACxBme,EAAMpQ,KAAKpR,KAAK41B,aAChBpU,EAAMpQ,KAAK,gBACJoQ,EAAMnW,KAAK,MAGpB8rB,eAAgB,SAAc1oB,GAC5B,MAAOxR,GAAIsC,KAAKC,OAAO81B,OAAO7mB,EAAQ,QAGxC4oB,mBAAoB,WAClB,MAAIr3B,MAAKgqB,eAAsC,OAArBhqB,KAAK41B,cAAyB51B,KAAK6P,QAAQzB,KAC5D,mBACEpO,KAAK6P,QAAQrB,QAAQ,wBACvBxO,KAAK6P,QAAQrB,QAAQ,wBAErBxO,KAAKm3B,eAAen3B,KAAK6P,QAAQzB,MAAQ,KAIpDopB,mBAAoB,gBAAiB,eAAgB,iBACjC,aAAcjH,EAAe,UAEjDiG,iBAAkB,SAA0B12D,GAC1C,MAA4C,KAAxCA,EAAIq2C,cAAcjL,QAAQ,WACvBlL,KAAKw3B,kBAAkBtsB,QAAQprC,GAAO,GAG/CkqD,YAAa,WACX,QAAOhqB,KAAK6P,QAAQrB,QAAQ+hB,MAKhCh1D,EAAOJ,QAAU8hC,EAAIuI,QAAQ2I,KAE1BtC,UAAU,KAAK4rB,IAAI,SAAS18D,EAAQQ,EAAOJ,GAC9C,QAAS+qD,GAAqBc,EAAQG,GACpCnnB,KAAKimB,aAAekB,GAAS,KAC7BnnB,KAAKgnB,OAASA,MAGhBd,EAAqBnnB,UAAUmoB,MAAQ,SAAewQ,EAAYjqB,EAAMkqB,EAAYC,GACxD,kBAAfF,KACTE,EAAaD,EAAYA,EAAalqB,EACtCA,EAAOiqB,EAAYA,EAAa,KAGlC,IAAI54B,GAAOkB,KACPmnB,EAAQroB,EAAKkoB,OAAOloB,EAAKmnB,aAC7BkB,GAAMhO,GAAG/9C,KAAKu8D,GAAc74B,EAAM84B,EAAY,SAASt2B,GACrD,GAAIA,EAAK,CACP,IAAI6lB,EAAM3J,KACL,MAAO/P,GAAOA,EAAKryC,KAAKu8D,EAAYr2B,GAAO,IADhCxC,GAAKmnB,aAAekB,EAAM3J,SAErC,CACL,IAAI2J,EAAM0Q,OACL,MAAOpqB,GAAOA,EAAKryC,KAAKu8D,GAAc,IADzB74B,GAAKmnB,aAAekB,EAAM0Q,OAG9C,MAAI/4B,GAAKmnB,eAAiByR,EACjBjqB,EAAOA,EAAKryC,KAAKu8D,EAAYr2B,GAAO,SAG7CxC,GAAKooB,MAAMwQ,EAAYjqB,EAAMkqB,EAAYr2B,MAI7C4kB,EAAqBnnB,UAAU8nB,SAAW,SAAkB/lD,EAAMg3D,EAAaC,EAAW5e,GASxF,MAR2B,kBAAhB2e,IACT3e,EAAK2e,EAAaA,EAAc,KAAMC,EAAY,MACpB,kBAAdA,KAChB5e,EAAK4e,EAAWA,EAAY,MAGzB/3B,KAAKimB,eAAcjmB,KAAKimB,aAAenlD,GAC5Ck/B,KAAKgnB,OAAOlmD,IAAU+2D,OAAQC,EAAata,KAAMua,EAAW5e,GAAIA,GACzDnZ,MAGTzkC,EAAOJ,QAAU+qD,OAEX8R,IAAI,SAASj9D,EAAQQ,EAAOJ,IAClC,SAAWmkC,GAEX,GAAIrC,GAGAsC,GACF04B,OAAQ,WACN,MAAI14B,GAAKoL,aAAoC,mBAAdutB,WACtBA,UAAUpkB,UAEVxU,EAAQ64B,SAAW,IAAM74B,EAAQ9jC,SAI5Cs4C,UAAW,WACT,GAAIhzC,GAAOy+B,EAAKoL,YAAc,KAAO,SACjCytB,EAAQ,WAAat3D,EAAO,IAAM/F,EAAQ,UAAUwqC,OAExD,OADa,WAATzkC,IAAmBs3D,GAAS,IAAM74B,EAAK04B,UACpCG,GAGTztB,UAAW,WAAuB,MAAOrL,IAAWA,EAAQS,SAC5DkR,OAAQ,WAAoB,OAAQ1R,EAAKoL,aACzC2W,UAAW,SAAmB7S,GAC5B,GAAI1xC,GAASs7D,mBAAmB5pB,EAOhC,OANA1xC,GAASA,EAAOs7C,QAAQ,uBAAwBigB,QAEhDv7D,EAASA,EAAOs7C,QAAQ,OAAQ,SAASkgB,GACvC,MAAO,IAAMA,EAAGC,WAAW,GAAGlzB,SAAS,IAAIsd,iBAM/CvB,cAAe,SAAuB5S,GACpC,GAAI+S,KAIJ,OAHAjiB,GAAK0W,UAAUxH,EAAO1D,MAAM,KAAM,SAAU0tB,GAC1CjX,EAAMpQ,KAAK7R,EAAK+hB,UAAUmX,MAErBjX,EAAMnW,KAAK,MAGpBoI,SAAU,SAAkB9T,GAC1B,MAAOJ,GAAKI,IAAI+C,MAAM/C,IAGxBwxB,UAAW,SAAmBxxB,GAC5B,MAAOJ,GAAKI,IAAI6b,OAAO7b,IAGzBuU,iBAAkB,SAA0BgiB,GAC1C,MAAO32B,GAAKK,YAAY8C,MAAMwzB,IAGhC/hB,oBAAqB,SAA6B7K,GAChD,GAAIye,MACAuQ,EAAS/4B,EAAK+hB,UACdoX,EAAan7B,OAAO/c,KAAK8oB,GAAQmY,MAgBrC,OAdAliB,GAAK0W,UAAUyiB,EAAY,SAAS53D,GAClC,GAAIf,GAAQupC,EAAOxoC,GACf63D,EAAQL,EAAOx3D,GACfw2C,EAASqhB,EAAQ,GACrB,IAAIza,MAAMqD,QAAQxhD,GAAQ,CACxB,GAAI64D,KACJr5B,GAAK0W,UAAUl2C,EAAO,SAAS4jD,GAAQiV,EAAKxnB,KAAKknB,EAAO3U,MACxDrM,EAASqhB,EAAQ,IAAMC,EAAKnX,OAAOpW,KAAK,IAAMstB,EAAQ,SACnC53B,UAAVhhC,GAAiC,OAAVA,IAChCu3C,EAASqhB,EAAQ,IAAML,EAAOv4D,GAEhCgoD,GAAM3W,KAAKkG,KAGNyQ,EAAM1c,KAAK,MAGpB1I,aAAc,SAAsBJ,GAClC,MAAIhD,GAAKoL,YAAoB,KACtB5vC,EAAQ,MAAM4nC,aAAaJ,EAAM,UAG1CuZ,QAEEE,OAAQ,SAAkBvN,GACxB,MAAO,IAAIlP,GAAKG,OAAO+O,GAAQnJ,SAAS,WAG1CyW,OAAQ,SAAkBtN,GACxB,MAAO,IAAIlP,GAAKG,OAAO+O,EAAQ,YAKnC4C,QACEwnB,SAAU,SAAkBxnB,GACrB9R,EAAKG,OAAO2f,SAAShO,KAASA,EAAS,GAAI9R,GAAKG,OAAO2R,GAE5D,IAAIgX,GAAW,GAAK9oB,GAAKmQ,OAAe,SACpCopB,EAAM,CAUV,OATAzQ,GAAS0Q,MAAQ,SAASC,GACxB,GAAIF,GAAOznB,EAAOh2C,OAAQ,MAAOgtD,GAASjX,KAAK,KAE/C,IAAI6X,GAAM6P,EAAME,CACZ/P,GAAM5X,EAAOh2C,SAAQ4tD,EAAM5X,EAAOh2C,QACtCgtD,EAASjX,KAAKC,EAAOrF,MAAM8sB,EAAK7P,IAChC6P,EAAM7P,GAGDZ,GAIT/W,OAAQ,SAASZ,GACf,GAEmB11C,GAFfK,EAAS,EACT49D,EAAS,EACT5nB,EAAS,IAEb,KAAKr2C,EAAI,EAAGA,EAAI01C,EAAQr1C,OAAQL,IAC9BK,GAAUq1C,EAAQ11C,GAAGK,MAKvB,KAFAg2C,EAAS,GAAI9R,GAAKG,OAAOrkC,GAEpBL,EAAI,EAAGA,EAAI01C,EAAQr1C,OAAQL,IAC9B01C,EAAQ11C,GAAG4pC,KAAKyM,EAAQ4nB,GACxBA,GAAUvoB,EAAQ11C,GAAGK,MAGvB,OAAOg2C,KAIX5C,QACEC,WAAY,SAAoBD,GAC9B,GAAe,OAAXA,GAA8B1N,SAAX0N,EAAsB,MAAO,EAGpD,IAFsB,gBAAXA,KAAqBA,EAAS,GAAIlP,GAAKG,OAAO+O,IAExB,gBAAtBA,GAAOC,WAChB,MAAOD,GAAOC,UACT,IAA6B,gBAAlBD,GAAOpzC,OACvB,MAAOozC,GAAOpzC,MACT,IAA2B,gBAAhBozC,GAAOuqB,KACvB,MAAOvqB,GAAOuqB,IACT,IAA2B,gBAAhBvqB,GAAOlM,KACvB,MAAOxnC,GAAQ,MAAMm+D,UAAUzqB,EAAOlM,MAAMy2B,IAE5C,MAAMz5B,GAAKmC,MAAM,GAAIzmC,OAAM,8BAAgCwzC,IACvD0qB,OAAQ1qB,KAIhB+T,WAAY,SAAoB/T,GAC9B,MAAOA,GAAO,GAAGmU,cAAgBnU,EAAOoU,OAAO,IAGjD7P,WAAY,SAAoBvE,GAC9B,MAAOA,GAAO,GAAG0H,cAAgB1H,EAAOoU,OAAO,KAInDuW,KACE12B,MAAO,SAAgB02B,GACrB,GAAIC,GAAgB5hB,IAepB,OAdAlY,GAAK0W,UAAUmjB,EAAIruB,MAAM,SAAU,SAASkI,GAC1CA,EAAOA,EAAKlI,MAAM,cAAc,EAChC,IAAIuuB,GAAUrmB,EAAKzB,MAAM,yBACzB,IAAI8nB,EACFD,EAAiBC,EAAQ,OACpB,IAAID,EAAgB,CACzB,GAAI1V,GAAO1Q,EAAKzB,MAAM,4BAClBmS,KACFlM,EAAI4hB,GAAkB5hB,EAAI4hB,OAC1B5hB,EAAI4hB,GAAgB1V,EAAK,IAAMA,EAAK,OAKnClM,IAIX0B,IACEuO,KAAM,aAGNC,UAAW,SAAmBxO,EAAIogB,GAChC,MAAIA,IAAgBA,GAAgBpgB,EAAG99C,OAC9B89C,EAGF,WACL,GAAIqQ,GAAOtL,MAAMnf,UAAUiN,MAAM5wC,KAAKmtC,UAAW,GAC7CnH,EAAWooB,EAAK9J,MAChBpI,EAAS6B,EAAGe,MAAM,KAAMsP,EAC5BpoB,GAASkW,MAMf1O,MAGEC,QAAS,WAEP,MADK5L,KAAKA,EAAMliC,EAAQ,WACpBkiC,EAAIgI,OAAOV,kBACN,GAAIyE,OAAK,GAAIA,OAAOF,UAAY7L,EAAIgI,OAAOV,mBAE3C,GAAIyE,OAKf0lB,QAAS,SAAiB9lB,GAExB,MADa7H,UAAT6H,IAAsBA,EAAOrJ,EAAKqJ,KAAKC,WACpCD,EAAK4wB,cAAcnhB,QAAQ,YAAa,MAIjDsb,OAAQ,SAAgB/qB,GAEtB,MADa7H,UAAT6H,IAAsBA,EAAOrJ,EAAKqJ,KAAKC,WACpCD,EAAK0S,eAIdoV,cAAe,SAAuB9nB,GAEpC,MADa7H,UAAT6H,IAAsBA,EAAOrJ,EAAKqJ,KAAKC,WACpCD,EAAKE,UAAY,KAI1B2wB,KAAM,SAAgB7wB,GACpB,MAAoB,gBAATA,GACF,GAAII,MAAY,IAAPJ,GAET,GAAII,MAAKJ,IAKpB4S,OAAQ,SAAgB5S,EAAM8wB,GAE5B,MADKA,KAAWA,EAAY,WACrBn6B,EAAKqJ,KAAK8wB,GAAWn6B,EAAKqJ,KAAK6wB,KAAK7wB,KAG7C2S,eAAgB,SAAwBx7C,GACtC,GAAqB,gBAAVA,GACT,MAAO,IAAIipC,MAAa,IAARjpC,EACX,IAAIA,EAAMyxC,MAAM,SACrB,MAAO,IAAIxI,MAAa,IAARjpC,EACX,IAAIA,EAAMyxC,MAAM,UACrB,MAAO,IAAIxI,MAAKjpC,EACX,IAAIA,EAAMyxC,MAAM,WACrB,MAAO,IAAIxI,MAAKjpC,EAEhB,MAAMw/B,GAAKmC,MACT,GAAIzmC,OAAM,+BAAiC8E,IAC1C4hC,KAAM,2BAMfnC,QACEm6B,YACC,EAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAEDC,MAAO,SAAerwB,GACpB,GAAIswB,GAAMt6B,EAAKC,OAAOm6B,WAClBG,GAAM,CAEU,iBAATvwB,KACTA,EAAO,GAAIhK,GAAKG,OAAO6J,GAGzB,KAAK,GAAIvuC,GAAI,EAAGA,EAAIuuC,EAAKluC,OAAQL,IAAK,CACpC,GAAI2mC,GAAO4H,EAAKwwB,UAAU/+D,EAC1B8+D,GAAOA,IAAQ,EAAKD,EAAmB,KAAdC,EAAMn4B,IAEjC,OAAQm4B,GAAM,KAAQ,GAGxBtF,KAAM,SAAc10D,EAAK2uC,EAAQurB,EAAQ7gB,GAKvC,MAJK6gB,KAAQA,EAAS,UACP,WAAXA,IAAuBA,EAASj5B,QAC/BoY,IAAIA,EAAK,UACQ,gBAAX1K,KAAqBA,EAAS,GAAIlP,GAAKG,OAAO+O,IAClDlP,EAAKC,OAAOC,IAAIw6B,WAAW9gB,EAAIr5C,GAAKqiC,OAAOsM,GAAQurB,OAAOA,IAGnEE,IAAK,SAAa3wB,EAAMywB,EAAQ54B,GAC9B,MAAO7B,GAAKC,OAAO26B,KAAK,MAAO5wB,EAAMywB,EAAQ54B,IAG/Ck0B,OAAQ,SAAgB/rB,EAAMywB,EAAQ54B,GACpC,MAAO7B,GAAKC,OAAO26B,KAAK,SAAU5wB,EAAMywB,EAAQ54B,IAGlD+4B,KAAM,SAAStE,EAAWtsB,EAAMywB,EAAQ54B,GACtC,GAAI+4B,GAAO56B,EAAKC,OAAO46B,WAAWvE,EAC7BmE,KAAUA,EAAS,UACT,WAAXA,IAAuBA,EAASj5B,QAChB,gBAATwI,KAAmBA,EAAO,GAAIhK,GAAKG,OAAO6J,GACrD,IAAI8wB,GAAU96B,EAAK+6B,aAAa/wB,GAC5B8V,EAAW9f,EAAKG,OAAO2f,SAAS9V,EAGpC,IAFIhK,EAAKoL,aAAsC,mBAAhB4vB,cAA+BhxB,GAAQA,EAAK8H,iBAAkBkpB,eAAalb,GAAW,GAEjHje,GAA4B,gBAATmI,IACA,kBAAZA,GAAKoG,KAAsB0P,EACpC9V,EAAKoG,GAAG,OAAQ,SAASqB,GAASmpB,EAAKh4B,OAAO6O,KAC9CzH,EAAKoG,GAAG,QAAS,SAASrO,GAAOF,EAASE,KAC1CiI,EAAKoG,GAAG,MAAO,WAAavO,EAAS,KAAM+4B,EAAKH,OAAOA,UAClD,CAAA,IAAI54B,IAAYi5B,GAAYhb,GACF,mBAAfmb,YAwBX,CACDj7B,EAAKoL,aAA+B,gBAATpB,KAAsB8V,IACnD9V,EAAO,GAAIhK,GAAKG,OAAO,GAAI4W,YAAW/M,IAExC,IAAIiO,GAAM2iB,EAAKh4B,OAAOoH,GAAMywB,OAAOA,EAEnC,OADI54B,IAAUA,EAAS,KAAMoW,GACtBA,EA7BP,GAAItL,GAAQ,EAAG8sB,EAAO,OAClByB,EAAS,GAAID,WACjBC,GAAOC,QAAU,WACft5B,EAAS,GAAInmC,OAAM,0BAErBw/D,EAAOE,OAAS,WACd,GAAIC,GAAM,GAAIr7B,GAAKG,OAAO,GAAI4W,YAAWmkB,EAAOnjB,QAChD6iB,GAAKh4B,OAAOy4B,GACZ1uB,GAAS0uB,EAAIv/D,OACbo/D,EAAOI,oBAETJ,EAAOI,iBAAmB,WACxB,GAAI3uB,GAAS3C,EAAKyvB,KAEhB,WADA53B,GAAS,KAAM+4B,EAAKH,OAAOA,GAI7B,IAAIc,GAAO5uB,EAAQ8sB,CACf8B,GAAOvxB,EAAKyvB,OAAM8B,EAAOvxB,EAAKyvB,MAClCyB,EAAOM,kBAAkBV,EAAQj/D,KAAKmuC,EAAM2C,EAAO4uB,KAGrDL,EAAOI,qBAWXG,MAAO,SAAezxB,GAEpB,IAAK,GADDiO,MACKx8C,EAAI,EAAGA,EAAIuuC,EAAKluC,OAAQL,IAC/Bw8C,EAAIpG,MAAM,IAAM7H,EAAKivB,WAAWx9D,GAAGsqC,SAAS,KAAKud,QAAO,EAAI,GAE9D,OAAOrL,GAAInM,KAAK,KAGlB+uB,WAAY,SAAoBvE,GAC9B,MAAOt2B,GAAKC,OAAOC,IAAI26B,WAAWvE,KAQtCzO,SAEAnmB,KAAM,SAAck4B,EAAQ8B,GAC1B,IAAK,GAAIn7D,KAAOq5D,GACd,GAAI57B,OAAOwB,UAAUN,eAAerjC,KAAK+9D,EAAQr5D,GAAM,CACrD,GAAIo7D,GAAMD,EAAa7/D,KAAK4kC,KAAMlgC,EAAKq5D,EAAOr5D,GAC9C,IAAIo7D,IAAQ37B,EAAK6nB,MAAO,QAK9BnR,UAAW,SAAmBklB,EAAOF,GACnC,IAAK,GAAIG,KAAOD,GACd,GAAI59B,OAAOwB,UAAUN,eAAerjC,KAAK+/D,EAAOC,GAAM,CACpD,GAAIF,GAAMD,EAAa7/D,KAAK4kC,KAAMm7B,EAAMC,GAAMznB,SAASynB,EAAK,IAC5D,IAAIF,IAAQ37B,EAAK6nB,MAAO,QAK9BjlB,OAAQ,SAAgBk5B,EAAMC,GAI5B,MAHA/7B,GAAK0B,KAAKq6B,EAAM,SAAkBx7D,EAAK6jD,GACrC0X,EAAKv7D,GAAO6jD,IAEP0X,GAGTj4B,MAAO,SAAei4B,EAAMC,GAC1B,MAAO/7B,GAAK4C,OAAO5C,EAAKqF,KAAKy2B,GAAOC,IAGtC12B,KAAM,SAAcu0B,GAClB,GAAe,OAAXA,GAA8Bp4B,SAAXo4B,EAAsB,MAAOA,EACpD,IAAIoC,KACJ,KAAK,GAAIz7D,KAAOq5D,GACdoC,EAAKz7D,GAAOq5D,EAAOr5D,EAErB,OAAOy7D,IAGTlN,QAAS,SAAiBpU,GACxB,IAAK,GAAIuhB,KAAQvhB,GACf,GAAI1c,OAAOwB,UAAUN,eAAerjC,KAAK6+C,EAAKuhB,GAC5C,OAAO,CAGX,QAAO,GAGTlB,aAAc,SAAsBrgB,GAClC,GAAId,GAAKc,EAAIjO,OAASiO,EAAIwhB,aAAexhB,EAAIyhB,QAC7C,OAAqB,kBAAPviB,GAAoBA,EAAK,MAGzC4F,OAAQ,SAAgB9E,EAAK79C,GAE3B,MADoB,kBAATA,KAAqBA,EAAOmjC,EAAKyf,SAAS5iD,IAC9CmhC,OAAOwB,UAAUuG,SAASlqC,KAAK6+C,KAAS,WAAa79C,EAAO,KAGrE4iD,SAAU,SAAkB5iD,GAC1B,GAAImhC,OAAOwB,UAAUN,eAAerjC,KAAKgB,EAAM,QAAS,MAAOA,GAAK0E,IACpE,IAAI66D,GAAMv/D,EAAKkpC,WACXkM,EAAQmqB,EAAInqB,MAAM,sBACtB,OAAOA,GAAQA,EAAM,GAAKmqB,GAG5Bj6B,MAAO,SAAeJ,EAAKR,GACzB,GAAIuR,GAAgB,IA+BpB,OA9B2B,gBAAhB/Q,GAAIvyB,SAAwC,KAAhBuyB,EAAIvyB,UAClB,gBAAZ+xB,IAAyBA,GAAWA,EAAQ/xB,WACrDsjC,EAAgB9S,EAAKqF,KAAKtD,GAC1B+Q,EAActjC,QAAUuyB,EAAIvyB,SAGhCuyB,EAAIvyB,QAAUuyB,EAAIvyB,SAAW,KAEN,gBAAZ+xB,GACTQ,EAAIvyB,QAAU+xB,EACc,gBAAZA,IAAoC,OAAZA,IACxCvB,EAAK4C,OAAOb,EAAKR,GACbA,EAAQ/xB,UACVuyB,EAAIvyB,QAAU+xB,EAAQ/xB,UACpB+xB,EAAQa,MAAQb,EAAQhgC,QAC1BwgC,EAAIK,KAAOb,EAAQa,MAAQb,EAAQhgC,MACjCggC,EAAQ86B,QACVt6B,EAAIs6B,MAAQ96B,EAAQ86B,QAGa,kBAA1Br+B,QAAOC,iBAChBD,OAAOC,eAAe8D,EAAK,QAASu6B,UAAU,EAAMl+B,YAAY,IAChEJ,OAAOC,eAAe8D,EAAK,WAAY3D,YAAY,KAGrD2D,EAAIxgC,KAAOggC,GAAWA,EAAQhgC,MAAQwgC,EAAIxgC,MAAQwgC,EAAIK,MAAQ,QAC9DL,EAAIkR,KAAO,GAAIxJ,MAEXqJ,IAAe/Q,EAAI+Q,cAAgBA,GAEhC/Q,GAITV,QAAS,SAAiBk7B,EAAOnM,GAC/B,GAAIoM,GAAY,IAChB,IAAiBh7B,SAAb4uB,EACFA,EAAWmM,EACXA,EAAQv+B,OACRw+B,SACK,CACL,GAAIC,GAAO,YACXA,GAAKj9B,UAAY+8B,EAAM/8B,UACvBg9B,EAAY,GAAIC,GAclB,MAXIrM,GAAS9uB,cAAgBtD,SAC3BoyB,EAAS9uB,YAAc,WACrB,GAAIi7B,IAAUv+B,OACZ,MAAOu+B,GAAM5hB,MAAMla,KAAMuI,aAK/BonB,EAAS9uB,YAAY9B,UAAYg9B,EACjCx8B,EAAK4C,OAAOwtB,EAAS9uB,YAAY9B,UAAW4wB,GAC5CA,EAAS9uB,YAAYo7B,UAAYH,EAC1BnM,EAAS9uB,aAIlBypB,MAAO,WAEL,IAAK,GADDwR,GAAQvzB,UAAU,GACbvtC,EAAI,EAAGA,EAAIutC,UAAUltC,OAAQL,IACpC,IAAK,GAAIwgE,KAAQjzB,WAAUvtC,GAAG+jC,UAAW,CACvC,GAAIoa,GAAK5Q,UAAUvtC,GAAG+jC,UAAUy8B,EACnB,iBAATA,IACFM,EAAM/8B,UAAUy8B,GAAQriB,GAI9B,MAAO2iB,IAIT1zB,eAAgB,SAAwB6R,EAAKiiB,GACN,kBAA1B3+B,QAAOC,gBAElB+B,EAAK0W,UAAUimB,EAAO,SAAUp8D,GAC9By9B,OAAOC,eAAeyc,EAAKn6C,GACzB69B,YAAY,EAAOk+B,UAAU,EAAMj+B,cAAc,OAKvDsF,SAAU,SAAkB+W,EAAKn5C,EAAMf,EAAO49B,EAAYw+B,GACxD,GAAIC,IACFx+B,cAAc,EACdD,WAA2BoD,SAAfpD,GAA2BA,EAEpB,mBAAV59B,IAAyBo8D,GAIlCC,EAAKr8D,MAAQA,EAAOq8D,EAAKP,UAAW,GAHpCO,EAAK3+B,IAAM19B,EAMbw9B,OAAOC,eAAeyc,EAAKn5C,EAAMs7D,IAInChkB,iBAAkB,SAA0B6B,EAAKn5C,EAAM28B,EAAKE,GAC1D,GAAI0+B,GAAc,IAElB98B,GAAK2D,SAAS+W,EAAKn5C,EAAM,WAIvB,MAHoB,QAAhBu7D,IACFA,EAAc5+B,KAET4+B,GACN1+B,IAIL2+B,mBAAoB,SAA4BhtB,GAC9C,GAAI9B,GAAM8B,EAAKO,QACXhD,EAAYW,EAAIX,UAChB9vC,EAASywC,EAAIjB,QAAQmB,IAAIzxC,WAAW4wC,GAAW9vC,MACnD,IAAIA,EAAOi+C,QAAS,CAClB,GAAIkH,GAAgBnlD,EAAOT,QAAQS,EAAOi+C,SACtCuhB,EAAkBjtB,EAAK/F,KAAKxsC,EAAOi+C,QACZ,eAAvBkH,EAAc9lD,MAChBmjC,EAAK0B,KAAKs7B,EAAiB,SAASz8D,EAAKC,GACvCw/B,EAAK2D,SAASoM,EAAK/F,KAAMzpC,EAAKC,GAAO,OAO7CuuC,cAAe,SAAuBF,EAAMX,GAC1C,GAAIlO,EAAK0R,SAAU,CACjB,GAAImO,GAAS7f,EAAKmQ,OAAO0P,OACrBod,EAAKzhE,EAAQ,KACjB,IAAIqzC,YAAgBgR,GAAQ,CAC1B,GAAyB,gBAAdhR,GAAK7L,KAUd,MAAOkL,GAAK,GAAIxyC,OAAM,wDATtB,IAAIwhE,KACsB,iBAAfruB,GAAKsuB,QACdD,EAASC,MAAQtuB,EAAKsuB,OAEA,gBAAbtuB,GAAK6a,MACdwT,EAASxT,IAAM7a,EAAK6a,KAEtB7a,EAAOouB,EAAGtU,iBAAiB9Z,EAAK7L,KAAMk6B,IAQ5Cl9B,EAAKC,OAAO81B,OAAOlnB,EAAM,MAAO,SAAS9M,EAAKiN,GACxCjN,EAAKmM,EAAKnM,GACTmM,EAAK,KAAMc,MAKpBuC,cAAe,SAAuBD,GACpC,GAAIA,EAGF,MAFAtR,GAAK2D,SAASjG,EAAIgI,OAAQ,gBACxB03B,KAAKC,KAAI,GAAI5zB,OAAOF,UAAY+H,IAAe,KAAQ,GAClD5T,EAAIgI,OAAO6L,eAItBC,iBAAkB,SAA0BF,GACtCA,IACF5T,EAAIgI,OAAOV,kBAAoBsM,GAAa,GAAI7H,OAAOF,YAI3DqJ,iBAAkB,SAA0B7C,GAC1C,GAAI6Q,GAAY7Q,EAAKG,aAAajB,QAAQ,qBACzBc,EAAKG,aAAajB,QAAQ,qBAEtC2R,GAAa7Q,EAAK/F,MAAQ+F,EAAK/F,KAAKszB,mBACvC1c,EAAY7Q,EAAK/F,KAAKszB,iBAAiBC,WAGrC3c,IACF7Q,EAAK6Q,UAAYA,GAGf7Q,EAAK5N,QACP4N,EAAK5N,MAAMye,UAAYA,IAK3Bpb,sBAAuB,SAA+BlE,EAAak8B,GAKjE,MAJAA,GAAoBA,GAAqB,KACpCA,GAAwC,mBAAZC,WAC/BD,EAAoBC,SAEW,kBAAtBD,cACFl8B,GAAY9B,UAAUk+B,aAG/Bp8B,EAAY9B,UAAUk+B,QAAU,WAC9B,GAAIn+B,GAAOkB,IACX,OAAO,IAAI+8B,GAAkB,SAAS96B,EAASi7B,GAC7Cp+B,EAAK6Q,GAAG,WAAY,SAASL,GACvBA,EAAK5N,MACPw7B,EAAO5tB,EAAK5N,OAEZO,EAAQqN,EAAK/F,QAGjBzK,EAAKooB,aAMXjD,qBAAsB,SAA8B1X,GAClD,IAAKA,EAAS,OAAO,CACrB,IAAI9wC,GAAWV,EAAQ,wBAEvB,OADuB,gBAAZwxC,KAAsBA,EAAUA,EAAQwG,qBAC5B,gBAAZxG,KAAyB9wC,EAASgjC,eAAe8N,OACnD9wC,EAAS8wC,GAAS1S,oBAI7Bw1B,oBAAqB,SAA6BvgB,EAAYrK,GACvDA,IAAmBA,KACxB,IAAI04B,GAAgB14B,EAAkB04B,eAAiB,IACvD,IAA6B,kBAAlBA,GACT,MAAOA,GAAcruB,EAEvB,IAAIpK,GAAOD,EAAkBC,MAAQ,IACjCqN,EAAQ4qB,KAAKS,UAAYT,KAAKU,IAAI,EAAGvuB,GAAcpK,EACvD,OAAOqN,IAITurB,yBAA0B,SAAkCjvB,EAAavN,EAASy8B,GAC3Ez8B,IAASA,KACd,IAAI//B,GAAOk8B,EAAI+S,WAAWM,cACtB7M,EAAc3C,EAAQ2C,gBACtBqL,EAAa,EAEb4F,EAAc,SAASpT,GACzB,GAAIqC,GAAa7C,EAAQ6C,YAAc,CAEvC,IADIrC,GAAoB,iBAAbA,EAAIK,OAAyBL,EAAIsN,WAAY,GACpDtN,GAAOA,EAAIsN,WAAaE,EAAanL,EAAY,CACnDmL,GACA,IAAIiD,GAAQxS,EAAK8vB,oBAAoBvgB,EAAYhO,EAAQ2D,kBACzDwN,YAAWurB,EAAazrB,GAASzQ,EAAIm8B,YAAc,QAEnDF,GAAGj8B,IAIHk8B,EAAc,WAChB,GAAIj0B,GAAO,EACXxoC,GAAKwvC,cAAclC,EAAa5K,EAAa,SAASgM,GACpDA,EAAaE,GAAG,OAAQ,SAASqB,GAASzH,GAAQyH,EAAM1L,aACxDmK,EAAaE,GAAG,MAAO,WACrB,GAAIC,GAAaH,EAAaG,UAC9B,IAAIA,EAAa,IACf2tB,EAAG,KAAMh0B,OACJ,CACL,GAAIk0B,GAAiE,IAApD9pB,SAASlE,EAAajB,QAAQ,eAAgB,KAAc,EACzElN,EAAM/B,EAAKmC,MAAM,GAAIzmC,QACrB2zC,UAAWgB,GAAc,KAAsB,MAAfA,GAEhC6tB,IAAcn8B,EAAIsN,YAAWtN,EAAIm8B,WAAaA,GAClD/oB,EAAYpT,OAGfoT,GAGLpV,GAAQkpB,SAASgV,IAKrBjiE,GAAOJ,QAAUokC,IAEdnkC,KAAK4kC,KAAKjlC,EAAQ,aAClB2iE,wBAAwB,EAAEh/B,SAAS,GAAG2B,OAAS,GAAGm8B,GAAK,KAAKmB,IAAI,SAAS5iE,EAAQQ,EAAOJ,GAI3F,QAASyiE,MAwET,QAASC,GAASC,EAAKphE,GAErB,OADKA,IAAOA,MACJA,EAAMN,MACZ,IAAK,YAAa,MAAO2hE,GAAeD,EAAKphE,EAC7C,KAAK,MAAO,MAAOshE,GAASF,EAAKphE,EACjC,KAAK,OAAQ,MAAOuhE,GAAUH,EAAKphE,EACnC,KAAKqkC,QAAW,IAAK,MAAM,MAAOm9B,GAAaJ,EAC/C,SAAS,MAAOK,GAAYL,EAAKphE,IAIrC,QAASqhE,GAAeD,EAAKphE,GAC3B,GAAI6sC,KACJ,OAAY,QAARu0B,EAAqBv0B,GAEzBhK,EAAK0B,KAAKvkC,EAAMJ,QAAS,SAAS69C,EAAYjD,GAC5C,GAAIA,EAAYknB,gBACd,GAAI7gC,OAAOwB,UAAUN,eAAerjC,KAAK0iE,EAAIO,WAAYnnB,EAAYp2C,MAAO,CAC1E,GAAIf,GAAQ+9D,EAAIO,WAAWnnB,EAAYp2C,MAAMf,KAC7CwpC,GAAK4Q,GAAc0jB,GAAUS,YAAav+D,GAAQm3C,QAE/C,CACL,GAAIqnB,GAAWrnB,EAAYwD,UAAYojB,EACrCA,EAAIU,qBAAqBtnB,EAAYp2C,MAAM,EACzCy9D,GACFh1B,EAAK4Q,GAAc0jB,EAASU,EAAUrnB,GAC5BA,EAAYwD,WAAkC,SAArBxD,EAAY96C,OAC/CmtC,EAAK4Q,GAAcjD,EAAY/T,iBAK9BoG,GAGT,QAASy0B,GAASF,EAAKphE,GAOrB,IANA,GAAI6sC,MACAk1B,EAAS/hE,EAAMoD,IAAIgB,MAAQ,MAC3B49D,EAAWhiE,EAAMqD,MAAMe,MAAQ,QAC/B69D,EAAUjiE,EAAMg+C,UAAYh+C,EAAMoE,KAAO,QAEzC89D,EAAQd,EAAIe,kBACTD,GAAO,CACZ,GAAIA,EAAME,WAAaH,EAAS,CAC9B,GAAI7+D,GAAM8+D,EAAMJ,qBAAqBC,GAAQ,GAAGH,YAC5Cv+D,EAAQ6+D,EAAMJ,qBAAqBE,GAAU,EACjDn1B,GAAKzpC,GAAO+9D,EAAS99D,EAAOrD,EAAMqD,OAEpC6+D,EAAQA,EAAMG,mBAEhB,MAAOx1B,GAGT,QAAS00B,GAAUH,EAAKphE,GAKtB,IAJA,GAAI6sC,MACAo1B,EAAUjiE,EAAMg+C,UAAYh+C,EAAMoE,KAAQpE,EAAMQ,OAAO4D,MAAQ,SAE/D89D,EAAQd,EAAIe,kBACTD,GACDA,EAAME,WAAaH,GACrBp1B,EAAK6H,KAAKysB,EAASe,EAAOliE,EAAMQ,SAElC0hE,EAAQA,EAAMG,kBAEhB,OAAOx1B,GAGT,QAAS40B,GAAYL,EAAKphE,GACxB,GAAIohE,EAAIkB,aAAc,CACpB,GAAIC,GAAWnB,EAAIkB,aAAa,WACf,YAAbC,IACFviE,EAAQ,GAAIypC,GAAMoS,QAAQn8C,KAAM6iE,KAIpC,GAAIC,GAAOpB,EAAIQ,WAEf,OADa,KAATY,IAAaA,EAAO,MACI,kBAAjBxiE,GAAMu7C,OACRv7C,EAAMu7C,OAAOinB,GAEbA,EAIX,QAAShB,GAAaJ,GACpB,GAAY/8B,SAAR+8B,GAA6B,OAARA,EAAc,MAAO,EAE9C,KAAKA,EAAIe,kBACP,MAAkC,QAA9Bf,EAAIqB,WAAWA,cACW,IAA1BrB,EAAIsB,WAAW/jE,OAAqB,GAC5ByiE,EAAIQ,WAKlB,KAFA,GAAI5hE,IAASN,KAAM,YAAaE,YAC5BsiE,EAAQd,EAAIe,kBACTD,GAAO,CACZ,GAAIS,GAAMT,EAAME,QACZvhC,QAAOwB,UAAUN,eAAerjC,KAAKsB,EAAMJ,QAAS+iE,GACtD3iE,EAAMJ,QAAQ+iE,GAAKjjE,KAAO,OAE1BM,EAAMJ,QAAQ+iE,IAAQv+D,KAAMu+D,GAE9BT,EAAQA,EAAMG,mBAEhB,MAAOhB,GAAeD,EAAKphE,GAnL7B,GAAI6iC,GAAOxkC,EAAQ,WACforC,EAAQprC,EAAQ,iBAIpB6iE,GAAa7+B,UAAU2D,MAAQ,SAASo7B,EAAKphE,GAC3C,GAAgC,KAA5BohE,EAAIzlB,QAAQ,OAAQ,IAAY,QAEpC,IAAIf,GAAQ5V,CACZ,KACE,GAAI9C,OAAO0gC,UAAW,CACpB,IACE,GAAI1f,GAAS,GAAI0f,UACjBhoB,GAASsI,EAAO2f,gBAAgBzB,EAAK,YACrC,MAAO0B,GACP,KAAMjgC,GAAKmC,MAAM,GAAIzmC,OAAM,4BAEvBo3C,cAAemtB,EACf79B,KAAM,iBACNiN,WAAW,IAIjB,GAA+B,OAA3B0I,EAAOmoB,gBACT,KAAMlgC,GAAKmC,MAAM,GAAIzmC,OAAM,iCAEvB0mC,KAAM,iBACNiN,WAAW,GAIjB,IAAI8wB,GAAUpoB,EAAOknB,qBAAqB,eAAe,EACzD,IAAIkB,IAAYA,EAAQP,aAAe7nB,GACH,SAAhCooB,EAAQP,WAAWL,UACnBY,EAAQP,WAAWA,aAAe7nB,GACS,SAA3CooB,EAAQP,WAAWA,WAAWL,UAAsB,CACtD,GAAIa,GAAeD,EAAQlB,qBAAqB,OAAO,IAAMkB,CAC7D,MAAMngC,GAAKmC,MAAM,GAAIzmC,OAAM0kE,EAAarB,aAAe,6BAEnD38B,KAAM,iBACNiN,WAAW,SAGZ,CAAA,IAAIhQ,OAAOghC,cAYhB,KAAM,IAAI3kE,OAAM,yBARhB,IAHAq8C,EAAS,GAAI1Y,QAAOghC,cAAc,oBAClCtoB,EAAOuoB,OAAQ,GAEVvoB,EAAOwoB,QAAQhC,GAClB,KAAMv+B,GAAKmC,MAAM,GAAIzmC,OAAM,4BAEvB0mC,KAAM,iBACNiN,WAAW,KAMnB,MAAOr0C,GACPmnC,EAAQnnC,EAGV,GAAI+8C,GAAUA,EAAOmoB,kBAAoB/9B,EAAO,CAC9C,GAAI6H,GAAOs0B,EAASvmB,EAAOmoB,gBAAiB/iE,GACxCjB,EAAW67C,EAAOknB,qBAAqB,oBAAoB,EAI/D,OAHI/iE,KACF8tC,EAAKszB,iBAAmBgB,EAASpiE,OAE5B8tC,EACF,GAAI7H,EACT,KAAMnC,GAAKmC,MAAMA,GAAS,GAAIzmC,QAAU0mC,KAAM,iBAAkBiN,WAAW,GAE3E,WA+GJrzC,EAAOJ,QAAUyiE,IAEdld,iBAAiB,GAAG7I,UAAU,KAAKkoB,IAAI,SAAShlE,EAAQQ,EAAOJ,GAIlE,QAAS6kE,MAST,QAAS9f,GAAU4d,EAAK/9D,EAAOrD,GAC7B,OAAQA,EAAMN,MACZ,IAAK,YAAa,MAAO0mD,GAAmBgb,EAAK/9D,EAAOrD,EACxD,KAAK,MAAO,MAAOsmD,GAAa8a,EAAK/9D,EAAOrD,EAC5C,KAAK,OAAQ,MAAO0mD,GAAc0a,EAAK/9D,EAAOrD,EAC9C,SAAS,MAAOujE,GAAgBnC,EAAK/9D,EAAOrD,IAIhD,QAASomD,GAAmBgb,EAAKx0B,EAAQ5sC,GACvC6iC,EAAK0W,UAAUv5C,EAAM6jD,YAAa,SAASpG,GACzC,GAAIjD,GAAcx6C,EAAMJ,QAAQ69C,EAChC,IAA6B,SAAzBjD,EAAYC,SAAhB,CAEA,GAAIp3C,GAAQupC,EAAO6Q,GACfr5C,EAAOo2C,EAAYp2C,IACvB,IAAcigC,SAAVhhC,GAAiC,OAAVA,EACzB,GAAIm3C,EAAYknB,eACdN,EAAIoC,IAAIp/D,EAAMf,OACT,IAAIm3C,EAAYwD,UACrBwF,EAAU4d,EAAK/9D,EAAOm3C,OACjB,CACL,GAAIipB,GAAUrC,EAAIsC,IAAIt/D,EACtBu/D,GAAgBF,EAASjpB,GACzBgJ,EAAUigB,EAASpgE,EAAOm3C,OAMlC,QAAS8L,GAAa8a,EAAKrmB,EAAK/6C,GAC9B,GAAI+hE,GAAS/hE,EAAMoD,IAAIgB,MAAQ,MAC3B49D,EAAWhiE,EAAMqD,MAAMe,MAAQ,OAEnCy+B,GAAK0B,KAAKwW,EAAK,SAAS33C,EAAKC,GAC3B,GAAIugE,GAAQxC,EAAIsC,IAAI1jE,EAAMg+C,UAAYh+C,EAAMoE,KAAO,QACnDo/C,GAAUogB,EAAMF,IAAI3B,GAAS3+D,EAAKpD,EAAMoD,KACxCogD,EAAUogB,EAAMF,IAAI1B,GAAW3+D,EAAOrD,EAAMqD,SAIhD,QAASqjD,GAAc0a,EAAKvmB,EAAM76C,GAC5BA,EAAMg+C,UACRnb,EAAK0W,UAAUsB,EAAM,SAASx3C,GAC5B,GAAIe,GAAOpE,EAAMQ,OAAO4D,MAAQpE,EAAMoE,KAClCq/D,EAAUrC,EAAIsC,IAAIt/D,EACtBo/C,GAAUigB,EAASpgE,EAAOrD,EAAMQ,UAGlCqiC,EAAK0W,UAAUsB,EAAM,SAASx3C,GAC5B,GAAIe,GAAOpE,EAAMQ,OAAO4D,MAAQ,SAC5Bq/D,EAAUrC,EAAIsC,IAAIt/D,EACtBo/C,GAAUigB,EAASpgE,EAAOrD,EAAMQ,UAKtC,QAAS+iE,GAAgBnC,EAAK/9D,EAAOrD,GACnCohE,EAAIyC,IAAI7jE,EAAMg7C,aAAa33C,IAG7B,QAASsgE,GAAgBvC,EAAKphE,GAC5B,GAAIu+C,GAAKhlB,EAAS,OACdv5B,GAAM8jE,iBACRvlB,EAAMv+C,EAAM8jE,gBACR9jE,EAAM+jE,qBAAoBxqC,GAAU,IAAMv5B,EAAM+jE,qBAC3C3C,EAAI4C,QAAUhkE,EAAMgxC,IAAI8yB,kBACjCvlB,EAAMv+C,EAAMgxC,IAAI8yB,iBAGdvlB,GAAK6iB,EAAIoC,IAAIjqC,EAAQglB,GAlF3B,GAAI1b,GAAOxkC,EAAQ,WACfykD,EAAUzkD,EAAQ,aAItBilE,GAAWjhC,UAAUwjB,MAAQ,SAASjZ,EAAQ5sC,EAAO4lD,EAAaqe,GAChE,GAAI7C,GAAMte,EAAQjH,OAAO+J,EAGzB,OAFA+d,GAAgBvC,EAAKphE,GACrBwjD,EAAU4d,EAAKx0B,EAAQ5sC,GAChBohE,EAAI8C,SAASvlE,OAAS,GAAKslE,EAAU7C,EAAI+C,OAAOv7B,WAAa,IA4EtE/pC,EAAOJ,QAAU6kE,IAEdnoB,UAAU,GAAGipB,WAAa,MAAMC,IAAI,SAAShmE,EAAQQ,EAAOJ,SAEzD6lE,IAAI,SAASjmE,EAAQQ,EAAOJ,GAyBlC,QAASukC,GAAQuhC,EAAShC,EAAUiC,GAClC,KAAMlhC,eAAgBN,IACpB,MAAO,IAAIA,GAAOuhC,EAAShC,EAAUiC,EAEvC,IAAI9kE,SAAc6kE,EAElB,IAAiB,WAAbhC,GAAkC,WAAT7iE,EAE3B,IADA6kE,EAAUE,EAAWF,GACdA,EAAQ5lE,OAAS,IAAM,GAC5B4lE,GAAoB,GAIxB,IAAI5lE,EACJ,IAAa,WAATe,EACFf,EAAS+lE,EAAOH,OACb,IAAa,WAAT7kE,EACPf,EAASqkC,EAAOgP,WAAWuyB,EAAShC,OACjC,CAAA,GAAa,WAAT7iE,EAGP,KAAM,IAAInB,OAAM,wDAFhBI,GAAS+lE,EAAOH,EAAQ5lE,QAI1B,GAAIu/D,EACAl7B,GAAO2hC,gBACTzG,EAAMl7B,EAAO4hC,SAAS,GAAIhrB,YAAWj7C,KAErCu/D,EAAM56B,KACN46B,EAAIv/D,OAASA,EACbu/D,EAAI2G,WAAY,EAGlB,IAAIvmE,EACJ,IAAI0kC,EAAO2hC,iBAAiD,gBAAvBJ,GAAQvyB,WAC3CksB,EAAI4G,KAAKP,OACJ,IAAIQ,EAAWR,GACpB,IAAKjmE,EAAI,EAAGA,EAAIK,EAAQL,IAClB0kC,EAAO2f,SAAS4hB,GAClBrG,EAAI5/D,GAAKimE,EAAQlH,UAAU/+D,GAE3B4/D,EAAI5/D,GAAKimE,EAAQjmE,OAEhB,IAAa,WAAToB,EACTw+D,EAAIznB,MAAM8tB,EAAS,EAAGhC,OACjB,IAAa,WAAT7iE,IAAsBsjC,EAAO2hC,kBAAoBH,EAC1D,IAAKlmE,EAAI,EAAGA,EAAIK,EAAQL,IACtB4/D,EAAI5/D,GAAK,CAIb,OAAO4/D,GAuFT,QAAS8G,GAAW9G,EAAKnsB,EAAQwqB,EAAQ59D,GACvC49D,EAAS0I,OAAO1I,IAAW,CAC3B,IAAI2I,GAAYhH,EAAIv/D,OAAS49D,CACxB59D,IAGHA,EAASsmE,OAAOtmE,GACZA,EAASumE,IACXvmE,EAASumE,IAJXvmE,EAASumE,CAQX,IAAIC,GAASpzB,EAAOpzC,MACpBymE,GAAOD,EAAS,IAAM,EAAG,sBAErBxmE,EAASwmE,EAAS,IACpBxmE,EAASwmE,EAAS,EAEpB,KAAK,GAAI7mE,GAAI,EAAGA,EAAIK,EAAQL,IAAK,CAC/B,GAAI+mE,GAAOpuB,SAASlF,EAAOoU,OAAW,EAAJ7nD,EAAO,GAAI,GAC7C8mE,IAAQhZ,MAAMiZ,GAAO,sBACrBnH,EAAI3B,EAASj+D,GAAK+mE,EAGpB,MADAriC,GAAOsiC,cAAoB,EAAJhnE,EAChBA,EAGT,QAASinE,GAAYrH,EAAKnsB,EAAQwqB,EAAQ59D,GACxC,GAAI6mE,GAAexiC,EAAOsiC,cACxBG,EAAWC,EAAY3zB,GAASmsB,EAAK3B,EAAQ59D,EAC/C,OAAO6mE,GAGT,QAASG,GAAazH,EAAKnsB,EAAQwqB,EAAQ59D,GACzC,GAAI6mE,GAAexiC,EAAOsiC,cACxBG,EAAWG,EAAa7zB,GAASmsB,EAAK3B,EAAQ59D,EAChD,OAAO6mE,GAGT,QAASK,GAAc3H,EAAKnsB,EAAQwqB,EAAQ59D,GAC1C,MAAOgnE,GAAYzH,EAAKnsB,EAAQwqB,EAAQ59D,GAG1C,QAASmnE,GAAc5H,EAAKnsB,EAAQwqB,EAAQ59D,GAC1C,GAAI6mE,GAAexiC,EAAOsiC,cACxBG,EAAWM,EAAch0B,GAASmsB,EAAK3B,EAAQ59D,EACjD,OAAO6mE,GAGT,QAASQ,GAAe9H,EAAKnsB,EAAQwqB,EAAQ59D,GAC3C,GAAI6mE,GAAexiC,EAAOsiC,cACxBG,EAAWQ,EAAel0B,GAASmsB,EAAK3B,EAAQ59D,EAClD,OAAO6mE,GA0IT,QAASU,GAAchI,EAAK8B,EAAOzT,GACjC,MAAc,KAAVyT,GAAezT,IAAQ2R,EAAIv/D,OACtBygD,EAAO+mB,cAAcjI,GAErB9e,EAAO+mB,cAAcjI,EAAI5uB,MAAM0wB,EAAOzT,IAIjD,QAAS6Z,GAAYlI,EAAK8B,EAAOzT,GAC/B,GAAIqL,GAAM,GACNhU,EAAM,EACV2I,GAAM0T,KAAK90D,IAAI+yD,EAAIv/D,OAAQ4tD,EAE3B,KAAK,GAAIjuD,GAAI0hE,EAAO1hE,EAAIiuD,EAAKjuD,IACvB4/D,EAAI5/D,IAAM,KACZs5D,GAAOyO,EAAeziB,GAAOhH,OAAO0pB,aAAapI,EAAI5/D,IACrDslD,EAAM,IAENA,GAAO,IAAMsa,EAAI5/D,GAAGsqC,SAAS,GAIjC,OAAOgvB,GAAMyO,EAAeziB,GAG9B,QAAS2iB,GAAarI,EAAK8B,EAAOzT,GAChC,GAAIiS,GAAM,EACVjS,GAAM0T,KAAK90D,IAAI+yD,EAAIv/D,OAAQ4tD,EAE3B,KAAK,GAAIjuD,GAAI0hE,EAAO1hE,EAAIiuD,EAAKjuD,IAC3BkgE,GAAO5hB,OAAO0pB,aAAapI,EAAI5/D,GACjC,OAAOkgE,GAGT,QAASgI,GAActI,EAAK8B,EAAOzT,GACjC,MAAOga,GAAYrI,EAAK8B,EAAOzT,GAGjC,QAASka,GAAWvI,EAAK8B,EAAOzT,GAC9B,GAAIma,GAAMxI,EAAIv/D,SAETqhE,GAASA,EAAQ,KAAGA,EAAQ,KAC5BzT,GAAOA,EAAM,GAAKA,EAAMma,KAAKna,EAAMma,EAGxC,KAAK,GADD5rB,GAAM,GACDx8C,EAAI0hE,EAAO1hE,EAAIiuD,EAAKjuD,IAC3Bw8C,GAAOwjB,EAAMJ,EAAI5/D,GAEnB,OAAOw8C,GAGT,QAAS6rB,GAAezI,EAAK8B,EAAOzT,GAGlC,IAAK,GAFDqa,GAAQ1I,EAAI5uB,MAAM0wB,EAAOzT,GACzBqL,EAAM,GACDt5D,EAAI,EAAGA,EAAIsoE,EAAMjoE,OAAQL,GAAK,EACrCs5D,GAAOhb,OAAO0pB,aAAaM,EAAMtoE,GAAkB,IAAbsoE,EAAMtoE,EAAE,GAEhD,OAAOs5D,GA0CT,QAASiP,GAAa3I,EAAK3B,EAAQuK,EAAcC,GAC1CA,IACH3B,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,uCAGlC,IAAI+nE,GAAMxI,EAAIv/D,MACd,MAAI49D,GAAUmK,GAAd,CAGA,GAAI93B,EAUJ,OATIk4B,IACFl4B,EAAMsvB,EAAI3B,GACNA,EAAS,EAAImK,IACf93B,GAAOsvB,EAAI3B,EAAS,IAAM,KAE5B3tB,EAAMsvB,EAAI3B,IAAW,EACjBA,EAAS,EAAImK,IACf93B,GAAOsvB,EAAI3B,EAAS,KAEjB3tB,GAWT,QAASo4B,GAAa9I,EAAK3B,EAAQuK,EAAcC,GAC1CA,IACH3B,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,uCAGlC,IAAI+nE,GAAMxI,EAAIv/D,MACd,MAAI49D,GAAUmK,GAAd,CAGA,GAAI93B,EAkBJ,OAjBIk4B,IACEvK,EAAS,EAAImK,IACf93B,EAAMsvB,EAAI3B,EAAS,IAAM,IACvBA,EAAS,EAAImK,IACf93B,GAAOsvB,EAAI3B,EAAS,IAAM,GAC5B3tB,GAAOsvB,EAAI3B,GACPA,EAAS,EAAImK,IACf93B,GAAasvB,EAAI3B,EAAS,IAAM,KAAO,KAErCA,EAAS,EAAImK,IACf93B,EAAMsvB,EAAI3B,EAAS,IAAM,IACvBA,EAAS,EAAImK,IACf93B,GAAOsvB,EAAI3B,EAAS,IAAM,GACxBA,EAAS,EAAImK,IACf93B,GAAOsvB,EAAI3B,EAAS,IACtB3tB,GAAasvB,EAAI3B,IAAW,KAAO,GAE9B3tB,GA4BT,QAASq4B,GAAY/I,EAAK3B,EAAQuK,EAAcC,GACzCA,IACH3B,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,uCAGlC,IAAI+nE,GAAMxI,EAAIv/D,MACd,MAAI49D,GAAUmK,GAAd,CAGA,GAAI93B,GAAMi4B,EAAY3I,EAAK3B,EAAQuK,GAAc,GAC7CI,EAAY,MAANt4B,CACV,OAAIs4B,IACM,MAASt4B,EAAM,IAAK,EAErBA,GAWX,QAASu4B,GAAYjJ,EAAK3B,EAAQuK,EAAcC,GACzCA,IACH3B,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,uCAGlC,IAAI+nE,GAAMxI,EAAIv/D,MACd,MAAI49D,GAAUmK,GAAd,CAGA,GAAI93B,GAAMo4B,EAAY9I,EAAK3B,EAAQuK,GAAc,GAC7CI,EAAY,WAANt4B,CACV,OAAIs4B,IACM,WAAat4B,EAAM,IAAK,EAEzBA,GAWX,QAASw4B,GAAYlJ,EAAK3B,EAAQuK,EAAcC,GAM9C,MALKA,KACH3B,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAG3B0oE,EAAQ7zB,KAAK0qB,EAAK3B,EAAQuK,EAAc,GAAI,GAWrD,QAASQ,GAAapJ,EAAK3B,EAAQuK,EAAcC,GAM/C,MALKA,KACH3B,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAG3B0oE,EAAQ7zB,KAAK0qB,EAAK3B,EAAQuK,EAAc,GAAI,GAwBrD,QAASS,GAAcrJ,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAClDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAChC6oE,EAAUnkE,EAAO,OAGnB,IAAIqjE,GAAMxI,EAAIv/D,MACd,MAAI49D,GAAUmK,GAGd,IAAK,GAAIpoE,GAAI,EAAGmpE,EAAIxH,KAAK90D,IAAIu7D,EAAMnK,EAAQ,GAAIj+D,EAAImpE,EAAGnpE,IACpD4/D,EAAI3B,EAASj+D,IACR+E,EAAS,KAAS,GAAKyjE,EAAexoE,EAAI,EAAIA,MACd,GAA5BwoE,EAAexoE,EAAI,EAAIA,GAYpC,QAASopE,GAAcxJ,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAClDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAChC6oE,EAAUnkE,EAAO,YAGnB,IAAIqjE,GAAMxI,EAAIv/D,MACd,MAAI49D,GAAUmK,GAGd,IAAK,GAAIpoE,GAAI,EAAGmpE,EAAIxH,KAAK90D,IAAIu7D,EAAMnK,EAAQ,GAAIj+D,EAAImpE,EAAGnpE,IACpD4/D,EAAI3B,EAASj+D,GACR+E,IAAuC,GAA5ByjE,EAAexoE,EAAI,EAAIA,GAAU,IA6BrD,QAASqpE,GAAazJ,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GACjDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAChCipE,EAAUvkE,EAAO,OAAQ,OAG3B,IAAIqjE,GAAMxI,EAAIv/D,MACV49D,IAAUmK,IAGVrjE,GAAS,EACXkkE,EAAarJ,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAE/CQ,EAAarJ,EAAK,MAAS76D,EAAQ,EAAGk5D,EAAQuK,EAAcC,IAWhE,QAASc,GAAa3J,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GACjDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAChCipE,EAAUvkE,EAAO,YAAY,YAG/B,IAAIqjE,GAAMxI,EAAIv/D,MACV49D,IAAUmK,IAGVrjE,GAAS,EACXqkE,EAAaxJ,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAE/CW,EAAaxJ,EAAK,WAAa76D,EAAQ,EAAGk5D,EAAQuK,EAAcC,IAWpE,QAASe,GAAa5J,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GACjDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OAAQ,wCAChCopE,EAAa1kE,EAAO,uBAAwB,uBAG9C,IAAIqjE,GAAMxI,EAAIv/D,MACV49D,IAAUmK,GAGdW,EAAQ5wB,MAAMynB,EAAK76D,EAAOk5D,EAAQuK,EAAc,GAAI,GAWtD,QAASkB,GAAc9J,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAClDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAA+B,iBAAjB0B,GAA4B,6BAC1C1B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAAS,EAAI2B,EAAIv/D,OACpB,wCACJopE,EAAa1kE,EAAO,wBAAyB,wBAG/C,IAAIqjE,GAAMxI,EAAIv/D,MACV49D,IAAUmK,GAGdW,EAAQ5wB,MAAMynB,EAAK76D,EAAOk5D,EAAQuK,EAAc,GAAI,GAgEtD,QAASrC,GAAYxF,GACnB,MAAIA,GAAItG,KAAasG,EAAItG,OAClBsG,EAAItjB,QAAQ,aAAc,IAwDnC,QAASssB,GAAOz4B,EAAOk3B,EAAKjgC,GAC1B,MAAqB,gBAAV+I,GAA2B/I,GACtC+I,IAAUA,EACNA,GAASk3B,EAAYA,EACrBl3B,GAAS,EAAUA,GACvBA,GAASk3B,EACLl3B,GAAS,EAAUA,EAChB,IAGT,QAASk1B,GAAQ/lE,GAEf,MADAA,KAAWshE,KAAKiI,MAAMvpE,GACfA,EAAS,EAAI,EAAIA,EAG1B,QAASkmD,GAAS0f,GAChB,OAAQ/iB,MAAMqD,SAAW,SAAU0f,GACjC,MAAmD,mBAA5C1jC,OAAOwB,UAAUuG,SAASlqC,KAAK6lE,KACrCA,GAGL,QAASQ,GAAYR,GACnB,MAAO1f,GAAQ0f,IAAYvhC,EAAO2f,SAAS4hB,IACvCA,GAA8B,gBAAZA,IACQ,gBAAnBA,GAAQ5lE,OAGrB,QAAS2/D,GAAOvgE,GACd,MAAIA,GAAI,GAAW,IAAMA,EAAE6qC,SAAS,IAC7B7qC,EAAE6qC,SAAS,IAGpB,QAAS88B,GAAazG,GAEpB,IAAK,GADDkJ,MACK7pE,EAAI,EAAGA,EAAI2gE,EAAItgE,OAAQL,IAAK,CACnC,GAAIg5D,GAAI2H,EAAInD,WAAWx9D,EACvB,IAAIg5D,GAAK,IACP6Q,EAAUzzB,KAAKuqB,EAAInD,WAAWx9D,QAC3B,CACH,GAAI0hE,GAAQ1hE,CACRg5D,IAAK,OAAUA,GAAK,OAAQh5D,GAEhC,KAAK,GADDm6D,GAAIkD,mBAAmBsD,EAAI3vB,MAAM0wB,EAAO1hE,EAAE,IAAI6nD,OAAO,GAAG9X,MAAM,KACzDo5B,EAAI,EAAGA,EAAIhP,EAAE95D,OAAQ8oE,IAC5BU,EAAUzzB,KAAKuC,SAASwhB,EAAEgP,GAAI,MAGpC,MAAOU,GAGT,QAASvC,GAAc3G,GAErB,IAAK,GADDkJ,MACK7pE,EAAI,EAAGA,EAAI2gE,EAAItgE,OAAQL,IAC9B6pE,EAAUzzB,KAAyB,IAApBuqB,EAAInD,WAAWx9D,GAEhC,OAAO6pE,GAGT,QAASlC,GAAgBhH,GAGvB,IAAK,GAFDmJ,GAAGC,EAAIC,EACPH,KACK7pE,EAAI,EAAGA,EAAI2gE,EAAItgE,OAAQL,IAC9B8pE,EAAInJ,EAAInD,WAAWx9D,GACnB+pE,EAAKD,GAAK,EACVE,EAAKF,EAAI,IACTD,EAAUzzB,KAAK4zB,GACfH,EAAUzzB,KAAK2zB,EAGjB,OAAOF,GAGT,QAASpC,GAAe9G,GACtB,MAAO7f,GAAOmpB,YAAYtJ,GAG5B,QAASwG,GAAY+C,EAAKC,EAAKlM,EAAQ59D,GAErC,IAAK,GAAIL,GAAI,EAAGA,EAAIK,KACbL,EAAIi+D,GAAUkM,EAAI9pE,QAAYL,GAAKkqE,EAAI7pE,QADlBL,IAG1BmqE,EAAInqE,EAAIi+D,GAAUiM,EAAIlqE,EAExB,OAAOA,GAGT,QAAS+nE,GAAgBpH,GACvB,IACE,MAAOtH,oBAAmBsH,GAC1B,MAAOr6B,GACP,MAAOgY,QAAO0pB,aAAa,QAK/B,QAASkB,GAAWnkE,EAAO6H,GACzBk6D,EAAwB,gBAAV/hE,GAAoB,yCAClC+hE,EAAO/hE,GAAS,EAAG,4DACnB+hE,EAAO/hE,GAAS6H,EAAK,+CACrBk6D,EAAOnF,KAAKyI,MAAMrlE,KAAWA,EAAO,oCAGtC,QAASukE,GAAWvkE,EAAO6H,EAAKC,GAC9Bi6D,EAAwB,gBAAV/hE,GAAoB,yCAClC+hE,EAAO/hE,GAAS6H,EAAK,2CACrBk6D,EAAO/hE,GAAS8H,EAAK,4CACrBi6D,EAAOnF,KAAKyI,MAAMrlE,KAAWA,EAAO,oCAGtC,QAAS0kE,GAAc1kE,EAAO6H,EAAKC,GACjCi6D,EAAwB,gBAAV/hE,GAAoB,yCAClC+hE,EAAO/hE,GAAS6H,EAAK,2CACrBk6D,EAAO/hE,GAAS8H,EAAK,4CAGvB,QAASi6D,GAAQnjB,EAAM5vC,GACrB,IAAK4vC,EAAM,KAAM,IAAI1jD,OAAM8T,GAAW,oBA/gCxC,GAAI+sC,GAAS/gD,EAAQ,aACjBgpE,EAAUhpE,EAAQ,UAEtBI,GAAQukC,OAASA,EACjBvkC,EAAQkqE,WAAa3lC,EACrBvkC,EAAQmqE,kBAAoB,GAC5B5lC,EAAO6lC,SAAW,KAGlB7lC,EAAO2hC,gBAAkB,WACvB,IACE,GAAIzG,GAAM,GAAIL,aAAY,GACtBiL,EAAM,GAAIlvB,YAAWskB,EAEzB,OADA4K,GAAIC,IAAM,WAAc,MAAO,KACxB,KAAOD,EAAIC,OACU,kBAAjBD,GAAIE,SACf,MAAOnrE,GACP,OAAO,MA2DXmlC,EAAOimC,WAAa,SAAU1G,GAC5B,OAAQ3lB,OAAO2lB,GAAU9oB,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,CACT,SACE,OAAO,IAIbzW,EAAO2f,SAAW,SAAU2U,GAC1B,QAAgB,OAANA,GAAoBjzB,SAANizB,IAAmBA,EAAEuN,YAG/C7hC,EAAOgP,WAAa,SAAUitB,EAAKsD,GACjC,GAAI/D,EAEJ,QADAS,GAAY,GACJsD,GAAY,QAClB,IAAK,MACH/D,EAAMS,EAAItgE,OAAS,CACnB,MACF,KAAK,OACL,IAAK,QACH6/D,EAAMkH,EAAYzG,GAAKtgE,MACvB,MACF,KAAK,QACL,IAAK,SACL,IAAK,MACH6/D,EAAMS,EAAItgE,MACV,MACF,KAAK,SACH6/D,EAAMuH,EAAc9G,GAAKtgE,MACzB,MACF,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH6/D,EAAmB,EAAbS,EAAItgE,MACV,MACF,SACE,KAAM,IAAIJ,OAAM,oBAEpB,MAAOigE,IAGTx7B,EAAO4R,OAAS,SAAUiG,EAAMquB,GAI9B,GAHA9D,EAAOvgB,EAAQhK,GAAO,uEAGF,IAAhBA,EAAKl8C,OACP,MAAO,IAAIqkC,GAAO,EACb,IAAoB,IAAhB6X,EAAKl8C,OACd,MAAOk8C,GAAK,EAGd,IAAIv8C,EACJ,IAA2B,gBAAhB4qE,GAET,IADAA,EAAc,EACT5qE,EAAI,EAAGA,EAAIu8C,EAAKl8C,OAAQL,IAC3B4qE,GAAeruB,EAAKv8C,GAAGK,MAI3B,IAAIu/D,GAAM,GAAIl7B,GAAOkmC,GACjB9M,EAAM;AACV,IAAK99D,EAAI,EAAGA,EAAIu8C,EAAKl8C,OAAQL,IAAK,CAChC,GAAI2oD,GAAOpM,EAAKv8C,EAChB2oD,GAAK/e,KAAKg2B,EAAK9B,GACfA,GAAOnV,EAAKtoD,OAEd,MAAOu/D,IA2DTl7B,EAAOX,UAAUoU,MAAQ,SAAU1E,EAAQwqB,EAAQ59D,EAAQ4jE,GACzD,GAAI4G,SAAS5M,GACN4M,SAASxqE,KACZ4jE,EAAW5jE,EACXA,EAAS0lC,YAEN,CACL,GAAI+kC,GAAO7G,CACXA,GAAWhG,EACXA,EAAS59D,EACTA,EAASyqE,EAGX7M,EAAS0I,OAAO1I,IAAW,CAC3B,IAAI2I,GAAY5hC,KAAK3kC,OAAS49D,CACzB59D,IAGHA,EAASsmE,OAAOtmE,GACZA,EAASumE,IACXvmE,EAASumE,IAJXvmE,EAASumE,EAOX3C,EAAW3lB,OAAO2lB,GAAY,QAAQ9oB,aAEtC,IAAI+kB,EACJ,QAAQ+D,GACN,IAAK,MACH/D,EAAMwG,EAAU1hC,KAAMyO,EAAQwqB,EAAQ59D,EACtC,MACF,KAAK,OACL,IAAK,QACH6/D,EAAM+G,EAAWjiC,KAAMyO,EAAQwqB,EAAQ59D,EACvC,MACF,KAAK,QACH6/D,EAAMmH,EAAYriC,KAAMyO,EAAQwqB,EAAQ59D,EACxC,MACF,KAAK,SACH6/D,EAAMqH,EAAaviC,KAAMyO,EAAQwqB,EAAQ59D,EACzC,MACF,KAAK,SACH6/D,EAAMsH,EAAaxiC,KAAMyO,EAAQwqB,EAAQ59D,EACzC,MACF,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH6/D,EAAMwH,EAAc1iC,KAAMyO,EAAQwqB,EAAQ59D,EAC1C,MACF,SACE,KAAM,IAAIJ,OAAM,oBAEpB,MAAOigE,IAGTx7B,EAAOX,UAAUuG,SAAW,SAAU25B,EAAUvC,EAAOzT,GACrD,GAAInqB,GAAOkB,IAQX,IANAi/B,EAAW3lB,OAAO2lB,GAAY,QAAQ9oB,cACtCumB,EAAQiF,OAAOjF,IAAU,EACzBzT,EAAeloB,SAARkoB,EACH0Y,OAAO1Y,GACPA,EAAMnqB,EAAKzjC,OAEX4tD,IAAQyT,EACV,MAAO,EAET,IAAIxB,EACJ,QAAQ+D,GACN,IAAK,MACH/D,EAAMiI,EAAUrkC,EAAM49B,EAAOzT,EAC7B,MACF,KAAK,OACL,IAAK,QACHiS,EAAM4H,EAAWhkC,EAAM49B,EAAOzT,EAC9B,MACF,KAAK,QACHiS,EAAM+H,EAAYnkC,EAAM49B,EAAOzT,EAC/B,MACF,KAAK,SACHiS,EAAMgI,EAAapkC,EAAM49B,EAAOzT,EAChC,MACF,KAAK,SACHiS,EAAM0H,EAAa9jC,EAAM49B,EAAOzT,EAChC,MACF,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACHiS,EAAMmI,EAAcvkC,EAAM49B,EAAOzT,EACjC,MACF,SACE,KAAM,IAAIhuD,OAAM,oBAEpB,MAAOigE,IAGTx7B,EAAOX,UAAUgnC,OAAS,WACxB,OACE3pE,KAAM,SACNmtC,KAAM2U,MAAMnf,UAAUiN,MAAM5wC,KAAK4kC,KAAKgmC,MAAQhmC,KAAM,KAIxDN,EAAOX,UAAU6F,KAAO,SAAU2a,EAAQ0mB,EAAcvJ,EAAOzT,GAC7D,GAAIid,GAASlmC,IAMb,IAJK08B,IAAOA,EAAQ,GACfzT,GAAe,IAARA,IAAWA,EAAMjpB,KAAK3kC,QAC7B4qE,IAAcA,EAAe,GAE9Bhd,IAAQyT,GACU,IAAlBnd,EAAOlkD,QAAkC,IAAlB6qE,EAAO7qE,OAAlC,CAEAymE,EAAO7Y,GAAOyT,EAAO,2BACrBoF,EAAOmE,GAAgB,GAAKA,EAAe1mB,EAAOlkD,OAC9C,6BACJymE,EAAOpF,GAAS,GAAKA,EAAQwJ,EAAO7qE,OAAQ,6BAC5CymE,EAAO7Y,GAAO,GAAKA,GAAOid,EAAO7qE,OAAQ,2BAErC4tD,EAAMjpB,KAAK3kC,SACb4tD,EAAMjpB,KAAK3kC,QACTkkD,EAAOlkD,OAAS4qE,EAAehd,EAAMyT,IACvCzT,EAAM1J,EAAOlkD,OAAS4qE,EAAevJ,EAEvC,IAAI0G,GAAMna,EAAMyT,CAEhB,IAAI0G,EAAM,MAAQ1jC,EAAO2hC,gBACvB,IAAK,GAAIrmE,GAAI,EAAGA,EAAIooE,EAAKpoE,IACvBukD,EAAOvkD,EAAIirE,GAAgBjmC,KAAKhlC,EAAI0hE,OAEtCnd,GAAOiiB,KAAKxhC,KAAK0lC,SAAShJ,EAAOA,EAAQ0G,GAAM6C,KAgEnDvmC,EAAOX,UAAUiN,MAAQ,SAAU0wB,EAAOzT,GACxC,GAAIma,GAAMpjC,KAAK3kC,MAIf,IAHAqhE,EAAQiI,EAAMjI,EAAO0G,EAAK,GAC1Bna,EAAM0b,EAAM1b,EAAKma,EAAKA,GAElB1jC,EAAO2hC,gBACT,MAAO3hC,GAAO4hC,SAASthC,KAAK0lC,SAAShJ,EAAOzT,GAI5C,KAAK,GAFDkd,GAAWld,EAAMyT,EACjB0J,EAAS,GAAI1mC,GAAOymC,EAAUplC,QAAW,GACpC/lC,EAAI,EAAGA,EAAImrE,EAAUnrE,IAC5BorE,EAAOprE,GAAKglC,KAAKhlC,EAAI0hE,EAEvB,OAAO0J,IAIX1mC,EAAOX,UAAUtB,IAAM,SAAUw7B,GAE/B,MADAoN,SAAQnzB,IAAI,6DACLlT,KAAK+5B,UAAUd,IAGxBv5B,EAAOX,UAAUmC,IAAM,SAAU2gB,EAAGoX,GAElC,MADAoN,SAAQnzB,IAAI,6DACLlT,KAAKsmC,WAAWzkB,EAAGoX,IAG5Bv5B,EAAOX,UAAUg7B,UAAY,SAAUd,EAAQwK,GAM7C,GALKA,IACH3B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAASj5B,KAAK3kC,OAAQ,0CAG3B49D,GAAUj5B,KAAK3kC,QAGnB,MAAO2kC,MAAKi5B,IA2Bdv5B,EAAOX,UAAUwnC,aAAe,SAAUtN,EAAQwK,GAChD,MAAOF,GAAYvjC,KAAMi5B,GAAQ,EAAMwK,IAGzC/jC,EAAOX,UAAUynC,aAAe,SAAUvN,EAAQwK,GAChD,MAAOF,GAAYvjC,KAAMi5B,GAAQ,EAAOwK,IAmC1C/jC,EAAOX,UAAU0nC,aAAe,SAAUxN,EAAQwK,GAChD,MAAOC,GAAY1jC,KAAMi5B,GAAQ,EAAMwK,IAGzC/jC,EAAOX,UAAU2nC,aAAe,SAAUzN,EAAQwK,GAChD,MAAOC,GAAY1jC,KAAMi5B,GAAQ,EAAOwK,IAG1C/jC,EAAOX,UAAU4nC,SAAW,SAAU1N,EAAQwK,GAO5C,GANKA,IACH3B,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAC3B,kBACJ6I,EAAO7I,EAASj5B,KAAK3kC,OAAQ,0CAG3B49D,GAAUj5B,KAAK3kC,QAAnB,CAGA,GAAIuoE,GAAqB,IAAf5jC,KAAKi5B,EACf,OAAI2K,IACM,IAAO5jC,KAAKi5B,GAAU,IAAK,EAE5Bj5B,KAAKi5B,KAsBhBv5B,EAAOX,UAAU6nC,YAAc,SAAU3N,EAAQwK,GAC/C,MAAOE,GAAW3jC,KAAMi5B,GAAQ,EAAMwK,IAGxC/jC,EAAOX,UAAU8nC,YAAc,SAAU5N,EAAQwK,GAC/C,MAAOE,GAAW3jC,KAAMi5B,GAAQ,EAAOwK,IAsBzC/jC,EAAOX,UAAU+nC,YAAc,SAAU7N,EAAQwK,GAC/C,MAAOI,GAAW7jC,KAAMi5B,GAAQ,EAAMwK,IAGxC/jC,EAAOX,UAAUgoC,YAAc,SAAU9N,EAAQwK,GAC/C,MAAOI,GAAW7jC,KAAMi5B,GAAQ,EAAOwK,IAYzC/jC,EAAOX,UAAUioC,YAAc,SAAU/N,EAAQwK,GAC/C,MAAOK,GAAW9jC,KAAMi5B,GAAQ,EAAMwK,IAGxC/jC,EAAOX,UAAUkoC,YAAc,SAAUhO,EAAQwK,GAC/C,MAAOK,GAAW9jC,KAAMi5B,GAAQ,EAAOwK,IAYzC/jC,EAAOX,UAAUmoC,aAAe,SAAUjO,EAAQwK,GAChD,MAAOO,GAAYhkC,KAAMi5B,GAAQ,EAAMwK,IAGzC/jC,EAAOX,UAAUooC,aAAe,SAAUlO,EAAQwK,GAChD,MAAOO,GAAYhkC,KAAMi5B,GAAQ,EAAOwK,IAG1C/jC,EAAOX,UAAUunC,WAAa,SAAUvmE,EAAOk5D,EAAQwK,GAChDA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAASj5B,KAAK3kC,OAAQ,wCAC7B6oE,EAAUnkE,EAAO,MAGfk5D,GAAUj5B,KAAK3kC,SAEnB2kC,KAAKi5B,GAAUl5D,IAuBjB2/B,EAAOX,UAAUqoC,cAAgB,SAAUrnE,EAAOk5D,EAAQwK,GACxDQ,EAAajkC,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAG1C/jC,EAAOX,UAAUsoC,cAAgB,SAAUtnE,EAAOk5D,EAAQwK,GACxDQ,EAAajkC,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAsB3C/jC,EAAOX,UAAUuoC,cAAgB,SAAUvnE,EAAOk5D,EAAQwK,GACxDW,EAAapkC,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAG1C/jC,EAAOX,UAAUwoC,cAAgB,SAAUxnE,EAAOk5D,EAAQwK,GACxDW,EAAapkC,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAG3C/jC,EAAOX,UAAUyoC,UAAY,SAAUznE,EAAOk5D,EAAQwK,GAC/CA,IACH3B,EAAiB/gC,SAAVhhC,GAAiC,OAAVA,EAAgB,iBAC9C+hE,EAAkB/gC,SAAXk4B,GAAmC,OAAXA,EAAiB,kBAChD6I,EAAO7I,EAASj5B,KAAK3kC,OAAQ,wCAC7BipE,EAAUvkE,EAAO,KAAM,MAGrBk5D,GAAUj5B,KAAK3kC,SAGf0E,GAAS,EACXigC,KAAKsmC,WAAWvmE,EAAOk5D,EAAQwK,GAE/BzjC,KAAKsmC,WAAW,IAAOvmE,EAAQ,EAAGk5D,EAAQwK,KAsB9C/jC,EAAOX,UAAU0oC,aAAe,SAAU1nE,EAAOk5D,EAAQwK,GACvDY,EAAYrkC,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAGzC/jC,EAAOX,UAAU2oC,aAAe,SAAU3nE,EAAOk5D,EAAQwK,GACvDY,EAAYrkC,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAsB1C/jC,EAAOX,UAAU4oC,aAAe,SAAU5nE,EAAOk5D,EAAQwK,GACvDc,EAAYvkC,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAGzC/jC,EAAOX,UAAU6oC,aAAe,SAAU7nE,EAAOk5D,EAAQwK,GACvDc,EAAYvkC,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAmB1C/jC,EAAOX,UAAU8oC,aAAe,SAAU9nE,EAAOk5D,EAAQwK,GACvDe,EAAYxkC,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAGzC/jC,EAAOX,UAAU+oC,aAAe,SAAU/nE,EAAOk5D,EAAQwK,GACvDe,EAAYxkC,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAoB1C/jC,EAAOX,UAAUgpC,cAAgB,SAAUhoE,EAAOk5D,EAAQwK,GACxDiB,EAAa1kC,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAG1C/jC,EAAOX,UAAUipC,cAAgB,SAAUjoE,EAAOk5D,EAAQwK,GACxDiB,EAAa1kC,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAG3C/jC,EAAOX,UAAUkpC,KAAO,SAAUloE,EAAO28D,EAAOzT,GAY9C,GAXKlpD,IAAOA,EAAQ,GACf28D,IAAOA,EAAQ,GACfzT,IAAKA,EAAMjpB,KAAK3kC,QAEA,gBAAV0E,KACTA,EAAQA,EAAMy4D,WAAW,IAG3BsJ,EAAwB,gBAAV/hE,KAAuB+oD,MAAM/oD,GAAQ,yBACnD+hE,EAAO7Y,GAAOyT,EAAO,eAEjBzT,IAAQyT,GACQ,IAAhB18B,KAAK3kC,OAAT,CAEAymE,EAAOpF,GAAS,GAAKA,EAAQ18B,KAAK3kC,OAAQ,uBAC1CymE,EAAO7Y,GAAO,GAAKA,GAAOjpB,KAAK3kC,OAAQ,oBAEvC,KAAK,GAAIL,GAAI0hE,EAAO1hE,EAAIiuD,EAAKjuD,IAC3BglC,KAAKhlC,GAAK+E,IAId2/B,EAAOX,UAAU+T,QAAU,WAGzB,IAAK,GAFD0E,MACA4rB,EAAMpjC,KAAK3kC,OACNL,EAAI,EAAGA,EAAIooE,EAAKpoE,IAEvB,GADAw8C,EAAIx8C,GAAKggE,EAAMh7B,KAAKhlC,IAChBA,IAAMG,EAAQmqE,kBAAmB,CACnC9tB,EAAIx8C,EAAI,GAAK,KACb,OAGJ,MAAO,WAAaw8C,EAAInM,KAAK,KAAO,KAItC3L,EAAOX,UAAUmpC,cAAgB,WAC/B,GAA0B,mBAAf5xB,YAA4B,CACrC,GAAI5W,EAAO2hC,gBACT,MAAO,IAAK3hC,GAAOM,MAAOqR,MAG1B,KAAK,GADDupB,GAAM,GAAItkB,YAAWtW,KAAK3kC,QACrBL,EAAI,EAAGooE,EAAMxI,EAAIv/D,OAAQL,EAAIooE,EAAKpoE,GAAK,EAC9C4/D,EAAI5/D,GAAKglC,KAAKhlC,EAChB,OAAO4/D,GAAIvpB,OAGb,KAAM,IAAIp2C,OAAM,sDAUpB,IAAIktE,GAAKzoC,EAAOX,SAGhBW,GAAO4hC,SAAW,SAAUkE,GA+C1B,MA9CAA,GAAIjE,WAAY,EAEhBiE,EAAI4C,KAAO5C,EAAI/nC,IACf+nC,EAAIhE,KAAOgE,EAAItkC,IAEfskC,EAAI/nC,IAAM0qC,EAAG1qC,IACb+nC,EAAItkC,IAAMinC,EAAGjnC,IAEbskC,EAAIryB,MAAQg1B,EAAGh1B,MACfqyB,EAAIlgC,SAAW6iC,EAAG7iC,SAClBkgC,EAAI6C,eAAiBF,EAAG7iC,SACxBkgC,EAAIO,OAASoC,EAAGpC,OAChBP,EAAI5gC,KAAOujC,EAAGvjC,KACd4gC,EAAIx5B,MAAQm8B,EAAGn8B,MACfw5B,EAAIzL,UAAYoO,EAAGpO,UACnByL,EAAIe,aAAe4B,EAAG5B,aACtBf,EAAIgB,aAAe2B,EAAG3B,aACtBhB,EAAIiB,aAAe0B,EAAG1B,aACtBjB,EAAIkB,aAAeyB,EAAGzB,aACtBlB,EAAImB,SAAWwB,EAAGxB,SAClBnB,EAAIoB,YAAcuB,EAAGvB,YACrBpB,EAAIqB,YAAcsB,EAAGtB,YACrBrB,EAAIsB,YAAcqB,EAAGrB,YACrBtB,EAAIuB,YAAcoB,EAAGpB,YACrBvB,EAAIwB,YAAcmB,EAAGnB,YACrBxB,EAAIyB,YAAckB,EAAGlB,YACrBzB,EAAI0B,aAAeiB,EAAGjB,aACtB1B,EAAI2B,aAAegB,EAAGhB,aACtB3B,EAAIc,WAAa6B,EAAG7B,WACpBd,EAAI4B,cAAgBe,EAAGf,cACvB5B,EAAI6B,cAAgBc,EAAGd,cACvB7B,EAAI8B,cAAgBa,EAAGb,cACvB9B,EAAI+B,cAAgBY,EAAGZ,cACvB/B,EAAIgC,UAAYW,EAAGX,UACnBhC,EAAIiC,aAAeU,EAAGV,aACtBjC,EAAIkC,aAAeS,EAAGT,aACtBlC,EAAImC,aAAeQ,EAAGR,aACtBnC,EAAIoC,aAAeO,EAAGP,aACtBpC,EAAIqC,aAAeM,EAAGN,aACtBrC,EAAIsC,aAAeK,EAAGL,aACtBtC,EAAIuC,cAAgBI,EAAGJ,cACvBvC,EAAIwC,cAAgBG,EAAGH,cACvBxC,EAAIyC,KAAOE,EAAGF,KACdzC,EAAI1yB,QAAUq1B,EAAGr1B,QACjB0yB,EAAI0C,cAAgBC,EAAGD,cAEhB1C,KAyHN8C,YAAY,GAAGvE,QAAU,KAAKwE,IAAI,SAASxtE,EAAQQ,EAAOJ,GAC7D,GAAIqtE,GAAS,oEAEX,SAAUrtE,GACX,YAcA,SAAS4gD,GAAQ0sB,GAChB,GAAI9mC,GAAO8mC,EAAIjQ,WAAW,EAC1B,OAAI72B,KAAS+mC,GACT/mC,IAASgnC,EACL,GACJhnC,IAASinC,GACTjnC,IAASknC,EACL,GACJlnC,EAAOmnC,GACH,EACJnnC,EAAOmnC,EAAS,GACZnnC,EAAOmnC,EAAS,GAAK,GACzBnnC,EAAOonC,EAAQ,GACXpnC,EAAOonC,EACXpnC,EAAOqnC,EAAQ,GACXrnC,EAAOqnC,EAAQ,GADvB,OAID,QAASC,GAAgBC,GAgBxB,QAAS93B,GAAMyQ,GACd2jB,EAAI2D,KAAOtnB,EAhBZ,GAAI7mD,GAAGmpE,EAAGiF,EAAG9oB,EAAK+oB,EAAc7D,CAEhC,IAAI0D,EAAI7tE,OAAS,EAAI,EACpB,KAAM,IAAIJ,OAAM,iDAGjB,IAAImoE,GAAM8F,EAAI7tE,MACdguE,GAAe,MAAQH,EAAII,OAAOlG,EAAM,GAAK,EAAI,MAAQ8F,EAAII,OAAOlG,EAAM,GAAK,EAAI,EAEnFoC,EAAM,GAAI+D,GAAiB,EAAbL,EAAI7tE,OAAa,EAAIguE,GAEnCD,EAAIC,EAAe,EAAIH,EAAI7tE,OAAS,EAAI6tE,EAAI7tE,MAE5C,IAAI8tE,GAAI,CAMR,KAAKnuE,EAAI,EAAGmpE,EAAI,EAAGnpE,EAAIouE,EAAGpuE,GAAK,EAAGmpE,GAAK,EACtC7jB,EAAOvE,EAAOmtB,EAAII,OAAOtuE,KAAO,GAAO+gD,EAAOmtB,EAAII,OAAOtuE,EAAI,KAAO,GAAO+gD,EAAOmtB,EAAII,OAAOtuE,EAAI,KAAO,EAAK+gD,EAAOmtB,EAAII,OAAOtuE,EAAI,IACnIo2C,GAAY,SAANkP,IAAmB,IACzBlP,GAAY,MAANkP,IAAiB,GACvBlP,EAAW,IAANkP,EAYN,OATqB,KAAjB+oB,GACH/oB,EAAOvE,EAAOmtB,EAAII,OAAOtuE,KAAO,EAAM+gD,EAAOmtB,EAAII,OAAOtuE,EAAI,KAAO,EACnEo2C,EAAW,IAANkP,IACsB,IAAjB+oB,IACV/oB,EAAOvE,EAAOmtB,EAAII,OAAOtuE,KAAO,GAAO+gD,EAAOmtB,EAAII,OAAOtuE,EAAI,KAAO,EAAM+gD,EAAOmtB,EAAII,OAAOtuE,EAAI,KAAO,EACvGo2C,EAAMkP,GAAO,EAAK,KAClBlP,EAAW,IAANkP,IAGCklB,EAGR,QAASgE,GAAeC,GAMvB,QAASztB,GAAQ0tB,GAChB,MAAOlB,GAAOc,OAAOI,GAGtB,QAASC,GAAiBD,GACzB,MAAO1tB,GAAO0tB,GAAO,GAAK,IAAQ1tB,EAAO0tB,GAAO,GAAK,IAAQ1tB,EAAO0tB,GAAO,EAAI,IAAQ1tB,EAAa,GAAN0tB,GAV/F,GAAI1uE,GAGH4uE,EAAMvuE,EAFNwuE,EAAaJ,EAAMpuE,OAAS,EAC5B0B,EAAS,EAWV,KAAK/B,EAAI,EAAGK,EAASouE,EAAMpuE,OAASwuE,EAAY7uE,EAAIK,EAAQL,GAAK,EAChE4uE,GAAQH,EAAMzuE,IAAM,KAAOyuE,EAAMzuE,EAAI,IAAM,GAAMyuE,EAAMzuE,EAAI,GAC3D+B,GAAU4sE,EAAgBC,EAG3B,QAAQC,GACP,IAAK,GACJD,EAAOH,EAAMA,EAAMpuE,OAAS,GAC5B0B,GAAUi/C,EAAO4tB,GAAQ,GACzB7sE,GAAUi/C,EAAQ4tB,GAAQ,EAAK,IAC/B7sE,GAAU,IACV,MACD,KAAK,GACJ6sE,GAAQH,EAAMA,EAAMpuE,OAAS,IAAM,GAAMouE,EAAMA,EAAMpuE,OAAS,GAC9D0B,GAAUi/C,EAAO4tB,GAAQ,IACzB7sE,GAAUi/C,EAAQ4tB,GAAQ,EAAK,IAC/B7sE,GAAUi/C,EAAQ4tB,GAAQ,EAAK,IAC/B7sE,GAAU,IAIZ,MAAOA,GAxGP,GAAIwsE,GAA6B,mBAAfjzB,YACdA,WACA4H,MAEDwqB,EAAS,IAAIlQ,WAAW,GACxBoQ,EAAS,IAAIpQ,WAAW,GACxBsQ,EAAS,IAAItQ,WAAW,GACxBwQ,EAAS,IAAIxQ,WAAW,GACxBuQ,EAAS,IAAIvQ,WAAW,GACxBmQ,EAAgB,IAAInQ,WAAW,GAC/BqQ,EAAiB,IAAIrQ,WAAW,EAiGpCr9D,GAAQ8pE,YAAcgE,EACtB9tE,EAAQ0nE,cAAgB2G,GACJ,mBAAZruE,GAA2B6kC,KAAK8pC,YAAiB3uE,QAEpD4uE,IAAI,SAAShvE,EAAQQ,EAAOJ,GAClCA,EAAQ+0C,KAAO,SAAUmB,EAAQ4nB,EAAQ+Q,EAAMC,EAAMC,GACnD,GAAI3vE,GAAG4vE,EACHC,EAAgB,EAATF,EAAaD,EAAO,EAC3BI,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAQ,EACRvvE,EAAIgvE,EAAQE,EAAS,EAAK,EAC1BM,EAAIR,GAAO,EAAK,EAChBrvE,EAAI02C,EAAO4nB,EAASj+D,EAOxB,KALAA,GAAKwvE,EAELjwE,EAAII,GAAM,IAAO4vE,GAAU,EAC3B5vE,KAAQ4vE,EACRA,GAASH,EACFG,EAAQ,EAAGhwE,EAAQ,IAAJA,EAAU82C,EAAO4nB,EAASj+D,GAAIA,GAAKwvE,EAAGD,GAAS,GAKrE,IAHAJ,EAAI5vE,GAAM,IAAOgwE,GAAU,EAC3BhwE,KAAQgwE,EACRA,GAASN,EACFM,EAAQ,EAAGJ,EAAQ,IAAJA,EAAU94B,EAAO4nB,EAASj+D,GAAIA,GAAKwvE,EAAGD,GAAS,GAErE,GAAU,IAANhwE,EACFA,EAAI,EAAI+vE,MACH,CAAA,GAAI/vE,IAAM8vE,EACf,MAAOF,GAAIM,KAAQ9vE,GAAI,EAAK,IAAK+vE,EAAAA,EAEjCP,IAAQxN,KAAKU,IAAI,EAAG4M,GACpB1vE,GAAQ+vE,EAEV,OAAQ3vE,GAAI,EAAK,GAAKwvE,EAAIxN,KAAKU,IAAI,EAAG9iE,EAAI0vE,IAG5C9uE,EAAQg4C,MAAQ,SAAU9B,EAAQtxC,EAAOk5D,EAAQ+Q,EAAMC,EAAMC,GAC3D,GAAI3vE,GAAG4vE,EAAGrF,EACNsF,EAAgB,EAATF,EAAaD,EAAO,EAC3BI,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBM,EAAe,KAATV,EAActN,KAAKU,IAAI,GAAG,IAAOV,KAAKU,IAAI,GAAG,IAAO,EAC1DriE,EAAIgvE,EAAO,EAAKE,EAAS,EACzBM,EAAIR,EAAO,GAAI,EACfrvE,EAAIoF,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,CAmC1D,KAjCAA,EAAQ48D,KAAKC,IAAI78D,GAEb+oD,MAAM/oD,IAAUA,IAAU2qE,EAAAA,GAC5BP,EAAIrhB,MAAM/oD,GAAS,EAAI,EACvBxF,EAAI8vE,IAEJ9vE,EAAIoiE,KAAKyI,MAAMzI,KAAKzpB,IAAInzC,GAAS48D,KAAKiO,KAClC7qE,GAAS+kE,EAAInI,KAAKU,IAAI,GAAI9iE,IAAM,IAClCA,IACAuqE,GAAK,GAGL/kE,GADExF,EAAI+vE,GAAS,EACNK,EAAK7F,EAEL6F,EAAKhO,KAAKU,IAAI,EAAG,EAAIiN,GAE5BvqE,EAAQ+kE,GAAK,IACfvqE,IACAuqE,GAAK,GAGHvqE,EAAI+vE,GAASD,GACfF,EAAI,EACJ5vE,EAAI8vE,GACK9vE,EAAI+vE,GAAS,GACtBH,GAAKpqE,EAAQ+kE,EAAI,GAAKnI,KAAKU,IAAI,EAAG4M,GAClC1vE,GAAQ+vE,IAERH,EAAIpqE,EAAQ48D,KAAKU,IAAI,EAAGiN,EAAQ,GAAK3N,KAAKU,IAAI,EAAG4M,GACjD1vE,EAAI,IAID0vE,GAAQ,EAAG54B,EAAO4nB,EAASj+D,GAAS,IAAJmvE,EAAUnvE,GAAKwvE,EAAGL,GAAK,IAAKF,GAAQ,GAI3E,IAFA1vE,EAAKA,GAAK0vE,EAAQE,EAClBC,GAAQH,EACDG,EAAO,EAAG/4B,EAAO4nB,EAASj+D,GAAS,IAAJT,EAAUS,GAAKwvE,EAAGjwE,GAAK,IAAK6vE,GAAQ,GAE1E/4B,EAAO4nB,EAASj+D,EAAIwvE,IAAU,IAAJ7vE,QAGtBkwE,IAAI,SAAS9vE,EAAQQ,EAAOJ,GAElC,QAASq5C,KACPxU,KAAK2sB,QAAU3sB,KAAK2sB,YACpB3sB,KAAK8qC,cAAgB9qC,KAAK8qC,eAAiB/pC,OAoP7C,QAASgqC,GAAWzhB,GAClB,MAAsB,kBAARA,GAGhB,QAAS0hB,GAAS1hB,GAChB,MAAsB,gBAARA,GAGhB,QAAS2hB,GAAS3hB,GAChB,MAAsB,gBAARA,IAA4B,OAARA,EAGpC,QAAS4hB,GAAY5hB,GACnB,MAAe,UAARA,EA/PT/tD,EAAOJ,QAAUq5C,EAEjBA,EAAaA,aAAeA,EAE5BA,EAAazV,UAAU4tB,QAAU5rB,OACjCyT,EAAazV,UAAU+rC,cAAgB/pC,OAEvCyT,EAAa22B,oBAAsB,GAEnC32B,EAAazV,UAAUqsC,gBAAkB,SAAS3wE,GAChD,IAAKuwE,EAASvwE,IAAMA,EAAI,GAAKquD,MAAMruD,GACjC,KAAM4wE,WAAU,8BAElB,OADArrC,MAAK8qC,cAAgBrwE,EACdulC,MAGTwU,EAAazV,UAAU+Q,KAAO,SAAS1zC,GACrC,GAAIkvE,GAAIC,EAASnI,EAAK5Z,EAAMxuD,EAAG2wD,CAK/B,IAHK3rB,KAAK2sB,UACR3sB,KAAK2sB,YAEM,UAATvwD,KACG4jC,KAAK2sB,QAAQjrB,OACbupC,EAASjrC,KAAK2sB,QAAQjrB,SAAW1B,KAAK2sB,QAAQjrB,MAAMrmC,QAAS,CAEhE,GADAiwE,EAAK/iC,UAAU,GACX+iC,YAAcrwE,OAChB,KAAMqwE,EAER,MAAMD,WAAU,wCAMpB,GAFAE,EAAUvrC,KAAK2sB,QAAQvwD,GAEnB8uE,EAAYK,GACd,OAAO,CAET,IAAIR,EAAWQ,GACb,OAAQhjC,UAAUltC,QAChB,IAAK,GACHkwE,EAAQnwE,KAAK4kC,KACb,MACF,KAAK,GACHurC,EAAQnwE,KAAK4kC,KAAMuI,UAAU,GAC7B,MACF,KAAK,GACHgjC,EAAQnwE,KAAK4kC,KAAMuI,UAAU,GAAIA,UAAU,GAC3C,MACF,SAGE,IAFA66B,EAAM76B,UAAUltC,OAChBmuD,EAAO,GAAItL,OAAMklB,EAAM,GAClBpoE,EAAI,EAAGA,EAAIooE,EAAKpoE,IACnBwuD,EAAKxuD,EAAI,GAAKutC,UAAUvtC,EAC1BuwE,GAAQrxB,MAAMla,KAAMwpB,OAEnB,IAAIyhB,EAASM,GAAU,CAG5B,IAFAnI,EAAM76B,UAAUltC,OAChBmuD,EAAO,GAAItL,OAAMklB,EAAM,GAClBpoE,EAAI,EAAGA,EAAIooE,EAAKpoE,IACnBwuD,EAAKxuD,EAAI,GAAKutC,UAAUvtC,EAI1B,KAFA2wD,EAAY4f,EAAQv/B,QACpBo3B,EAAMzX,EAAUtwD,OACXL,EAAI,EAAGA,EAAIooE,EAAKpoE,IACnB2wD,EAAU3wD,GAAGk/C,MAAMla,KAAMwpB,GAG7B,OAAO,GAGThV,EAAazV,UAAUsrB,YAAc,SAASjuD,EAAMwwD,GAClD,GAAIud,EAEJ,KAAKY,EAAWne,GACd,KAAMye,WAAU,8BAiBlB,IAfKrrC,KAAK2sB,UACR3sB,KAAK2sB,YAEH3sB,KAAK2sB,QAAQ6e,aACfxrC,KAAK8P,KAAK,cAAe1zC,EACf2uE,EAAWne,EAASA,UACpBA,EAASA,SAAWA,GAE3B5sB,KAAK2sB,QAAQvwD,GAET6uE,EAASjrC,KAAK2sB,QAAQvwD,IAC7B4jC,KAAK2sB,QAAQvwD,GAAMg1C,KAAKwb,GAExB5sB,KAAK2sB,QAAQvwD,IAAS4jC,KAAK2sB,QAAQvwD,GAAOwwD,GAJ1C5sB,KAAK2sB,QAAQvwD,GAAQwwD,EAMnBqe,EAASjrC,KAAK2sB,QAAQvwD,MAAW4jC,KAAK2sB,QAAQvwD,GAAMqvE,OAAQ,CAC9D,GAAItB,EAIFA,GAHGe,EAAYlrC,KAAK8qC,eAGhBt2B,EAAa22B,oBAFbnrC,KAAK8qC,cAKPX,GAAKA,EAAI,GAAKnqC,KAAK2sB,QAAQvwD,GAAMf,OAAS8uE,IAC5CnqC,KAAK2sB,QAAQvwD,GAAMqvE,QAAS,EAC5BpF,QAAQ3kC,MAAM,mIAGA1B,KAAK2sB,QAAQvwD,GAAMf,QACJ,kBAAlBgrE,SAAQqF,OACjBrF,QAAQqF,SAKd,MAAO1rC,OAGTwU,EAAazV,UAAU4Q,GAAK6E,EAAazV,UAAUsrB,YAEnD7V,EAAazV,UAAU4sC,KAAO,SAASvvE,EAAMwwD,GAM3C,QAASgf,KACP5rC,KAAKyoB,eAAersD,EAAMwvE,GAErBC,IACHA,GAAQ,EACRjf,EAAS1S,MAAMla,KAAMuI,YAVzB,IAAKwiC,EAAWne,GACd,KAAMye,WAAU,8BAElB,IAAIQ,IAAQ,CAcZ,OAHAD,GAAEhf,SAAWA,EACb5sB,KAAK2P,GAAGvzC,EAAMwvE,GAEP5rC,MAGTwU,EAAazV,UAAU0pB,eAAiB,SAASrsD,EAAMwwD,GACrD,GAAIrV,GAAM0L,EAAU5nD,EAAQL,CAE5B,KAAK+vE,EAAWne,GACd,KAAMye,WAAU,8BAElB,KAAKrrC,KAAK2sB,UAAY3sB,KAAK2sB,QAAQvwD,GACjC,MAAO4jC,KAMT,IAJAuX,EAAOvX,KAAK2sB,QAAQvwD,GACpBf,EAASk8C,EAAKl8C,OACd4nD,GAAW,EAEP1L,IAASqV,GACRme,EAAWxzB,EAAKqV,WAAarV,EAAKqV,WAAaA,QAC3C5sB,MAAK2sB,QAAQvwD,GAChB4jC,KAAK2sB,QAAQlE,gBACfzoB,KAAK8P,KAAK,iBAAkB1zC,EAAMwwD,OAE/B,IAAIqe,EAAS1zB,GAAO,CACzB,IAAKv8C,EAAIK,EAAQL,KAAM,GACrB,GAAIu8C,EAAKv8C,KAAO4xD,GACXrV,EAAKv8C,GAAG4xD,UAAYrV,EAAKv8C,GAAG4xD,WAAaA,EAAW,CACvD3J,EAAWjoD,CACX,OAIJ,GAAIioD,EAAW,EACb,MAAOjjB,KAEW,KAAhBuX,EAAKl8C,QACPk8C,EAAKl8C,OAAS,QACP2kC,MAAK2sB,QAAQvwD,IAEpBm7C,EAAKwV,OAAO9J,EAAU,GAGpBjjB,KAAK2sB,QAAQlE,gBACfzoB,KAAK8P,KAAK,iBAAkB1zC,EAAMwwD,GAGtC,MAAO5sB,OAGTwU,EAAazV,UAAUsoB,mBAAqB,SAASjrD,GACnD,GAAI0D,GAAK6rD,CAET,KAAK3rB,KAAK2sB,QACR,MAAO3sB,KAET,KAAKA,KAAK2sB,QAAQlE,eAKhB,MAJyB,KAArBlgB,UAAUltC,OACZ2kC,KAAK2sB,WACE3sB,KAAK2sB,QAAQvwD,UACb4jC,MAAK2sB,QAAQvwD,GACf4jC,IAGT,IAAyB,IAArBuI,UAAUltC,OAAc,CAC1B,IAAKyE,IAAOkgC,MAAK2sB,QACH,mBAAR7sD,GACJkgC,KAAKqnB,mBAAmBvnD,EAI1B,OAFAkgC,MAAKqnB,mBAAmB,kBACxBrnB,KAAK2sB,WACE3sB,KAKT,GAFA2rB,EAAY3rB,KAAK2sB,QAAQvwD,GAErB2uE,EAAWpf,GACb3rB,KAAKyoB,eAAersD,EAAMuvD,OAE1B,MAAOA,EAAUtwD,QACf2kC,KAAKyoB,eAAersD,EAAMuvD,EAAUA,EAAUtwD,OAAS,GAI3D,cAFO2kC,MAAK2sB,QAAQvwD,GAEb4jC,MAGTwU,EAAazV,UAAU4sB,UAAY,SAASvvD,GAC1C,GAAI8+D,EAOJ,OAHEA,GAHGl7B,KAAK2sB,SAAY3sB,KAAK2sB,QAAQvwD,GAE1B2uE,EAAW/qC,KAAK2sB,QAAQvwD,KACxB4jC,KAAK2sB,QAAQvwD,IAEd4jC,KAAK2sB,QAAQvwD,GAAM4vC,YAI7BwI,EAAas3B,cAAgB,SAASn3B,EAASv4C,GAC7C,GAAI8+D,EAOJ,OAHEA,GAHGvmB,EAAQgY,SAAYhY,EAAQgY,QAAQvwD,GAEhC2uE,EAAWp2B,EAAQgY,QAAQvwD,IAC5B,EAEAu4C,EAAQgY,QAAQvwD,GAAMf,OAJtB,QAwBJ0wE,IAAI,SAAShxE,EAAQQ,EAAOJ,GACL,kBAAlBoiC,QAAOgb,OAChBh9C,EAAOJ,QAAU,SAAkB6gE,EAAMgQ,GACvChQ,EAAKiQ,OAASD,EACdhQ,EAAKj9B,UAAYxB,OAAOgb,OAAOyzB,EAAUjtC,WACvC8B,aACE9gC,MAAOi8D,EACPr+B,YAAY,EACZk+B,UAAU,EACVj+B,cAAc,MAKpBriC,EAAOJ,QAAU,SAAkB6gE,EAAMgQ,GACvChQ,EAAKiQ,OAASD,CACd,IAAIE,GAAW,YACfA,GAASntC,UAAYitC,EAAUjtC,UAC/Bi9B,EAAKj9B,UAAY,GAAImtC,GACrBlQ,EAAKj9B,UAAU8B,YAAcm7B,QAI3BmQ,IAAI,SAASpxE,EAAQQ,EAAOJ,GA4ClC,QAASusD,MA1CT,GAAIpoB,GAAU/jC,EAAOJ,UAErBmkC,GAAQkpB,SAAW,WACf,GAAI4jB,GAAoC,mBAAXxtC,SAC1BA,OAAOytC,aACNC,EAA4B,mBAAX1tC,SAClBA,OAAO2tC,aAAe3tC,OAAOoW,gBAGhC,IAAIo3B,EACA,MAAO,UAAUlxE,GAAK,MAAO0jC,QAAOytC,aAAanxE,GAGrD,IAAIoxE,EAAS,CACT,GAAIE,KAYJ,OAXA5tC,QAAOoW,iBAAiB,UAAW,SAAUy3B,GACzC,GAAIvG,GAASuG,EAAGvG,MAChB,KAAKA,IAAWtnC,QAAqB,OAAXsnC,IAAgC,iBAAZuG,EAAGljC,OAC7CkjC,EAAGC,kBACCF,EAAMnxE,OAAS,GAAG,CAClB,GAAI89C,GAAKqzB,EAAMlf,OACfnU,QAGT,GAEI,SAAkBA,GACrBqzB,EAAMp7B,KAAK+H,GACXva,OAAO2tC,YAAY,eAAgB,MAI3C,MAAO,UAAkBpzB,GACrBlH,WAAWkH,EAAI,OAIvB7Z,EAAQqtC,MAAQ,UAChBrtC,EAAQS,SAAU,EAClBT,EAAQstC,OACRttC,EAAQutC,QAIRvtC,EAAQqQ,GAAK+X,EACbpoB,EAAQ+qB,YAAc3C,EACtBpoB,EAAQqsC,KAAOjkB,EACfpoB,EAAQwtC,IAAMplB,EACdpoB,EAAQmpB,eAAiBf,EACzBpoB,EAAQ+nB,mBAAqBK,EAC7BpoB,EAAQwQ,KAAO4X,EAEfpoB,EAAQytC,QAAU,SAAUjsE,GACxB,KAAM,IAAI7F,OAAM,qCAGpBqkC,EAAQ0tC,IAAM,WAAc,MAAO,KACnC1tC,EAAQ2tC,MAAQ,SAAUC,GACtB,KAAM,IAAIjyE,OAAM,wCAGdkyE,IAAI,SAASpyE,EAAQQ,EAAOJ,IAClC,SAAWiyE,IAET,SAASvM,GAkDV,QAASn/B,GAAMtlC,GACd,KAAMixE,YAAWnsE,EAAO9E,IAIzB,QAASq7C,GAAI0jB,EAAOhiB,GAEnB,IADA,GAAI99C,GAAS8/D,EAAM9/D,OACZA,KACN8/D,EAAM9/D,GAAU89C,EAAGgiB,EAAM9/D,GAE1B,OAAO8/D,GAIR,QAASmS,GAAU7+B,EAAQ0K,GAC1B,MAAO1B,GAAIhJ,EAAO1D,MAAMwiC,GAAkBp0B,GAAI9N,KAAK,KAIpD,QAASmiC,GAAW/+B,GAMnB,IALA,GAGI1uC,GACA0tE,EAJA1wE,KACA2wE,EAAU,EACVryE,EAASozC,EAAOpzC,OAGbqyE,EAAUryE,GAChB0E,EAAQ0uC,EAAO+pB,WAAWkV,KACtB3tE,GAAS,OAAUA,GAAS,OAAU2tE,EAAUryE,GACnDoyE,EAAQh/B,EAAO+pB,WAAWkV,KACF,QAAX,MAARD,GACJ1wE,EAAOq0C,OAAe,KAARrxC,IAAkB,KAAe,KAAR0tE,GAAiB,QAExD1wE,EAAOq0C,KAAKrxC,GACZ2tE,MAGD3wE,EAAOq0C,KAAKrxC,EAGd,OAAOhD,GAIR,QAAS4wE,GAAWxS,GACnB,MAAO1jB,GAAI0jB,EAAO,SAASp7D,GAC1B,GAAIhD,GAAS,EAOb,OANIgD,GAAQ,QACXA,GAAS,MACThD,GAAU6wE,EAAmB7tE,IAAU,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElBhD,GAAU6wE,EAAmB7tE,KAE3BsrC,KAAK,IAIT,QAASwiC,GAAaC,GACrB,MAAIA,GAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbppC,EAIR,QAASqpC,GAAaC,EAAOC,GAC5B,MAAOD,GAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,GAIzD,QAASC,GAAMz7B,EAAO07B,EAAWC,GAChC,GAAIxsB,GAAI,CAGR,KAFAnP,EAAQ27B,EAAYhJ,EAAM3yB,EAAQ47B,GAAQ57B,GAAS,EACnDA,GAAS2yB,EAAM3yB,EAAQ07B,GACO17B,EAAQ67B,EAAgBC,GAAQ,EAAG3sB,GAAKld,EACrE+N,EAAQ2yB,EAAM3yB,EAAQ67B,EAEvB,OAAOlJ,GAAMxjB,GAAK0sB,EAAgB,GAAK77B,GAASA,EAAQ+7B,IAIzD,QAASzyB,GAAO5/C,GACf,GAEIq7C,GAIAi3B,EACAtK,EACAj4B,EACAwiC,EACAC,EACA/sB,EACAosB,EACAxzE,EAEAo0E,EAfA7xE,KACA8xE,EAAc1yE,EAAMd,OAEpBL,EAAI,EACJP,EAAIq0E,EACJC,EAAOC,CAkBX,KALAP,EAAQtyE,EAAM8yE,YAAYC,GACtBT,EAAQ,IACXA,EAAQ,GAGJtK,EAAI,EAAGA,EAAIsK,IAAStK,EACpBhoE,EAAMq8D,WAAW2L,IAAM,KAC1BziC,EAAM,aAEP3kC,EAAOq0C,KAAKj1C,EAAMq8D,WAAW2L,GAI9B,KAAKj4B,EAAQuiC,EAAQ,EAAIA,EAAQ,EAAI,EAAGviC,EAAQ2iC,GAAwC,CAEvF,IAAKH,EAAO1zE,EAAG2zE,EAAI,EAAG/sB,EAAIld,EAErBwH,GAAS2iC,GACZntC,EAAM,iBAGPssC,EAAQH,EAAa1xE,EAAMq8D,WAAWtsB,OAElC8hC,GAAStpC,GAAQspC,EAAQ5I,GAAO+J,EAASn0E,GAAK2zE,KACjDjtC,EAAM,YAGP1mC,GAAKgzE,EAAQW,EACbn0E,EAAIonD,GAAKmtB,EAAOK,EAAQxtB,GAAKmtB,EAAOR,EAAOA,EAAO3sB,EAAImtB,IAElDf,EAAQxzE,GAfuConD,GAAKld,EAmBxDkqC,EAAalqC,EAAOlqC,EAChBm0E,EAAIvJ,EAAM+J,EAASP,IACtBltC,EAAM,YAGPitC,GAAKC,CAINp3B,GAAMz6C,EAAO1B,OAAS,EACtB0zE,EAAOb,EAAMlzE,EAAI0zE,EAAMl3B,EAAa,GAARk3B,GAExBtJ,EAAMpqE,EAAIw8C,GAAO23B,EAAS10E,GAC7BinC,EAAM,YAGPjnC,GAAK2qE,EAAMpqE,EAAIw8C,GACfx8C,GAAKw8C,EAELz6C,EAAOgwD,OAAO/xD,IAAK,EAAGP,GAIvB,MAAOkzE,GAAW5wE,GAInB,QAASi/C,GAAO7/C,GACf,GAAI1B,GACAg4C,EACA48B,EACAC,EACAP,EACA5K,EACAgG,EACAoF,EACA3tB,EACApnD,EACAg1E,EAGAX,EAEAY,EACAb,EACAc,EANA3yE,IAgBJ,KARAZ,EAAQqxE,EAAWrxE,GAEnB0yE,EAAc1yE,EAAMd,OAEpBZ,EAAIq0E,EACJr8B,EAAQ,EACRs8B,EAAOC,EAEF7K,EAAI,EAAGA,EAAI0K,IAAe1K,EAC9BqL,EAAerzE,EAAMgoE,GACjBqL,EAAe,KAClBzyE,EAAOq0C,KAAKw8B,EAAmB4B,GAWjC,KAPAH,EAAiBC,EAAcvyE,EAAO1B,OAGlCi0E,GACHvyE,EAAOq0C,KAAK89B,GAGNG,EAAiBR,GAAa,CAEpC,IAAK1E,EAAIgF,EAAQhL,EAAI,EAAGA,EAAI0K,IAAe1K,EAC1CqL,EAAerzE,EAAMgoE,GACjBqL,GAAgB/0E,GAAK+0E,EAAerF,IACvCA,EAAIqF,EAYN,KARAC,EAAwBJ,EAAiB,EACrClF,EAAI1vE,EAAI2qE,GAAO+J,EAAS18B,GAASg9B,IACpC/tC,EAAM,YAGP+Q,IAAU03B,EAAI1vE,GAAKg1E,EACnBh1E,EAAI0vE,EAEChG,EAAI,EAAGA,EAAI0K,IAAe1K,EAO9B,GANAqL,EAAerzE,EAAMgoE,GAEjBqL,EAAe/0E,KAAOg4C,EAAQ08B,GACjCztC,EAAM,YAGH8tC,GAAgB/0E,EAAG,CACtB,IAAK80E,EAAI98B,EAAOmP,EAAIld,EACnBlqC,EAAIonD,GAAKmtB,EAAOK,EAAQxtB,GAAKmtB,EAAOR,EAAOA,EAAO3sB,EAAImtB,IAClDQ,EAAI/0E,GAFqConD,GAAKld,EAKlDgrC,EAAUH,EAAI/0E,EACdo0E,EAAalqC,EAAOlqC,EACpBuC,EAAOq0C,KACNw8B,EAAmBG,EAAavzE,EAAIk1E,EAAUd,EAAY,KAE3DW,EAAInK,EAAMsK,EAAUd,EAGrB7xE,GAAOq0C,KAAKw8B,EAAmBG,EAAawB,EAAG,KAC/CR,EAAOb,EAAMz7B,EAAOg9B,EAAuBJ,GAAkBC,GAC7D78B,EAAQ,IACN48B,IAIF58B,IACAh4C,EAGH,MAAOsC,GAAOsuC,KAAK,IAIpB,QAASskC,GAAUxpB,GAClB,MAAOmnB,GAAUnnB,EAAQ,SAAS1X,GACjC,MAAOmhC,GAAcjxB,KAAKlQ,GACvBsN,EAAOtN,EAAOzC,MAAM,GAAGmK,eACvB1H,IAKL,QAASohC,GAAQ1pB,GAChB,MAAOmnB,GAAUnnB,EAAQ,SAAS1X,GACjC,MAAOqhC,GAAcnxB,KAAKlQ,GACvB,OAASuN,EAAOvN,GAChBA,IAlUL,GAAIshC,GAAgC,gBAAX50E,IAAuBA,EAC5C60E,EAA8B,gBAAVz0E,IAAsBA,GAC7CA,EAAOJ,SAAW40E,GAAex0E,EAC9B00E,EAA8B,gBAAV7C,IAAsBA,CAC1C6C,GAAW7C,SAAW6C,GAAcA,EAAWrxC,SAAWqxC,IAC7DpP,EAAOoP,EAIR,IAAIC,GAiCJpwE,EA9BAqvE,EAAS,WAGTzqC,EAAO,GACP0qC,EAAO,EACPb,EAAO,GACPC,EAAO,GACPH,EAAO,IACPW,EAAc,GACdF,EAAW,IACXI,EAAY,IAGZU,EAAgB,QAChBE,EAAgB,SAChBvC,EAAkB,6BAGlBrsE,GACCivE,SAAY,kDACZC,YAAa,iDACbC,gBAAiB,iBAIlB/B,EAAgB5pC,EAAO0qC,EACvBhK,EAAQzI,KAAKyI,MACbwI,EAAqBt0B,OAAO0pB,YAiT5B,IAfAkN,GAEC10E,QAAW,QAEX80E,MACCv0B,OAAUyxB,EACVxxB,OAAU2xB,GAEX5xB,OAAUA,EACVC,OAAUA,EACV6zB,QAAWA,EACXF,UAAaA,GAKI,kBAAVY,SACc,gBAAdA,QAAOC,KACdD,OAAOC,IAEPD,OAAO,WAAY,WAClB,MAAOL,SAEF,IAAIH,IAAgBA,EAAYU,SACtC,GAAIT,EACHA,EAAW70E,QAAU+0E,MAErB,KAAKpwE,IAAOowE,GACXA,EAASzxC,eAAe3+B,KAASiwE,EAAYjwE,GAAOowE,EAASpwE,QAI/D+gE,GAAKqP,SAAWA,GAGhBlwC,QAEC5kC,KAAK4kC,KAAqB,mBAATlB,MAAuBA,KAAyB,mBAAXF,QAAyBA,gBAC5E8xC,IAAI,SAAS31E,EAAQQ,EAAOJ,GAElC,YAEA,SAASsjC,GAAewb,EAAKuhB,GAC3B,MAAOj+B,QAAOwB,UAAUN,eAAerjC,KAAK6+C,EAAKuhB,GAGnDjgE,EAAOJ,QAAU,SAAS+6D,EAAIQ,EAAKia,EAAI7vC,GACrC41B,EAAMA,GAAO,IACbia,EAAKA,GAAM,GACX,IAAI12B,KAEJ,IAAkB,gBAAPic,IAAiC,IAAdA,EAAG76D,OAC/B,MAAO4+C,EAGT,IAAI22B,GAAS,KACb1a,GAAKA,EAAGnrB,MAAM2rB,EAEd,IAAIma,GAAU,GACV/vC,IAAsC,gBAApBA,GAAQ+vC,UAC5BA,EAAU/vC,EAAQ+vC,QAGpB,IAAIzN,GAAMlN,EAAG76D,MACTw1E,GAAU,GAAKzN,EAAMyN,IACvBzN,EAAMyN,EAGR,KAAK,GAAI71E,GAAI,EAAGA,EAAIooE,IAAOpoE,EAAG,CAC5B,GAEI81E,GAAMC,EAAMnvB,EAAGC,EAFfmvB,EAAI9a,EAAGl7D,GAAGq9C,QAAQu4B,EAAQ,OAC1BxV,EAAM4V,EAAE9lC,QAAQylC,EAGhBvV,IAAO,GACT0V,EAAOE,EAAEnuB,OAAO,EAAGuY,GACnB2V,EAAOC,EAAEnuB,OAAOuY,EAAM,KAEtB0V,EAAOE,EACPD,EAAO,IAGTnvB,EAAIyS,mBAAmByc,GACvBjvB,EAAIwS,mBAAmB0c,GAElBtyC,EAAewb,EAAK2H,GAEdL,EAAQtH,EAAI2H,IACrB3H,EAAI2H,GAAGxQ,KAAKyQ,GAEZ5H,EAAI2H,IAAM3H,EAAI2H,GAAIC,GAJlB5H,EAAI2H,GAAKC,EAQb,MAAO5H,GAGT,IAAIsH,GAAUrD,MAAMqD,SAAW,SAAU0vB,GACvC,MAA8C,mBAAvC1zC,OAAOwB,UAAUuG,SAASlqC,KAAK61E,SAGlCC,IAAI,SAASn2E,EAAQQ,EAAOJ,GAElC,YAgDA,SAASs8C,GAAKw5B,EAAI/1E,GAChB,GAAI+1E,EAAGx5B,IAAK,MAAOw5B,GAAGx5B,IAAIv8C,EAE1B,KAAK,GADDo5D,MACKt5D,EAAI,EAAGA,EAAIi2E,EAAG51E,OAAQL,IAC7Bs5D,EAAIljB,KAAKl2C,EAAE+1E,EAAGj2E,GAAIA,GAEpB,OAAOs5D,GApDT,GAAI6c,GAAqB,SAAStvB,GAChC,aAAeA,IACb,IAAK,SACH,MAAOA,EAET,KAAK,UACH,MAAOA,GAAI,OAAS,OAEtB,KAAK,SACH,MAAOgkB,UAAShkB,GAAKA,EAAI,EAE3B,SACE,MAAO,IAIbtmD,GAAOJ,QAAU,SAAS8+C,EAAKyc,EAAKia,EAAI7vE,GAOtC,MANA41D,GAAMA,GAAO,IACbia,EAAKA,GAAM,IACC,OAAR12B,IACFA,EAAMlZ,QAGW,gBAARkZ,GACFxC,EAAI25B,EAAWn3B,GAAM,SAAS2H,GACnC,GAAIyvB,GAAKhZ,mBAAmB8Y,EAAmBvvB,IAAM+uB,CACrD,OAAIpvB,GAAQtH,EAAI2H,IACP3H,EAAI2H,GAAGnK,IAAI,SAASoK,GACzB,MAAOwvB,GAAKhZ,mBAAmB8Y,EAAmBtvB,MACjDxW,KAAKqrB,GAED2a,EAAKhZ,mBAAmB8Y,EAAmBl3B,EAAI2H,OAEvDvW,KAAKqrB,GAIL51D,EACEu3D,mBAAmB8Y,EAAmBrwE,IAAS6vE,EAC/CtY,mBAAmB8Y,EAAmBl3B,IAF3B,GAKpB,IAAIsH,GAAUrD,MAAMqD,SAAW,SAAU0vB,GACvC,MAA8C,mBAAvC1zC,OAAOwB,UAAUuG,SAASlqC,KAAK61E,IAYpCG,EAAa7zC,OAAO/c,MAAQ,SAAUy5B,GACxC,GAAIqa,KACJ,KAAK,GAAIx0D,KAAOm6C,GACV1c,OAAOwB,UAAUN,eAAerjC,KAAK6+C,EAAKn6C,IAAMw0D,EAAIljB,KAAKtxC,EAE/D,OAAOw0D,SAGHgd,IAAI,SAASv2E,EAAQQ,EAAOJ,GAClC,YAEAA,GAAQ4gD,OAAS5gD,EAAQunC,MAAQ3nC,EAAQ,YACzCI,EAAQ6gD,OAAS7gD,EAAQy8C,UAAY78C,EAAQ,cAE1Cw2E,WAAW,GAAGC,WAAW,KAAKC,IAAI,SAAS12E,EAAQQ,EAAOJ,GAC7DI,EAAOJ,QAAU,SAAkBmuD,GACjC,MAAOA,IAAsB,gBAARA,IACI,kBAAbA,GAAI1kB,MACS,kBAAb0kB,GAAI2e,MACc,kBAAlB3e,GAAIyQ,gBAEZ2X,IAAI,SAAS32E,EAAQQ,EAAOJ,IAClC,SAAWmkC,EAAQ8tC,GA+FnB,QAASt6B,GAAQmH,EAAKmiB,GACpB,GAAIuV,IACFC,QACAC,QAASC,EAcX,OAZIvpC,WAAUltC,QAAU,IAAGs2E,EAAII,MAAQxpC,UAAU,IAC7CA,UAAUltC,QAAU,IAAGs2E,EAAIK,OAASzpC,UAAU,IAC9C0pC,EAAU7V,GACZuV,EAAIO,WAAa9V,EACRA,GACTjhE,EAAQg3E,QAAQR,EAAKvV,GAEnB8O,EAAYyG,EAAIO,cAAaP,EAAIO,YAAa,GAC9ChH,EAAYyG,EAAII,SAAQJ,EAAII,MAAQ,GACpC7G,EAAYyG,EAAIK,UAASL,EAAIK,QAAS,GACtC9G,EAAYyG,EAAIS,iBAAgBT,EAAIS,eAAgB,GACpDT,EAAIK,SAAQL,EAAIE,QAAUQ,GACvBC,EAAYX,EAAK13B,EAAK03B,EAAII,OAiCnC,QAASM,GAAiB1W,EAAK4W,GAC7B,GAAIC,GAAQ1/B,EAAQ2/B,OAAOF,EAE3B,OAAIC,GACK,KAAY1/B,EAAQk/B,OAAOQ,GAAO,GAAK,IAAM7W,EAC7C,KAAY7oB,EAAQk/B,OAAOQ,GAAO,GAAK,IAEvC7W,EAKX,QAASmW,GAAenW,EAAK4W,GAC3B,MAAO5W,GAIT,QAAS+W,GAAYvX,GACnB,GAAIhB,KAMJ,OAJAgB,GAAMphB,QAAQ,SAASzO,EAAK8vB,GAC1BjB,EAAK7uB,IAAO,IAGP6uB,EAIT,QAASmY,GAAYX,EAAK5xE,EAAO4yE,GAC/B,GAAIhB,EAAIS,eACJryE,GACAgrE,EAAWhrE,EAAM+yC,UACjB/yC,EAAM+yC,UAAY33C,EAAQ23C,WACxB/yC,EAAM8gC,aAAe9gC,EAAM8gC,YAAY9B,YAAch/B,GAAQ,CACjE,GAAIm7D,GAAMn7D,EAAM+yC,QAAQ6/B,EAAchB,EAItC,OAHKiB,GAAS1X,KACZA,EAAMoX,EAAYX,EAAKzW,EAAKyX,IAEvBzX,EAGT,GAAI2X,GAAYC,EAAgBnB,EAAK5xE,EACrC,IAAI8yE,EACF,MAAOA,EAGT,IAAIryD,GAAO+c,OAAO/c,KAAKzgB,GACnBgzE,EAAcL,EAAYlyD,EAM9B,IAJImxD,EAAIO,aACN1xD,EAAO+c,OAAOy1C,oBAAoBjzE,IAGhC2/D,EAAQ3/D,KACJygB,EAAK0qB,QAAQ,YAAc,GAAK1qB,EAAK0qB,QAAQ,gBAAkB,GACrE,MAAO+nC,GAAYlzE,EAGrB,IAAoB,IAAhBygB,EAAKnlB,OAAc,CACrB,GAAI0vE,EAAWhrE,GAAQ,CACrB,GAAIe,GAAOf,EAAMe,KAAO,KAAOf,EAAMe,KAAO,EAC5C,OAAO6wE,GAAIE,QAAQ,YAAc/wE,EAAO,IAAK,WAE/C,GAAIoyE,EAASnzE,GACX,MAAO4xE,GAAIE,QAAQnzB,OAAO3f,UAAUuG,SAASlqC,KAAK2E,GAAQ,SAE5D,IAAIozE,EAAOpzE,GACT,MAAO4xE,GAAIE,QAAQ7oC,KAAKjK,UAAUuG,SAASlqC,KAAK2E,GAAQ,OAE1D,IAAI2/D,EAAQ3/D,GACV,MAAOkzE,GAAYlzE,GAIvB,GAAI2kC,GAAO,GAAIy2B,GAAQ,EAAOiY,GAAU,IAAK,IAO7C,IALI7xB,EAAQxhD,KACVo7D,GAAQ,EACRiY,GAAU,IAAK,MAGbrI,EAAWhrE,GAAQ,CACrB,GAAItF,GAAIsF,EAAMe,KAAO,KAAOf,EAAMe,KAAO,EACzC4jC,GAAO,aAAejqC,EAAI,IAe5B,GAZIy4E,EAASnzE,KACX2kC,EAAO,IAAMga,OAAO3f,UAAUuG,SAASlqC,KAAK2E,IAG1CozE,EAAOpzE,KACT2kC,EAAO,IAAMsE,KAAKjK,UAAUuc,YAAYlgD,KAAK2E,IAG3C2/D,EAAQ3/D,KACV2kC,EAAO,IAAMuuC,EAAYlzE,IAGP,IAAhBygB,EAAKnlB,UAAkB8/D,GAAyB,GAAhBp7D,EAAM1E,QACxC,MAAO+3E,GAAO,GAAK1uC,EAAO0uC,EAAO,EAGnC,IAAIT,EAAe,EACjB,MAAIO,GAASnzE,GACJ4xE,EAAIE,QAAQnzB,OAAO3f,UAAUuG,SAASlqC,KAAK2E,GAAQ,UAEnD4xE,EAAIE,QAAQ,WAAY,UAInCF,GAAIC,KAAKxgC,KAAKrxC,EAEd,IAAIhD,EAWJ,OATEA,GADEo+D,EACOkY,EAAY1B,EAAK5xE,EAAO4yE,EAAcI,EAAavyD,GAEnDA,EAAKi3B,IAAI,SAAS33C,GACzB,MAAOwzE,GAAe3B,EAAK5xE,EAAO4yE,EAAcI,EAAajzE,EAAKq7D,KAItEwW,EAAIC,KAAKlyB,MAEF6zB,EAAqBx2E,EAAQ2nC,EAAM0uC,GAI5C,QAASN,GAAgBnB,EAAK5xE,GAC5B,GAAImrE,EAAYnrE,GACd,MAAO4xE,GAAIE,QAAQ,YAAa,YAClC,IAAIe,EAAS7yE,GAAQ,CACnB,GAAIyzE,GAAS,IAAO/wC,KAAKmV,UAAU73C,GAAOs4C,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,GACjE,OAAOs5B,GAAIE,QAAQ2B,EAAQ,UAE7B,MAAIxI,GAASjrE,GACJ4xE,EAAIE,QAAQ,GAAK9xE,EAAO,UAC7BkyE,EAAUlyE,GACL4xE,EAAIE,QAAQ,GAAK9xE,EAAO,WAC7B0zE,EAAO1zE,GACF4xE,EAAIE,QAAQ,OAAQ,QAD7B,OAKF,QAASoB,GAAYlzE,GACnB,MAAO,IAAM9E,MAAM8jC,UAAUuG,SAASlqC,KAAK2E,GAAS,IAItD,QAASszE,GAAY1B,EAAK5xE,EAAO4yE,EAAcI,EAAavyD,GAE1D,IAAK,GADDzjB,MACK/B,EAAI,EAAGouE,EAAIrpE,EAAM1E,OAAQL,EAAIouE,IAAKpuE,EACrCyjC,EAAe1+B,EAAOu5C,OAAOt+C,IAC/B+B,EAAOq0C,KAAKkiC,EAAe3B,EAAK5xE,EAAO4yE,EAAcI,EACjDz5B,OAAOt+C,IAAI,IAEf+B,EAAOq0C,KAAK,GAShB,OANA5wB,GAAKu5B,QAAQ,SAASj6C,GACfA,EAAI0xC,MAAM,UACbz0C,EAAOq0C,KAAKkiC,EAAe3B,EAAK5xE,EAAO4yE,EAAcI,EACjDjzE,GAAK,MAGN/C,EAIT,QAASu2E,GAAe3B,EAAK5xE,EAAO4yE,EAAcI,EAAajzE,EAAKq7D,GAClE,GAAIr6D,GAAM66D,EAAK+X,CAsCf,IArCAA,EAAOn2C,OAAOo2C,yBAAyB5zE,EAAOD,KAAUC,MAAOA,EAAMD,IACjE4zE,EAAKj2C,IAELk+B,EADE+X,EAAKxyC,IACDywC,EAAIE,QAAQ,kBAAmB,WAE/BF,EAAIE,QAAQ,WAAY,WAG5B6B,EAAKxyC,MACPy6B,EAAMgW,EAAIE,QAAQ,WAAY,YAG7BpzC,EAAes0C,EAAajzE,KAC/BgB,EAAO,IAAMhB,EAAM,KAEhB67D,IACCgW,EAAIC,KAAK1mC,QAAQwoC,EAAK3zE,OAAS,GAE/B47D,EADE8X,EAAOd,GACHL,EAAYX,EAAK+B,EAAK3zE,MAAO,MAE7BuyE,EAAYX,EAAK+B,EAAK3zE,MAAO4yE,EAAe,GAEhDhX,EAAIzwB,QAAQ,OAAQ,IAEpBywB,EADER,EACIQ,EAAI5wB,MAAM,MAAM0M,IAAI,SAASxE,GACjC,MAAO,KAAOA,IACb5H,KAAK,MAAMwX,OAAO,GAEf,KAAO8Y,EAAI5wB,MAAM,MAAM0M,IAAI,SAASxE,GACxC,MAAO,MAAQA,IACd5H,KAAK,QAIZswB,EAAMgW,EAAIE,QAAQ,aAAc,YAGhC3G,EAAYpqE,GAAO,CACrB,GAAIq6D,GAASr7D,EAAI0xC,MAAM,SACrB,MAAOmqB,EAET76D,GAAO2hC,KAAKmV,UAAU,GAAK93C,GACvBgB,EAAK0wC,MAAM,iCACb1wC,EAAOA,EAAK+hD,OAAO,EAAG/hD,EAAKzF,OAAS,GACpCyF,EAAO6wE,EAAIE,QAAQ/wE,EAAM,UAEzBA,EAAOA,EAAKu3C,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChCv3C,EAAO6wE,EAAIE,QAAQ/wE,EAAM,WAI7B,MAAOA,GAAO,KAAO66D,EAIvB,QAAS4X,GAAqBx2E,EAAQ2nC,EAAM0uC,GAC1C,GAAIQ,GAAc,EACdv4E,EAAS0B,EAAO82E,OAAO,SAASC,EAAMC,GAGxC,MAFAH,KACIG,EAAI7oC,QAAQ,OAAS,GAAG0oC,IACrBE,EAAOC,EAAI17B,QAAQ,kBAAmB,IAAIh9C,OAAS,GACzD,EAEH,OAAIA,GAAS,GACJ+3E,EAAO,IACG,KAAT1uC,EAAc,GAAKA,EAAO,OAC3B,IACA3nC,EAAOsuC,KAAK,SACZ,IACA+nC,EAAO,GAGTA,EAAO,GAAK1uC,EAAO,IAAM3nC,EAAOsuC,KAAK,MAAQ,IAAM+nC,EAAO,GAInE,QAAS7xB,GAAQyyB,GACf,MAAO91B,OAAMqD,QAAQyyB,GAIvB,QAAS/B,GAAU3oB,GACjB,MAAsB,iBAARA,GAIhB,QAASmqB,GAAOnqB,GACd,MAAe,QAARA,EAIT,QAAS2qB,GAAkB3qB,GACzB,MAAc,OAAPA,EAIT,QAAS0hB,GAAS1hB,GAChB,MAAsB,gBAARA,GAIhB,QAASspB,GAAStpB,GAChB,MAAsB,gBAARA,GAIhB,QAAS4qB,GAAS5qB,GAChB,MAAsB,gBAARA,GAIhB,QAAS4hB,GAAY5hB,GACnB,MAAe,UAARA,EAIT,QAAS4pB,GAASiB,GAChB,MAAOlJ,GAASkJ,IAA8B,oBAAvBC,EAAeD,GAIxC,QAASlJ,GAAS3hB,GAChB,MAAsB,gBAARA,IAA4B,OAARA,EAIpC,QAAS6pB,GAAO3I,GACd,MAAOS,GAAST,IAA4B,kBAAtB4J,EAAe5J,GAIvC,QAAS9K,GAAQnlE,GACf,MAAO0wE,GAAS1wE,KACW,mBAAtB65E,EAAe75E,IAA2BA,YAAaU,QAI9D,QAAS8vE,GAAWzhB,GAClB,MAAsB,kBAARA,GAIhB,QAAS+qB,GAAY/qB,GACnB,MAAe,QAARA,GACe,iBAARA,IACQ,gBAARA,IACQ,gBAARA,IACQ,gBAARA,IACQ,mBAARA,GAMhB,QAAS8qB,GAAex5E,GACtB,MAAO2iC,QAAOwB,UAAUuG,SAASlqC,KAAKR,GAIxC,QAAS05E,GAAI75E,GACX,MAAOA,GAAI,GAAK,IAAMA,EAAE6qC,SAAS,IAAM7qC,EAAE6qC,SAAS,IAOpD,QAASuX,KACP,GAAI2tB,GAAI,GAAIxhC,MACRwJ,GAAQ8hC,EAAI9J,EAAE+J,YACND,EAAI9J,EAAEgK,cACNF,EAAI9J,EAAEiK,eAAeppC,KAAK,IACtC,QAAQm/B,EAAE3hC,UAAW6rC,EAAOlK,EAAEmK,YAAaniC,GAAMnH,KAAK,KAuBxD,QAAS5M,GAAewb,EAAKuhB,GAC3B,MAAOj+B,QAAOwB,UAAUN,eAAerjC,KAAK6+C,EAAKuhB,GAjgBnD,GAAIoZ,GAAe,UACnBz5E,GAAQqgD,OAAS,SAAStgD,GACxB,IAAK03E,EAAS13E,GAAI,CAEhB,IAAK,GADD25E,MACK75E,EAAI,EAAGA,EAAIutC,UAAUltC,OAAQL,IACpC65E,EAAQzjC,KAAK0B,EAAQvK,UAAUvtC,IAEjC,OAAO65E,GAAQxpC,KAAK,KAsBtB,IAAK,GAnBDrwC,GAAI,EACJwuD,EAAOjhB,UACP66B,EAAM5Z,EAAKnuD,OACXsgE,EAAMriB,OAAOp+C,GAAGm9C,QAAQu8B,EAAc,SAAS5D,GACjD,GAAU,MAANA,EAAW,MAAO,GACtB,IAAIh2E,GAAKooE,EAAK,MAAO4N,EACrB,QAAQA,GACN,IAAK,KAAM,MAAO13B,QAAOkQ,EAAKxuD,KAC9B,KAAK,KAAM,MAAO2mE,QAAOnY,EAAKxuD,KAC9B,KAAK,KACH,IACE,MAAOynC,MAAKmV,UAAU4R,EAAKxuD,MAC3B,MAAOuwC,GACP,MAAO,aAEX,QACE,MAAOylC,MAGJA,EAAIxnB,EAAKxuD,GAAIA,EAAIooE,EAAK4N,EAAIxnB,IAAOxuD,GAEtC2gE,GADE8X,EAAOzC,KAAO/F,EAAS+F,GAClB,IAAMA,EAEN,IAAMl+B,EAAQk+B,EAGzB,OAAOrV,IAITxgE,EAAQ25E,UAAY,SAAS37B,EAAI1X,GAY/B,QAASszC,KACP,IAAKtJ,EAAQ,CACX,GAAInsC,EAAQ01C,iBACV,KAAM,IAAI/5E,OAAMwmC,EACPnC,GAAQ21C,iBACjB5O,QAAQqF,MAAMjqC,GAEd4kC,QAAQ3kC,MAAMD,GAEhBgqC,GAAS,EAEX,MAAOtyB,GAAGe,MAAMla,KAAMuI,WAtBxB,GAAI2iC,EAAYkC,EAAO9tC,SACrB,MAAO,YACL,MAAOnkC,GAAQ25E,UAAU37B,EAAI1X,GAAKyY,MAAMla,KAAMuI,WAIlD,IAAIjJ,EAAQ41C,iBAAkB,EAC5B,MAAO/7B,EAGT,IAAIsyB,IAAS,CAeb,OAAOsJ,GAIT,IACII,GADAC,IAEJj6E,GAAQk6E,SAAW,SAASn0C,GAI1B,GAHIgqC,EAAYiK,KACdA,EAAe71C,EAAQstC,IAAI0I,YAAc,IAC3Cp0C,EAAMA,EAAI0hB,eACLwyB,EAAOl0C,GACV,GAAI,GAAIwd,QAAO,MAAQxd,EAAM,MAAO,KAAKyd,KAAKw2B,GAAe,CAC3D,GAAII,GAAMj2C,EAAQi2C,GAClBH,GAAOl0C,GAAO,WACZ,GAAIO,GAAMtmC,EAAQqgD,OAAOtB,MAAM/+C,EAASotC,UACxC89B,SAAQ3kC,MAAM,YAAaR,EAAKq0C,EAAK9zC,QAGvC2zC,GAAOl0C,GAAO,YAGlB,OAAOk0C,GAAOl0C,IAyBhB/lC,EAAQ23C,QAAUA,EAGlBA,EAAQk/B,QACNwD,MAAU,EAAG,IACbC,QAAY,EAAG,IACfC,WAAe,EAAG,IAClBC,SAAa,EAAG,IAChBC,OAAW,GAAI,IACfC,MAAU,GAAI,IACdC,OAAW,GAAI,IACfC,MAAU,GAAI,IACdC,MAAU,GAAI,IACdC,OAAW,GAAI,IACfC,SAAa,GAAI,IACjBC,KAAS,GAAI,IACbC,QAAY,GAAI,KAGlBtjC,EAAQ2/B,QACN4D,QAAW,OACXC,OAAU,SACV15B,QAAW,SACX7b,UAAa,OACbw1C,KAAQ,OACR9nC,OAAU,QACV7F,KAAQ,UACRgoC,OAAU,OAiQZz1E,EAAQomD,QAAUA,EAKlBpmD,EAAQ82E,UAAYA,EAKpB92E,EAAQs4E,OAASA,EAKjBt4E,EAAQ84E,kBAAoBA,EAK5B94E,EAAQ6vE,SAAWA,EAKnB7vE,EAAQy3E,SAAWA,EAKnBz3E,EAAQ+4E,SAAWA,EAKnB/4E,EAAQ+vE,YAAcA,EAKtB/vE,EAAQ+3E,SAAWA,EAKnB/3E,EAAQ8vE,SAAWA,EAKnB9vE,EAAQg4E,OAASA,EAMjBh4E,EAAQukE,QAAUA,EAKlBvkE,EAAQ4vE,WAAaA,EAUrB5vE,EAAQk5E,YAAcA,EAEtBl5E,EAAQkkD,SAAWtkD,EAAQ,qBAY3B,IAAI25E,IAAU,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,MAW5Bv5E,GAAQ+3C,IAAM,WACZmzB,QAAQnzB,IAAI,UAAW2J,IAAa1hD,EAAQqgD,OAAOtB,MAAM/+C,EAASotC,aAKpEptC,EAAQq7E,SAAWz7E,EAAQ,YAE3BI,EAAQg3E,QAAU,SAASsE,EAAQnpC,GACjC,IAAKA,IAAQ29B,EAAS39B,GAAM,MAAOmpC,EAInC,KAFA,GAAIj2D,GAAO+c,OAAO/c,KAAK8sB,GACnBtyC,EAAIwlB,EAAKnlB,OACNL,KACLy7E,EAAOj2D,EAAKxlB,IAAMsyC,EAAI9sB,EAAKxlB,GAE7B,OAAOy7E,MAONr7E,KAAK4kC,KAAKjlC,EAAQ,UAA0B,mBAAT+jC,MAAuBA,KAAyB,mBAAXF,QAAyBA,aACjG83C,qBAAqB,GAAGr2C,OAAS,GAAGm2C,SAAW,KAAKG,IAAI,SAAS57E,EAAQQ,EAAOJ,IACnF,SAAWiyE,GAIX,YAkBA,SAASwJ,KACP,IACE,GAAIpR,GAAM,GAAIlvB,YAAW,EAEzB,OADAkvB,GAAIqR,WAAaA,UAAWvgC,WAAWvX,UAAW0mC,IAAK,WAAc,MAAO,MACvD,KAAdD,EAAIC,OACiB,kBAAjBD,GAAIE,UACuB,IAAlCF,EAAIE,SAAS,EAAG,GAAGh3B,WACvB,MAAOn0C,GACP,OAAO,GAIX,QAASu8E,KACP,MAAOp3C,GAAOq3C,oBACV,WACA,WAGN,QAASC,GAAcC,EAAM57E,GAC3B,GAAIy7E,IAAez7E,EACjB,KAAM,IAAIgyE,YAAW,6BAYvB,OAVI3tC,GAAOq3C,qBACTE,EAAO,GAAI3gC,YAAWj7C,GACtB47E,EAAKJ,UAAYn3C,EAAOX,YAEX,OAATk4C,IACFA,EAAO,GAAIv3C,GAAOrkC,IAEpB47E,EAAK57E,OAASA,GAGT47E,EAKT,QAASv3C,GAAQ4pB,EAAK4tB,EAAkB77E,GACtC,KAAKqkC,EAAOq3C,qBAAyB/2C,eAAgBN,IACnD,MAAO,IAAIA,GAAO4pB,EAAK4tB,EAAkB77E,EAG3C,IAAmB,gBAARiuD,GAAkB,CAC3B,GAAgC,gBAArB4tB,GACT,KAAM,IAAIj8E,OACR,oEAGJ,OAAOk8E,GAAYn3C,KAAMspB,GAE3B,MAAOmQ,GAAKz5B,KAAMspB,EAAK4tB,EAAkB77E,GAU3C,QAASo+D,GAAMwd,EAAMl3E,EAAOm3E,EAAkB77E,GAC5C,GAAqB,gBAAV0E,GACT,KAAM,IAAIsrE,WAAU,wCAGtB,OAA2B,mBAAhB9Q,cAA+Bx6D,YAAiBw6D,aAClD6c,EAAgBH,EAAMl3E,EAAOm3E,EAAkB77E,GAGnC,gBAAV0E,GACFs3E,EAAWJ,EAAMl3E,EAAOm3E,GAG1BI,EAAWL,EAAMl3E,GAoB1B,QAASw3E,GAAYve,GACnB,GAAoB,gBAATA,GACT,KAAM,IAAIqS,WAAU,mCACf,IAAIrS,EAAO,EAChB,KAAM,IAAIqU,YAAW,wCAIzB,QAASmK,GAAOP,EAAMje,EAAMiP,EAAMhJ,GAEhC,MADAsY,GAAWve,GACPA,GAAQ,EACHge,EAAaC,EAAMje,GAEfj4B,SAATknC,EACyB,gBAAbhJ,GACV+X,EAAaC,EAAMje,GAAMiP,KAAKA,EAAMhJ,GACpC+X,EAAaC,EAAMje,GAAMiP,KAAKA,GAE7B+O,EAAaC,EAAMje,GAQ5B,QAASme,GAAaF,EAAMje,GAG1B,GAFAue,EAAWve,GACXie,EAAOD,EAAaC,EAAMje,EAAO,EAAI,EAAoB,EAAhBye,EAAQze,KAC5Ct5B,EAAOq3C,oBACV,IAAK,GAAI/7E,GAAI,EAAGA,EAAIg+D,IAAQh+D,EAC1Bi8E,EAAKj8E,GAAK,CAGd,OAAOi8E,GAYT,QAASI,GAAYJ,EAAMxoC,EAAQwwB,GAKjC,GAJwB,gBAAbA,IAAsC,KAAbA,IAClCA,EAAW,SAGRv/B,EAAOimC,WAAW1G,GACrB,KAAM,IAAIoM,WAAU,6CAGtB,IAAIhwE,GAAwC,EAA/BqzC,EAAWD,EAAQwwB,EAChCgY,GAAOD,EAAaC,EAAM57E,EAE1B,IAAIq8E,GAAST,EAAK9jC,MAAM1E,EAAQwwB,EAMhC,OAJIyY,KAAWr8E,IACb47E,EAAOA,EAAKjrC,MAAM,EAAG0rC,IAGhBT,EAGT,QAASU,GAAeV,EAAM9b,GAC5B,GAAI9/D,GAAS8/D,EAAM9/D,OAAS,EAAI,EAA4B,EAAxBo8E,EAAQtc,EAAM9/D,OAClD47E,GAAOD,EAAaC,EAAM57E,EAC1B,KAAK,GAAIL,GAAI,EAAGA,EAAIK,EAAQL,GAAK,EAC/Bi8E,EAAKj8E,GAAgB,IAAXmgE,EAAMngE,EAElB,OAAOi8E,GAGT,QAASG,GAAiBH,EAAM9b,EAAOyc,EAAYv8E,GAGjD,GAFA8/D,EAAMzsB,WAEFkpC,EAAa,GAAKzc,EAAMzsB,WAAakpC,EACvC,KAAM,IAAIvK,YAAW,4BAGvB,IAAIlS,EAAMzsB,WAAakpC,GAAcv8E,GAAU,GAC7C,KAAM,IAAIgyE,YAAW,4BAiBvB,OAbElS,GADiBp6B,SAAf62C,GAAuC72C,SAAX1lC,EACtB,GAAIi7C,YAAW6kB,GACHp6B,SAAX1lC,EACD,GAAIi7C,YAAW6kB,EAAOyc,GAEtB,GAAIthC,YAAW6kB,EAAOyc,EAAYv8E,GAGxCqkC,EAAOq3C,qBACTE,EAAO9b,EACP8b,EAAKJ,UAAYn3C,EAAOX,WAExBk4C,EAAOU,EAAcV,EAAM9b,GAEtB8b,EAGT,QAASK,GAAYL,EAAMh9B,GACzB,GAAIva,EAAO2f,SAASpF,GAAM,CACxB,GAAImpB,GAA4B,EAAtBqU,EAAQx9B,EAAI5+C,OAGtB,OAFA47E,GAAOD,EAAaC,EAAM7T,GAEN,IAAhB6T,EAAK57E,OACA47E,GAGTh9B,EAAIrV,KAAKqyC,EAAM,EAAG,EAAG7T,GACd6T,GAGT,GAAIh9B,EAAK,CACP,GAA4B,mBAAhBsgB,cACRtgB,EAAI5I,iBAAkBkpB,cAAgB,UAAYtgB,GACpD,MAA0B,gBAAfA,GAAI5+C,QAAuBw8E,EAAM59B,EAAI5+C,QACvC27E,EAAaC,EAAM,GAErBU,EAAcV,EAAMh9B,EAG7B,IAAiB,WAAbA,EAAI79C,MAAqBmlD,EAAQtH,EAAI1Q,MACvC,MAAOouC,GAAcV,EAAMh9B,EAAI1Q,MAInC,KAAM,IAAI8hC,WAAU,sFAGtB,QAASoM,GAASp8E,GAChB,GAAIA,GAAUy7E,IACZ,KAAM,IAAIzJ,YAAW,0DACayJ,IAAaxxC,SAAS,IAAM,SAEhE,OAAgB,GAATjqC,EAGT,QAASgqE,GAAYhqE,GAInB,OAHKA,GAAUA,IACbA,EAAS,GAEJqkC,EAAO83C,OAAOn8E,GA+EvB,QAASqzC,GAAYD,EAAQwwB,GAC3B,GAAIv/B,EAAO2f,SAAS5Q,GAClB,MAAOA,GAAOpzC,MAEhB,IAA2B,mBAAhBk/D,cAA6D,kBAAvBA,aAAYud,SACxDvd,YAAYud,OAAOrpC,IAAWA,YAAkB8rB,cACnD,MAAO9rB,GAAOC,UAEM,iBAAXD,KACTA,EAAS,GAAKA,EAGhB,IAAI20B,GAAM30B,EAAOpzC,MACjB,IAAY,IAAR+nE,EAAW,MAAO,EAGtB,KADA,GAAI2U,IAAc,IAEhB,OAAQ9Y,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,MAAOmE,EACT,KAAK,OACL,IAAK,QACL,IAAKriC,QACH,MAAOqhC,GAAY3zB,GAAQpzC,MAC7B,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAa,GAAN+nE,CACT,KAAK,MACH,MAAOA,KAAQ,CACjB,KAAK,SACH,MAAOX,GAAch0B,GAAQpzC,MAC/B,SACE,GAAI08E,EAAa,MAAO3V,GAAY3zB,GAAQpzC,MAC5C4jE,IAAY,GAAKA,GAAU9oB,cAC3B4hC,GAAc,GAMtB,QAASC,GAAc/Y,EAAUvC,EAAOzT,GACtC,GAAI8uB,IAAc,CAMlB,KAHch3C,SAAV27B,GAAuBA,EAAQ,KACjCA,EAAQ,GAENA,EAAQ18B,KAAK3kC,OACf,MAAO,EAOT,KAJY0lC,SAARkoB,GAAqBA,EAAMjpB,KAAK3kC,UAClC4tD,EAAMjpB,KAAK3kC,QAGT4tD,GAAO,EACT,MAAO,EAMT,IAHAA,KAAS,EACTyT,KAAW,EAEPzT,GAAOyT,EACT,MAAO,EAKT,KAFKuC,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,MAAOgZ,GAASj4C,KAAM08B,EAAOzT,EAE/B,KAAK,OACL,IAAK,QACH,MAAOivB,GAAUl4C,KAAM08B,EAAOzT,EAEhC,KAAK,QACH,MAAOkvB,GAAWn4C,KAAM08B,EAAOzT,EAEjC,KAAK,SACL,IAAK,SACH,MAAOmvB,GAAYp4C,KAAM08B,EAAOzT,EAElC,KAAK,SACH,MAAOovB,GAAYr4C,KAAM08B,EAAOzT,EAElC,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAOqvB,GAAat4C,KAAM08B,EAAOzT,EAEnC,SACE,GAAI8uB,EAAa,KAAM,IAAI1M,WAAU,qBAAuBpM,EAC5DA,IAAYA,EAAW,IAAI9oB,cAC3B4hC,GAAc,GAOtB,QAASjS,GAAM9R,EAAGv5D,EAAG0vE,GACnB,GAAInvE,GAAIg5D,EAAEv5D,EACVu5D,GAAEv5D,GAAKu5D,EAAEmW,GACTnW,EAAEmW,GAAKnvE,EA0HT,QAASu9E,GAAsBlnC,EAAQ/F,EAAKssC,EAAY3Y,EAAUiO,GAChE,GAAsB,IAAlB77B,EAAOh2C,OAAc,OAAO,CAgBhC,IAd0B,gBAAfu8E,IACT3Y,EAAW2Y,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAa,aACtBA,GAAa,YAEfA,GAAcA,EACV9uB,MAAM8uB,KACRA,EAAa1K,EAAM,EAAK77B,EAAOh2C,OAAS,GAGtCu8E,EAAa,IAAGA,EAAavmC,EAAOh2C,OAASu8E,GAC7CA,GAAcvmC,EAAOh2C,OAAQ,CAC/B,GAAI6xE,EAAK,OAAO,CACX0K,GAAavmC,EAAOh2C,OAAS,MAC7B,IAAIu8E,EAAa,EAAG,CACzB,IAAI1K,EACC,OAAO,CADH0K,GAAa,EAQxB,GAJmB,gBAARtsC,KACTA,EAAM5L,EAAO+5B,KAAKnuB,EAAK2zB,IAGrBv/B,EAAO2f,SAAS/T,GAClB,MAAmB,KAAfA,EAAIjwC,QACC,EAEFm9E,EAAannC,EAAQ/F,EAAKssC,EAAY3Y,EAAUiO,EAClD,IAAmB,gBAAR5hC,GAEhB,MADAA,IAAY,IACR5L,EAAOq3C,qBACiC,kBAAjCzgC,YAAWvX,UAAUmM,QAC1BgiC,EACK52B,WAAWvX,UAAUmM,QAAQ9vC,KAAKi2C,EAAQ/F,EAAKssC,GAE/CthC,WAAWvX,UAAUkwC,YAAY7zE,KAAKi2C,EAAQ/F,EAAKssC,GAGvDY,EAAannC,GAAU/F,GAAOssC,EAAY3Y,EAAUiO,EAG7D,MAAM,IAAI7B,WAAU,wCAGtB,QAASmN,GAAchT,EAAKl6B,EAAKssC,EAAY3Y,EAAUiO,GAmBrD,QAASh9B,GAAM0qB,EAAK5/D,GAClB,MAAkB,KAAdy9E,EACK7d,EAAI5/D,GAEJ4/D,EAAI4L,aAAaxrE,EAAIy9E,GAtBhC,GAAIA,GAAY,EACZC,EAAYlT,EAAInqE,OAChBs9E,EAAYrtC,EAAIjwC,MAEpB,IAAiB0lC,SAAbk+B,IACFA,EAAW3lB,OAAO2lB,GAAU9oB,cACX,SAAb8oB,GAAoC,UAAbA,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIuG,EAAInqE,OAAS,GAAKiwC,EAAIjwC,OAAS,EACjC,OAAO,CAETo9E,GAAY,EACZC,GAAa,EACbC,GAAa,EACbf,GAAc,EAYlB,GAAI58E,EACJ,IAAIkyE,EAAK,CACP,GAAI0L,IAAa,CACjB,KAAK59E,EAAI48E,EAAY58E,EAAI09E,EAAW19E,IAClC,GAAIk1C,EAAKs1B,EAAKxqE,KAAOk1C,EAAK5E,EAAKstC,KAAe,EAAK,EAAI59E,EAAI49E,IAEzD,GADIA,KAAe,IAAIA,EAAa59E,GAChCA,EAAI49E,EAAa,IAAMD,EAAW,MAAOC,GAAaH,MAEtDG,MAAe,IAAI59E,GAAKA,EAAI49E,GAChCA,GAAa,MAKjB,KADIhB,EAAae,EAAYD,IAAWd,EAAac,EAAYC,GAC5D39E,EAAI48E,EAAY58E,GAAK,EAAGA,IAAK,CAEhC,IAAK,GADD69E,IAAQ,EACH1U,EAAI,EAAGA,EAAIwU,EAAWxU,IAC7B,GAAIj0B,EAAKs1B,EAAKxqE,EAAImpE,KAAOj0B,EAAK5E,EAAK64B,GAAI,CACrC0U,GAAQ,CACR,OAGJ,GAAIA,EAAO,MAAO79E,GAItB,OAAO,EAeT,QAAS89E,GAAUle,EAAKnsB,EAAQwqB,EAAQ59D,GACtC49D,EAAS0I,OAAO1I,IAAW,CAC3B,IAAI2I,GAAYhH,EAAIv/D,OAAS49D,CACxB59D,IAGHA,EAASsmE,OAAOtmE,GACZA,EAASumE,IACXvmE,EAASumE,IAJXvmE,EAASumE,CAQX,IAAIC,GAASpzB,EAAOpzC,MACpB,IAAIwmE,EAAS,IAAM,EAAG,KAAM,IAAIwJ,WAAU,qBAEtChwE,GAASwmE,EAAS,IACpBxmE,EAASwmE,EAAS,EAEpB,KAAK,GAAI7mE,GAAI,EAAGA,EAAIK,IAAUL,EAAG,CAC/B,GAAI+9E,GAASplC,SAASlF,EAAOoU,OAAW,EAAJ7nD,EAAO,GAAI,GAC/C,IAAI8tD,MAAMiwB,GAAS,MAAO/9E,EAC1B4/D,GAAI3B,EAASj+D,GAAK+9E,EAEpB,MAAO/9E,GAGT,QAASg+E,GAAWpe,EAAKnsB,EAAQwqB,EAAQ59D,GACvC,MAAO8mE,GAAWC,EAAY3zB,EAAQmsB,EAAIv/D,OAAS49D,GAAS2B,EAAK3B,EAAQ59D,GAG3E,QAAS49E,GAAYre,EAAKnsB,EAAQwqB,EAAQ59D,GACxC,MAAO8mE,GAAWG,EAAa7zB,GAASmsB,EAAK3B,EAAQ59D,GAGvD,QAAS69E,GAAate,EAAKnsB,EAAQwqB,EAAQ59D,GACzC,MAAO49E,GAAWre,EAAKnsB,EAAQwqB,EAAQ59D,GAGzC,QAAS89E,GAAave,EAAKnsB,EAAQwqB,EAAQ59D,GACzC,MAAO8mE,GAAWM,EAAch0B,GAASmsB,EAAK3B,EAAQ59D,GAGxD,QAAS+9E,GAAWxe,EAAKnsB,EAAQwqB,EAAQ59D,GACvC,MAAO8mE,GAAWQ,EAAel0B,EAAQmsB,EAAIv/D,OAAS49D,GAAS2B,EAAK3B,EAAQ59D,GA6E9E,QAASg9E,GAAazd,EAAK8B,EAAOzT,GAChC,MAAc,KAAVyT,GAAezT,IAAQ2R,EAAIv/D,OACtBygD,EAAO+mB,cAAcjI,GAErB9e,EAAO+mB,cAAcjI,EAAI5uB,MAAM0wB,EAAOzT,IAIjD,QAASivB,GAAWtd,EAAK8B,EAAOzT,GAC9BA,EAAM0T,KAAK90D,IAAI+yD,EAAIv/D,OAAQ4tD,EAI3B,KAHA,GAAIqL,MAEAt5D,EAAI0hE,EACD1hE,EAAIiuD,GAAK,CACd,GAAIowB,GAAYze,EAAI5/D,GAChB8yE,EAAY,KACZwL,EAAoBD,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,CAEJ,IAAIr+E,EAAIs+E,GAAoBrwB,EAAK,CAC/B,GAAIswB,GAAYC,EAAWC,EAAYC,CAEvC,QAAQJ,GACN,IAAK,GACCD,EAAY,MACdvL,EAAYuL,EAEd,MACF,KAAK,GACHE,EAAa3e,EAAI5/D,EAAI,GACO,OAAV,IAAbu+E,KACHG,GAA6B,GAAZL,IAAqB,EAAoB,GAAbE,EACzCG,EAAgB,MAClB5L,EAAY4L,GAGhB,MACF,KAAK,GACHH,EAAa3e,EAAI5/D,EAAI,GACrBw+E,EAAY5e,EAAI5/D,EAAI,GACQ,OAAV,IAAbu+E,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZL,IAAoB,IAAoB,GAAbE,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtE5L,EAAY4L,GAGhB,MACF,KAAK,GACHH,EAAa3e,EAAI5/D,EAAI,GACrBw+E,EAAY5e,EAAI5/D,EAAI,GACpBy+E,EAAa7e,EAAI5/D,EAAI,GACO,OAAV,IAAbu+E,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZL,IAAoB,IAAqB,GAAbE,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5C5L,EAAY4L,KAMJ,OAAd5L,GACFA,EAAY,MACZwL,EAAmB,GACVxL,EAAY,QACrBA,GAAa,MACbxZ,EAAIljB,KAAK08B,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBxZ,EAAIljB,KAAK08B,GACT9yE,GAAKs+E,EAGP,MAAOK,GAAsBrlB,GAK/B,QAASqlB,GAAuBC,GAC9B,GAAIxW,GAAMwW,EAAWv+E,MACrB,IAAI+nE,GAAOyW,GACT,MAAOvgC,QAAO0pB,aAAa9oB,MAAMZ,OAAQsgC,EAK3C,KAFA,GAAItlB,GAAM,GACNt5D,EAAI,EACDA,EAAIooE,GACT9O,GAAOhb,OAAO0pB,aAAa9oB,MACzBZ,OACAsgC,EAAW5tC,MAAMhxC,EAAGA,GAAK6+E,IAG7B,OAAOvlB,GAGT,QAAS6jB,GAAYvd,EAAK8B,EAAOzT,GAC/B,GAAIiS,GAAM,EACVjS,GAAM0T,KAAK90D,IAAI+yD,EAAIv/D,OAAQ4tD,EAE3B,KAAK,GAAIjuD,GAAI0hE,EAAO1hE,EAAIiuD,IAAOjuD,EAC7BkgE,GAAO5hB,OAAO0pB,aAAsB,IAATpI,EAAI5/D,GAEjC,OAAOkgE,GAGT,QAASkd,GAAaxd,EAAK8B,EAAOzT,GAChC,GAAIiS,GAAM,EACVjS,GAAM0T,KAAK90D,IAAI+yD,EAAIv/D,OAAQ4tD,EAE3B,KAAK,GAAIjuD,GAAI0hE,EAAO1hE,EAAIiuD,IAAOjuD,EAC7BkgE,GAAO5hB,OAAO0pB,aAAapI,EAAI5/D,GAEjC,OAAOkgE,GAGT,QAAS+c,GAAUrd,EAAK8B,EAAOzT,GAC7B,GAAIma,GAAMxI,EAAIv/D,SAETqhE,GAASA,EAAQ,KAAGA,EAAQ,KAC5BzT,GAAOA,EAAM,GAAKA,EAAMma,KAAKna,EAAMma,EAGxC,KAAK,GADD5rB,GAAM,GACDx8C,EAAI0hE,EAAO1hE,EAAIiuD,IAAOjuD,EAC7Bw8C,GAAOwjB,EAAMJ,EAAI5/D,GAEnB,OAAOw8C,GAGT,QAAS8gC,GAAc1d,EAAK8B,EAAOzT,GAGjC,IAAK,GAFDqa,GAAQ1I,EAAI5uB,MAAM0wB,EAAOzT,GACzBqL,EAAM,GACDt5D,EAAI,EAAGA,EAAIsoE,EAAMjoE,OAAQL,GAAK,EACrCs5D,GAAOhb,OAAO0pB,aAAaM,EAAMtoE,GAAoB,IAAfsoE,EAAMtoE,EAAI,GAElD,OAAOs5D,GAwCT,QAASwlB,GAAa7gB,EAAQ8gB,EAAK1+E,GACjC,GAAK49D,EAAS,IAAO,GAAKA,EAAS,EAAG,KAAM,IAAIoU,YAAW,qBAC3D,IAAIpU,EAAS8gB,EAAM1+E,EAAQ,KAAM,IAAIgyE,YAAW,yCA+JlD,QAAS2M,GAAUpf,EAAK76D,EAAOk5D,EAAQ8gB,EAAKnyE,EAAKC,GAC/C,IAAK63B,EAAO2f,SAASub,GAAM,KAAM,IAAIyQ,WAAU,8CAC/C,IAAItrE,EAAQ6H,GAAO7H,EAAQ8H,EAAK,KAAM,IAAIwlE,YAAW,oCACrD,IAAIpU,EAAS8gB,EAAMnf,EAAIv/D,OAAQ,KAAM,IAAIgyE,YAAW,sBAkDtD,QAAS4M,GAAmBrf,EAAK76D,EAAOk5D,EAAQuK,GAC1CzjE,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,EACxC,KAAK,GAAI/E,GAAI,EAAGmpE,EAAIxH,KAAK90D,IAAI+yD,EAAIv/D,OAAS49D,EAAQ,GAAIj+D,EAAImpE,IAAKnpE,EAC7D4/D,EAAI3B,EAASj+D,IAAM+E,EAAS,KAAS,GAAKyjE,EAAexoE,EAAI,EAAIA,MAClC,GAA5BwoE,EAAexoE,EAAI,EAAIA,GA8B9B,QAASk/E,GAAmBtf,EAAK76D,EAAOk5D,EAAQuK,GAC1CzjE,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,EAC5C,KAAK,GAAI/E,GAAI,EAAGmpE,EAAIxH,KAAK90D,IAAI+yD,EAAIv/D,OAAS49D,EAAQ,GAAIj+D,EAAImpE,IAAKnpE,EAC7D4/D,EAAI3B,EAASj+D,GAAM+E,IAAuC,GAA5ByjE,EAAexoE,EAAI,EAAIA,GAAU,IAmJnE,QAASm/E,GAAcvf,EAAK76D,EAAOk5D,EAAQ8gB,EAAKnyE,EAAKC,GACnD,GAAIoxD,EAAS8gB,EAAMnf,EAAIv/D,OAAQ,KAAM,IAAIgyE,YAAW,qBACpD,IAAIpU,EAAS,EAAG,KAAM,IAAIoU,YAAW,sBAGvC,QAAS+M,GAAYxf,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAKrD,MAJKA,IACH0W,EAAavf,EAAK76D,EAAOk5D,EAAQ,EAAG,uBAAwB,uBAE9D8K,EAAQ5wB,MAAMynB,EAAK76D,EAAOk5D,EAAQuK,EAAc,GAAI,GAC7CvK,EAAS,EAWlB,QAASohB,GAAazf,EAAK76D,EAAOk5D,EAAQuK,EAAcC,GAKtD,MAJKA,IACH0W,EAAavf,EAAK76D,EAAOk5D,EAAQ,EAAG,wBAAyB,wBAE/D8K,EAAQ5wB,MAAMynB,EAAK76D,EAAOk5D,EAAQuK,EAAc,GAAI,GAC7CvK,EAAS,EAkHlB,QAASqhB,GAAa3e,GAEpB,GADAA,EAAMwF,EAAWxF,GAAKtjB,QAAQkiC,GAAmB,IAC7C5e,EAAItgE,OAAS,EAAG,MAAO,EAC3B,MAAOsgE,EAAItgE,OAAS,IAAM,GACxBsgE,GAAY,GAEd,OAAOA,GAGT,QAASwF,GAAYxF,GACnB,MAAIA,GAAItG,KAAasG,EAAItG,OAClBsG,EAAItjB,QAAQ,aAAc,IAGnC,QAAS2iB,GAAOvgE;AACd,MAAIA,GAAI,GAAW,IAAMA,EAAE6qC,SAAS,IAC7B7qC,EAAE6qC,SAAS,IAGpB,QAAS88B,GAAa3zB,EAAQ+rC,GAC5BA,EAAQA,GAAS9P,EAAAA,CAMjB,KAAK,GALDoD,GACAzyE,EAASozC,EAAOpzC,OAChBo/E,EAAgB,KAChBnX,KAEKtoE,EAAI,EAAGA,EAAIK,IAAUL,EAAG,CAG/B,GAFA8yE,EAAYr/B,EAAO+pB,WAAWx9D,GAE1B8yE,EAAY,OAAUA,EAAY,MAAQ,CAC5C,IAAK2M,EAAe,CAClB,GAAI3M,EAAY,MAAQ,EACjB0M,GAAS,IAAK,GAAIlX,EAAMlyB,KAAK,IAAM,IAAM,IAC9C,UACK,GAAIp2C,EAAI,IAAMK,EAAQ,EACtBm/E,GAAS,IAAK,GAAIlX,EAAMlyB,KAAK,IAAM,IAAM,IAC9C,UAGFqpC,EAAgB3M,CAEhB,UAGF,GAAIA,EAAY,MAAQ,EACjB0M,GAAS,IAAK,GAAIlX,EAAMlyB,KAAK,IAAM,IAAM,KAC9CqpC,EAAgB3M,CAChB,UAGFA,GAAa2M,EAAgB,OAAU,GAAK3M,EAAY,OAAU,UACzD2M,KACJD,GAAS,IAAK,GAAIlX,EAAMlyB,KAAK,IAAM,IAAM,IAKhD,IAFAqpC,EAAgB,KAEZ3M,EAAY,IAAM,CACpB,IAAK0M,GAAS,GAAK,EAAG,KACtBlX,GAAMlyB,KAAK08B,OACN,IAAIA,EAAY,KAAO,CAC5B,IAAK0M,GAAS,GAAK,EAAG,KACtBlX,GAAMlyB,KACJ08B,GAAa,EAAM,IACP,GAAZA,EAAmB,SAEhB,IAAIA,EAAY,MAAS,CAC9B,IAAK0M,GAAS,GAAK,EAAG,KACtBlX,GAAMlyB,KACJ08B,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,SAEhB,CAAA,KAAIA,EAAY,SASrB,KAAM,IAAI7yE,OAAM,qBARhB,KAAKu/E,GAAS,GAAK,EAAG,KACtBlX,GAAMlyB,KACJ08B,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,MAOzB,MAAOxK,GAGT,QAAShB,GAAc3G,GAErB,IAAK,GADDkJ,MACK7pE,EAAI,EAAGA,EAAI2gE,EAAItgE,SAAUL,EAChC6pE,EAAUzzB,KAAyB,IAApBuqB,EAAInD,WAAWx9D,GAEhC,OAAO6pE,GAGT,QAASlC,GAAgBhH,EAAK6e,GAG5B,IAAK,GAFD1V,GAAGC,EAAIC,EACPH,KACK7pE,EAAI,EAAGA,EAAI2gE,EAAItgE,WACjBm/E,GAAS,GAAK,KADax/E,EAGhC8pE,EAAInJ,EAAInD,WAAWx9D,GACnB+pE,EAAKD,GAAK,EACVE,EAAKF,EAAI,IACTD,EAAUzzB,KAAK4zB,GACfH,EAAUzzB,KAAK2zB,EAGjB,OAAOF,GAGT,QAASpC,GAAe9G,GACtB,MAAO7f,GAAOmpB,YAAYqV,EAAY3e,IAGxC,QAASwG,GAAY+C,EAAKC,EAAKlM,EAAQ59D,GACrC,IAAK,GAAIL,GAAI,EAAGA,EAAIK,KACbL,EAAIi+D,GAAUkM,EAAI9pE,QAAYL,GAAKkqE,EAAI7pE,UADhBL,EAE5BmqE,EAAInqE,EAAIi+D,GAAUiM,EAAIlqE,EAExB,OAAOA,GAGT,QAAS68E,GAAOvsC,GACd,MAAOA,KAAQA,EA5mDjB,GAAIwQ,GAAS/gD,EAAQ,aACjBgpE,EAAUhpE,EAAQ,WAClBwmD,EAAUxmD,EAAQ,UAEtBI,GAAQukC,OAASA,EACjBvkC,EAAQkqE,WAAaA,EACrBlqE,EAAQmqE,kBAAoB,GAG5B5lC,EAAOq3C,oBAAqDh2C,SAA/BqsC,EAAO2J,oBAChC3J,EAAO2J,oBACPH,IAGJz7E,EAAQ27E,WAAaA,IAuDrBp3C,EAAO6lC,SAAW,KAElB7lC,EAAO4hC,SAAW,SAAUkE,GAE1B,MADAA,GAAIqR,UAAYn3C,EAAOX,UAChBymC,GAoBT9lC,EAAO+5B,KAAO,SAAU15D,EAAOm3E,EAAkB77E,GAC/C,MAAOo+D,GAAK,KAAM15D,EAAOm3E,EAAkB77E,IAGzCqkC,EAAOq3C,sBACTr3C,EAAOX,UAAU83C,UAAYvgC,WAAWvX,UACxCW,EAAOm3C,UAAYvgC,WACG,mBAAXokC,SAA0BA,OAAOC,SACxCj7C,EAAOg7C,OAAOC,WAAaj7C,GAC7BnC,OAAOC,eAAekC,EAAQg7C,OAAOC,SACnC56E,MAAO,KACP69B,cAAc,KA2BpB8B,EAAO83C,MAAQ,SAAUxe,EAAMiP,EAAMhJ,GACnC,MAAOuY,GAAM,KAAMxe,EAAMiP,EAAMhJ,IAejCv/B,EAAOy3C,YAAc,SAAUne,GAC7B,MAAOme,GAAY,KAAMne,IAG3Bt5B,EAAOk7C,gBAAkB,SAAU5hB,GACjC,MAAOme,GAAY,KAAMne,IA0G3Bt5B,EAAO2f,SAAW,SAAmB2U,GACnC,QAAe,MAALA,IAAaA,EAAEuN,YAG3B7hC,EAAOm7C,QAAU,SAAkB//E,EAAGk5D,GACpC,IAAKt0B,EAAO2f,SAASvkD,KAAO4kC,EAAO2f,SAAS2U,GAC1C,KAAM,IAAIqX,WAAU,4BAGtB,IAAIvwE,IAAMk5D,EAAG,MAAO,EAKpB,KAAK,GAHDgd,GAAIl2E,EAAEO,OACNy/E,EAAI9mB,EAAE34D,OAEDL,EAAI,EAAGooE,EAAMzG,KAAK90D,IAAImpE,EAAG8J,GAAI9/E,EAAIooE,IAAOpoE,EAC/C,GAAIF,EAAEE,KAAOg5D,EAAEh5D,GAAI,CACjBg2E,EAAIl2E,EAAEE,GACN8/E,EAAI9mB,EAAEh5D,EACN,OAIJ,MAAIg2E,GAAI8J,GAAU,EACdA,EAAI9J,EAAU,EACX,GAGTtxC,EAAOimC,WAAa,SAAqB1G,GACvC,OAAQ3lB,OAAO2lB,GAAU9oB,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,CACT,SACE,OAAO,IAIbzW,EAAO4R,OAAS,SAAiBiG,EAAMl8C,GACrC,IAAKkmD,EAAQhK,GACX,KAAM,IAAI8zB,WAAU,8CAGtB,IAAoB,IAAhB9zB,EAAKl8C,OACP,MAAOqkC,GAAO83C,MAAM,EAGtB,IAAIx8E,EACJ,IAAe+lC,SAAX1lC,EAEF,IADAA,EAAS,EACJL,EAAI,EAAGA,EAAIu8C,EAAKl8C,SAAUL,EAC7BK,GAAUk8C,EAAKv8C,GAAGK,MAItB,IAAIg2C,GAAS3R,EAAOy3C,YAAY97E,GAC5By9D,EAAM,CACV,KAAK99D,EAAI,EAAGA,EAAIu8C,EAAKl8C,SAAUL,EAAG,CAChC,GAAI4/D,GAAMrjB,EAAKv8C,EACf,KAAK0kC,EAAO2f,SAASub,GACnB,KAAM,IAAIyQ,WAAU,8CAEtBzQ,GAAIh2B,KAAKyM,EAAQynB,GACjBA,GAAO8B,EAAIv/D,OAEb,MAAOg2C,IA6CT3R,EAAOgP,WAAaA,EA+DpBhP,EAAOX,UAAUwiC,WAAY,EAQ7B7hC,EAAOX,UAAUg8C,OAAS,WACxB,GAAI3X,GAAMpjC,KAAK3kC,MACf,IAAI+nE,EAAM,IAAM,EACd,KAAM,IAAIiK,YAAW,4CAEvB,KAAK,GAAIryE,GAAI,EAAGA,EAAIooE,EAAKpoE,GAAK,EAC5B8qE,EAAK9lC,KAAMhlC,EAAGA,EAAI,EAEpB,OAAOglC,OAGTN,EAAOX,UAAUi8C,OAAS,WACxB,GAAI5X,GAAMpjC,KAAK3kC,MACf,IAAI+nE,EAAM,IAAM,EACd,KAAM,IAAIiK,YAAW,4CAEvB,KAAK,GAAIryE,GAAI,EAAGA,EAAIooE,EAAKpoE,GAAK,EAC5B8qE,EAAK9lC,KAAMhlC,EAAGA,EAAI,GAClB8qE,EAAK9lC,KAAMhlC,EAAI,EAAGA,EAAI,EAExB,OAAOglC,OAGTN,EAAOX,UAAUk8C,OAAS,WACxB,GAAI7X,GAAMpjC,KAAK3kC,MACf,IAAI+nE,EAAM,IAAM,EACd,KAAM,IAAIiK,YAAW,4CAEvB,KAAK,GAAIryE,GAAI,EAAGA,EAAIooE,EAAKpoE,GAAK,EAC5B8qE,EAAK9lC,KAAMhlC,EAAGA,EAAI,GAClB8qE,EAAK9lC,KAAMhlC,EAAI,EAAGA,EAAI,GACtB8qE,EAAK9lC,KAAMhlC,EAAI,EAAGA,EAAI,GACtB8qE,EAAK9lC,KAAMhlC,EAAI,EAAGA,EAAI,EAExB,OAAOglC,OAGTN,EAAOX,UAAUuG,SAAW,WAC1B,GAAIjqC,GAAuB,EAAd2kC,KAAK3kC,MAClB,OAAe,KAAXA,EAAqB,GACA,IAArBktC,UAAUltC,OAAqB68E,EAAUl4C,KAAM,EAAG3kC,GAC/C28E,EAAa99B,MAAMla,KAAMuI,YAGlC7I,EAAOX,UAAUm8C,OAAS,SAAiBlnB,GACzC,IAAKt0B,EAAO2f,SAAS2U,GAAI,KAAM,IAAIqX,WAAU,4BAC7C,OAAIrrC,QAASg0B,GACsB,IAA5Bt0B,EAAOm7C,QAAQ76C,KAAMg0B,IAG9Bt0B,EAAOX,UAAU+T,QAAU,WACzB,GAAI6oB,GAAM,GACN/zD,EAAMzM,EAAQmqE,iBAKlB,OAJItlC,MAAK3kC,OAAS,IAChBsgE,EAAM37B,KAAKsF,SAAS,MAAO,EAAG19B,GAAK4pC,MAAM,SAASnG,KAAK,KACnDrL,KAAK3kC,OAASuM,IAAK+zD,GAAO,UAEzB,WAAaA,EAAM,KAG5Bj8B,EAAOX,UAAU87C,QAAU,SAAkBt7B,EAAQmd,EAAOzT,EAAKkyB,EAAWC,GAC1E,IAAK17C,EAAO2f,SAASE,GACnB,KAAM,IAAI8rB,WAAU,4BAgBtB,IAbctqC,SAAV27B,IACFA,EAAQ,GAEE37B,SAARkoB,IACFA,EAAM1J,EAASA,EAAOlkD,OAAS,GAEf0lC,SAAdo6C,IACFA,EAAY,GAEEp6C,SAAZq6C,IACFA,EAAUp7C,KAAK3kC,QAGbqhE,EAAQ,GAAKzT,EAAM1J,EAAOlkD,QAAU8/E,EAAY,GAAKC,EAAUp7C,KAAK3kC,OACtE,KAAM,IAAIgyE,YAAW,qBAGvB,IAAI8N,GAAaC,GAAW1e,GAASzT,EACnC,MAAO,EAET,IAAIkyB,GAAaC,EACf,OAAO,CAET,IAAI1e,GAASzT,EACX,MAAO,EAQT,IALAyT,KAAW,EACXzT,KAAS,EACTkyB,KAAe,EACfC,KAAa,EAETp7C,OAASuf,EAAQ,MAAO,EAS5B,KAAK,GAPDyxB,GAAIoK,EAAUD,EACdL,EAAI7xB,EAAMyT,EACV0G,EAAMzG,KAAK90D,IAAImpE,EAAG8J,GAElBO,EAAWr7C,KAAKgM,MAAMmvC,EAAWC,GACjCE,EAAa/7B,EAAOvT,MAAM0wB,EAAOzT,GAE5BjuD,EAAI,EAAGA,EAAIooE,IAAOpoE,EACzB,GAAIqgF,EAASrgF,KAAOsgF,EAAWtgF,GAAI,CACjCg2E,EAAIqK,EAASrgF,GACb8/E,EAAIQ,EAAWtgF,EACf,OAIJ,MAAIg2E,GAAI8J,GAAU,EACdA,EAAI9J,EAAU,EACX,GA6GTtxC,EAAOX,UAAUw8C,SAAW,SAAmBjwC,EAAKssC,EAAY3Y,GAC9D,MAAOj/B,MAAKkL,QAAQI,EAAKssC,EAAY3Y,MAAc,GAGrDv/B,EAAOX,UAAUmM,QAAU,SAAkBI,EAAKssC,EAAY3Y,GAC5D,MAAOsZ,GAAqBv4C,KAAMsL,EAAKssC,EAAY3Y,GAAU,IAG/Dv/B,EAAOX,UAAUkwC,YAAc,SAAsB3jC,EAAKssC,EAAY3Y,GACpE,MAAOsZ,GAAqBv4C,KAAMsL,EAAKssC,EAAY3Y,GAAU,IAiD/Dv/B,EAAOX,UAAUoU,MAAQ,SAAgB1E,EAAQwqB,EAAQ59D,EAAQ4jE,GAC/D,GAAel+B,SAAXk4B,EACFgG,EAAW,OACX5jE,EAAS2kC,KAAK3kC,OACd49D,EAAS,MACJ,IAAel4B,SAAX1lC,GAA0C,gBAAX49D,GACxCgG,EAAWhG,EACX59D,EAAS2kC,KAAK3kC,OACd49D,EAAS,MACJ,CAAA,IAAI4M,SAAS5M,GAUlB,KAAM,IAAIh+D,OACR,0EAVFg+D,IAAkB,EACd4M,SAASxqE,IACXA,GAAkB,EACD0lC,SAAbk+B,IAAwBA,EAAW,UAEvCA,EAAW5jE,EACXA,EAAS0lC,QAQb,GAAI6gC,GAAY5hC,KAAK3kC,OAAS49D,CAG9B,KAFel4B,SAAX1lC,GAAwBA,EAASumE,KAAWvmE,EAASumE,GAEpDnzB,EAAOpzC,OAAS,IAAMA,EAAS,GAAK49D,EAAS,IAAOA,EAASj5B,KAAK3kC,OACrE,KAAM,IAAIgyE,YAAW,yCAGlBpO,KAAUA,EAAW,OAG1B,KADA,GAAI8Y,IAAc,IAEhB,OAAQ9Y,GACN,IAAK,MACH,MAAO6Z,GAAS94C,KAAMyO,EAAQwqB,EAAQ59D,EAExC,KAAK,OACL,IAAK,QACH,MAAO29E,GAAUh5C,KAAMyO,EAAQwqB,EAAQ59D,EAEzC,KAAK,QACH,MAAO49E,GAAWj5C,KAAMyO,EAAQwqB,EAAQ59D,EAE1C,KAAK,SACL,IAAK,SACH,MAAO69E,GAAYl5C,KAAMyO,EAAQwqB,EAAQ59D,EAE3C,KAAK,SACH,MAAO89E,GAAYn5C,KAAMyO,EAAQwqB,EAAQ59D,EAE3C,KAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,MAAO+9E,GAAUp5C,KAAMyO,EAAQwqB,EAAQ59D,EAEzC,SACE,GAAI08E,EAAa,KAAM,IAAI1M,WAAU,qBAAuBpM,EAC5DA,IAAY,GAAKA,GAAU9oB,cAC3B4hC,GAAc,IAKtBr4C,EAAOX,UAAUgnC,OAAS,WACxB,OACE3pE,KAAM,SACNmtC,KAAM2U,MAAMnf,UAAUiN,MAAM5wC,KAAK4kC,KAAKgmC,MAAQhmC,KAAM,IAkFxD,IAAI65C,IAAuB,IA6D3Bn6C,GAAOX,UAAUiN,MAAQ,SAAgB0wB,EAAOzT,GAC9C,GAAIma,GAAMpjC,KAAK3kC,MACfqhE,KAAUA,EACVzT,EAAcloB,SAARkoB,EAAoBma,IAAQna,EAE9ByT,EAAQ,GACVA,GAAS0G,EACL1G,EAAQ,IAAGA,EAAQ,IACdA,EAAQ0G,IACjB1G,EAAQ0G,GAGNna,EAAM,GACRA,GAAOma,EACHna,EAAM,IAAGA,EAAM,IACVA,EAAMma,IACfna,EAAMma,GAGJna,EAAMyT,IAAOzT,EAAMyT,EAEvB,IAAI0J,EACJ,IAAI1mC,EAAOq3C,oBACT3Q,EAASpmC,KAAK0lC,SAAShJ,EAAOzT,GAC9Bmd,EAAOyQ,UAAYn3C,EAAOX,cACrB,CACL,GAAIonC,GAAWld,EAAMyT,CACrB0J,GAAS,GAAI1mC,GAAOymC,EAAUplC,OAC9B,KAAK,GAAI/lC,GAAI,EAAGA,EAAImrE,IAAYnrE,EAC9BorE,EAAOprE,GAAKglC,KAAKhlC,EAAI0hE,GAIzB,MAAO0J,IAST1mC,EAAOX,UAAUy8C,WAAa,SAAqBviB,EAAQvqB,EAAY+0B,GACrExK,GAAkB,EAClBvqB,GAA0B,EACrB+0B,GAAUqW,EAAY7gB,EAAQvqB,EAAY1O,KAAK3kC,OAKpD,KAHA,GAAIiwC,GAAMtL,KAAKi5B,GACXwiB,EAAM,EACNzgF,EAAI,IACCA,EAAI0zC,IAAe+sC,GAAO,MACjCnwC,GAAOtL,KAAKi5B,EAASj+D,GAAKygF,CAG5B,OAAOnwC,IAGT5L,EAAOX,UAAU28C,WAAa,SAAqBziB,EAAQvqB,EAAY+0B,GACrExK,GAAkB,EAClBvqB,GAA0B,EACrB+0B,GACHqW,EAAY7gB,EAAQvqB,EAAY1O,KAAK3kC,OAKvC,KAFA,GAAIiwC,GAAMtL,KAAKi5B,IAAWvqB,GACtB+sC,EAAM,EACH/sC,EAAa,IAAM+sC,GAAO,MAC/BnwC,GAAOtL,KAAKi5B,IAAWvqB,GAAc+sC,CAGvC,OAAOnwC,IAGT5L,EAAOX,UAAUg7B,UAAY,SAAoBd,EAAQwK,GAEvD,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACpC2kC,KAAKi5B,IAGdv5B,EAAOX,UAAUwnC,aAAe,SAAuBtN,EAAQwK,GAE7D,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACpC2kC,KAAKi5B,GAAWj5B,KAAKi5B,EAAS,IAAM,GAG7Cv5B,EAAOX,UAAUynC,aAAe,SAAuBvN,EAAQwK,GAE7D,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACnC2kC,KAAKi5B,IAAW,EAAKj5B,KAAKi5B,EAAS,IAG7Cv5B,EAAOX,UAAU0nC,aAAe,SAAuBxN,EAAQwK,GAG7D,MAFKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,SAElC2kC,KAAKi5B,GACTj5B,KAAKi5B,EAAS,IAAM,EACpBj5B,KAAKi5B,EAAS,IAAM,IACD,SAAnBj5B,KAAKi5B,EAAS,IAGrBv5B,EAAOX,UAAU2nC,aAAe,SAAuBzN,EAAQwK,GAG7D,MAFKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QAEpB,SAAf2kC,KAAKi5B,IACTj5B,KAAKi5B,EAAS,IAAM,GACrBj5B,KAAKi5B,EAAS,IAAM,EACrBj5B,KAAKi5B,EAAS,KAGlBv5B,EAAOX,UAAU48C,UAAY,SAAoB1iB,EAAQvqB,EAAY+0B,GACnExK,GAAkB,EAClBvqB,GAA0B,EACrB+0B,GAAUqW,EAAY7gB,EAAQvqB,EAAY1O,KAAK3kC,OAKpD,KAHA,GAAIiwC,GAAMtL,KAAKi5B,GACXwiB,EAAM,EACNzgF,EAAI,IACCA,EAAI0zC,IAAe+sC,GAAO,MACjCnwC,GAAOtL,KAAKi5B,EAASj+D,GAAKygF,CAM5B,OAJAA,IAAO,IAEHnwC,GAAOmwC,IAAKnwC,GAAOqxB,KAAKU,IAAI,EAAG,EAAI3uB,IAEhCpD,GAGT5L,EAAOX,UAAU68C,UAAY,SAAoB3iB,EAAQvqB,EAAY+0B,GACnExK,GAAkB,EAClBvqB,GAA0B,EACrB+0B,GAAUqW,EAAY7gB,EAAQvqB,EAAY1O,KAAK3kC,OAKpD,KAHA,GAAIL,GAAI0zC,EACJ+sC,EAAM,EACNnwC,EAAMtL,KAAKi5B,IAAWj+D,GACnBA,EAAI,IAAMygF,GAAO,MACtBnwC,GAAOtL,KAAKi5B,IAAWj+D,GAAKygF,CAM9B,OAJAA,IAAO,IAEHnwC,GAAOmwC,IAAKnwC,GAAOqxB,KAAKU,IAAI,EAAG,EAAI3uB,IAEhCpD,GAGT5L,EAAOX,UAAU4nC,SAAW,SAAmB1N,EAAQwK,GAErD,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACtB,IAAf2kC,KAAKi5B,IACF,IAAOj5B,KAAKi5B,GAAU,IAAK,EADAj5B,KAAKi5B,IAI3Cv5B,EAAOX,UAAU6nC,YAAc,SAAsB3N,EAAQwK,GACtDA,GAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,OAC3C,IAAIiwC,GAAMtL,KAAKi5B,GAAWj5B,KAAKi5B,EAAS,IAAM,CAC9C,OAAc,OAAN3tB,EAAsB,WAANA,EAAmBA,GAG7C5L,EAAOX,UAAU8nC,YAAc,SAAsB5N,EAAQwK,GACtDA,GAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,OAC3C,IAAIiwC,GAAMtL,KAAKi5B,EAAS,GAAMj5B,KAAKi5B,IAAW,CAC9C,OAAc,OAAN3tB,EAAsB,WAANA,EAAmBA,GAG7C5L,EAAOX,UAAU+nC,YAAc,SAAsB7N,EAAQwK,GAG3D,MAFKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QAEnC2kC,KAAKi5B,GACVj5B,KAAKi5B,EAAS,IAAM,EACpBj5B,KAAKi5B,EAAS,IAAM,GACpBj5B,KAAKi5B,EAAS,IAAM,IAGzBv5B,EAAOX,UAAUgoC,YAAc,SAAsB9N,EAAQwK,GAG3D,MAFKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QAEnC2kC,KAAKi5B,IAAW,GACrBj5B,KAAKi5B,EAAS,IAAM,GACpBj5B,KAAKi5B,EAAS,IAAM,EACpBj5B,KAAKi5B,EAAS,IAGnBv5B,EAAOX,UAAUioC,YAAc,SAAsB/N,EAAQwK,GAE3D,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACpC0oE,EAAQ7zB,KAAKlQ,KAAMi5B,GAAQ,EAAM,GAAI,IAG9Cv5B,EAAOX,UAAUkoC,YAAc,SAAsBhO,EAAQwK,GAE3D,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACpC0oE,EAAQ7zB,KAAKlQ,KAAMi5B,GAAQ,EAAO,GAAI,IAG/Cv5B,EAAOX,UAAUmoC,aAAe,SAAuBjO,EAAQwK,GAE7D,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACpC0oE,EAAQ7zB,KAAKlQ,KAAMi5B,GAAQ,EAAM,GAAI,IAG9Cv5B,EAAOX,UAAUooC,aAAe,SAAuBlO,EAAQwK,GAE7D,MADKA,IAAUqW,EAAY7gB,EAAQ,EAAGj5B,KAAK3kC,QACpC0oE,EAAQ7zB,KAAKlQ,KAAMi5B,GAAQ,EAAO,GAAI,IAS/Cv5B,EAAOX,UAAU88C,YAAc,SAAsB97E,EAAOk5D,EAAQvqB,EAAY+0B,GAI9E,GAHA1jE,GAASA,EACTk5D,GAAkB,EAClBvqB,GAA0B,GACrB+0B,EAAU,CACb,GAAIqY,GAAWnf,KAAKU,IAAI,EAAG,EAAI3uB,GAAc,CAC7CsrC,GAASh6C,KAAMjgC,EAAOk5D,EAAQvqB,EAAYotC,EAAU,GAGtD,GAAIL,GAAM,EACNzgF,EAAI,CAER,KADAglC,KAAKi5B,GAAkB,IAARl5D,IACN/E,EAAI0zC,IAAe+sC,GAAO,MACjCz7C,KAAKi5B,EAASj+D,GAAM+E,EAAQ07E,EAAO,GAGrC,OAAOxiB,GAASvqB,GAGlBhP,EAAOX,UAAUg9C,YAAc,SAAsBh8E,EAAOk5D,EAAQvqB,EAAY+0B,GAI9E,GAHA1jE,GAASA,EACTk5D,GAAkB,EAClBvqB,GAA0B,GACrB+0B,EAAU,CACb,GAAIqY,GAAWnf,KAAKU,IAAI,EAAG,EAAI3uB,GAAc,CAC7CsrC,GAASh6C,KAAMjgC,EAAOk5D,EAAQvqB,EAAYotC,EAAU,GAGtD,GAAI9gF,GAAI0zC,EAAa,EACjB+sC,EAAM,CAEV,KADAz7C,KAAKi5B,EAASj+D,GAAa,IAAR+E,IACV/E,GAAK,IAAMygF,GAAO,MACzBz7C,KAAKi5B,EAASj+D,GAAM+E,EAAQ07E,EAAO,GAGrC,OAAOxiB,GAASvqB,GAGlBhP,EAAOX,UAAUunC,WAAa,SAAqBvmE,EAAOk5D,EAAQwK,GAMhE,MALA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,IAAM,GACjDv5B,EAAOq3C,sBAAqBh3E,EAAQ48D,KAAKyI,MAAMrlE,IACpDigC,KAAKi5B,GAAmB,IAARl5D,EACTk5D,EAAS,GAWlBv5B,EAAOX,UAAUqoC,cAAgB,SAAwBrnE,EAAOk5D,EAAQwK,GAUtE,MATA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,MAAQ,GACpDv5B,EAAOq3C,qBACT/2C,KAAKi5B,GAAmB,IAARl5D,EAChBigC,KAAKi5B,EAAS,GAAMl5D,IAAU,GAE9Bk6E,EAAkBj6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAGlBv5B,EAAOX,UAAUsoC,cAAgB,SAAwBtnE,EAAOk5D,EAAQwK,GAUtE,MATA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,MAAQ,GACpDv5B,EAAOq3C,qBACT/2C,KAAKi5B,GAAWl5D,IAAU,EAC1BigC,KAAKi5B,EAAS,GAAc,IAARl5D,GAEpBk6E,EAAkBj6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAUlBv5B,EAAOX,UAAUuoC,cAAgB,SAAwBvnE,EAAOk5D,EAAQwK,GAYtE,MAXA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,WAAY,GACxDv5B,EAAOq3C,qBACT/2C,KAAKi5B,EAAS,GAAMl5D,IAAU,GAC9BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,GAC9BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,EAC9BigC,KAAKi5B,GAAmB,IAARl5D,GAEhBm6E,EAAkBl6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAGlBv5B,EAAOX,UAAUwoC,cAAgB,SAAwBxnE,EAAOk5D,EAAQwK,GAYtE,MAXA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,WAAY,GACxDv5B,EAAOq3C,qBACT/2C,KAAKi5B,GAAWl5D,IAAU,GAC1BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,GAC9BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,EAC9BigC,KAAKi5B,EAAS,GAAc,IAARl5D,GAEpBm6E,EAAkBl6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAGlBv5B,EAAOX,UAAUi9C,WAAa,SAAqBj8E,EAAOk5D,EAAQvqB,EAAY+0B,GAG5E,GAFA1jE,GAASA,EACTk5D,GAAkB,GACbwK,EAAU,CACb,GAAIwY,GAAQtf,KAAKU,IAAI,EAAG,EAAI3uB,EAAa,EAEzCsrC,GAASh6C,KAAMjgC,EAAOk5D,EAAQvqB,EAAYutC,EAAQ,GAAIA,GAGxD,GAAIjhF,GAAI,EACJygF,EAAM,EACNS,EAAM,CAEV,KADAl8C,KAAKi5B,GAAkB,IAARl5D,IACN/E,EAAI0zC,IAAe+sC,GAAO,MAC7B17E,EAAQ,GAAa,IAARm8E,GAAsC,IAAzBl8C,KAAKi5B,EAASj+D,EAAI,KAC9CkhF,EAAM,GAERl8C,KAAKi5B,EAASj+D,IAAO+E,EAAQ07E,GAAQ,GAAKS,EAAM,GAGlD,OAAOjjB,GAASvqB,GAGlBhP,EAAOX,UAAUo9C,WAAa,SAAqBp8E,EAAOk5D,EAAQvqB,EAAY+0B,GAG5E,GAFA1jE,GAASA,EACTk5D,GAAkB,GACbwK,EAAU,CACb,GAAIwY,GAAQtf,KAAKU,IAAI,EAAG,EAAI3uB,EAAa,EAEzCsrC,GAASh6C,KAAMjgC,EAAOk5D,EAAQvqB,EAAYutC,EAAQ,GAAIA,GAGxD,GAAIjhF,GAAI0zC,EAAa,EACjB+sC,EAAM,EACNS,EAAM,CAEV,KADAl8C,KAAKi5B,EAASj+D,GAAa,IAAR+E,IACV/E,GAAK,IAAMygF,GAAO,MACrB17E,EAAQ,GAAa,IAARm8E,GAAsC,IAAzBl8C,KAAKi5B,EAASj+D,EAAI,KAC9CkhF,EAAM,GAERl8C,KAAKi5B,EAASj+D,IAAO+E,EAAQ07E,GAAQ,GAAKS,EAAM,GAGlD,OAAOjjB,GAASvqB,GAGlBhP,EAAOX,UAAUyoC,UAAY,SAAoBznE,EAAOk5D,EAAQwK,GAO9D,MANA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,KAAM,KACjDv5B,EAAOq3C,sBAAqBh3E,EAAQ48D,KAAKyI,MAAMrlE,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtCigC,KAAKi5B,GAAmB,IAARl5D,EACTk5D,EAAS,GAGlBv5B,EAAOX,UAAU0oC,aAAe,SAAuB1nE,EAAOk5D,EAAQwK,GAUpE,MATA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,OAAQ,OACpDv5B,EAAOq3C,qBACT/2C,KAAKi5B,GAAmB,IAARl5D,EAChBigC,KAAKi5B,EAAS,GAAMl5D,IAAU,GAE9Bk6E,EAAkBj6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAGlBv5B,EAAOX,UAAU2oC,aAAe,SAAuB3nE,EAAOk5D,EAAQwK,GAUpE,MATA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,OAAQ,OACpDv5B,EAAOq3C,qBACT/2C,KAAKi5B,GAAWl5D,IAAU,EAC1BigC,KAAKi5B,EAAS,GAAc,IAARl5D,GAEpBk6E,EAAkBj6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAGlBv5B,EAAOX,UAAU4oC,aAAe,SAAuB5nE,EAAOk5D,EAAQwK,GAYpE,MAXA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,YAAY,YACxDv5B,EAAOq3C,qBACT/2C,KAAKi5B,GAAmB,IAARl5D,EAChBigC,KAAKi5B,EAAS,GAAMl5D,IAAU,EAC9BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,GAC9BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,IAE9Bm6E,EAAkBl6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAGlBv5B,EAAOX,UAAU6oC,aAAe,SAAuB7nE,EAAOk5D,EAAQwK,GAapE,MAZA1jE,IAASA,EACTk5D,GAAkB,EACbwK,GAAUuW,EAASh6C,KAAMjgC,EAAOk5D,EAAQ,EAAG,YAAY,YACxDl5D,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxC2/B,EAAOq3C,qBACT/2C,KAAKi5B,GAAWl5D,IAAU,GAC1BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,GAC9BigC,KAAKi5B,EAAS,GAAMl5D,IAAU,EAC9BigC,KAAKi5B,EAAS,GAAc,IAARl5D,GAEpBm6E,EAAkBl6C,KAAMjgC,EAAOk5D,GAAQ,GAElCA,EAAS,GAgBlBv5B,EAAOX,UAAU8oC,aAAe,SAAuB9nE,EAAOk5D,EAAQwK,GACpE,MAAO2W,GAAWp6C,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAG/C/jC,EAAOX,UAAU+oC,aAAe,SAAuB/nE,EAAOk5D,EAAQwK,GACpE,MAAO2W,GAAWp6C,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAWhD/jC,EAAOX,UAAUgpC,cAAgB,SAAwBhoE,EAAOk5D,EAAQwK,GACtE,MAAO4W,GAAYr6C,KAAMjgC,EAAOk5D,GAAQ,EAAMwK,IAGhD/jC,EAAOX,UAAUipC,cAAgB,SAAwBjoE,EAAOk5D,EAAQwK,GACtE,MAAO4W,GAAYr6C,KAAMjgC,EAAOk5D,GAAQ,EAAOwK,IAGjD/jC,EAAOX,UAAU6F,KAAO,SAAe2a,EAAQ68B,EAAa1f,EAAOzT,GAOjE,GANKyT,IAAOA,EAAQ,GACfzT,GAAe,IAARA,IAAWA,EAAMjpB,KAAK3kC,QAC9B+gF,GAAe78B,EAAOlkD,SAAQ+gF,EAAc78B,EAAOlkD,QAClD+gF,IAAaA,EAAc,GAC5BnzB,EAAM,GAAKA,EAAMyT,IAAOzT,EAAMyT,GAE9BzT,IAAQyT,EAAO,MAAO,EAC1B,IAAsB,IAAlBnd,EAAOlkD,QAAgC,IAAhB2kC,KAAK3kC,OAAc,MAAO,EAErD,IAAI+gF,EAAc,EAChB,KAAM,IAAI/O,YAAW,4BAEvB,IAAI3Q,EAAQ,GAAKA,GAAS18B,KAAK3kC,OAAQ,KAAM,IAAIgyE,YAAW,4BAC5D,IAAIpkB,EAAM,EAAG,KAAM,IAAIokB,YAAW,0BAE9BpkB,GAAMjpB,KAAK3kC,SAAQ4tD,EAAMjpB,KAAK3kC,QAC9BkkD,EAAOlkD,OAAS+gF,EAAcnzB,EAAMyT,IACtCzT,EAAM1J,EAAOlkD,OAAS+gF,EAAc1f,EAGtC,IACI1hE,GADAooE,EAAMna,EAAMyT,CAGhB,IAAI18B,OAASuf,GAAUmd,EAAQ0f,GAAeA,EAAcnzB,EAC1D,IAAKjuD,EAAIooE,EAAM,EAAGpoE,GAAK,IAAKA,EAC1BukD,EAAOvkD,EAAIohF,GAAep8C,KAAKhlC,EAAI0hE,OAEhC,IAAI0G,EAAM,MAAS1jC,EAAOq3C,oBAC/B,IAAK/7E,EAAI,EAAGA,EAAIooE,IAAOpoE,EACrBukD,EAAOvkD,EAAIohF,GAAep8C,KAAKhlC,EAAI0hE,OAGrCpmB,YAAWvX,UAAUmC,IAAI9lC,KACvBmkD,EACAvf,KAAK0lC,SAAShJ,EAAOA,EAAQ0G,GAC7BgZ,EAIJ,OAAOhZ,IAGT1jC,EAAOX,UAAUkpC,KAAO,SAAe38B,EAAKoxB,EAAOzT,EAAKgW,GACtD,GAAmB,gBAAR3zB,GAAkB,CAS3B,GARqB,gBAAVoxB,IACTuC,EAAWvC,EACXA,EAAQ,EACRzT,EAAMjpB,KAAK3kC,QACa,gBAAR4tD,KAChBgW,EAAWhW,EACXA,EAAMjpB,KAAK3kC,QAEM,IAAfiwC,EAAIjwC,OAAc,CACpB,GAAIsmC,GAAO2J,EAAIktB,WAAW,EACtB72B,GAAO,MACT2J,EAAM3J,GAGV,GAAiBZ,SAAbk+B,GAA8C,gBAAbA,GACnC,KAAM,IAAIoM,WAAU,4BAEtB,IAAwB,gBAAbpM,KAA0Bv/B,EAAOimC,WAAW1G,GACrD,KAAM,IAAIoM,WAAU,qBAAuBpM,OAErB,gBAAR3zB,KAChBA,GAAY,IAGd,IAAIoxB,EAAQ,GAAK18B,KAAK3kC,OAASqhE,GAAS18B,KAAK3kC,OAAS4tD,EACpD,KAAM,IAAIokB,YAAW,qBAGvB,IAAIpkB,GAAOyT,EACT,MAAO18B,KAGT08B,MAAkB,EAClBzT,EAAcloB,SAARkoB,EAAoBjpB,KAAK3kC,OAAS4tD,IAAQ,EAE3C3d,IAAKA,EAAM,EAEhB,IAAItwC,EACJ,IAAmB,gBAARswC,GACT,IAAKtwC,EAAI0hE,EAAO1hE,EAAIiuD,IAAOjuD,EACzBglC,KAAKhlC,GAAKswC,MAEP,CACL,GAAIg4B,GAAQ5jC,EAAO2f,SAAS/T,GACxBA,EACA82B,EAAY,GAAI1iC,GAAO4L,EAAK2zB,GAAU35B,YACtC89B,EAAME,EAAMjoE,MAChB,KAAKL,EAAI,EAAGA,EAAIiuD,EAAMyT,IAAS1hE,EAC7BglC,KAAKhlC,EAAI0hE,GAAS4G,EAAMtoE,EAAIooE,GAIhC,MAAOpjC,MAIT,IAAIu6C,IAAoB,uBAmIrBn/E,KAAK4kC,KAAqB,mBAATlB,MAAuBA,KAAyB,mBAAXF,QAAyBA,aAC/E0pC,YAAY,GAAGvE,QAAU,GAAGsY,QAAU,KAAKC,IAAI,SAASvhF,EAAQQ,EAAOJ,GAC1E,YASA,SAASohF,KAEP,IAAK,GADD56C,GAAO,mEACF3mC,EAAI,EAAGooE,EAAMzhC,EAAKtmC,OAAQL,EAAIooE,IAAOpoE,EAC5CwtE,EAAOxtE,GAAK2mC,EAAK3mC,GACjBwhF,EAAU76C,EAAK62B,WAAWx9D,IAAMA,CAGlCwhF,GAAU,IAAIhkB,WAAW,IAAM,GAC/BgkB,EAAU,IAAIhkB,WAAW,IAAM,GAKjC,QAASyM,GAAaiE,GACpB,GAAIluE,GAAGmpE,EAAGiF,EAAG9oB,EAAK+oB,EAAc7D,EAC5BpC,EAAM8F,EAAI7tE,MAEd,IAAI+nE,EAAM,EAAI,EACZ,KAAM,IAAInoE,OAAM,iDAGlBouE,GAAgC,MAAjBH,EAAI9F,EAAM,GAAa,EAAqB,MAAjB8F,EAAI9F,EAAM,GAAa,EAAI,EAErEoC,EAAM,GAAI+D,GAAU,EAANnG,EAAU,EAAIiG,GAE5BD,EAAIC,EAAe,EAAIjG,EAAM,EAAIA,CAEjC,IAAI+F,GAAI,CAER,KAAKnuE,EAAI,EAAGmpE,EAAI,EAAGnpE,EAAIouE,EAAGpuE,GAAK,EAAGmpE,GAAK,EACrC7jB,EAAOk8B,EAAUtT,EAAI1Q,WAAWx9D,KAAO,GAAOwhF,EAAUtT,EAAI1Q,WAAWx9D,EAAI,KAAO,GAAOwhF,EAAUtT,EAAI1Q,WAAWx9D,EAAI,KAAO,EAAKwhF,EAAUtT,EAAI1Q,WAAWx9D,EAAI,IAC/JwqE,EAAI2D,KAAQ7oB,GAAO,GAAM,IACzBklB,EAAI2D,KAAQ7oB,GAAO,EAAK,IACxBklB,EAAI2D,KAAa,IAAN7oB,CAYb,OATqB,KAAjB+oB,GACF/oB,EAAOk8B,EAAUtT,EAAI1Q,WAAWx9D,KAAO,EAAMwhF,EAAUtT,EAAI1Q,WAAWx9D,EAAI,KAAO,EACjFwqE,EAAI2D,KAAa,IAAN7oB,GACe,IAAjB+oB,IACT/oB,EAAOk8B,EAAUtT,EAAI1Q,WAAWx9D,KAAO,GAAOwhF,EAAUtT,EAAI1Q,WAAWx9D,EAAI,KAAO,EAAMwhF,EAAUtT,EAAI1Q,WAAWx9D,EAAI,KAAO,EAC5HwqE,EAAI2D,KAAQ7oB,GAAO,EAAK,IACxBklB,EAAI2D,KAAa,IAAN7oB,GAGNklB,EAGT,QAASmE,GAAiBD,GACxB,MAAOlB,GAAOkB,GAAO,GAAK,IAAQlB,EAAOkB,GAAO,GAAK,IAAQlB,EAAOkB,GAAO,EAAI,IAAQlB,EAAa,GAANkB,GAGhG,QAAS+S,GAAahT,EAAO/M,EAAOzT,GAGlC,IAAK,GAFD3I,GACAvjD,KACK/B,EAAI0hE,EAAO1hE,EAAIiuD,EAAKjuD,GAAK,EAChCslD,GAAOmpB,EAAMzuE,IAAM,KAAOyuE,EAAMzuE,EAAI,IAAM,GAAMyuE,EAAMzuE,EAAI,GAC1D+B,EAAOq0C,KAAKu4B,EAAgBrpB,GAE9B,OAAOvjD,GAAOsuC,KAAK,IAGrB,QAASw3B,GAAe4G,GAQtB,IAAK,GAPDnpB,GACA8iB,EAAMqG,EAAMpuE,OACZwuE,EAAazG,EAAM,EACnBrmE,EAAS,GACTykD,KACAk7B,EAAiB,MAEZ1hF,EAAI,EAAG2hF,EAAOvZ,EAAMyG,EAAY7uE,EAAI2hF,EAAM3hF,GAAK0hF,EACtDl7B,EAAMpQ,KAAKqrC,EAAYhT,EAAOzuE,EAAIA,EAAI0hF,EAAkBC,EAAOA,EAAQ3hF,EAAI0hF,GAkB7E,OAfmB,KAAf7S,GACFvpB,EAAMmpB,EAAMrG,EAAM,GAClBrmE,GAAUyrE,EAAOloB,GAAO,GACxBvjD,GAAUyrE,EAAQloB,GAAO,EAAK,IAC9BvjD,GAAU,MACc,IAAf8sE,IACTvpB,GAAOmpB,EAAMrG,EAAM,IAAM,GAAMqG,EAAMrG,EAAM,GAC3CrmE,GAAUyrE,EAAOloB,GAAO,IACxBvjD,GAAUyrE,EAAQloB,GAAO,EAAK,IAC9BvjD,GAAUyrE,EAAQloB,GAAO,EAAK,IAC9BvjD,GAAU,KAGZykD,EAAMpQ,KAAKr0C,GAEJykD,EAAMnW,KAAK,IAhGpBlwC,EAAQ8pE,YAAcA,EACtB9pE,EAAQ0nE,cAAgBA,CAExB,IAAI2F,MACAgU,KACAjT,EAA4B,mBAAfjzB,YAA6BA,WAAa4H,KAa3Dq+B,UAiFMK,IAAI,SAAS7hF,EAAQQ,EAAOJ,GAClCI,EAAOJ,QAAQJ,EAAQ,SACjB8hF,IAAI,SAAS9hF,EAAQQ,EAAOJ,GAClC,GAAImqC,MAAcA,QAElB/pC,GAAOJ,QAAU+iD,MAAMqD,SAAW,SAAUikB,GAC1C,MAA6B,kBAAtBlgC,EAASlqC,KAAKoqE,SAGjBsX,IAAI,SAAS/hF,EAAQQ,EAAOJ,GAMlC,QAAS4hF,GAAQniB,EAAKoiB,GACpB,GAAKpiB,EAAIv/D,OAAS4hF,IAAa,EAAG,CAChC,GAAI7Z,GAAMxI,EAAIv/D,QAAU4hF,EAAWriB,EAAIv/D,OAAS4hF,EAChDriB,GAAMl7B,EAAO4R,QAAQspB,EAAKsiB,GAAa9Z,GAKzC,IAAK,GAFDoC,MACArsB,EAAK6jC,EAAYpiB,EAAImM,YAAcnM,EAAIkM,YAClC9rE,EAAI,EAAGA,EAAI4/D,EAAIv/D,OAAQL,GAAKiiF,EACnCzX,EAAIp0B,KAAK+H,EAAG/9C,KAAKw/D,EAAK5/D,GAExB,OAAOwqE,GAGT,QAAS2X,GAAS3X,EAAKxM,EAAMgkB,GAG3B,IAAK,GAFDpiB,GAAM,GAAIl7B,GAAOs5B,GACjB7f,EAAK6jC,EAAYpiB,EAAIgN,aAAehN,EAAI+M,aACnC3sE,EAAI,EAAGA,EAAIwqE,EAAInqE,OAAQL,IAC9Bm+C,EAAG/9C,KAAKw/D,EAAK4K,EAAIxqE,GAAQ,EAAJA,GAAO,EAE9B,OAAO4/D,GAGT,QAAST,GAAKS,EAAKzhB,EAAIikC,EAAUJ,GAC1Bt9C,EAAO2f,SAASub,KAAMA,EAAM,GAAIl7B,GAAOk7B,GAC5C,IAAI4K,GAAMrsB,EAAG4jC,EAAQniB,EAAKoiB,GAAYpiB,EAAIv/D,OAASgiF,EACnD,OAAOF,GAAS3X,EAAK4X,EAAUJ,GA/BjC,GAAIt9C,GAAS3kC,EAAQ,UAAU2kC,OAC3Bu9C,EAAU,EACVC,EAAa,GAAIx9C,GAAOu9C,EAAUC,GAAWjV,KAAK,EACtD,IAAIoV,GAAQ,CA+BZ9hF,GAAOJ,SAAYg/D,KAAMA,KAEtB9oB,OAAS,KAAKisC,IAAI,SAASviF,EAAQQ,EAAOJ,GAe7C,QAASq5D,GAAKrb,EAAIr5C,EAAKypC,GACjB7J,EAAO2f,SAASv/C,KAAMA,EAAM,GAAI4/B,GAAO5/B,IACvC4/B,EAAO2f,SAAS9V,KAAOA,EAAO,GAAI7J,GAAO6J,IAE1CzpC,EAAIzE,OAASkiF,EACdz9E,EAAMq5C,EAAGr5C,GACDA,EAAIzE,OAASkiF,IACrBz9E,EAAM4/B,EAAO4R,QAAQxxC,EAAKo9E,GAAaK,GAIzC,KAAI,GADAC,GAAO,GAAI99C,GAAO69C,GAAYE,EAAO,GAAI/9C,GAAO69C,GAC5CviF,EAAI,EAAGA,EAAIuiF,EAAWviF,IAC5BwiF,EAAKxiF,GAAc,GAAT8E,EAAI9E,GACdyiF,EAAKziF,GAAc,GAAT8E,EAAI9E,EAGhB,IAAIm/D,GAAOhhB,EAAGzZ,EAAO4R,QAAQksC,EAAMj0C,IACnC,OAAO4P,GAAGzZ,EAAO4R,QAAQmsC,EAAMtjB,KAGjC,QAASA,GAAK/1C,EAAKtkB,GACjBskB,EAAMA,GAAO,MACb,IAAI+0B,GAAKukC,EAAWt5D,GAChBu5D,KACAtiF,EAAS,CAEb,OADI89C,IAAIzX,EAAM,aAActd,EAAK,yBAE/B+d,OAAQ,SAAUoH,GAKhB,MAJI7J,GAAO2f,SAAS9V,KAAOA,EAAO,GAAI7J,GAAO6J,IAE7Co0C,EAAKvsC,KAAK7H,GACVluC,GAAUkuC,EAAKluC,OACR2kC,MAETg6B,OAAQ,SAAU4jB,GAChB,GAAIhjB,GAAMl7B,EAAO4R,OAAOqsC,GACpBjjF,EAAIoF,EAAM00D,EAAKrb,EAAIr5C,EAAK86D,GAAOzhB,EAAGyhB,EAEtC,OADA+iB,GAAO,KACAC,EAAMljF,EAAE4qC,SAASs4C,GAAOljF,IAKrC,QAASgnC,KACP,GAAIyoC,MAAOn+B,MAAM5wC,KAAKmtC,WAAW8C,KAAK,IACtC,MAAM,IAAIpwC,QACRkvE,EACA,0BACA,mDACE9+B,KAAK,OAeX,QAASpK,GAAKnmC,EAAGI,GACf,IAAI,GAAIF,KAAKF,GACXI,EAAEJ,EAAEE,GAAIA,GAhFZ,GAAI0kC,GAAS3kC,EAAQ,UAAU2kC,OAC3B6O,EAAMxzC,EAAQ,SACdu6D,EAASv6D,EAAQ,YACjB8iF,EAAM9iF,EAAQ,SACdm/D,EAAMn/D,EAAQ,SAEd2iF,GACFI,KAAMvvC,EACN+mB,OAAQA,EACR4E,IAAKA,GAGHqjB,EAAY,GACZL,EAAa,GAAIx9C,GAAO69C,EAAYL,GAAWjV,KAAK,GAqDxD9sE,EAAQi/D,WAAa,SAAUh2C,GAAO,MAAO+1C,GAAK/1C,IAClDjpB,EAAQ8+D,WAAa,SAAU71C,EAAKtkB,GAAO,MAAOq6D,GAAK/1C,EAAKtkB,IAC5D3E,EAAQ4iF,YAAc,SAAS/kB,EAAM53B,GACnC,IAAIA,IAAYA,EAAShmC,KAKvB,MAAO,IAAIskC,GAAOm+C,EAAI7kB,GAJtB,KACE53B,EAAShmC,KAAK4kC,KAAMe,OAAW,GAAIrB,GAAOm+C,EAAI7kB,KAC9C,MAAO13B,GAAOF,EAASE,KAW7BL,GAAM,oBACJ,eACA,iBACA,iBACA,mBACA,aACA,eACA,sBACA,UAAW,SAAUngC,GACrB3F,EAAQ2F,GAAQ,WACd4gC,EAAM,SAAU5gC,EAAM,+BAIvBk9E,QAAQ,GAAGC,QAAQ,GAAGC,QAAQ,GAAGC,WAAW,GAAG9sC,OAAS,KAAK+sC,IAAI,SAASrjF,EAAQQ,EAAOJ,GAY5F,QAASkjF,GAASrN,EAAG5N,GAGnB4N,EAAE5N,GAAO,IAAM,KAAS,EAAQ,GAChC4N,GAAK5N,EAAM,KAAQ,GAAM,GAAK,IAAMA,CAOpC,KAAI,GALAtoE,GAAK,WACLk5D,GAAI,UACJ8Q,GAAI,WACJ0F,EAAK,UAEDxvE,EAAI,EAAGA,EAAIg2E,EAAE31E,OAAQL,GAAK,GAClC,CACE,GAAIsjF,GAAOxjF,EACPyjF,EAAOvqB,EACPwqB,EAAO1Z,EACP2Z,EAAOjU,CAEX1vE,GAAI4jF,EAAO5jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAIkU,EAAOlU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,IAAI,WACpC8pE,EAAI4Z,EAAO5Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,GAAK,WACrCg5D,EAAI0qB,EAAO1qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,YACpCF,EAAI4jF,EAAO5jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAIkU,EAAOlU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,GAAK,YACrC8pE,EAAI4Z,EAAO5Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,IAAI,YACpCg5D,EAAI0qB,EAAO1qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,UACpCF,EAAI4jF,EAAO5jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,EAAK,YACrCwvE,EAAIkU,EAAOlU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,IAAI,YACpC8pE,EAAI4Z,EAAO5Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,IAAI,OACpCg5D,EAAI0qB,EAAO1qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAE,IAAK,IAAI,YACpCF,EAAI4jF,EAAO5jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAE,IAAK,EAAK,YACrCwvE,EAAIkU,EAAOlU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAE,IAAK,IAAI,UACpC8pE,EAAI4Z,EAAO5Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,IAAI,YACpCg5D,EAAI0qB,EAAO1qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAE,IAAK,GAAK,YAErCF,EAAI6jF,EAAO7jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAImU,EAAOnU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,GAAI,YACpC8pE,EAAI6Z,EAAO7Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,GAAK,WACrCg5D,EAAI2qB,EAAO3qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,WACpCF,EAAI6jF,EAAO7jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAImU,EAAOnU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAE,IAAK,EAAK,UACrC8pE,EAAI6Z,EAAO7Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,IAAI,WACpCg5D,EAAI2qB,EAAO3qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,WACpCF,EAAI6jF,EAAO7jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,EAAK,WACrCwvE,EAAImU,EAAOnU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAE,IAAK,GAAI,YACpC8pE,EAAI6Z,EAAO7Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,IAAI,WACpCg5D,EAAI2qB,EAAO3qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,GAAK,YACrCF,EAAI6jF,EAAO7jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAE,IAAK,GAAI,YACpCwvE,EAAImU,EAAOnU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,GAAI,UACpC8pE,EAAI6Z,EAAO7Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,GAAK,YACrCg5D,EAAI2qB,EAAO3qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAE,IAAK,IAAI,YAEpCF,EAAI8jF,EAAO9jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,QACpCwvE,EAAIoU,EAAOpU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,IAAI,YACpC8pE,EAAI8Z,EAAO9Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,GAAK,YACrCg5D,EAAI4qB,EAAO5qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAE,IAAK,IAAI,UACpCF,EAAI8jF,EAAO9jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,YACpCwvE,EAAIoU,EAAOpU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,GAAK,YACrC8pE,EAAI8Z,EAAO9Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,IAAI,WACpCg5D,EAAI4qB,EAAO5qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAE,IAAK,IAAI,YACpCF,EAAI8jF,EAAO9jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAE,IAAK,EAAK,WACrCwvE,EAAIoU,EAAOpU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,IAAI,WACpC8pE,EAAI8Z,EAAO9Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,IAAI,WACpCg5D,EAAI4qB,EAAO5qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,GAAK,UACrCF,EAAI8jF,EAAO9jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAIoU,EAAOpU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAE,IAAK,IAAI,WACpC8pE,EAAI8Z,EAAO9Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,GAAK,WACrCg5D,EAAI4qB,EAAO5qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,WAEpCF,EAAI+jF,EAAO/jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAIqU,EAAOrU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,GAAK,YACrC8pE,EAAI+Z,EAAO/Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,IAAI,YACpCg5D,EAAI6qB,EAAO7qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,UACpCF,EAAI+jF,EAAO/jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAE,IAAK,EAAK,YACrCwvE,EAAIqU,EAAOrU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAG,GAAI,IAAI,YACpC8pE,EAAI+Z,EAAO/Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAE,IAAK,IAAI,SACpCg5D,EAAI6qB,EAAO7qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,YACpCF,EAAI+jF,EAAO/jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,EAAK,YACrCwvE,EAAIqU,EAAOrU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAE,IAAK,IAAI,UACpC8pE,EAAI+Z,EAAO/Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,IAAI,YACpCg5D,EAAI6qB,EAAO7qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAE,IAAK,GAAK,YACrCF,EAAI+jF,EAAO/jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAEh2E,EAAG,GAAI,GAAI,WACpCwvE,EAAIqU,EAAOrU,EAAG1vE,EAAGk5D,EAAG8Q,EAAGkM,EAAEh2E,EAAE,IAAK,IAAI,YACpC8pE,EAAI+Z,EAAO/Z,EAAG0F,EAAG1vE,EAAGk5D,EAAGgd,EAAEh2E,EAAG,GAAI,GAAK,WACrCg5D,EAAI6qB,EAAO7qB,EAAG8Q,EAAG0F,EAAG1vE,EAAGk2E,EAAEh2E,EAAG,GAAI,IAAI,WAEpCF,EAAIgkF,EAAShkF,EAAGwjF,GAChBtqB,EAAI8qB,EAAS9qB,EAAGuqB,GAChBzZ,EAAIga,EAASha,EAAG0Z,GAChBhU,EAAIsU,EAAStU,EAAGiU,GAElB,MAAOvgC,OAAMpjD,EAAGk5D,EAAG8Q,EAAG0F,GAKxB,QAASuU,GAAQxP,EAAGz0E,EAAGk5D,EAAGgd,EAAGr2E,EAAGH,GAE9B,MAAOskF,GAASE,EAAQF,EAASA,EAAShkF,EAAGy0E,GAAIuP,EAAS9N,EAAGx2E,IAAKG,GAAGq5D,GAEvE,QAAS0qB,GAAO5jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAGr2E,EAAGH,GAEhC,MAAOukF,GAAS/qB,EAAI8Q,GAAQ9Q,EAAKwW,EAAI1vE,EAAGk5D,EAAGgd,EAAGr2E,EAAGH,GAEnD,QAASmkF,GAAO7jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAGr2E,EAAGH,GAEhC,MAAOukF,GAAS/qB,EAAIwW,EAAM1F,GAAM0F,EAAK1vE,EAAGk5D,EAAGgd,EAAGr2E,EAAGH,GAEnD,QAASokF,GAAO9jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAGr2E,EAAGH,GAEhC,MAAOukF,GAAQ/qB,EAAI8Q,EAAI0F,EAAG1vE,EAAGk5D,EAAGgd,EAAGr2E,EAAGH,GAExC,QAASqkF,GAAO/jF,EAAGk5D,EAAG8Q,EAAG0F,EAAGwG,EAAGr2E,EAAGH,GAEhC,MAAOukF,GAAQja,GAAK9Q,GAAMwW,GAAK1vE,EAAGk5D,EAAGgd,EAAGr2E,EAAGH,GAI7C,QAASskF,GAAS9N,EAAG8J,GAEnB,GAAImE,IAAW,MAAJjO,IAAmB,MAAJ8J,GACtBoE,GAAOlO,GAAK,KAAO8J,GAAK,KAAOmE,GAAO,GAC1C,OAAQC,IAAO,GAAa,MAAND,EAIxB,QAASD,GAAQtV,EAAKyV,GAEpB,MAAQzV,IAAOyV,EAAQzV,IAAS,GAAKyV,EAzIvC,GAAIC,GAAUrkF,EAAQ,YA4ItBQ,GAAOJ,QAAU,SAAay/D,GAC5B,MAAOwkB,GAAQjlB,KAAKS,EAAKyjB,EAAU,OAGlCgB,YAAY,KAAKC,IAAI,SAASvkF,EAAQQ,EAAOJ,IAC/C,WACC,GAEIokF,GAASC,EAFTC,EAAUz/C,IAIdu/C,GAAU,SAASvmB,GAIjB,IAAK,GAFDt+D,GAEYA,EAHZ4oE,EAAQ,GAAIplB,OAAM8a,GAGbh+D,EAAI,EAAMA,EAAIg+D,EAAMh+D,IACT,IAAT,EAAJA,KAAgBN,EAAoB,WAAhBiiE,KAAKS,UAC9BkG,EAAMtoE,GAAKN,MAAY,EAAJM,IAAa,GAAK,GAGvC,OAAOsoE,IAGLmc,EAAQjgD,QAAUA,OAAOkgD,kBAC3BF,EAAY,SAASxmB,GACnB,GAAIsK,GAAQ,GAAIhtB,YAAW0iB,EAE3B,OADAx5B,QAAOkgD,gBAAgBpc,GAChBA,IAIX/nE,EAAOJ,QAAUqkF,GAAaD,UAI1BI,IAAI,SAAS5kF,EAAQQ,EAAOJ,GAMlC,QAASykF,GAAU5O,EAAG5N,GAGpB4N,EAAE5N,GAAO,IAAM,KAAS,GAAKA,EAAM,GACnC4N,GAAI5N,EAAM,IAAM,GAAM,GAAK,IAAMA,CASjC,KAAI,GAPAuL,GAAIzwB,MAAM,IACVpjD,EAAK,WACLk5D,GAAI,UACJ8Q,GAAI,WACJ0F,EAAK,UACLjwE,GAAI,WAEAS,EAAI,EAAGA,EAAIg2E,EAAE31E,OAAQL,GAAK,GAClC,CAOE,IAAI,GANAsjF,GAAOxjF,EACPyjF,EAAOvqB,EACPwqB,EAAO1Z,EACP2Z,EAAOjU,EACPqV,EAAOtlF,EAEH4pE,EAAI,EAAGA,EAAI,GAAIA,IACvB,CACKA,EAAI,GAAIwK,EAAExK,GAAK6M,EAAEh2E,EAAImpE,GACnBwK,EAAExK,GAAK2b,EAAInR,EAAExK,EAAE,GAAKwK,EAAExK,EAAE,GAAKwK,EAAExK,EAAE,IAAMwK,EAAExK,EAAE,IAAK,EACrD,IAAI3pE,GAAIskF,EAASA,EAASgB,EAAIhlF,EAAG,GAAIilF,EAAQ5b,EAAGnQ,EAAG8Q,EAAG0F,IACrCsU,EAASA,EAASvkF,EAAGo0E,EAAExK,IAAK6b,EAAQ7b,IACrD5pE,GAAIiwE,EACJA,EAAI1F,EACJA,EAAIgb,EAAI9rB,EAAG,IACXA,EAAIl5D,EACJA,EAAIN,EAGNM,EAAIgkF,EAAShkF,EAAGwjF,GAChBtqB,EAAI8qB,EAAS9qB,EAAGuqB,GAChBzZ,EAAIga,EAASha,EAAG0Z,GAChBhU,EAAIsU,EAAStU,EAAGiU,GAChBlkF,EAAIukF,EAASvkF,EAAGslF,GAElB,MAAO3hC,OAAMpjD,EAAGk5D,EAAG8Q,EAAG0F,EAAGjwE,GAK3B,QAASwlF,GAAQvlF,EAAGw5D,EAAG8Q,EAAG0F,GAExB,MAAGhwE,GAAI,GAAYw5D,EAAI8Q,GAAQ9Q,EAAKwW,EACjChwE,EAAI,GAAWw5D,EAAI8Q,EAAI0F,EACvBhwE,EAAI,GAAYw5D,EAAI8Q,EAAM9Q,EAAIwW,EAAM1F,EAAI0F,EACpCxW,EAAI8Q,EAAI0F,EAIjB,QAASwV,GAAQxlF,GAEf,MAAQA,GAAI,GAAO,WAAcA,EAAI,GAAO,WACpCA,EAAI,IAAM,YAAc,UAIlC,QAASskF,GAAS9N,EAAG8J,GAEnB,GAAImE,IAAW,MAAJjO,IAAmB,MAAJ8J,GACtBoE,GAAOlO,GAAK,KAAO8J,GAAK,KAAOmE,GAAO,GAC1C,OAAQC,IAAO,GAAa,MAAND,EAIxB,QAASa,GAAIpW,EAAKyV,GAEhB,MAAQzV,IAAOyV,EAAQzV,IAAS,GAAKyV,EA1EvC,GAAIC,GAAUrkF,EAAQ,YA6EtBQ,GAAOJ,QAAU,SAAcy/D,GAC7B,MAAOwkB,GAAQjlB,KAAKS,EAAKglB,EAAW,IAAI,MAGvCP,YAAY,KAAKY,IAAI,SAASllF,EAAQQ,EAAOJ,GAIhD,GAAIikF,GAAUrkF,EAAQ,aAElB+jF,EAAW,SAAS9N,EAAG8J,GACzB,GAAImE,IAAW,MAAJjO,IAAmB,MAAJ8J,GACtBoE,GAAOlO,GAAK,KAAO8J,GAAK,KAAOmE,GAAO,GAC1C,OAAQC,IAAO,GAAa,MAAND,GAGpBiB,EAAI,SAASC,EAAG1lF,GAClB,MAAQ0lF,KAAM1lF,EAAM0lF,GAAM,GAAK1lF,GAG7B2lF,EAAI,SAASD,EAAG1lF,GAClB,MAAQ0lF,KAAM1lF,GAGZ4lF,EAAK,SAASrP,EAAG8J,EAAGwF,GACtB,MAAStP,GAAI8J,GAAQ9J,EAAKsP,GAGxBC,EAAM,SAASvP,EAAG8J,EAAGwF,GACvB,MAAStP,GAAI8J,EAAM9J,EAAIsP,EAAMxF,EAAIwF,GAG/BE,EAAY,SAASxP,GACvB,MAAQkP,GAAElP,EAAG,GAAKkP,EAAElP,EAAG,IAAMkP,EAAElP,EAAG,KAGhCyP,EAAY,SAASzP,GACvB,MAAQkP,GAAElP,EAAG,GAAKkP,EAAElP,EAAG,IAAMkP,EAAElP,EAAG,KAGhC0P,EAAY,SAAS1P,GACvB,MAAQkP,GAAElP,EAAG,GAAKkP,EAAElP,EAAG,IAAMoP,EAAEpP,EAAG,IAGhC2P,EAAY,SAAS3P,GACvB,MAAQkP,GAAElP,EAAG,IAAMkP,EAAElP,EAAG,IAAMoP,EAAEpP,EAAG,KAGjC4P,EAAc,SAASzW,EAAGf,GAC5B,GAGMtuE,GAAGk5D,EAAG8Q,EAAG0F,EAAGjwE,EAAGW,EAAG0wE,EAAGzW,EAAGn6D,EAAGmpE,EAC3B0c,EAAIC,EAJNC,EAAI,GAAI7iC,OAAM,WAAW,WAAW,WAAW,WAAW,UAAW,WAAW,WAAW,WAAW,WAAW,UAAW,UAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAW,UAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAU,UAAW,UAAW,UAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,WAAW,YACjsB8iC,EAAO,GAAI9iC,OAAM,WAAY,WAAY,WAAY,WAAY,WAAY,WAAY,UAAY,YACnG+iC,EAAI,GAAI/iC,OAAM,GAIpBisB,GAAEf,GAAK,IAAM,KAAS,GAAKA,EAAI,GAC/Be,GAAIf,EAAI,IAAM,GAAM,GAAK,IAAMA,CAC/B,KAAK,GAAIpuE,GAAI,EAAGA,EAAImvE,EAAE9uE,OAAQL,GAAK,GAAI,CACrCF,EAAIkmF,EAAK,GAAIhtB,EAAIgtB,EAAK,GAAIlc,EAAIkc,EAAK,GAAIxW,EAAIwW,EAAK,GAAIzmF,EAAIymF,EAAK,GAAI9lF,EAAI8lF,EAAK,GAAIpV,EAAIoV,EAAK,GAAI7rB,EAAI6rB,EAAK,EACpG,KAAK,GAAI7c,GAAI,EAAGA,EAAI,GAAIA,IAClBA,EAAI,GACN8c,EAAE9c,GAAKgG,EAAEhG,EAAInpE,GAEbimF,EAAE9c,GAAK2a,EAASA,EAASA,EAAS6B,EAAUM,EAAE9c,EAAI,IAAK8c,EAAE9c,EAAI,IAAKuc,EAAUO,EAAE9c,EAAI,MAAO8c,EAAE9c,EAAI,KAEjG0c,EAAK/B,EAASA,EAASA,EAASA,EAAS3pB,EAAGsrB,EAAUlmF,IAAK8lF,EAAG9lF,EAAGW,EAAG0wE,IAAKmV,EAAE5c,IAAK8c,EAAE9c,IAClF2c,EAAKhC,EAAS0B,EAAU1lF,GAAIylF,EAAIzlF,EAAGk5D,EAAG8Q,IACtC3P,EAAIyW,EAAGA,EAAI1wE,EAAGA,EAAIX,EAAGA,EAAIukF,EAAStU,EAAGqW,GAAKrW,EAAI1F,EAAGA,EAAI9Q,EAAGA,EAAIl5D,EAAGA,EAAIgkF,EAAS+B,EAAIC,EAElFE,GAAK,GAAKlC,EAAShkF,EAAGkmF,EAAK,IAAKA,EAAK,GAAKlC,EAAS9qB,EAAGgtB,EAAK,IAAKA,EAAK,GAAKlC,EAASha,EAAGkc,EAAK,IAAKA,EAAK,GAAKlC,EAAStU,EAAGwW,EAAK,IAC3HA,EAAK,GAAKlC,EAASvkF,EAAGymF,EAAK,IAAKA,EAAK,GAAKlC,EAAS5jF,EAAG8lF,EAAK,IAAKA,EAAK,GAAKlC,EAASlT,EAAGoV,EAAK,IAAKA,EAAK,GAAKlC,EAAS3pB,EAAG6rB,EAAK,IAE7H,MAAOA,GAGTzlF,GAAOJ,QAAU,SAAgBy/D,GAC/B,MAAOwkB,GAAQjlB,KAAKS,EAAKgmB,EAAa,IAAI,MAGzCvB,YAAY,KAAK6B,IAAI,SAASnmF,EAAQQ,EAAOJ,IAChD,SAAUA,GACR,YAEA,SAASomD,GAAQtH,GACf,MAAY,QAARA,GAC6C,mBAAxC1c,OAAOwB,UAAUuG,SAASlqC,KAAK6+C,GAM1C,QAASgxB,GAAShxB,GAChB,MAAY,QAARA,GAC6C,oBAAxC1c,OAAOwB,UAAUuG,SAASlqC,KAAK6+C,GAM1C,QAASoR,GAAgB81B,EAAOC,GAC9B,GAAID,IAAUC,EACZ,OAAO,CAGT,IAAIC,GAAY9jD,OAAOwB,UAAUuG,SAASlqC,KAAK+lF,EAC/C,IAAIE,IAAc9jD,OAAOwB,UAAUuG,SAASlqC,KAAKgmF,GAC/C,OAAO,CAET,IAAI7/B,EAAQ4/B,MAAW,EAAM,CAC3B,GAAIA,EAAM9lF,SAAW+lF,EAAO/lF,OAC1B,OAAO,CAET,KAAK,GAAIL,GAAI,EAAGA,EAAImmF,EAAM9lF,OAAQL,IAChC,GAAIqwD,EAAgB81B,EAAMnmF,GAAIomF,EAAOpmF,OAAQ,EAC3C,OAAO,CAGX,QAAO,EAET,GAAIiwE,EAASkW,MAAW,EAAM,CAC5B,GAAIG,KACJ,KAAK,GAAIxhF,KAAOqhF,GACd,GAAI1iD,eAAerjC,KAAK+lF,EAAOrhF,GAAM,CACnC,GAAIurD,EAAgB81B,EAAMrhF,GAAMshF,EAAOthF,OAAU,EAC/C,OAAO,CAETwhF,GAASxhF,IAAO,EAGpB,IAAK,GAAIyhF,KAAQH,GACf,GAAI3iD,eAAerjC,KAAKgmF,EAAQG,IAC1BD,EAASC,MAAU,EACrB,OAAO,CAIb,QAAO,EAET,OAAO,EAGT,QAASC,GAAQvnC,GAEf,GAAY,KAARA,GAAcA,KAAQ,GAAiB,OAARA,EAC/B,OAAO,CACJ,IAAIsH,EAAQtH,IAAuB,IAAfA,EAAI5+C,OAC3B,OAAO,CACJ,IAAI4vE,EAAShxB,GAAM,CACtB,IAAK,GAAIn6C,KAAOm6C,GACZ,GAAIA,EAAIxb,eAAe3+B,GACrB,OAAO,CAGb,QAAO,EAEP,OAAO,EAIb,QAAS2hF,GAAUxnC,GAGjB,IAAK,GAFDz5B,GAAO+c,OAAO/c,KAAKy5B,GACnBsd,KACKv8D,EAAI,EAAGA,EAAIwlB,EAAKnlB,OAAQL,IAC/Bu8D,EAAOnmB,KAAK6I,EAAIz5B,EAAKxlB,IAEvB,OAAOu8D,GA8FT,QAASmqB,GAAQnpB,GACb,MAAQA,IAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACb,MAAPA,EAGX,QAASopB,GAAMppB,GACX,MAAQA,IAAM,KAAOA,GAAM,KACb,MAAPA,EAEX,QAASqpB,GAAWrpB,GAChB,MAAQA,IAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACnBA,GAAM,KAAOA,GAAM,KACb,MAAPA,EAGX,QAASspB,MAmQT,QAAS/hD,MAwWT,QAASgiD,GAAgBC,GACvB/hD,KAAK+hD,QAAUA,EAwQjB,QAASC,GAAQC,GACfjiD,KAAKkiD,aAAeD,EACpBjiD,KAAKmiD,eACDvlB,KAAMwlB,MAAOpiD,KAAKqiD,aAAcC,aAAc3lC,OAAQ4lC,MACtDC,KAAMJ,MAAOpiD,KAAKyiD,aAAcH,aAAc3lC,OAAQ+lC,MACtD9d,MAAOwd,MAAOpiD,KAAK2iD,cAAeL,aAAc3lC,OAAQ4lC,MACxDK,UACIR,MAAOpiD,KAAK6iD,kBACZP,aAAc3lC,OAAQmmC,EAAaC,KACtBpmC,OAAQqmC,MACzBC,WACIb,MAAOpiD,KAAKkjD,kBACZZ,aAAc3lC,OAAQmmC,KAAgBnmC,OAAQmmC,MAClD1d,OAAQgd,MAAOpiD,KAAKmjD,eAAgBb,aAAc3lC,OAAQ4lC,MAC1DlnF,QACI+mF,MAAOpiD,KAAKojD,gBACZd,aAAc3lC,OAAQmmC,EAAaC,EAAYM,MACnD5rC,KACI2qC,MAAOpiD,KAAKsjD,aACZhB,aAAc3lC,OAAQ4mC,KAAgB5mC,OAAQomC,MAClDn7E,KACIw6E,MAAOpiD,KAAKwjD,aACZlB,aAAc3lC,OAAQ+lC,EAAmBe,MAC7CrgD,OACIg/C,MAAOpiD,KAAK0jD,eACZpB,aAAc3lC,OAAQ0mC,GAAcM,UAAU,KAElDC,QACExB,MAAOpiD,KAAK6jD,eACZvB,aAAc3lC,OAAQomC,KAAepmC,OAAQ4mC,MAE/CO,KAAM1B,MAAOpiD,KAAK+jD,aAAczB,aAAc3lC,OAAQ+lC,MACtDsB,aACI5B,MAAOpiD,KAAKikD,oBACZ3B,aAAc3lC,OAAQmmC,KAAgBnmC,OAAQmmC,MAClDj7E,KACIu6E,MAAOpiD,KAAKkkD,aACZ5B,aAAc3lC,OAAQ+lC,EAAmBe,MAC7CU,QACE/B,MAAOpiD,KAAKokD,eACZ9B,aAAc3lC,OAAQomC,KAAepmC,OAAQ4mC,MAE/CnnF,MAAOgmF,MAAOpiD,KAAKqkD,cAAe/B,aAAc3lC,OAAQqmC,MACxDxiE,MAAO4hE,MAAOpiD,KAAKskD,cAAehC,aAAc3lC,OAAQ0mC,MACxD9rB,QAAS6qB,MAAOpiD,KAAKukD,gBAAiBjC,aAAc3lC,OAAQ0mC,MAC5D5hC,MAAO2gC,MAAOpiD,KAAKwkD,cAAelC,aAAc3lC,OAAQ8mC,EAAmBf,MAC3E+B,SACErC,MAAOpiD,KAAK0kD,gBACZpC,aAAc3lC,OAAQomC,KAAepmC,OAAQ4mC,MAE/Cl4C,MACI+2C,MAAOpiD,KAAK2kD,cACZrC,aACK3lC,OAAQmmC,KACRnmC,OAAQ8mC,MAGjBmB,SACIxC,MAAOpiD,KAAK6kD,iBACZvC,aAAc3lC,OAAQmmC,EAAaC,MACvC+B,UAAa1C,MAAOpiD,KAAK+kD,iBAAkBzC,aAAc3lC,OAAQqmC,MACjEgC,WAAc5C,MAAOpiD,KAAKilD,kBAAmB3C,aAAc3lC,OAAQqmC,MACnEkC,WAAc9C,MAAOpiD,KAAKmlD,kBAAmB7C,aAAc3lC,OAAQqmC,MACnEoC,UACIhD,MAAOpiD,KAAKqlD,iBACZ/C,aAAc3lC,OAAQqmC,GAAWW,UAAU,MA2ZrD,QAAS2B,GAAQ51C,GACf,GAAIkQ,GAAS,GAAI9f,GACbylD,EAAM3lC,EAAOld,MAAMgN,EACvB,OAAO61C,GAGT,QAASC,GAAS91C,GACd,GAAI+1C,GAAQ,GAAI5D,EAChB,OAAO4D,GAAMD,SAAS91C,GAG1B,QAASsE,GAAOzK,EAAMm8C,GAClB,GAAI9lC,GAAS,GAAI9f,GACbiiD,EAAU,GAAIC,GACdC,EAAc,GAAIH,GAAgBC,EACtCA,GAAQG,aAAeD,CACvB,IAAI0D,GAAO/lC,EAAOld,MAAMgjD,EACxB,OAAOzD,GAAYjuC,OAAO2xC,EAAMp8C,GAl8CpC,GAAIq8C,EAEFA,GADuC,kBAA9BtsC,QAAOva,UAAU6mD,SACf,SAASjqB,GAClB,MAAOA,GAAIiqB,YAGF,SAASjqB,GAClB,MAAOA,GAAInqB,MAAM,YAAY,GAIjC,IAAI+wC,GAAc,EACdS,EAAW,EACXF,EAAc,EACdC,EAAa,EACbM,EAAc,EACdwC,EAAe,EACftC,EAAc,EACduC,EAAY,EACZpD,EAAoB,EACpBe,EAAoB,EAEpBsC,EAAU,MACVC,EAAyB,qBACzBC,EAAuB,mBACvBC,EAAe,WACfC,EAAa,SACbC,EAAY,QACZC,EAAY,QACZC,EAAa,SACbC,EAAa,SACbC,EAAc,UACdC,EAAa,SACbC,EAAW,OACXC,EAAS,KACTC,EAAU,MACVC,EAAS,KACTC,EAAS,KACTC,EAAS,KACTC,EAAU,MACVC,EAAU,MACVC,EAAS,KACTC,EAAc,UACdC,EAAW,OACXC,EAAa,SACbC,EAAU,MACVC,EAAU,MACVC,EAAa,SACbC,EAAe,WACfC,GAAY,SACZC,GAAa,UAGbC,IACFC,IAAKP,EACLQ,IAAKV,EACLW,IAAK3B,EACL4B,IAAK3B,EACL4B,IAAKT,EACLU,IAAK5B,EACL6B,IAAKjC,EACLkC,IAAKV,GACLW,IAAKlC,EACLmC,IAAK9B,GAGH+B,IACAC,KAAK,EACLC,KAAK,EACLC,KAAK,EACLC,KAAK,GAGLC,IACAC,KAAK,EACLC,MAAM,EACNC,MAAM,EAuBVlH,GAAM9iD,WACFymD,SAAU,SAAS91C,GACf,GAAIs5C,KACJhpD,MAAKipD,SAAW,CAIhB,KAHA,GAAIvsB,GACA5M,EACAo5B,EACGlpD,KAAKipD,SAAWv5C,EAAOr0C,QAC1B,GAAIqmF,EAAQhyC,EAAO1P,KAAKipD,WACpBvsB,EAAQ18B,KAAKipD,SACbn5B,EAAa9vB,KAAKmpD,2BAA2Bz5C,GAC7Cs5C,EAAO53C,MAAMh1C,KAAM4pF,EACNjmF,MAAO+vD,EACP4M,MAAOA,QACjB,IAA2C37B,SAAvC6mD,GAAYl4C,EAAO1P,KAAKipD,WAC/BD,EAAO53C,MAAMh1C,KAAMwrF,GAAYl4C,EAAO1P,KAAKipD,WAC/BlpF,MAAO2vC,EAAO1P,KAAKipD,UACnBvsB,MAAO18B,KAAKipD,WACxBjpD,KAAKipD,eACF,IAAItH,EAAMjyC,EAAO1P,KAAKipD,WACzBC,EAAQlpD,KAAKopD,eAAe15C,GAC5Bs5C,EAAO53C,KAAK83C,OACT,IAA8B,MAA1Bx5C,EAAO1P,KAAKipD,UACnBC,EAAQlpD,KAAKqpD,iBAAiB35C,GAC9Bs5C,EAAO53C,KAAK83C,OACT,IAA8B,MAA1Bx5C,EAAO1P,KAAKipD,UACnBvsB,EAAQ18B,KAAKipD,SACbn5B,EAAa9vB,KAAKspD,yBAAyB55C,GAC3Cs5C,EAAO53C,MAAMh1C,KAAM6pF,EACNlmF,MAAO+vD,EACP4M,MAAOA,QACjB,IAA8B,MAA1BhtB,EAAO1P,KAAKipD,UACnBvsB,EAAQ18B,KAAKipD,SACbn5B,EAAa9vB,KAAKupD,yBAAyB75C,GAC3Cs5C,EAAO53C,MAAMh1C,KAAMurF,GACN5nF,MAAO+vD,EACP4M,MAAOA,QACjB,IAA8B,MAA1BhtB,EAAO1P,KAAKipD,UAAmB,CACtCvsB,EAAQ18B,KAAKipD,QACb,IAAIO,GAAUxpD,KAAKypD,gBAAgB/5C,EACnCs5C,GAAO53C,MAAMh1C,KAAMurF,GACN5nF,MAAOypF,EACP9sB,MAAOA,QACjB,IAAkD37B,SAA9CwnD,GAAmB74C,EAAO1P,KAAKipD,WACtCD,EAAO53C,KAAKpR,KAAK0pD,iBAAiBh6C,QAC/B,IAAyC3O,SAArC6nD,GAAUl5C,EAAO1P,KAAKipD,WAC7BjpD,KAAKipD,eACF,IAA8B,MAA1Bv5C,EAAO1P,KAAKipD,UACnBvsB,EAAQ18B,KAAKipD,SACbjpD,KAAKipD,WACyB,MAA1Bv5C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,WACLD,EAAO53C,MAAMh1C,KAAMwqF,EAAS7mF,MAAO,KAAM28D,MAAOA,KAEhDssB,EAAO53C,MAAMh1C,KAAMqqF,EAAY1mF,MAAO,IAAK28D,MAAOA,QAEnD,CAAA,GAA8B,MAA1BhtB,EAAO1P,KAAKipD,UAShB,CACH,GAAIvnD,GAAQ,GAAIzmC,OAAM,qBAAuBy0C,EAAO1P,KAAKipD,UAEzD,MADAvnD,GAAM5gC,KAAO,aACP4gC,EAXNg7B,EAAQ18B,KAAKipD,SACbjpD,KAAKipD,WACyB,MAA1Bv5C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,WACLD,EAAO53C,MAAMh1C,KAAMuqF,EAAQ5mF,MAAO,KAAM28D,MAAOA,KAE/CssB,EAAO53C,MAAMh1C,KAAMsqF,EAAU3mF,MAAO,IAAK28D,MAAOA,IAQ5D,MAAOssB,IAGXG,2BAA4B,SAASz5C,GACjC,GAAIgtB,GAAQ18B,KAAKipD,QAEjB,KADAjpD,KAAKipD,WACEjpD,KAAKipD,SAAWv5C,EAAOr0C,QAAUumF,EAAWlyC,EAAO1P,KAAKipD,YAC3DjpD,KAAKipD,UAET,OAAOv5C,GAAO1D,MAAM0wB,EAAO18B,KAAKipD,WAGpCK,yBAA0B,SAAS55C,GAC/B,GAAIgtB,GAAQ18B,KAAKipD,QACjBjpD,MAAKipD,UAEL,KADA,GAAIU,GAAYj6C,EAAOr0C,OACU,MAA1Bq0C,EAAO1P,KAAKipD,WAAsBjpD,KAAKipD,SAAWU,GAAW,CAChE,GAAIC,GAAU5pD,KAAKipD,QACK,QAApBv5C,EAAOk6C,IAA8C,OAAxBl6C,EAAOk6C,EAAU,IACO,MAAxBl6C,EAAOk6C,EAAU,GAG9CA,IAFAA,GAAW,EAIf5pD,KAAKipD,SAAWW,EAGpB,MADA5pD,MAAKipD,WACExmD,KAAKC,MAAMgN,EAAO1D,MAAM0wB,EAAO18B,KAAKipD,YAG/CM,yBAA0B,SAAS75C,GAC/B,GAAIgtB,GAAQ18B,KAAKipD,QACjBjpD,MAAKipD,UAEL,KADA,GAAIU,GAAYj6C,EAAOr0C,OACU,MAA1Bq0C,EAAO1P,KAAKipD,WAAqBjpD,KAAKipD,SAAWU,GAAW,CAC/D,GAAIC,GAAU5pD,KAAKipD,QACK,QAApBv5C,EAAOk6C,IAA8C,OAAxBl6C,EAAOk6C,EAAU,IACO,MAAxBl6C,EAAOk6C,EAAU,GAG9CA,IAFAA,GAAW,EAIf5pD,KAAKipD,SAAWW,EAEpB5pD,KAAKipD,UACL,IAAIO,GAAU95C,EAAO1D,MAAM0wB,EAAQ,EAAG18B,KAAKipD,SAAW,EACtD,OAAOO,GAAQnxC,QAAQ,MAAO,MAGlC+wC,eAAgB,SAAS15C,GACrB,GAAIgtB,GAAQ18B,KAAKipD,QACjBjpD,MAAKipD,UAEL,KADA,GAAIU,GAAYj6C,EAAOr0C,OAChBsmF,EAAMjyC,EAAO1P,KAAKipD,YAAcjpD,KAAKipD,SAAWU,GACnD3pD,KAAKipD,UAET,IAAIlpF,GAAQ4zC,SAASjE,EAAO1D,MAAM0wB,EAAO18B,KAAKipD,UAC9C,QAAQ7sF,KAAMmqF,EAAYxmF,MAAOA,EAAO28D,MAAOA,IAGnD2sB,iBAAkB,SAAS35C,GACvB,GAAIgtB,GAAQ18B,KAAKipD,QAEjB,OADAjpD,MAAKipD,WACyB,MAA1Bv5C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,YACG7sF,KAAMirF,EAAYtnF,MAAO,KAAM28D,MAAOA,IACb,MAA1BhtB,EAAO1P,KAAKipD,WACnBjpD,KAAKipD,YACG7sF,KAAM+qF,EAAapnF,MAAO,KAAM28D,MAAOA,KAEvCtgE,KAAMqrF,EAAc1nF,MAAO,IAAK28D,MAAOA,IAIvDgtB,iBAAkB,SAASh6C,GACvB,GAAIgtB,GAAQ18B,KAAKipD,SACbY,EAAen6C,EAAOgtB,EAE1B,OADA18B,MAAKipD,WACgB,MAAjBY,EAC8B,MAA1Bn6C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,YACG7sF,KAAM8qF,EAAQnnF,MAAO,KAAM28D,MAAOA,KAEpCtgE,KAAMmrF,EAASxnF,MAAO,IAAK28D,MAAOA,GAEpB,MAAjBmtB,EACuB,MAA1Bn6C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,YACG7sF,KAAM6qF,EAASlnF,MAAO,KAAM28D,MAAOA,KAEnCtgE,KAAM2qF,EAAQhnF,MAAO,IAAK28D,MAAOA,GAErB,MAAjBmtB,EACuB,MAA1Bn6C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,YACG7sF,KAAM4qF,EAASjnF,MAAO,KAAM28D,MAAOA,KAEnCtgE,KAAM0qF,EAAQ/mF,MAAO,IAAK28D,MAAOA,GAErB,MAAjBmtB,GACuB,MAA1Bn6C,EAAO1P,KAAKipD,WACZjpD,KAAKipD,YACG7sF,KAAMyqF,EAAQ9mF,MAAO,KAAM28D,MAAOA,IAH3C,QAQX+sB,gBAAiB,SAAS/5C,GACtB1P,KAAKipD,UAIL,KAHA,GAEIO,GAFA9sB,EAAQ18B,KAAKipD,SACbU,EAAYj6C,EAAOr0C,OAES,MAA1Bq0C,EAAO1P,KAAKipD,WAAqBjpD,KAAKipD,SAAWU,GAAW,CAC9D,GAAIC,GAAU5pD,KAAKipD,QACK,QAApBv5C,EAAOk6C,IAA8C,OAAxBl6C,EAAOk6C,EAAU,IACO,MAAxBl6C,EAAOk6C,EAAU,GAG9CA,IAFAA,GAAW,EAIf5pD,KAAKipD,SAAWW,EAEpB,GAAIE,GAAgBlE,EAASl2C,EAAO1D,MAAM0wB,EAAO18B,KAAKipD,UAQtD,OAPAa,GAAgBA,EAAczxC,QAAQ,MAAO,KAEzCmxC,EADAxpD,KAAK+pD,eAAeD,GACVrnD,KAAKC,MAAMonD,GAEXrnD,KAAKC,MAAM,IAAOonD,EAAgB,KAEhD9pD,KAAKipD,WACEO,GAGXO,eAAgB,SAASD,GACrB,GAAIE,GAAgB,MAChBC,GAAgB,OAAQ,QAAS,QACjCC,EAAgB,aAEpB,IAAsB,KAAlBJ,EACA,OAAO,CACJ,IAAIE,EAAc9+C,QAAQ4+C,EAAc,KAAO,EAClD,OAAO,CACJ,IAAIG,EAAa/+C,QAAQ4+C,IAAkB,EAC9C,OAAO,CACJ,MAAII,EAAch/C,QAAQ4+C,EAAc,KAAO,GAQlD,OAAO,CAPP,KAEI,MADArnD,MAAKC,MAAMonD,IACJ,EACT,MAAOK,GACL,OAAO,IAQnB,IAAIC,MACJA,IAAarE,GAAW,EACxBqE,GAAapE,GAA0B,EACvCoE,GAAanE,GAAwB,EACrCmE,GAAalE,GAAgB,EAC7BkE,GAAajE,GAAc,EAC3BiE,GAAahE,GAAa,EAC1BgE,GAAa9D,GAAc,EAC3B8D,GAAa7D,GAAc,EAC3B6D,GAAa5D,GAAe,EAC5B4D,GAAa3D,GAAc,EAC3B2D,GAAa1D,GAAY,EACzB0D,GAAazD,GAAU,EACvByD,GAAaxD,GAAW,EACxBwD,GAAavD,GAAU,EACvBuD,GAAatD,GAAU,EACvBsD,GAAarD,GAAU,EACvBqD,GAAapD,GAAW,EACxBoD,GAAanD,GAAW,EACxBmD,GAAalD,GAAU,EACvBkD,GAAajD,GAAe,EAC5BiD,GAAahD,GAAY,GACzBgD,GAAa/C,GAAc,GAC3B+C,GAAa9C,GAAW,GACxB8C,GAAa7C,GAAW,GACxB6C,GAAa5C,GAAc,GAC3B4C,GAAa3C,GAAgB,GAC7B2C,GAAa1C,IAAc,GAK/B5nD,EAAOf,WACH2D,MAAO,SAASgjD,GACZ1lD,KAAKqqD,YAAY3E,GACjB1lD,KAAKkM,MAAQ,CACb,IAAIq5C,GAAMvlD,KAAK0lD,WAAW,EAC1B,IAAI1lD,KAAKsqD,WAAW,KAAOvE,EAAS,CAChC,GAAIvrF,GAAIwlC,KAAKuqD,gBAAgB,GACzB7oD,EAAQ,GAAIzmC,OACZ,0BAA4BT,EAAE4B,KAAO,YAAc5B,EAAEuF,MAEzD,MADA2hC,GAAM5gC,KAAO,cACP4gC,EAEV,MAAO6jD,IAGX8E,YAAa,SAAS3E,GAClB,GAAID,GAAQ,GAAI5D,GACZmH,EAASvD,EAAMD,SAASE,EAC5BsD,GAAO53C,MAAMh1C,KAAM2pF,EAAShmF,MAAO,GAAI28D,MAAOgpB,EAAWrqF,SACzD2kC,KAAKgpD,OAASA,GAGlBtD,WAAY,SAAS8E,GACjB,GAAIC,GAAYzqD,KAAKuqD,gBAAgB,EACrCvqD,MAAK0qD,UAGL,KAFA,GAAIC,GAAO3qD,KAAK4qD,IAAIH,GAChBI,EAAe7qD,KAAKsqD,WAAW,GAC5BE,EAAMJ,GAAaS,IACtB7qD,KAAK0qD,WACLC,EAAO3qD,KAAK8qD,IAAID,EAAcF,GAC9BE,EAAe7qD,KAAKsqD,WAAW,EAEnC,OAAOK,IAGXL,WAAY,SAAShU,GACjB,MAAOt2C,MAAKgpD,OAAOhpD,KAAKkM,MAAQoqC,GAAQl6E,MAG5CmuF,gBAAiB,SAASjU,GACtB,MAAOt2C,MAAKgpD,OAAOhpD,KAAKkM,MAAQoqC,IAGpCoU,SAAU,WACN1qD,KAAKkM,SAGT0+C,IAAK,SAAS1B,GACZ,GAAIyB,GACAI,EACArF,CACJ,QAAQwD,EAAM9sF,MACZ,IAAKurF,IACH,OAAQvrF,KAAM,UAAW2D,MAAOmpF,EAAMnpF,MACxC,KAAKimF,GACH,OAAQ5pF,KAAM,QAAS0E,KAAMooF,EAAMnpF,MACrC,KAAKkmF,GACH,GAAIN,IAAQvpF,KAAM,QAAS0E,KAAMooF,EAAMnpF,MACvC,IAAIigC,KAAKsqD,WAAW,KAAO5C,GACvB,KAAM,IAAIzsF,OAAM,oDAEhB,OAAO0qF,EAGb,KAAK4B,GAEH,MADAwD,GAAQ/qD,KAAK0lD,WAAW0E,GAAaY,MAC7B5uF,KAAM,gBAAiBwkE,UAAWmqB,GAC5C,KAAK3D,GAQH,MAPAuD,IAAQvuF,KAAM,YACd2uF,EAAQ,KAEJA,EADA/qD,KAAKsqD,WAAW,KAAOpE,GACd9pF,KAAM,YAEP4jC,KAAKirD,oBAAoBb,GAAac,OAE1C9uF,KAAM,kBAAmBwkE,UAAW+pB,EAAMI,GACpD,KAAK1D,GACH,MAAOrnD,MAAK8qD,IAAI5B,EAAM9sF,MAAOA,KAAM,YACrC,KAAKorF,GACH,MAAOxnD,MAAKmrD,uBACd,KAAKhE,GAGH,MAFAwD,IAAQvuF,KAAM+qF,EAAavmB,WAAYxkE,KAAM,cAC7C2uF,EAAQ/qD,KAAKirD,oBAAoBb,GAAagB,UACtChvF,KAAM,aAAcwkE,UAAW+pB,EAAMI,GAC/C,KAAKtD,GACH,MAAIznD,MAAKsqD,WAAW,KAAO/D,GAAcvmD,KAAKsqD,WAAW,KAAOjE,GAC5D0E,EAAQ/qD,KAAKqrD,wBACNrrD,KAAKsrD,iBAAiBlvF,KAAM,YAAa2uF,IACzC/qD,KAAKsqD,WAAW,KAAOlD,GACvBpnD,KAAKsqD,WAAW,KAAOpE,GAC9BlmD,KAAK0qD,WACL1qD,KAAK0qD,WACLK,EAAQ/qD,KAAKirD,oBAAoBb,GAAac,OACtC9uF,KAAM,aACNwkE,WAAYxkE,KAAM,YAAa2uF,KAEhC/qD,KAAKurD,uBAGlB,KAAK/E,GACH,OAAQpqF,KAAMoqF,EAChB,KAAKC,GAEH,MADAf,GAAa1lD,KAAK0lD,WAAW0E,GAAaoB,SAClCpvF,KAAM,sBAAuBwkE,UAAW8kB,GAClD,KAAKgC,IAEH,IADA,GAAIl+B,MACGxpB,KAAKsqD,WAAW,KAAOnE,GACxBnmD,KAAKsqD,WAAW,KAAO9D,GACzBd,GAActpF,KAAMoqF,GACpBxmD,KAAK0qD,YAELhF,EAAa1lD,KAAK0lD,WAAW,GAE/Bl8B,EAAKpY,KAAKs0C,EAGZ,OADA1lD,MAAKyrD,OAAOtF,GACL38B,EAAK,EACd,SACExpB,KAAK0rD,YAAYxC,KAIvB4B,IAAK,SAASa,EAAWhB,GACvB,GAAII,EACJ,QAAOY,GACL,IAAKrE,GACH,GAAIkD,GAAMJ,GAAawB,GACvB,OAAI5rD,MAAKsqD,WAAW,KAAOlD,GACvB2D,EAAQ/qD,KAAK6rD,aAAarB,IAClBpuF,KAAM,gBAAiBwkE,UAAW+pB,EAAMI,MAEhD/qD,KAAK0qD,WACLK,EAAQ/qD,KAAKirD,oBAAoBT,IACzBpuF,KAAM,kBAAmBwkE,UAAW+pB,EAAMI,IAGxD,KAAKrE,GAEH,MADAqE,GAAQ/qD,KAAK0lD,WAAW0E,GAAa0B,OAC7B1vF,KAAMsqF,EAAU9lB,UAAW+pB,EAAMI,GAC3C,KAAKpE,GAEH,MADAoE,GAAQ/qD,KAAK0lD,WAAW0E,GAAa2B,KAC7B3vF,KAAM,eAAgBwkE,UAAW+pB,EAAMI,GACjD,KAAKnE,GAEH,MADAmE,GAAQ/qD,KAAK0lD,WAAW0E,GAAa4B,MAC7B5vF,KAAM,gBAAiBwkE,UAAW+pB,EAAMI,GAClD,KAAKrD,IAIH,IAHA,GAEIhC,GAAYC,EAFZ7kF,EAAO6pF,EAAK7pF,KACZ0oD,KAEGxpB,KAAKsqD,WAAW,KAAOnE,GACxBnmD,KAAKsqD,WAAW,KAAO9D,GACzBd,GAActpF,KAAMoqF,GACpBxmD,KAAK0qD,YAELhF,EAAa1lD,KAAK0lD,WAAW,GAE3B1lD,KAAKsqD,WAAW,KAAOlE,GACzBpmD,KAAKyrD,OAAOrF,GAEd58B,EAAKpY,KAAKs0C,EAIZ,OAFA1lD,MAAKyrD,OAAOtF,GACZR,GAAQvpF,KAAM,WAAY0E,KAAMA,EAAM8/D,SAAUpX,EAElD,KAAK69B,GACH,GAAI4E,GAAYjsD,KAAK0lD,WAAW,EAOhC,OANA1lD,MAAKyrD,OAAOvF,GAEV6E,EADE/qD,KAAKsqD,WAAW,KAAOnD,GAChB/qF,KAAM,YAEP4jC,KAAKirD,oBAAoBb,GAAavjE,SAExCzqB,KAAM,mBAAoBwkE,UAAW+pB,EAAMI,EAAOkB,GAC5D,KAAK9E,GACH,GAAI+E,IAAY9vF,KAAM+qF,EAAavmB,UAAW+pB,IAC1CwB,EAAYnsD,KAAKirD,oBAAoBb,GAAagB,QACtD,QAAQhvF,KAAM,aAAcwkE,UAAWsrB,EAAUC,GACnD,KAAKtF,GACL,IAAKK,GACL,IAAKJ,GACL,IAAKE,GACL,IAAKD,GACL,IAAKE,GACH,MAAOjnD,MAAKosD,iBAAiBzB,EAAMgB,EACrC,KAAKlE,GACH,GAAIyB,GAAQlpD,KAAKuqD,gBAAgB;AACjC,MAAIrB,GAAM9sF,OAASmqF,GAAc2C,EAAM9sF,OAASiqF,GAC5C0E,EAAQ/qD,KAAKqrD,wBACNrrD,KAAKsrD,gBAAgBX,EAAMI,KAElC/qD,KAAKyrD,OAAOrE,GACZpnD,KAAKyrD,OAAOvF,GACZ6E,EAAQ/qD,KAAKirD,oBAAoBb,GAAac,OACtC9uF,KAAM,aAAcwkE,UAAW+pB,EAAMI,IAGnD,SACE/qD,KAAK0rD,YAAY1rD,KAAKuqD,gBAAgB,MAI5CkB,OAAQ,SAASY,GACb,GAAIrsD,KAAKsqD,WAAW,KAAO+B,EAEpB,CACH,GAAI7xF,GAAIwlC,KAAKuqD,gBAAgB,GACzB7oD,EAAQ,GAAIzmC,OAAM,YAAcoxF,EAAY,UAAY7xF,EAAE4B,KAE9D,MADAslC,GAAM5gC,KAAO,cACP4gC,EALN1B,KAAK0qD,YASbgB,YAAa,SAASxC,GAClB,GAAIxnD,GAAQ,GAAIzmC,OAAM,kBACAiuF,EAAM9sF,KAAO,OACb8sF,EAAMnpF,MAAQ,IAEpC,MADA2hC,GAAM5gC,KAAO,cACP4gC,GAIV2pD,sBAAuB,WACnB,GAAIrrD,KAAKsqD,WAAW,KAAOjE,GAAarmD,KAAKsqD,WAAW,KAAOjE,EAC3D,MAAOrmD,MAAKssD,uBAEZ,IAAI3G,IACAvpF,KAAM,QACN2D,MAAOigC,KAAKuqD,gBAAgB,GAAGxqF,MAGnC,OAFAigC,MAAK0qD,WACL1qD,KAAKyrD,OAAOvF,GACLP,GAIf2F,gBAAiB,SAASX,EAAMI,GAC5B,GAAIwB,IAAanwF,KAAM,kBAAmBwkE,UAAW+pB,EAAMI,GAC3D,OAAmB,UAAfA,EAAM3uF,MAEFA,KAAM,aACNwkE,UAAW2rB,EAAWvsD,KAAKirD,oBAAoBb,GAAac,QAGzDqB,GAIfD,sBAAuB,WAInB,IAHA,GAAI9qC,IAAS,KAAM,KAAM,MACrBtV,EAAQ,EACR2+C,EAAe7qD,KAAKsqD,WAAW,GAC5BO,IAAiB3E,GAAgBh6C,EAAQ,GAAG,CAC/C,GAAI2+C,IAAiBxE,EACjBn6C,IACAlM,KAAK0qD,eACF,CAAA,GAAIG,IAAiBtE,EAGrB,CACH,GAAI/rF,GAAIwlC,KAAKsqD,WAAW,GACpB5oD,EAAQ,GAAIzmC,OAAM,mCACAT,EAAEuF,MAAQ,IAAMvF,EAAE4B,KAAO,IAE/C,MADAslC,GAAM5gC,KAAO,cACP4gC,EAPN8f,EAAMtV,GAASlM,KAAKuqD,gBAAgB,GAAGxqF,MACvCigC,KAAK0qD,WAQTG,EAAe7qD,KAAKsqD,WAAW,GAGnC,MADAtqD,MAAKyrD,OAAOvF,IAER9pF,KAAM,QACNwkE,SAAUpf,IAIlB4qC,iBAAkB,SAASzB,EAAM6B,GAC/B,GAAIzB,GAAQ/qD,KAAK0lD,WAAW0E,GAAaoC,GACzC,QAAQpwF,KAAM,aAAc0E,KAAM0rF,EAAY5rB,UAAW+pB,EAAMI,KAGjEc,aAAc,SAASrB,GACnB,GAAIiC,GAAYzsD,KAAKsqD,WAAW,GAC5BoC,GAAc1G,EAAwBC,EAAsBmB,EAChE,OAAIsF,GAAWxhD,QAAQuhD,IAAc,EAC1BzsD,KAAK0lD,WAAW8E,GAChBiC,IAAchF,GACrBznD,KAAKyrD,OAAOhE,GACLznD,KAAKurD,yBACLkB,IAAcjF,GACrBxnD,KAAKyrD,OAAOjE,GACLxnD,KAAKmrD,yBAFT,QAMXF,oBAAqB,SAAST,GAC1B,GAAIO,EACJ,IAAIX,GAAapqD,KAAKsqD,WAAW,IAAM,GACnCS,GAAS3uF,KAAM,gBACZ,IAAI4jC,KAAKsqD,WAAW,KAAO7C,EAC9BsD,EAAQ/qD,KAAK0lD,WAAW8E,OACrB,IAAIxqD,KAAKsqD,WAAW,KAAOjD,EAC9B0D,EAAQ/qD,KAAK0lD,WAAW8E,OACrB,CAAA,GAAIxqD,KAAKsqD,WAAW,KAAOhD,EAG3B,CACH,GAAI9sF,GAAIwlC,KAAKuqD,gBAAgB,GACzB7oD,EAAQ,GAAIzmC,OAAM,mCACAT,EAAEuF,MAAQ,IAAMvF,EAAE4B,KAAO,IAE/C,MADAslC,GAAM5gC,KAAO,cACP4gC,EAPN1B,KAAKyrD,OAAOnE,GACZyD,EAAQ/qD,KAAK6rD,aAAarB,GAQ9B,MAAOO,IAGXQ,sBAAuB,WAEnB,IADA,GAAIoB,MACG3sD,KAAKsqD,WAAW,KAAOpE,GAAc,CACxC,GAAIR,GAAa1lD,KAAK0lD,WAAW,EAEjC,IADAiH,EAAYv7C,KAAKs0C,GACb1lD,KAAKsqD,WAAW,KAAOlE,IACvBpmD,KAAKyrD,OAAOrF,GACRpmD,KAAKsqD,WAAW,KAAOpE,GACzB,KAAM,IAAIjrF,OAAM,6BAK1B,MADA+kC,MAAKyrD,OAAOvF,IACJ9pF,KAAM,kBAAmBwkE,SAAU+rB,IAG/CxB,sBAAuB,WAIrB,IAHA,GAEIyB,GAAU1pC,EAASnjD,EAAO4lF,EAF1BkH,KACAC,GAAmB9G,EAAwBC,KAEtC,CAEP,GADA2G,EAAW5sD,KAAKuqD,gBAAgB,GAC5BuC,EAAgB5hD,QAAQ0hD,EAASxwF,MAAQ,EAC3C,KAAM,IAAInB,OAAM,uCACA2xF,EAASxwF,KAQ3B,IANA8mD,EAAU0pC,EAAS7sF,MACnBigC,KAAK0qD,WACL1qD,KAAKyrD,OAAOpF,GACZtmF,EAAQigC,KAAK0lD,WAAW,GACxBC,GAAQvpF,KAAM,eAAgB0E,KAAMoiD,EAASnjD,MAAOA,GACpD8sF,EAAMz7C,KAAKu0C,GACP3lD,KAAKsqD,WAAW,KAAOlE,EACzBpmD,KAAKyrD,OAAOrF,OACP,IAAIpmD,KAAKsqD,WAAW,KAAOhE,EAAY,CAC5CtmD,KAAKyrD,OAAOnF,EACZ,QAGJ,OAAQlqF,KAAM,kBAAmBwkE,SAAUisB,KASjD/K,EAAgB/iD,WACZiV,OAAQ,SAAS2xC,EAAM5lF,GACnB,MAAOigC,MAAK+sD,MAAMpH,EAAM5lF,IAG5BgtF,MAAO,SAASpH,EAAM5lF,GAClB,GAAIitF,GAASpD,EAAStyC,EAAQ6pC,EAAOC,EAAQ6L,EAAOtC,EAAMI,EAAOmC,EAAWlyF,CAC5E,QAAQ2qF,EAAKvpF,MACX,IAAK,QACH,MAAc,QAAV2D,EACO,KACAkrE,EAASlrE,IAChBktF,EAAQltF,EAAM4lF,EAAK7kF,MACLigC,SAAVksD,EACO,KAEAA,GAGN,IAGX,KAAK,gBAEH,IADA31C,EAAStX,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GACjC/E,EAAI,EAAGA,EAAI2qF,EAAK/kB,SAASvlE,OAAQL,IAElC,GADAs8C,EAAStX,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAItpB,GACvB,OAAXA,EACA,MAAO,KAGf,OAAOA,EACT,KAAK,kBAGH,MAFAqzC,GAAO3qD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GACpCgrF,EAAQ/qD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI+pB,EAEvC,KAAK,QACH,IAAKppC,EAAQxhD,GACX,MAAO,KAET,IAAImsC,GAAQy5C,EAAK5lF,KAQjB,OAPImsC,GAAQ,IACVA,EAAQnsC,EAAM1E,OAAS6wC,GAEzBoL,EAASv3C,EAAMmsC,GACAnL,SAAXuW,IACFA,EAAS,MAEJA,CACT,KAAK,QACH,IAAKiK,EAAQxhD,GACX,MAAO,KAET,IAAIotF,GAAcxH,EAAK/kB,SAAS50B,MAAM,GAClCohD,EAAWptD,KAAKqtD,mBAAmBttF,EAAM1E,OAAQ8xF,GACjDzwB,EAAQ0wB,EAAS,GACjBE,EAAOF,EAAS,GAChBG,EAAOH,EAAS,EAEpB,IADA91C,KACIi2C,EAAO,EACP,IAAKvyF,EAAI0hE,EAAO1hE,EAAIsyF,EAAMtyF,GAAKuyF,EAC3Bj2C,EAAOlG,KAAKrxC,EAAM/E,QAGtB,KAAKA,EAAI0hE,EAAO1hE,EAAIsyF,EAAMtyF,GAAKuyF,EAC3Bj2C,EAAOlG,KAAKrxC,EAAM/E,GAG1B,OAAOs8C,EACT,KAAK,aACH,GAAI5S,GAAO1E,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,EACxC,KAAKwhD,EAAQ7c,GACX,MAAO,KAGT,KADAwoD,KACKlyF,EAAI,EAAGA,EAAI0pC,EAAKrpC,OAAQL,IAC3B4uF,EAAU5pD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAIl8B,EAAK1pC,IAC5B,OAAZ4uF,GACFsD,EAAU97C,KAAKw4C,EAGnB,OAAOsD,EACT,KAAK,kBAEH,GADAxoD,EAAO1E,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,IAC/BkrE,EAASvmC,GACZ,MAAO,KAETwoD,KACA,IAAI31B,GAASkqB,EAAU/8C,EACvB,KAAK1pC,EAAI,EAAGA,EAAIu8D,EAAOl8D,OAAQL,IAC7B4uF,EAAU5pD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAIrJ,EAAOv8D,IAC9B,OAAZ4uF,GACFsD,EAAU97C,KAAKw4C,EAGnB,OAAOsD,EACT,KAAK,mBAEH,GADAxoD,EAAO1E,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,IAC/BwhD,EAAQ7c,GACX,MAAO,KAET,IAAI8oD,MACAC,IACJ,KAAKzyF,EAAI,EAAGA,EAAI0pC,EAAKrpC,OAAQL,IAC3BgyF,EAAUhtD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAIl8B,EAAK1pC,IACvCwmF,EAAQwL,IACXQ,EAASp8C,KAAK1M,EAAK1pC,GAGvB,KAAK,GAAImpE,GAAI,EAAGA,EAAIqpB,EAASnyF,OAAQ8oE,IACnCylB,EAAU5pD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI4sB,EAASrpB,IAChC,OAAZylB,GACF6D,EAAar8C,KAAKw4C,EAGtB,OAAO6D,EACT,KAAK,aAGH,OAFAtM,EAAQnhD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GACrCqhF,EAASphD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GAC/B4lF,EAAK7kF,MACV,IAAK+lF,GACHvvC,EAAS+T,EAAgB81B,EAAOC,EAChC,MACF,KAAK8F,GACH5vC,GAAU+T,EAAgB81B,EAAOC,EACjC,MACF,KAAK0F,GACHxvC,EAAS6pC,EAAQC,CACjB,MACF,KAAK4F,GACH1vC,EAAS6pC,GAASC,CAClB,MACF,KAAK2F,GACHzvC,EAAS6pC,EAAQC,CACjB,MACF,KAAK6F,GACH3vC,EAAS6pC,GAASC,CAClB,MACF,SACE,KAAM,IAAInmF,OAAM,uBAAyB0qF,EAAK7kF,MAElD,MAAOw2C,EACT,KAAK6vC,GACH,GAAIuG,GAAW1tD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,EAC5C,KAAKwhD,EAAQmsC,GACX,MAAO,KAET,IAAIC,KACJ,KAAK3yF,EAAI,EAAGA,EAAI0yF,EAASryF,OAAQL,IAC/B4uF,EAAU8D,EAAS1yF,GACfumD,EAAQqoC,GACV+D,EAAOv8C,KAAK8I,MAAMyzC,EAAQ/D,GAE1B+D,EAAOv8C,KAAKw4C,EAGhB,OAAO+D,EACT,KAAK,WACH,MAAO5tF,EACT,KAAK,kBACH,GAAc,OAAVA,EACF,MAAO,KAGT,KADAmtF,KACKlyF,EAAI,EAAGA,EAAI2qF,EAAK/kB,SAASvlE,OAAQL,IAClCkyF,EAAU97C,KAAKpR,KAAK+sD,MAAMpH,EAAK/kB,SAAS5lE,GAAI+E,GAEhD,OAAOmtF,EACT,KAAK,kBACH,GAAc,OAAVntF,EACF,MAAO,KAETmtF,KACA,IAAItuB,EACJ,KAAK5jE,EAAI,EAAGA,EAAI2qF,EAAK/kB,SAASvlE,OAAQL,IACpC4jE,EAAQ+mB,EAAK/kB,SAAS5lE,GACtBkyF,EAAUtuB,EAAM99D,MAAQk/B,KAAK+sD,MAAMnuB,EAAM7+D,MAAOA,EAElD,OAAOmtF,EACT,KAAK,eAKH,MAJAF,GAAUhtD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GACnCyhF,EAAQwL,KACRA,EAAUhtD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,IAEpCitF,CACT,KAAK,gBAGH,MAFA7L,GAAQnhD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GAEjCyhF,EAAQL,MAAW,EACdA,EAEFnhD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,EACtC,KAAK,gBAEH,MADAohF,GAAQnhD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GAC9ByhF,EAAQL,EACjB,KAAK,UACH,MAAOwE,GAAK5lF,KACd,KAAK2mF,GAEH,MADAiE,GAAO3qD,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI7gE,GAC7BigC,KAAK+sD,MAAMpH,EAAK/kB,SAAS,GAAI+pB,EACtC,KAAKnE,GACH,MAAOzmF,EACT,KAAK,WACH,GAAI6tF,KACJ,KAAK5yF,EAAI,EAAGA,EAAI2qF,EAAK/kB,SAASvlE,OAAQL,IAClC4yF,EAAax8C,KAAKpR,KAAK+sD,MAAMpH,EAAK/kB,SAAS5lE,GAAI+E,GAEnD,OAAOigC,MAAK+hD,QAAQ8L,aAAalI,EAAK7kF,KAAM8sF,EAC9C,KAAK,sBACH,GAAIE,GAAUnI,EAAK/kB,SAAS,EAE5B,OADAktB,GAAQC,aAAetH,EAChBqH,CACT,SACE,KAAM,IAAI7yF,OAAM,sBAAwB0qF,EAAKvpF,QAIrDixF,mBAAoB,SAASW,EAAab,GACxC,GAAIzwB,GAAQywB,EAAY,GACpBG,EAAOH,EAAY,GACnBI,EAAOJ,EAAY,GACnBC,GAAY,KAAM,KAAM,KAC5B,IAAa,OAATG,EACFA,EAAO,MACF,IAAa,IAATA,EAAY,CACrB,GAAI7rD,GAAQ,GAAIzmC,OAAM,kCAEtB,MADAymC,GAAM5gC,KAAO,eACP4gC,EAER,GAAIusD,GAAoBV,EAAO,CAgB/B,OAbI7wB,GADU,OAAVA,EACQuxB,EAAoBD,EAAc,EAAI,EAEtChuD,KAAKkuD,cAAcF,EAAatxB,EAAO6wB,GAI/CD,EADS,OAATA,EACOW,GAAoB,EAAKD,EAEzBhuD,KAAKkuD,cAAcF,EAAaV,EAAMC,GAEjDH,EAAS,GAAK1wB,EACd0wB,EAAS,GAAKE,EACdF,EAAS,GAAKG,EACPH,GAGTc,cAAe,SAASF,EAAaG,EAAaZ,GAS9C,MARIY,GAAc,GACdA,GAAeH,EACXG,EAAc,IACdA,EAAcZ,EAAO,GAAI,EAAK,IAE3BY,GAAeH,IACtBG,EAAcZ,EAAO,EAAIS,EAAc,EAAIA,GAExCG,IA2EfnM,EAAQjjD,WACN8uD,aAAc,SAAS/sF,EAAM8sF,GAC3B,GAAIQ,GAAgBpuD,KAAKmiD,cAAcrhF,EACvC,IAAsBigC,SAAlBqtD,EACA,KAAM,IAAInzF,OAAM,qBAAuB6F,EAAO,KAGlD,OADAk/B,MAAKquD,cAAcvtF,EAAM8sF,EAAcQ,EAAc9L,YAC9C8L,EAAchM,MAAMhnF,KAAK4kC,KAAM4tD,IAGxCS,cAAe,SAASvtF,EAAM0oD,EAAMwH,GAChC,GAAIs9B,EACJ,IAAIt9B,EAAUA,EAAU31D,OAAS,GAAGsoF,UAChC,GAAIn6B,EAAKnuD,OAAS21D,EAAU31D,OAExB,KADAizF,GAAkC,IAArBt9B,EAAU31D,OAAe,YAAc,aAC9C,GAAIJ,OAAM,kBAAoB6F,EAAO,oBACRkwD,EAAU31D,OAASizF,EACtC,iBAAmB9kC,EAAKnuD,YAEzC,IAAImuD,EAAKnuD,SAAW21D,EAAU31D,OAEjC,KADAizF,GAAkC,IAArBt9B,EAAU31D,OAAe,YAAc,aAC9C,GAAIJ,OAAM,kBAAoB6F,EAAO,YAChBkwD,EAAU31D,OAASizF,EAC9B,iBAAmB9kC,EAAKnuD,OAK5C,KAAK,GAHDkzF,GACAC,EACAC,EACKzzF,EAAI,EAAGA,EAAIg2D,EAAU31D,OAAQL,IAAK,CACvCyzF,GAAc,EACdF,EAAcv9B,EAAUh2D,GAAG2hD,MAC3B6xC,EAAaxuD,KAAK0uD,aAAallC,EAAKxuD,GACpC,KAAK,GAAImpE,GAAI,EAAGA,EAAIoqB,EAAYlzF,OAAQ8oE,IACpC,GAAInkC,KAAK2uD,aAAaH,EAAYD,EAAYpqB,GAAI3a,EAAKxuD,IAAK,CACxDyzF,GAAc,CACd,OAGR,IAAKA,EACD,KAAM,IAAIxzF,OAAM,cAAgB6F,EAAO,yBACC9F,EAAI,GAC5B,eAAiBuzF,EACjB,sBAAwBC,EACxB,eAK5BG,aAAc,SAASjX,EAAQ1sB,EAAU4jC,GACrC,GAAI5jC,IAAag4B,EACb,OAAO,CAEX,IAAIh4B,IAAay4B,GACbz4B,IAAa03B,GACb13B,IAAa+3B,EAoBb,MAAOrL,KAAW1sB,CAnBlB,IAAIA,IAAa+3B,EACb,MAAOrL,KAAWqL,CACf,IAAIrL,IAAWqL,EAAY,CAC9B,GAAI8L,EACA7jC,KAAa03B,EACfmM,EAAUtM,EACDv3B,IAAay4B,IACtBoL,EAAU/L,EAEZ,KAAK,GAAI9nF,GAAI,EAAGA,EAAI4zF,EAASvzF,OAAQL,IACjC,IAAKglC,KAAK2uD,aACF3uD,KAAK0uD,aAAaE,EAAS5zF,IAAK6zF,EACfD,EAAS5zF,IAC9B,OAAO,CAGf,QAAO,IAMnB0zF,aAAc,SAASz0C,GACnB,OAAQ1c,OAAOwB,UAAUuG,SAASlqC,KAAK6+C,IACnC,IAAK,kBACH,MAAO6oC,EACT,KAAK,kBACH,MAAOP,EACT,KAAK,iBACH,MAAOQ,EACT,KAAK,mBACH,MAAO8C,EACT,KAAK,gBACH,MAAOC,EACT,KAAK,kBACH,MAAI7rC,GAAI8zC,eAAiBtH,EAChBlD,EAEAF,IAKnBY,oBAAqB,SAAS2J,GAC1B,MAAwD,KAAjDA,EAAa,GAAG3e,YAAY2e,EAAa,KAGpD1K,kBAAmB,SAAS0K,GACxB,GAAIkB,GAAYlB,EAAa,GACzBtqC,EAASsqC,EAAa,EAC1B,OAAOkB,GAAU5jD,QAAQoY,EAAQwrC,EAAUzzF,OAASioD,EAAOjoD,WAAY,GAG3EwpF,iBAAkB,SAAS+I,GACvB,GAAI5uC,GAAWhf,KAAK0uD,aAAad,EAAa,GAC9C,IAAI5uC,IAAa8jC,EAAa,CAG5B,IAAK,GAFDiM,GAAcnB,EAAa,GAC3BoB,EAAc,GACTh0F,EAAI+zF,EAAY1zF,OAAS,EAAGL,GAAK,EAAGA,IACzCg0F,GAAeD,EAAY/zF,EAE/B,OAAOg0F,GAEP,GAAIC,GAAgBrB,EAAa,GAAG5hD,MAAM,EAE1C,OADAijD,GAAcrK,UACPqK,GAIb5M,aAAc,SAASuL,GACrB,MAAOjxB,MAAKC,IAAIgxB,EAAa,KAG/BjL,cAAe,SAASiL,GACpB,MAAOjxB,MAAKiI,KAAKgpB,EAAa,KAGlCnL,aAAc,SAASmL,GAGnB,IAAK,GAFD9J,GAAM,EACNoL,EAAatB,EAAa,GACrB5yF,EAAI,EAAGA,EAAIk0F,EAAW7zF,OAAQL,IACnC8oF,GAAOoL,EAAWl0F,EAEtB,OAAO8oF,GAAMoL,EAAW7zF,QAG5BwnF,kBAAmB,SAAS+K,GACxB,MAAOA,GAAa,GAAG1iD,QAAQ0iD,EAAa,KAAO,GAGvDzK,eAAgB,SAASyK,GACrB,MAAOjxB,MAAKyI,MAAMwoB,EAAa,KAGnCxK,gBAAiB,SAASwK,GACvB,MAAK3iB,GAAS2iB,EAAa,IAGlBrwD,OAAO/c,KAAKotE,EAAa,IAAIvyF,OAF7BuyF,EAAa,GAAGvyF,QAM5BioF,aAAc,SAASsK,GAKrB,IAAK,GAJDuB,MACAlN,EAAcjiD,KAAKkiD,aACnBkN,EAAaxB,EAAa,GAC1ByB,EAAWzB,EAAa,GACnB5yF,EAAI,EAAGA,EAAIq0F,EAASh0F,OAAQL,IACjCm0F,EAAO/9C,KAAK6wC,EAAY8K,MAAMqC,EAAYC,EAASr0F,IAEvD,OAAOm0F,IAGTzL,eAAgB,SAASkK,GAEvB,IAAK,GADDD,MACK3yF,EAAI,EAAGA,EAAI4yF,EAAavyF,OAAQL,IAAK,CAC5C,GAAI4uF,GAAUgE,EAAa5yF,EAC3B,KAAK,GAAI8E,KAAO8pF,GACd+D,EAAO7tF,GAAO8pF,EAAQ9pF,GAG1B,MAAO6tF,IAGTnK,aAAc,SAASoK,GACrB,GAAIA,EAAa,GAAGvyF,OAAS,EAAG,CAC9B,GAAI2jD,GAAWhf,KAAK0uD,aAAad,EAAa,GAAG,GACjD,IAAI5uC,IAAaujC,EACf,MAAO5lB,MAAK/0D,IAAIsyC,MAAMyiB,KAAMixB,EAAa,GAIzC,KAAK,GAFDyB,GAAWzB,EAAa,GACxB0B,EAAaD,EAAS,GACjBr0F,EAAI,EAAGA,EAAIq0F,EAASh0F,OAAQL,IAC7Bs0F,EAAWC,cAAcF,EAASr0F,IAAM,IACxCs0F,EAAaD,EAASr0F,GAG9B,OAAOs0F,GAGP,MAAO,OAIbpL,aAAc,SAAS0J,GACrB,GAAIA,EAAa,GAAGvyF,OAAS,EAAG,CAC9B,GAAI2jD,GAAWhf,KAAK0uD,aAAad,EAAa,GAAG,GACjD,IAAI5uC,IAAaujC,EACf,MAAO5lB,MAAK90D,IAAIqyC,MAAMyiB,KAAMixB,EAAa,GAIzC,KAAK,GAFDyB,GAAWzB,EAAa,GACxB4B,EAAaH,EAAS,GACjBr0F,EAAI,EAAGA,EAAIq0F,EAASh0F,OAAQL,IAC7Bq0F,EAASr0F,GAAGu0F,cAAcC,GAAc,IACxCA,EAAaH,EAASr0F,GAG9B,OAAOw0F,GAGT,MAAO,OAIXzL,aAAc,SAAS6J,GAGrB,IAAK,GAFD9J,GAAM,EACN2L,EAAY7B,EAAa,GACpB5yF,EAAI,EAAGA,EAAIy0F,EAAUp0F,OAAQL,IACpC8oF,GAAO2L,EAAUz0F,EAEnB,OAAO8oF,IAGTO,cAAe,SAASuJ,GACpB,OAAQ5tD,KAAK0uD,aAAad,EAAa,KACrC,IAAKrL,GACH,MAAO,QACT,KAAKO,GACH,MAAO,QACT,KAAKC,GACH,MAAO,OACT,KAAKM,GACH,MAAO,QACT,KAAKwC,GACH,MAAO,SACT,KAAKtC,GACH,MAAO,QACT,KAAKuC,GACH,MAAO,SAIfxB,cAAe,SAASsJ,GACpB,MAAOrwD,QAAO/c,KAAKotE,EAAa,KAGpCrJ,gBAAiB,SAASqJ,GAItB,IAAK,GAHD3zC,GAAM2zC,EAAa,GACnBptE,EAAO+c,OAAO/c,KAAKy5B,GACnBsd,KACKv8D,EAAI,EAAGA,EAAIwlB,EAAKnlB,OAAQL,IAC7Bu8D,EAAOnmB,KAAK6I,EAAIz5B,EAAKxlB,IAEzB,OAAOu8D,IAGXotB,cAAe,SAASiJ,GACpB,GAAI8B,GAAW9B,EAAa,GACxB+B,EAAW/B,EAAa,EAC5B,OAAO+B,GAAStkD,KAAKqkD,IAGzB3K,iBAAkB,SAAS6I,GACvB,MAAI5tD,MAAK0uD,aAAad,EAAa,MAAQ7K,EAChC6K,EAAa,IAEZA,EAAa,KAI7B3I,kBAAmB,SAAS2I,GACxB,MAAI5tD,MAAK0uD,aAAad,EAAa,MAAQ9K,EAChC8K,EAAa,GAEbnrD,KAAKmV,UAAUg2C,EAAa,KAI3CzI,kBAAmB,SAASyI,GACxB,GACIgC,GADA5wC,EAAWhf,KAAK0uD,aAAad,EAAa,GAE9C,OAAI5uC,KAAaujC,EACNqL,EAAa,GACb5uC,IAAa8jC,IACpB8M,GAAkBhC,EAAa,GAC1B9kC,MAAM8mC,IAIR,KAHQA,GAMnBvK,iBAAkB,SAASuI,GACvB,IAAK,GAAI5yF,GAAI,EAAGA,EAAI4yF,EAAavyF,OAAQL,IACrC,GAAIglC,KAAK0uD,aAAad,EAAa5yF,MAAQ8qF,EACvC,MAAO8H,GAAa5yF,EAG5B,OAAO,OAGXwpF,cAAe,SAASoJ,GACpB,GAAIiC,GAAcjC,EAAa,GAAG5hD,MAAM,EAExC,OADA6jD,GAAYpuC,OACLouC,GAGXnL,gBAAiB,SAASkJ,GACtB,GAAIiC,GAAcjC,EAAa,GAAG5hD,MAAM,EACxC,IAA2B,IAAvB6jD,EAAYx0F,OACZ,MAAOw0F,EAEX,IAAI5N,GAAcjiD,KAAKkiD,aACnBkN,EAAaxB,EAAa,GAC1BkC,EAAe9vD,KAAK0uD,aACpBzM,EAAY8K,MAAMqC,EAAYS,EAAY,IAC9C,KAAKtN,EAAaO,GAAa53C,QAAQ4kD,GAAgB,EACnD,KAAM,IAAI70F,OAAM,YAIpB,KAAK,GAFDg8E,GAAOj3C,KACP+vD,KACK/0F,EAAI,EAAGA,EAAI60F,EAAYx0F,OAAQL,IACtC+0F,EAAU3+C,MAAMp2C,EAAG60F,EAAY70F,IAEjC+0F,GAAUtuC,KAAK,SAAS3mD,EAAGk5D,GACzB,GAAIg8B,GAAQ/N,EAAY8K,MAAMqC,EAAYt0F,EAAE,IACxCm1F,EAAQhO,EAAY8K,MAAMqC,EAAYp7B,EAAE,GAC5C,IAAIijB,EAAKyX,aAAasB,KAAWF,EAC7B,KAAM,IAAI70F,OACN,uBAAyB60F,EAAe,cACxC7Y,EAAKyX,aAAasB,GACnB,IAAI/Y,EAAKyX,aAAauB,KAAWH,EACpC,KAAM,IAAI70F,OACN,uBAAyB60F,EAAe,cACxC7Y,EAAKyX,aAAauB,GAE1B,OAAID,GAAQC,EACH,EACED,EAAQC,GACV,EAEAn1F,EAAE,GAAKk5D,EAAE,IAGpB,KAAK,GAAImQ,GAAI,EAAGA,EAAI4rB,EAAU10F,OAAQ8oE,IACpC0rB,EAAY1rB,GAAK4rB,EAAU5rB,GAAG,EAEhC,OAAO0rB,IAGXhM,eAAgB,SAAS+J,GAOvB,IAAK,GAFDsC,GACAtG,EALAwF,EAAaxB,EAAa,GAC1BuC,EAAgBvC,EAAa,GAC7BwC,EAAcpwD,KAAKqwD,kBAAkBjB,GAAa7M,EAAaO,IAC/DwN,IAAa5lB,EAAAA,GAGR1vE,EAAI,EAAGA,EAAIm1F,EAAc90F,OAAQL,IACxC4uF,EAAUwG,EAAYD,EAAcn1F,IAChC4uF,EAAU0G,IACZA,EAAY1G,EACZsG,EAAYC,EAAcn1F,GAG9B,OAAOk1F,IAGT9L,eAAgB,SAASwJ,GAOvB,IAAK,GAFD2C,GACA3G,EALAwF,EAAaxB,EAAa,GAC1BuC,EAAgBvC,EAAa,GAC7BwC,EAAcpwD,KAAKqwD,kBAAkBjB,GAAa7M,EAAaO,IAC/D0N,EAAY9lB,EAAAA,EAGP1vE,EAAI,EAAGA,EAAIm1F,EAAc90F,OAAQL,IACxC4uF,EAAUwG,EAAYD,EAAcn1F,IAChC4uF,EAAU4G,IACZA,EAAY5G,EACZ2G,EAAYJ,EAAcn1F,GAG9B,OAAOu1F,IAGTF,kBAAmB,SAASjB,EAAYqB,GACtC,GAAIxZ,GAAOj3C,KACPiiD,EAAcjiD,KAAKkiD,aACnBwO,EAAU,SAAS1f,GACrB,GAAI4Y,GAAU3H,EAAY8K,MAAMqC,EAAYpe,EAC5C,IAAIyf,EAAavlD,QAAQ+rC,EAAKyX,aAAa9E,IAAY,EAAG,CACxD,GAAInoD,GAAM,8BAAgCgvD,EAChC,cAAgBxZ,EAAKyX,aAAa9E,EAC5C,MAAM,IAAI3uF,OAAMwmC,GAElB,MAAOmoD,GAET,OAAO8G,KAyBXv1F,EAAQqqF,SAAWA,EACnBrqF,EAAQmqF,QAAUA,EAClBnqF,EAAQ64C,OAASA,EACjB74C,EAAQkwD,gBAAkBA,GACN,mBAAZlwD,GAA0B6kC,KAAKomB,YAAgBjrD,QAEnDw1F,IAAI,SAAS51F,EAAQQ,EAAOJ,GAElC,YAEA,SAASsjC,GAAewb,EAAKuhB,GAC3B,MAAOj+B,QAAOwB,UAAUN,eAAerjC,KAAK6+C,EAAKuhB,GAGnDjgE,EAAOJ,QAAU,SAAS+6D,EAAIQ,EAAKia,EAAI7vC,GACrC41B,EAAMA,GAAO,IACbia,EAAKA,GAAM,GACX,IAAI12B,KAEJ,IAAkB,gBAAPic,IAAiC,IAAdA,EAAG76D,OAC/B,MAAO4+C,EAGT,IAAI22B,GAAS,KACb1a,GAAKA,EAAGnrB,MAAM2rB,EAEd,IAAIma,GAAU,GACV/vC,IAAsC,gBAApBA,GAAQ+vC,UAC5BA,EAAU/vC,EAAQ+vC,QAGpB,IAAIzN,GAAMlN,EAAG76D,MACTw1E,GAAU,GAAKzN,EAAMyN,IACvBzN,EAAMyN,EAGR,KAAK,GAAI71E,GAAI,EAAGA,EAAIooE,IAAOpoE,EAAG,CAC5B,GAEI81E,GAAMC,EAAMnvB,EAAGC,EAFfmvB,EAAI9a,EAAGl7D,GAAGq9C,QAAQu4B,EAAQ,OAC1BxV,EAAM4V,EAAE9lC,QAAQylC,EAGhBvV,IAAO,GACT0V,EAAOE,EAAEnuB,OAAO,EAAGuY,GACnB2V,EAAOC,EAAEnuB,OAAOuY,EAAM,KAEtB0V,EAAOE,EACPD,EAAO,IAGTnvB,EAAIyS,mBAAmByc,GACvBjvB,EAAIwS,mBAAmB0c,GAElBtyC,EAAewb,EAAK2H,GAEd1D,MAAMqD,QAAQtH,EAAI2H,IAC3B3H,EAAI2H,GAAGxQ,KAAKyQ,GAEZ5H,EAAI2H,IAAM3H,EAAI2H,GAAIC,GAJlB5H,EAAI2H,GAAKC,EAQb,MAAO5H,SAGH22C,IAAI,SAAS71F,EAAQQ,EAAOJ,GAElC,YAEA,IAAIg2E,GAAqB,SAAStvB,GAChC,aAAeA,IACb,IAAK,SACH,MAAOA,EAET,KAAK,UACH,MAAOA,GAAI,OAAS,OAEtB,KAAK,SACH,MAAOgkB,UAAShkB,GAAKA,EAAI,EAE3B,SACE,MAAO,IAIbtmD,GAAOJ,QAAU,SAAS8+C,EAAKyc,EAAKia,EAAI7vE,GAOtC,MANA41D,GAAMA,GAAO,IACbia,EAAKA,GAAM,IACC,OAAR12B,IACFA,EAAMlZ,QAGW,gBAARkZ,GACF1c,OAAO/c,KAAKy5B,GAAKxC,IAAI,SAASmK,GACnC,GAAIyvB,GAAKhZ,mBAAmB8Y,EAAmBvvB,IAAM+uB,CACrD,OAAIzyB,OAAMqD,QAAQtH,EAAI2H,IACb3H,EAAI2H,GAAGnK,IAAI,SAASoK,GACzB,MAAOwvB,GAAKhZ,mBAAmB8Y,EAAmBtvB,MACjDxW,KAAKqrB,GAED2a,EAAKhZ,mBAAmB8Y,EAAmBl3B,EAAI2H,OAEvDvW,KAAKqrB,GAIL51D,EACEu3D,mBAAmB8Y,EAAmBrwE,IAAS6vE,EAC/CtY,mBAAmB8Y,EAAmBl3B,IAF3B,SAKd42C,IAAI,SAAS91F,EAAQQ,EAAOJ,GAClCotC,UAAU,GAAG,IAAI,GAAG2R,MAAM/+C,EAAQotC,aAC/BgpC,WAAW,GAAGC,WAAW,KAAKsf,IAAI,SAAS/1F,EAAQQ,EAAOJ,GAW7D,QAAS41F,KACP/wD,KAAKnkC,SAAW,KAChBmkC,KAAKgxD,QAAU,KACfhxD,KAAK8wB,KAAO,KACZ9wB,KAAK2O,KAAO,KACZ3O,KAAK0T,KAAO,KACZ1T,KAAKoQ,SAAW,KAChBpQ,KAAKm6B,KAAO,KACZn6B,KAAKgU,OAAS,KACdhU,KAAKiU,MAAQ,KACbjU,KAAK+T,SAAW,KAChB/T,KAAKuC,KAAO,KACZvC,KAAK4U,KAAO,KAuCd,QAASnB,GAAS9T,EAAKsxD,EAAkBC,GACvC,GAAIvxD,GAAOsrC,EAAStrC,IAAQA,YAAeoxD,GAAK,MAAOpxD,EAEvD,IAAI9kC,GAAI,GAAIk2F,EAEZ,OADAl2F,GAAE6nC,MAAM/C,EAAKsxD,EAAkBC,GACxBr2F,EAoLT,QAASs2D,GAAUlX,GAEjB,MADI24B,GAAS34B,KAAMA,EAAMxG,EAASwG,IAC5BA,YAAe82C,GACd92C,EAAIuB,SADuBu1C,EAAIhyD,UAAUyc,OAAOpgD,KAAK6+C,GA0D9D,QAASk3C,GAAWjrB,EAAQkrB,GAC1B,MAAO39C,GAASyyB,GAAQ,GAAO,GAAMjkC,QAAQmvD,GAO/C,QAASC,GAAiBnrB,EAAQkrB,GAChC,MAAKlrB,GACEzyB,EAASyyB,GAAQ,GAAO,GAAMorB,cAAcF,GAD/BA,EA4OtB,QAASxe,GAAStpB,GAChB,MAAsB,gBAARA,GAGhB,QAAS2hB,GAAS3hB,GAChB,MAAsB,gBAARA,IAA4B,OAARA,EAGpC,QAASmqB,GAAOnqB,GACd,MAAe,QAARA,EAET,QAAS2qB,GAAkB3qB,GACzB,MAAe,OAAPA,EAljBV,GAAI4mB,GAAWn1E,EAAQ,WAEvBI,GAAQunC,MAAQ+Q,EAChBt4C,EAAQ8mC,QAAUkvD,EAClBh2F,EAAQm2F,cAAgBD,EACxBl2F,EAAQqgD,OAAS2V,EAEjBh2D,EAAQ41F,IAAMA,CAkBd,IAAIQ,GAAkB,oBAClBC,EAAc,WAEdC,GAAU,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,MAE/CC,GAAU,IAAK,IAAK,IAAK,KAAM,IAAK,KAAKpgD,OAAOmgD,GAEhDE,GAAc,KAAMrgD,OAAOogD,GAC3BE,GAAgB,IAAK,IAAK,IAAK,IAAK,KAAKtgD,OAAOqgD,GAChDE,GAAmB,IAAK,IAAK,KAC7BC,EAAiB,IACjBC,EAAsB,wBACtBC,EAAoB,8BACpBC,GACEC,YAAc,EACdC,eAAe,GAEjBC,GACEF,YAAc,EACdC,eAAe,GAEjBE,GACEtxF,MAAQ,EACRuxF,OAAS,EACTC,KAAO,EACPC,QAAU,EACVC,MAAQ,EACRC,SAAS,EACTC,UAAU,EACVC,QAAQ,EACRC,WAAW,EACXC,SAAS,GAEXlzD,EAAc7kC,EAAQ,cAU1Bg2F,GAAIhyD,UAAU2D,MAAQ,SAAS/C,EAAKsxD,EAAkBC,GACpD,IAAKte,EAASjzC,GACZ,KAAM,IAAI0rC,WAAU,+CAAkD1rC,GAGxE,IAAIoxB,GAAOpxB,CAEXoxB,GAAOA,EAAKsE,MAEZ,IAAI09B,GAAQxB,EAAgByB,KAAKjiC,EACjC,IAAIgiC,EAAO,CACTA,EAAQA,EAAM,EACd,IAAIE,GAAaF,EAAM58C,aACvBnW,MAAKnkC,SAAWo3F,EAChBliC,EAAOA,EAAKlO,OAAOkwC,EAAM13F,QAG3B,GAAI61F,GAAqB6B,GAAShiC,EAAKvf,MAAM,wBAAyB,CACpE,GAAIw/C,GAAgC,OAAtBjgC,EAAKlO,OAAO,EAAG,IACzBmuC,GAAa+B,GAASX,EAAiBW,KACzChiC,EAAOA,EAAKlO,OAAO,GACnB7iB,KAAKgxD,SAAU,GAInB,IAAKoB,EAAiBW,KACjB/B,GAAY+B,IAAUV,EAAgBU,IAAU,CAKnD,IAAK,GADDG,IAAU,EACLl4F,EAAI,EAAGA,EAAI62F,EAAgBx2F,OAAQL,IAAK,CAC/C,GAAIm4F,GAAMpiC,EAAK7lB,QAAQ2mD,EAAgB72F,GACnCm4F,MAAQ,IAAOD,KAAY,GAAMC,EAAMD,KACzCA,EAAUC,GAGd,GAAIriC,GAAMsiC,CAERA,GADEF,KAAY,EACLniC,EAAKke,YAAY,KAEjBle,EAAKke,YAAY,IAAKikB,GAG7BE,KAAW,IACbtiC,EAAOC,EAAK/kB,MAAM,EAAGonD,GACrBriC,EAAOA,EAAK/kB,MAAMonD,EAAS,GAC3BpzD,KAAK8wB,KAAOuD,mBAAmBvD,IAGjCoiC,GAAU,CACV,KAAK,GAAIl4F,GAAI,EAAGA,EAAI42F,EAAav2F,OAAQL,IAAK,CAC5C,GAAIm4F,GAAMpiC,EAAK7lB,QAAQ0mD,EAAa52F,GAChCm4F,MAAQ,IAAOD,KAAY,GAAMC,EAAMD,KACzCA,EAAUC,GAEVD,KAAY,IACdA,EAAUniC,EAAK11D,QAEjB2kC,KAAK2O,KAAOoiB,EAAK/kB,MAAM,EAAGknD,GAC1BniC,EAAOA,EAAK/kB,MAAMknD,GAElBlzD,KAAKqzD,YAELrzD,KAAKoQ,SAAWpQ,KAAKoQ,UAAY,EAEjC,IAAIkjD,GAAoC,MAArBtzD,KAAKoQ,SAAS,IACe,MAA5CpQ,KAAKoQ,SAASpQ,KAAKoQ,SAAS/0C,OAAS,EAEzC,KAAKi4F,EAEH,IAAK,GADDC,GAAYvzD,KAAKoQ,SAASrF,MAAM,MAC3B/vC,EAAI,EAAGouE,EAAImqB,EAAUl4F,OAAQL,EAAIouE,EAAGpuE,IAAK,CAChD,GAAIy9D,GAAO86B,EAAUv4F,EACrB,IAAKy9D,IACAA,EAAKjnB,MAAMugD,GAAsB,CAEpC,IAAK,GADDyB,GAAU,GACLrvB,EAAI,EAAGviB,EAAI6W,EAAKp9D,OAAQ8oE,EAAIviB,EAAGuiB,IAEpCqvB,GADE/6B,EAAKD,WAAW2L,GAAK,IACZ,IAEA1L,EAAK0L,EAGpB,KAAKqvB,EAAQhiD,MAAMugD,GAAsB,CACvC,GAAI0B,GAAaF,EAAUvnD,MAAM,EAAGhxC,GAChC04F,EAAUH,EAAUvnD,MAAMhxC,EAAI,GAC9B24F,EAAMl7B,EAAKjnB,MAAMwgD,EACjB2B,KACFF,EAAWriD,KAAKuiD,EAAI,IACpBD,EAAQzwD,QAAQ0wD,EAAI,KAElBD,EAAQr4F,SACV01D,EAAO,IAAM2iC,EAAQroD,KAAK,KAAO0lB,GAEnC/wB,KAAKoQ,SAAWqjD,EAAWpoD,KAAK,IAChC,SAYR,GANIrL,KAAKoQ,SAAS/0C,OAASy2F,EACzB9xD,KAAKoQ,SAAW,GAEhBpQ,KAAKoQ,SAAWpQ,KAAKoQ,SAAS+F,eAG3Bm9C,EAAc,CAGjB,IAAK,GAFDM,GAAc5zD,KAAKoQ,SAASrF,MAAM,KAClC8oD,KACK74F,EAAI,EAAGA,EAAI44F,EAAYv4F,SAAUL,EAAG,CAC3C,GAAIL,GAAIi5F,EAAY54F,EACpB64F,GAAOziD,KAAKz2C,EAAE62C,MAAM,kBAChB,OAAS0+B,EAASl0B,OAAOrhD,GAAKA,GAEpCqlC,KAAKoQ,SAAWyjD,EAAOxoD,KAAK,KAG9B,GAAIyoD,GAAI9zD,KAAK0T,KAAO,IAAM1T,KAAK0T,KAAO,GAClCyhB,EAAIn1B,KAAKoQ,UAAY,EACzBpQ,MAAK2O,KAAOwmB,EAAI2+B,EAChB9zD,KAAK4U,MAAQ5U,KAAK2O,KAEd2kD,IACFtzD,KAAKoQ,SAAWpQ,KAAKoQ,SAASyS,OAAO,EAAG7iB,KAAKoQ,SAAS/0C,OAAS,GAC/C,MAAZ01D,EAAK,KACPA,EAAO,IAAMA,IAKnB,IAAKkhC,EAAegB,GAElB,IAAK,GAAIj4F,GAAI,EAAGouE,EAAIuoB,EAAWt2F,OAAQL,EAAIouE,EAAGpuE,IAAK,CACjD,GAAI+4F,GAAKpC,EAAW32F,GAChBg5F,EAAM37B,mBAAmB07B,EACzBC,KAAQD,IACVC,EAAM17B,OAAOy7B,IAEfhjC,EAAOA,EAAKhmB,MAAMgpD,GAAI1oD,KAAK2oD,GAK/B,GAAI75B,GAAOpJ,EAAK7lB,QAAQ,IACpBivB,MAAS,IACXn6B,KAAKm6B,KAAOpJ,EAAKlO,OAAOsX,GACxBpJ,EAAOA,EAAK/kB,MAAM,EAAGmuB,GAEvB,IAAI85B,GAAKljC,EAAK7lB,QAAQ,IAkBtB,IAjBI+oD,KAAO,GACTj0D,KAAKgU,OAAS+c,EAAKlO,OAAOoxC,GAC1Bj0D,KAAKiU,MAAQ8c,EAAKlO,OAAOoxC,EAAK,GAC1BhD,IACFjxD,KAAKiU,MAAQrU,EAAY8C,MAAM1C,KAAKiU,QAEtC8c,EAAOA,EAAK/kB,MAAM,EAAGioD,IACZhD,IACTjxD,KAAKgU,OAAS,GACdhU,KAAKiU,UAEH8c,IAAM/wB,KAAK+T,SAAWgd,GACtBshC,EAAgBY,IAChBjzD,KAAKoQ,WAAapQ,KAAK+T,WACzB/T,KAAK+T,SAAW,KAGd/T,KAAK+T,UAAY/T,KAAKgU,OAAQ,CAChC,GAAI8/C,GAAI9zD,KAAK+T,UAAY,GACrBp5C,EAAIqlC,KAAKgU,QAAU,EACvBhU,MAAKuC,KAAOuxD,EAAIn5F,EAIlB,MADAqlC,MAAK4U,KAAO5U,KAAKwb,SACVxb,MAST+wD,EAAIhyD,UAAUyc,OAAS,WACrB,GAAIsV,GAAO9wB,KAAK8wB,MAAQ,EACpBA,KACFA,EAAOuH,mBAAmBvH,GAC1BA,EAAOA,EAAKzY,QAAQ,OAAQ,KAC5ByY,GAAQ,IAGV,IAAIj1D,GAAWmkC,KAAKnkC,UAAY,GAC5Bk4C,EAAW/T,KAAK+T,UAAY,GAC5BomB,EAAOn6B,KAAKm6B,MAAQ,GACpBxrB,GAAO,EACPsF,EAAQ,EAERjU,MAAK2O,KACPA,EAAOmiB,EAAO9wB,KAAK2O,KACV3O,KAAKoQ,WACdzB,EAAOmiB,GAAQ9wB,KAAKoQ,SAASlF,QAAQ,QAAS,EAC1ClL,KAAKoQ,SACL,IAAMpQ,KAAKoQ,SAAW,KACtBpQ,KAAK0T,OACP/E,GAAQ,IAAM3O,KAAK0T,OAInB1T,KAAKiU,OACLg3B,EAASjrC,KAAKiU,QACd1W,OAAO/c,KAAKwf,KAAKiU,OAAO54C,SAC1B44C,EAAQrU,EAAYgY,UAAU5X,KAAKiU,OAGrC,IAAID,GAAShU,KAAKgU,QAAWC,GAAU,IAAMA,GAAW,EAoBxD,OAlBIp4C,IAAoC,MAAxBA,EAASgnD,QAAO,KAAahnD,GAAY,KAErDmkC,KAAKgxD,WACHn1F,GAAYw2F,EAAgBx2F,KAAc8yC,KAAS,GACvDA,EAAO,MAAQA,GAAQ,IACnBoF,GAAmC,MAAvBA,EAASu1B,OAAO,KAAYv1B,EAAW,IAAMA,IACnDpF,IACVA,EAAO,IAGLwrB,GAA2B,MAAnBA,EAAKmP,OAAO,KAAYnP,EAAO,IAAMA,GAC7CnmB,GAA+B,MAArBA,EAAOs1B,OAAO,KAAYt1B,EAAS,IAAMA,GAEvDD,EAAWA,EAASsE,QAAQ,QAAS,SAAS7G,GAC5C,MAAO6mB,oBAAmB7mB,KAE5BwC,EAASA,EAAOqE,QAAQ,IAAK,OAEtBx8C,EAAW8yC,EAAOoF,EAAWC,EAASmmB,GAO/C42B,EAAIhyD,UAAUkD,QAAU,SAASmvD,GAC/B,MAAOpxD,MAAKsxD,cAAc79C,EAAS29C,GAAU,GAAO,IAAO51C,UAQ7Du1C,EAAIhyD,UAAUuyD,cAAgB,SAASF,GACrC,GAAIxe,EAASwe,GAAW,CACtB,GAAI8C,GAAM,GAAInD,EACdmD,GAAIxxD,MAAM0uD,GAAU,GAAO,GAC3BA,EAAW8C,EAGb,GAAI58C,GAAS,GAAIy5C,EAOjB,IANAxzD,OAAO/c,KAAKwf,MAAM+Z,QAAQ,SAAS6H,GACjCtK,EAAOsK,GAAK5hB,KAAK4hB,IAChB5hB,MAEHsX,EAAO6iB,KAAOi3B,EAASj3B,KAED,KAAlBi3B,EAASx8C,KAEX,MADA0C,GAAO1C,KAAO0C,EAAOkE,SACdlE,CAGT,IAAI85C,EAASJ,UAAYI,EAASv1F,SAYhC,MAXA0hC,QAAO/c,KAAK4wE,GAAUr3C,QAAQ,SAAS6H,GAC3B,aAANA,IACFtK,EAAOsK,GAAKwvC,EAASxvC,MAGrBywC,EAAgB/6C,EAAOz7C,WACvBy7C,EAAOlH,WAAakH,EAAOvD,WAC7BuD,EAAO/U,KAAO+U,EAAOvD,SAAW,KAGlCuD,EAAO1C,KAAO0C,EAAOkE,SACdlE,CAGT,IAAI85C,EAASv1F,UAAYu1F,EAASv1F,WAAay7C,EAAOz7C,SAAU,CAC9D,IAAKw2F,EAAgBjB,EAASv1F,UAK5B,MAJA0hC,QAAO/c,KAAK4wE,GAAUr3C,QAAQ,SAAS6H,GACrCtK,EAAOsK,GAAKwvC,EAASxvC,KAEvBtK,EAAO1C,KAAO0C,EAAOkE,SACdlE,CAIT,IADAA,EAAOz7C,SAAWu1F,EAASv1F,SACtBu1F,EAASziD,MAASyjD,EAAiBhB,EAASv1F,UAS/Cy7C,EAAOvD,SAAWq9C,EAASr9C,aAT+B,CAE1D,IADA,GAAIogD,IAAW/C,EAASr9C,UAAY,IAAIhJ,MAAM,KACvCopD,EAAQ94F,UAAY+1F,EAASziD,KAAOwlD,EAAQ7mC,WAC9C8jC,EAASziD,OAAMyiD,EAASziD,KAAO,IAC/ByiD,EAAShhD,WAAUghD,EAAShhD,SAAW,IACzB,KAAf+jD,EAAQ,IAAWA,EAAQlxD,QAAQ,IACnCkxD,EAAQ94F,OAAS,GAAG84F,EAAQlxD,QAAQ,IACxCqU,EAAOvD,SAAWogD,EAAQ9oD,KAAK,KAUjC,GANAiM,EAAOtD,OAASo9C,EAASp9C,OACzBsD,EAAOrD,MAAQm9C,EAASn9C,MACxBqD,EAAO3I,KAAOyiD,EAASziD,MAAQ,GAC/B2I,EAAOwZ,KAAOsgC,EAAStgC,KACvBxZ,EAAOlH,SAAWghD,EAAShhD,UAAYghD,EAASziD,KAChD2I,EAAO5D,KAAO09C,EAAS19C,KACnB4D,EAAOvD,UAAYuD,EAAOtD,OAAQ,CACpC,GAAI8/C,GAAIx8C,EAAOvD,UAAY,GACvBp5C,EAAI28C,EAAOtD,QAAU,EACzBsD,GAAO/U,KAAOuxD,EAAIn5F,EAIpB,MAFA28C,GAAO05C,QAAU15C,EAAO05C,SAAWI,EAASJ,QAC5C15C,EAAO1C,KAAO0C,EAAOkE,SACdlE,EAGT,GAAI88C,GAAe98C,EAAOvD,UAA0C,MAA9BuD,EAAOvD,SAASu1B,OAAO,GACzD+qB,EACIjD,EAASziD,MACTyiD,EAASr9C,UAA4C,MAAhCq9C,EAASr9C,SAASu1B,OAAO,GAElDgrB,EAAcD,GAAYD,GACX98C,EAAO3I,MAAQyiD,EAASr9C,SACvCwgD,EAAgBD,EAChBE,EAAUl9C,EAAOvD,UAAYuD,EAAOvD,SAAShJ,MAAM,SACnDopD,EAAU/C,EAASr9C,UAAYq9C,EAASr9C,SAAShJ,MAAM,SACvD0pD,EAAYn9C,EAAOz7C,WAAaw2F,EAAgB/6C,EAAOz7C,SAsB3D,IApBI44F,IACFn9C,EAAOlH,SAAW,GAClBkH,EAAO5D,KAAO,KACV4D,EAAO3I,OACU,KAAf6lD,EAAQ,GAAWA,EAAQ,GAAKl9C,EAAO3I,KACtC6lD,EAAQvxD,QAAQqU,EAAO3I,OAE9B2I,EAAO3I,KAAO,GACVyiD,EAASv1F,WACXu1F,EAAShhD,SAAW,KACpBghD,EAAS19C,KAAO,KACZ09C,EAASziD,OACQ,KAAfwlD,EAAQ,GAAWA,EAAQ,GAAK/C,EAASziD,KACxCwlD,EAAQlxD,QAAQmuD,EAASziD,OAEhCyiD,EAASziD,KAAO,MAElB2lD,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EACF/8C,EAAO3I,KAAQyiD,EAASziD,MAA0B,KAAlByiD,EAASziD,KAC3ByiD,EAASziD,KAAO2I,EAAO3I,KACrC2I,EAAOlH,SAAYghD,EAAShhD,UAAkC,KAAtBghD,EAAShhD,SAC/BghD,EAAShhD,SAAWkH,EAAOlH,SAC7CkH,EAAOtD,OAASo9C,EAASp9C,OACzBsD,EAAOrD,MAAQm9C,EAASn9C,MACxBugD,EAAUL,MACL,IAAIA,EAAQ94F,OACZm5F,IAASA,MACdA,EAAQ90C,MACR80C,EAAUA,EAAQljD,OAAO6iD,GACzB78C,EAAOtD,OAASo9C,EAASp9C,OACzBsD,EAAOrD,MAAQm9C,EAASn9C,UACnB,KAAKggC,EAAkBmd,EAASp9C,QAAS,CAC9C,GAAIygD,EAAW,CACbn9C,EAAOlH,SAAWkH,EAAO3I,KAAO6lD,EAAQlnC,OACxC,IAAIonC,MAAap9C,EAAO3I,MAAQ2I,EAAO3I,KAAKzD,QAAQ,KAAO,IAC1CoM,EAAO3I,KAAK5D,MAAM,IAC/B2pD,KACFp9C,EAAOwZ,KAAO4jC,EAAWpnC,QACzBhW,EAAO3I,KAAO2I,EAAOlH,SAAWskD,EAAWpnC,SAU/C,MAPAhW,GAAOtD,OAASo9C,EAASp9C,OACzBsD,EAAOrD,MAAQm9C,EAASn9C,MACnBw/B,EAAOn8B,EAAOvD,WAAc0/B,EAAOn8B,EAAOtD,UAC7CsD,EAAO/U,MAAQ+U,EAAOvD,SAAWuD,EAAOvD,SAAW,KACpCuD,EAAOtD,OAASsD,EAAOtD,OAAS,KAEjDsD,EAAO1C,KAAO0C,EAAOkE,SACdlE,EAGT,IAAKk9C,EAAQn5F,OAQX,MAPAi8C,GAAOvD,SAAW,KACduD,EAAOtD,OACTsD,EAAO/U,KAAO,IAAM+U,EAAOtD,OAE3BsD,EAAO/U,KAAO,KAEhB+U,EAAO1C,KAAO0C,EAAOkE,SACdlE,CAST,KAAK,GANDq9C,GAAOH,EAAQxoD,OAAM,GAAI,GACzB4oD,GACCt9C,EAAO3I,MAAQyiD,EAASziD,QAAmB,MAATgmD,GAAyB,OAATA,IAC1C,KAATA,EAEAE,EAAK,EACA75F,EAAIw5F,EAAQn5F,OAAQL,GAAK,EAAGA,IACnC25F,EAAOH,EAAQx5F,GACH,KAAR25F,EACFH,EAAQznC,OAAO/xD,EAAG,GACA,OAAT25F,GACTH,EAAQznC,OAAO/xD,EAAG,GAClB65F,KACSA,IACTL,EAAQznC,OAAO/xD,EAAG,GAClB65F,IAIJ,KAAKP,IAAeC,EAClB,KAAOM,IAAMA,EACXL,EAAQvxD,QAAQ,OAIhBqxD,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGlrB,OAAO,IACpCkrB,EAAQvxD,QAAQ,IAGd2xD,GAAsD,MAAjCJ,EAAQnpD,KAAK,KAAKwX,QAAO,IAChD2xC,EAAQpjD,KAAK,GAGf,IAAI0jD,GAA4B,KAAfN,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGlrB,OAAO,EAErC,IAAImrB,EAAW,CACbn9C,EAAOlH,SAAWkH,EAAO3I,KAAOmmD,EAAa,GACbN,EAAQn5F,OAASm5F,EAAQlnC,QAAU,EACnE,IAAIonC,MAAap9C,EAAO3I,MAAQ2I,EAAO3I,KAAKzD,QAAQ,KAAO,IAC1CoM,EAAO3I,KAAK5D,MAAM,IAC/B2pD,KACFp9C,EAAOwZ,KAAO4jC,EAAWpnC,QACzBhW,EAAO3I,KAAO2I,EAAOlH,SAAWskD,EAAWpnC,SAwB/C,MApBAgnC,GAAaA,GAAeh9C,EAAO3I,MAAQ6lD,EAAQn5F,OAE/Ci5F,IAAeQ,GACjBN,EAAQvxD,QAAQ,IAGbuxD,EAAQn5F,OAIXi8C,EAAOvD,SAAWygD,EAAQnpD,KAAK,MAH/BiM,EAAOvD,SAAW,KAClBuD,EAAO/U,KAAO,MAKXkxC,EAAOn8B,EAAOvD,WAAc0/B,EAAOn8B,EAAOtD,UAC7CsD,EAAO/U,MAAQ+U,EAAOvD,SAAWuD,EAAOvD,SAAW,KACpCuD,EAAOtD,OAASsD,EAAOtD,OAAS,KAEjDsD,EAAOwZ,KAAOsgC,EAAStgC,MAAQxZ,EAAOwZ,KACtCxZ,EAAO05C,QAAU15C,EAAO05C,SAAWI,EAASJ,QAC5C15C,EAAO1C,KAAO0C,EAAOkE,SACdlE,GAGTy5C,EAAIhyD,UAAUs0D,UAAY,WACxB,GAAI1kD,GAAO3O,KAAK2O,KACZ+E,EAAO89C,EAAYwB,KAAKrkD,EACxB+E,KACFA,EAAOA,EAAK,GACC,MAATA,IACF1T,KAAK0T,KAAOA,EAAKmP,OAAO,IAE1BlU,EAAOA,EAAKkU,OAAO,EAAGlU,EAAKtzC,OAASq4C,EAAKr4C,SAEvCszC,IAAM3O,KAAKoQ,SAAWzB,MAkBzBuhC,SAAW,GAAGtwC,YAAc,KAAKm1D,IAAI,SAASh6F,EAAQQ,EAAOJ,IAChE,WACE,GAAI65F,GAAcz8C,CAElBA,GAASx9C,EAAQ,wBAEjBQ,EAAOJ,QAAU65F,EAAe,WAC9B,QAASA,GAAaC,EAAQn0F,EAAMf,GAElC,GADAigC,KAAK4X,UAAYq9C,EAAOr9C,UACZ,MAAR92C,EACF,KAAM,IAAI7F,OAAM,qCAAuCg6F,EAAOn0F,KAEhE,IAAa,MAATf,EACF,KAAM,IAAI9E,OAAM,yCAA2C6F,EAAO,eAAiBm0F,EAAOn0F,KAE5Fk/B,MAAKl/B,KAAOk/B,KAAK4X,UAAUs9C,QAAQp0F,GACnCk/B,KAAKjgC,MAAQigC,KAAK4X,UAAUu9C,SAASp1F,GAWvC,MARAi1F,GAAaj2D,UAAUq2D,MAAQ,WAC7B,MAAO78C,GAAOy8C,EAAaj2D,UAAWiB,OAGxCg1D,EAAaj2D,UAAUuG,SAAW,SAASxE,EAASu0D,GAClD,MAAO,IAAMr1D,KAAKl/B,KAAO,KAAOk/B,KAAKjgC,MAAQ,KAGxCi1F,OAIR55F,KAAK4kC,QAELs1D,uBAAuB,MAAMC,IAAI,SAASx6F,EAAQQ,EAAOJ,IAC5D,WACE,GAAIq6F,GAAYC,EAAgBC,EAAYC,EAAYC,CAExDA,GAAiB76F,EAAQ,oBAEzB06F,EAAiB16F,EAAQ,oBAEzB26F,EAAa36F,EAAQ,gBAErB46F,EAAa56F,EAAQ,gBAErBQ,EAAOJ,QAAUq6F,EAAa,WAC5B,QAASA,GAAW10F,EAAMggC,GACxB,GAAI+/B,GAAM+I,CACV,IAAY,MAAR9oE,EACF,KAAM,IAAI7F,OAAM,4BAEH,OAAX6lC,IACFA,MAEFd,KAAKc,QAAUA,EACfd,KAAK4X,UAAY,GAAIg+C,GAAe90D,GACpC8oC,EAAO,GAAI+rB,GAAW31D,KAAM,OAC5B6gC,EAAO+I,EAAKzJ,QAAQr/D,GACpB+/D,EAAKH,QAAS,EACdG,EAAKg1B,eAAiB71D,KACtBA,KAAK81D,WAAaj1B,EACb//B,EAAQi1D,WACXl1B,EAAKm1B,YAAYl1D,GACK,MAAjBA,EAAQm1D,OAAoC,MAAjBn1D,EAAQo1D,OACtCr1B,EAAKs1B,QAAQr1D,IAiCnB,MA5BA00D,GAAWz2D,UAAU8hC,KAAO,WAC1B,MAAO7gC,MAAK81D,YAGdN,EAAWz2D,UAAUkqB,IAAM,SAASnoB,GAClC,MAAOd,MAAKsF,SAASxE,IAGvB00D,EAAWz2D,UAAUuG,SAAW,SAASxE,GACvC,GAAIs1D,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,CAgBnD,OAfAH,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/E/7F,EAAI,GACe,MAAfslC,KAAK02D,SACPh8F,GAAKslC,KAAK02D,OAAOpxD,SAASxE,IAER,MAAhBd,KAAKm2D,UACPz7F,GAAKslC,KAAKm2D,QAAQ7wD,SAASxE,IAE7BpmC,GAAKslC,KAAK81D,WAAWxwD,SAASxE,GAC1Bw1D,GAAU57F,EAAEsxC,OAAOqqD,EAAQh7F,UAAYg7F,IACzC37F,EAAIA,EAAEsxC,MAAM,GAAIqqD,EAAQh7F,SAEnBX,GAGF86F,OAIRp6F,KAAK4kC,QAEL22D,mBAAmB,GAAGC,eAAe,GAAGC,eAAe,GAAGC,mBAAmB,KAAKC,IAAI,SAASh8F,EAAQQ,EAAOJ,IACjH,WACE,GAAI67F,GAAUC,EAAS1+C,EACrB2+C,EAAS,SAASt4B,EAAOq2B,GAA+F,QAASj5B,KAASh8B,KAAKa,YAAc+9B,EAA1H,IAAK,GAAI9+D,KAAOm1F,GAAckC,EAAQ/7F,KAAK65F,EAAQn1F,KAAM8+D,EAAM9+D,GAAOm1F,EAAOn1F,GAA2J,OAArGk8D,GAAKj9B,UAAYk2D,EAAOl2D,UAAW6/B,EAAM7/B,UAAY,GAAIi9B,GAAQ4C,EAAM3C,UAAYg5B,EAAOl2D,UAAkB6/B,GAClRu4B,KAAa14D,cAEf8Z,GAASx9C,EAAQ,wBAEjBk8F,EAAUl8F,EAAQ,aAElBQ,EAAOJ,QAAU67F,EAAW,SAAUI,GAGpC,QAASJ,GAAS/B,EAAQ/1B,GAExB,GADA83B,EAAS/6B,UAAUp7B,YAAYzlC,KAAK4kC,KAAMi1D,GAC9B,MAAR/1B,EACF,KAAM,IAAIjkE,OAAM,qBAElB+kC,MAAKk/B,KAAOl/B,KAAK4X,UAAUy/C,MAAMn4B,GA0BnC,MAjCAg4B,GAAOF,EAAUI,GAUjBJ,EAASj4D,UAAUq2D,MAAQ,WACzB,MAAO78C,GAAOy+C,EAASj4D,UAAWiB,OAGpCg3D,EAASj4D,UAAUuG,SAAW,SAASxE,EAASu0D,GAC9C,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAezD,OAdAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,YAAcslC,KAAKk/B,KAAO,MAC3Bo3B,IACF57F,GAAK27F,GAEA37F,GAGFs8F,GAENC,KAEF77F,KAAK4kC,QAELu3D,YAAY,GAAGjC,uBAAuB,MAAMkC,IAAI,SAASz8F,EAAQQ,EAAOJ,IAC3E,WACE,GAAIs8F,GAAYR,EAAS1+C,EACvB2+C,EAAS,SAASt4B,EAAOq2B,GAA+F,QAASj5B,KAASh8B,KAAKa,YAAc+9B,EAA1H,IAAK,GAAI9+D,KAAOm1F,GAAckC,EAAQ/7F,KAAK65F,EAAQn1F,KAAM8+D,EAAM9+D,GAAOm1F,EAAOn1F,GAA2J,OAArGk8D,GAAKj9B,UAAYk2D,EAAOl2D,UAAW6/B,EAAM7/B,UAAY,GAAIi9B,GAAQ4C,EAAM3C,UAAYg5B,EAAOl2D,UAAkB6/B,GAClRu4B,KAAa14D,cAEf8Z,GAASx9C,EAAQ,wBAEjBk8F,EAAUl8F,EAAQ,aAElBQ,EAAOJ,QAAUs8F,EAAa,SAAUL,GAGtC,QAASK,GAAWxC,EAAQ/1B,GAE1B,GADAu4B,EAAWx7B,UAAUp7B,YAAYzlC,KAAK4kC,KAAMi1D,GAChC,MAAR/1B,EACF,KAAM,IAAIjkE,OAAM,uBAElB+kC,MAAKk/B,KAAOl/B,KAAK4X,UAAU8/C,QAAQx4B,GA0BrC,MAjCAg4B,GAAOO,EAAYL,GAUnBK,EAAW14D,UAAUq2D,MAAQ,WAC3B,MAAO78C,GAAOk/C,EAAW14D,UAAWiB,OAGtCy3D,EAAW14D,UAAUuG,SAAW,SAASxE,EAASu0D,GAChD,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAezD,OAdAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,QAAUslC,KAAKk/B,KAAO,OACvBo3B,IACF57F,GAAK27F,GAEA37F,GAGF+8F,GAENR,KAEF77F,KAAK4kC,QAELu3D,YAAY,GAAGjC,uBAAuB,MAAMqC,IAAI,SAAS58F,EAAQQ,EAAOJ,IAC3E,WACE,GAAIy8F,GAAer/C,CAEnBA,GAASx9C,EAAQ,wBAEjBQ,EAAOJ,QAAUy8F,EAAgB,WAC/B,QAASA,GAAc3C,EAAQ4C,EAAaC,EAAeC,EAAeC,EAAkB70D,GAE1F,GADAnD,KAAK4X,UAAYq9C,EAAOr9C,UACL,MAAfigD,EACF,KAAM,IAAI58F,OAAM,2BAElB,IAAqB,MAAjB68F,EACF,KAAM,IAAI78F,OAAM,6BAElB,KAAK88F,EACH,KAAM,IAAI98F,OAAM,6BAElB,KAAK+8F,EACH,KAAM,IAAI/8F,OAAM,gCAKlB,IAHsC,IAAlC+8F,EAAiB9sD,QAAQ,OAC3B8sD,EAAmB,IAAMA,IAEtBA,EAAiBxmD,MAAM,0CAC1B,KAAM,IAAIv2C,OAAM,gFAElB,IAAIkoC,IAAiB60D,EAAiBxmD,MAAM,uBAC1C,KAAM,IAAIv2C,OAAM,mDAElB+kC,MAAK63D,YAAc73D,KAAK4X,UAAUqgD,QAAQJ,GAC1C73D,KAAK83D,cAAgB93D,KAAK4X,UAAUs9C,QAAQ4C,GAC5C93D,KAAK+3D,cAAgB/3D,KAAK4X,UAAUsgD,WAAWH,GAC/C/3D,KAAKmD,aAAenD,KAAK4X,UAAUugD,cAAch1D,GACjDnD,KAAKg4D,iBAAmBA,EAiC1B,MA9BAJ,GAAc74D,UAAUq2D,MAAQ,WAC9B,MAAO78C,GAAOq/C,EAAc74D,UAAWiB,OAGzC43D,EAAc74D,UAAUuG,SAAW,SAASxE,EAASu0D,GACnD,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAsBzD,OArBAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,aAAeslC,KAAK63D,YAAc,IAAM73D,KAAK83D,cAAgB,IAAM93D,KAAK+3D,cAC/C,aAA1B/3D,KAAKg4D,mBACPt9F,GAAK,IAAMslC,KAAKg4D,kBAEdh4D,KAAKmD,eACPzoC,GAAK,KAAOslC,KAAKmD,aAAe,KAElCzoC,GAAK,IACD47F,IACF57F,GAAK27F,GAEA37F,GAGFk9F,OAIRx8F,KAAK4kC,QAELs1D,uBAAuB,MAAM8C,IAAI,SAASr9F,EAAQQ,EAAOJ,IAC5D,WACE,GAAIk9F,GAAe9/C,EAAQgJ,CAE3BhJ,GAASx9C,EAAQ,wBAEjBwmD,EAAUxmD,EAAQ,uBAElBQ,EAAOJ,QAAUk9F,EAAgB,WAC/B,QAASA,GAAcpD,EAAQn0F,EAAMf,GAEnC,GADAigC,KAAK4X,UAAYq9C,EAAOr9C,UACZ,MAAR92C,EACF,KAAM,IAAI7F,OAAM,2BAEb8E,KACHA,EAAQ,aAENwhD,EAAQxhD,KACVA,EAAQ,IAAMA,EAAMsrC,KAAK,KAAO,KAElCrL,KAAKl/B,KAAOk/B,KAAK4X,UAAUqgD,QAAQn3F,GACnCk/B,KAAKjgC,MAAQigC,KAAK4X,UAAU0gD,gBAAgBv4F,GA0B9C,MAvBAs4F,GAAct5D,UAAUq2D,MAAQ,WAC9B,MAAO78C,GAAO8/C,EAAct5D,UAAWiB,OAGzCq4D,EAAct5D,UAAUuG,SAAW,SAASxE,EAASu0D,GACnD,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAezD,OAdAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,aAAeslC,KAAKl/B,KAAO,IAAMk/B,KAAKjgC,MAAQ,IAC/Cu2F,IACF57F,GAAK27F,GAEA37F,GAGF29F,OAIRj9F,KAAK4kC,QAELu4D,sBAAsB,IAAIjD,uBAAuB,MAAMkD,IAAI,SAASz9F,EAAQQ,EAAOJ,IACtF,WACE,GAAIs9F,GAAclgD,EAAQ0yB,CAE1B1yB,GAASx9C,EAAQ,wBAEjBkwE,EAAWlwE,EAAQ,wBAEnBQ,EAAOJ,QAAUs9F,EAAe,WAC9B,QAASA,GAAaxD,EAAQyD,EAAI53F,EAAMf,GAEtC,GADAigC,KAAK4X,UAAYq9C,EAAOr9C,UACZ,MAAR92C,EACF,KAAM,IAAI7F,OAAM,sBAElB,IAAa,MAAT8E,EACF,KAAM,IAAI9E,OAAM,uBAIlB,IAFA+kC,KAAK04D,KAAOA,EACZ14D,KAAKl/B,KAAOk/B,KAAK4X,UAAUqgD,QAAQn3F,GAC9BmqE,EAASlrE,GAEP,CACL,IAAKA,EAAMk2F,QAAUl2F,EAAMm2F,MACzB,KAAM,IAAIj7F,OAAM,uEAElB,IAAI8E,EAAMk2F,QAAUl2F,EAAMm2F,MACxB,KAAM,IAAIj7F,OAAM,6DAWlB,IATmB,MAAf8E,EAAMk2F,QACRj2D,KAAKi2D,MAAQj2D,KAAK4X,UAAU+gD,SAAS54F,EAAMk2F,QAE1B,MAAfl2F,EAAMm2F,QACRl2D,KAAKk2D,MAAQl2D,KAAK4X,UAAUghD,SAAS74F,EAAMm2F,QAE1B,MAAfn2F,EAAM84F,QACR74D,KAAK64D,MAAQ74D,KAAK4X,UAAUkhD,SAAS/4F,EAAM84F,QAEzC74D,KAAK04D,IAAM14D,KAAK64D,MAClB,KAAM,IAAI59F,OAAM,iEAlBlB+kC,MAAKjgC,MAAQigC,KAAK4X,UAAUmhD,eAAeh5F,GA+D/C,MAxCA04F,GAAa15D,UAAUq2D,MAAQ,WAC7B,MAAO78C,GAAOkgD,EAAa15D,UAAWiB,OAGxCy4D,EAAa15D,UAAUuG,SAAW,SAASxE,EAASu0D,GAClD,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAgCzD,OA/BAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,WACDslC,KAAK04D,KACPh+F,GAAK,MAEPA,GAAK,IAAMslC,KAAKl/B,KACZk/B,KAAKjgC,MACPrF,GAAK,KAAOslC,KAAKjgC,MAAQ,KAErBigC,KAAKi2D,OAASj2D,KAAKk2D,MACrBx7F,GAAK,YAAcslC,KAAKi2D,MAAQ,MAAQj2D,KAAKk2D,MAAQ,IAC5Cl2D,KAAKk2D,QACdx7F,GAAK,YAAcslC,KAAKk2D,MAAQ,KAE9Bl2D,KAAK64D,QACPn+F,GAAK,UAAYslC,KAAK64D,QAG1Bn+F,GAAK,IACD47F,IACF57F,GAAK27F,GAEA37F,GAGF+9F,OAIRr9F,KAAK4kC,QAELg5D,uBAAuB,IAAI1D,uBAAuB,MAAM2D,IAAI,SAASl+F,EAAQQ,EAAOJ,IACvF,WACE,GAAI+9F,GAAgB3gD,CAEpBA,GAASx9C,EAAQ,wBAEjBQ,EAAOJ,QAAU+9F,EAAiB,WAChC,QAASA,GAAejE,EAAQn0F,EAAMf,GAEpC,GADAigC,KAAK4X,UAAYq9C,EAAOr9C,UACZ,MAAR92C,EACF,KAAM,IAAI7F,OAAM,wBAElB,KAAK8E,EAAMk2F,QAAUl2F,EAAMm2F,MACzB,KAAM,IAAIj7F,OAAM,mEAElB+kC,MAAKl/B,KAAOk/B,KAAK4X,UAAUqgD,QAAQn3F,GAChB,MAAff,EAAMk2F,QACRj2D,KAAKi2D,MAAQj2D,KAAK4X,UAAU+gD,SAAS54F,EAAMk2F,QAE1B,MAAfl2F,EAAMm2F,QACRl2D,KAAKk2D,MAAQl2D,KAAK4X,UAAUghD,SAAS74F,EAAMm2F,QAmC/C,MA/BAgD,GAAen6D,UAAUq2D,MAAQ,WAC/B,MAAO78C,GAAO2gD,EAAen6D,UAAWiB,OAG1Ck5D,EAAen6D,UAAUuG,SAAW,SAASxE,EAASu0D,GACpD,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAuBzD,OAtBAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,cAAgBslC,KAAKl/B,KACtBk/B,KAAKi2D,OAASj2D,KAAKk2D,MACrBx7F,GAAK,YAAcslC,KAAKi2D,MAAQ,MAAQj2D,KAAKk2D,MAAQ,IAC5Cl2D,KAAKi2D,MACdv7F,GAAK,YAAcslC,KAAKi2D,MAAQ,IACvBj2D,KAAKk2D,QACdx7F,GAAK,YAAcslC,KAAKk2D,MAAQ,KAElCx7F,GAAK,IACD47F,IACF57F,GAAK27F,GAEA37F,GAGFw+F,OAIR99F,KAAK4kC,QAELs1D,uBAAuB,MAAM6D,IAAI,SAASp+F,EAAQQ,EAAOJ,IAC5D,WACE,GAAIs6F,GAAgBwB,EAAS1+C,EAAQ0yB,EACnCisB,EAAS,SAASt4B,EAAOq2B,GAA+F,QAASj5B,KAASh8B,KAAKa,YAAc+9B,EAA1H,IAAK,GAAI9+D,KAAOm1F,GAAckC,EAAQ/7F,KAAK65F,EAAQn1F,KAAM8+D,EAAM9+D,GAAOm1F,EAAOn1F,GAA2J,OAArGk8D,GAAKj9B,UAAYk2D,EAAOl2D,UAAW6/B,EAAM7/B,UAAY,GAAIi9B,GAAQ4C,EAAM3C,UAAYg5B,EAAOl2D,UAAkB6/B,GAClRu4B,KAAa14D,cAEf8Z,GAASx9C,EAAQ,wBAEjBkwE,EAAWlwE,EAAQ,wBAEnBk8F,EAAUl8F,EAAQ,aAElBQ,EAAOJ,QAAUs6F,EAAiB,SAAU2B,GAG1C,QAAS3B,GAAeR,EAAQz5F,EAASyjE,EAAUm6B,GACjD,GAAI7C,EACJd,GAAex5B,UAAUp7B,YAAYzlC,KAAK4kC,KAAMi1D,GAC5ChqB,EAASzvE,KACX+6F,EAAM/6F,EAASA,EAAU+6F,EAAI/6F,QAASyjE,EAAWs3B,EAAIt3B,SAAUm6B,EAAa7C,EAAI6C,YAE7E59F,IACHA,EAAU,OAEG,MAAXA,IACFwkC,KAAKxkC,QAAUwkC,KAAK4X,UAAUyhD,WAAW79F,IAE3B,MAAZyjE,IACFj/B,KAAKi/B,SAAWj/B,KAAK4X,UAAU0hD,YAAYr6B,IAE3B,MAAdm6B,IACFp5D,KAAKo5D,WAAap5D,KAAK4X,UAAU2hD,cAAcH,IAqCnD,MAvDAlC,GAAOzB,EAAgB2B,GAsBvB3B,EAAe12D,UAAUq2D,MAAQ,WAC/B,MAAO78C,GAAOk9C,EAAe12D,UAAWiB,OAG1Cy1D,EAAe12D,UAAUuG,SAAW,SAASxE,EAASu0D,GACpD,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAyBzD,OAxBAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,QACe,MAAhBslC,KAAKxkC,UACPd,GAAK,aAAeslC,KAAKxkC,QAAU,KAEhB,MAAjBwkC,KAAKi/B,WACPvkE,GAAK,cAAgBslC,KAAKi/B,SAAW,KAEhB,MAAnBj/B,KAAKo5D,aACP1+F,GAAK,gBAAkBslC,KAAKo5D,WAAa,KAE3C1+F,GAAK,KACD47F,IACF57F,GAAK27F,GAEA37F,GAGF+6F,GAENwB,KAEF77F,KAAK4kC,QAELu3D,YAAY,GAAGyB,uBAAuB,IAAI1D,uBAAuB,MAAMkE,IAAI,SAASz+F,EAAQQ,EAAOJ,IACtG,WACE,GAAI67F,GAAUS,EAAYG,EAAeS,EAAeI,EAAcS,EAAgBxD,EAAY+D,EAA0BlhD,EAAQ0yB,CAEpI1yB,GAASx9C,EAAQ,wBAEjBkwE,EAAWlwE,EAAQ,wBAEnBi8F,EAAWj8F,EAAQ,cAEnB08F,EAAa18F,EAAQ,gBAErB68F,EAAgB78F,EAAQ,mBAExB09F,EAAe19F,EAAQ,kBAEvBs9F,EAAgBt9F,EAAQ,mBAExBm+F,EAAiBn+F,EAAQ,oBAEzB0+F,EAA2B1+F,EAAQ,8BAEnCQ,EAAOJ,QAAUu6F,EAAa,WAC5B,QAASA,GAAWT,EAAQgB,EAAOC,GACjC,GAAIK,GAAKC,CACTx2D,MAAK61D,eAAiBZ,EACtBj1D,KAAK4X,UAAY5X,KAAK61D,eAAej+C,UACrC5X,KAAK4gC,YACDqK,EAASgrB,KACXM,EAAMN,EAAOA,EAAQM,EAAIN,MAAOC,EAAQK,EAAIL,OAEjC,MAATA,IACFM,GAAQP,EAAOC,GAAQA,EAAQM,EAAK,GAAIP,EAAQO,EAAK,IAE1C,MAATP,IACFj2D,KAAKi2D,MAAQj2D,KAAK4X,UAAU+gD,SAAS1C,IAE1B,MAATC,IACFl2D,KAAKk2D,MAAQl2D,KAAK4X,UAAUghD,SAAS1C,IAqJzC,MAjJAR,GAAW32D,UAAUq2D,MAAQ,WAC3B,MAAO78C,GAAOm9C,EAAW32D,UAAWiB,OAGtC01D,EAAW32D,UAAUohC,QAAU,SAASr/D,EAAMf,GAC5C,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAIy5B,GAAcr4D,KAAMl/B,EAAMf,GACtCigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU26D,QAAU,SAAS7B,EAAaC,EAAeC,EAAeC,EAAkB70D,GACnG,GAAIy7B,EAGJ,OAFAA,GAAQ,GAAIg5B,GAAc53D,KAAM63D,EAAaC,EAAeC,EAAeC,EAAkB70D,GAC7FnD,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU46D,OAAS,SAAS74F,EAAMf,GAC3C,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAI65B,GAAaz4D,MAAM,EAAOl/B,EAAMf,GAC5CigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU66D,QAAU,SAAS94F,EAAMf,GAC5C,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAI65B,GAAaz4D,MAAM,EAAMl/B,EAAMf,GAC3CigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU86D,SAAW,SAAS/4F,EAAMf,GAC7C,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAIs6B,GAAel5D,KAAMl/B,EAAMf,GACvCigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAUs4D,MAAQ,SAASt3F,GACpC,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAIo4B,GAASh3D,KAAMjgC,GAC3BigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU24D,QAAU,SAAS33F,GACtC,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAI64B,GAAWz3D,KAAMjgC,GAC7BigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU+6D,YAAc,SAASv6C,EAAQx/C,GAClD,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAI66B,GAAyBz5D,KAAMuf,EAAQx/C,GACnDigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGT01D,EAAW32D,UAAU8hC,KAAO,WAC1B,MAAO7gC,MAAK61D,eAAeh1B,QAG7B60B,EAAW32D,UAAUg7D,SAAW,WAC9B,MAAO/5D,MAAK61D,gBAGdH,EAAW32D,UAAUuG,SAAW,SAASxE,EAASu0D,GAChD,GAAIz2B,GAAO5jE,EAAGo7F,EAAQhzB,EAAKizB,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMuD,EAAM1C,CAiB9E,IAhBAhB,GAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,aAAeslC,KAAK6gC,OAAO//D,KAC5Bk/B,KAAKi2D,OAASj2D,KAAKk2D,MACrBx7F,GAAK,YAAcslC,KAAKi2D,MAAQ,MAAQj2D,KAAKk2D,MAAQ,IAC5Cl2D,KAAKk2D,QACdx7F,GAAK,YAAcslC,KAAKk2D,MAAQ,KAE9Bl2D,KAAK4gC,SAASvlE,OAAS,EAAG,CAM5B,IALAX,GAAK,KACD47F,IACF57F,GAAK27F,GAEP2D,EAAOh6D,KAAK4gC,SACP5lE,EAAI,EAAGooE,EAAM42B,EAAK3+F,OAAQL,EAAIooE,EAAKpoE,IACtC4jE,EAAQo7B,EAAKh/F,GACbN,GAAKkkE,EAAMt5B,SAASxE,EAASu0D,EAAQ,EAEvC36F,IAAK,IAMP,MAJAA,IAAK,IACD47F,IACF57F,GAAK27F,GAEA37F,GAGTg7F,EAAW32D,UAAUqhC,IAAM,SAASt/D,EAAMf,GACxC,MAAOigC,MAAKmgC,QAAQr/D,EAAMf,IAG5B21F,EAAW32D,UAAUmhC,IAAM,SAAS23B,EAAaC,EAAeC,EAAeC,EAAkB70D,GAC/F,MAAOnD,MAAK05D,QAAQ7B,EAAaC,EAAeC,EAAeC,EAAkB70D,IAGnFuyD,EAAW32D,UAAUk7D,IAAM,SAASn5F,EAAMf,GACxC,MAAOigC,MAAK25D,OAAO74F,EAAMf,IAG3B21F,EAAW32D,UAAUm7D,KAAO,SAASp5F,EAAMf,GACzC,MAAOigC,MAAK45D,QAAQ94F,EAAMf,IAG5B21F,EAAW32D,UAAUo7D,IAAM,SAASr5F,EAAMf,GACxC,MAAOigC,MAAK65D,SAAS/4F,EAAMf,IAG7B21F,EAAW32D,UAAUq7D,IAAM,SAASr6F,GAClC,MAAOigC,MAAKq3D,MAAMt3F,IAGpB21F,EAAW32D,UAAUs7D,IAAM,SAASt6F,GAClC,MAAOigC,MAAK03D,QAAQ33F,IAGtB21F,EAAW32D,UAAUu7D,IAAM,SAAS/6C,EAAQx/C,GAC1C,MAAOigC,MAAK85D,YAAYv6C,EAAQx/C,IAGlC21F,EAAW32D,UAAU81D,GAAK,WACxB,MAAO70D,MAAK6gC,QAGd60B,EAAW32D,UAAUw7D,IAAM,WACzB,MAAOv6D,MAAK+5D,YAGPrE,OAIRt6F,KAAK4kC,QAELw6D,aAAa,GAAGC,eAAe,GAAGC,kBAAkB,GAAGC,kBAAkB,GAAGC,iBAAiB,GAAGC,mBAAmB,GAAGC,6BAA6B,GAAG9B,uBAAuB,IAAI1D,uBAAuB,MAAMyF,IAAI,SAAShgG,EAAQQ,EAAOJ,IAC7O,WACE,GAAI65F,GAAcW,EAAYsB,EAASwC,EAA0BlhD,EAAQyiD,EAAOz5C,EAASwpB,EAAYE,EACnGisB,EAAS,SAASt4B,EAAOq2B,GAA+F,QAASj5B,KAASh8B,KAAKa,YAAc+9B,EAA1H,IAAK,GAAI9+D,KAAOm1F,GAAckC,EAAQ/7F,KAAK65F,EAAQn1F,KAAM8+D,EAAM9+D,GAAOm1F,EAAOn1F,GAA2J,OAArGk8D,GAAKj9B,UAAYk2D,EAAOl2D,UAAW6/B,EAAM7/B,UAAY,GAAIi9B,GAAQ4C,EAAM3C,UAAYg5B,EAAOl2D,UAAkB6/B,GAClRu4B,KAAa14D,cAEf8Z,GAASx9C,EAAQ,wBAEjBkwE,EAAWlwE,EAAQ,wBAEnBwmD,EAAUxmD,EAAQ,uBAElBgwE,EAAahwE,EAAQ,0BAErBigG,EAAQjgG,EAAQ,2BAEhBk8F,EAAUl8F,EAAQ,aAElBi6F,EAAej6F,EAAQ,kBAEvB0+F,EAA2B1+F,EAAQ;AAEnCQ,EAAOJ,QAAUw6F,EAAa,SAAUyB,GAGtC,QAASzB,GAAWV,EAAQn0F,EAAMu9D,GAEhC,GADAs3B,EAAW15B,UAAUp7B,YAAYzlC,KAAK4kC,KAAMi1D,GAChC,MAARn0F,EACF,KAAM,IAAI7F,OAAM,uBAElB+kC,MAAKl/B,KAAOk/B,KAAK4X,UAAUqgD,QAAQn3F,GACnCk/B,KAAK4gC,YACL5gC,KAAKi7D,gBACLj7D,KAAKq+B,cACa,MAAdA,GACFr+B,KAAKk7D,UAAU78B,GA8KnB,MA1LA64B,GAAOvB,EAAYyB,GAgBnBzB,EAAW52D,UAAUq2D,MAAQ,WAC3B,GAAIl1B,GAAKg1B,EAASiG,EAAYngG,EAAGooE,EAAKg4B,EAAI7E,EAAKC,CAC/C2E,GAAa5iD,EAAOo9C,EAAW52D,UAAWiB,MACtCm7D,EAAWz6B,SACby6B,EAAWtF,eAAiB,MAE9BsF,EAAW98B,cACXk4B,EAAMv2D,KAAKq+B,UACX,KAAK62B,IAAWqB,GACTY,EAAQ/7F,KAAKm7F,EAAKrB,KACvBh1B,EAAMq2B,EAAIrB,GACViG,EAAW98B,WAAW62B,GAAWh1B,EAAIk1B,QAIvC,KAFA+F,EAAWF,gBACXzE,EAAOx2D,KAAKi7D,aACPjgG,EAAI,EAAGooE,EAAMozB,EAAKn7F,OAAQL,EAAIooE,EAAKpoE,IACtCogG,EAAK5E,EAAKx7F,GACVmgG,EAAWF,aAAa7pD,KAAKgqD,EAAGhG,QASlC,OAPA+F,GAAWv6B,YACX5gC,KAAK4gC,SAAS7mB,QAAQ,SAAS6kB,GAC7B,GAAIy8B,EAGJ,OAFAA,GAAcz8B,EAAMw2B,QACpBiG,EAAYpG,OAASkG,EACdA,EAAWv6B,SAASxvB,KAAKiqD,KAE3BF,GAGTxF,EAAW52D,UAAUm8D,UAAY,SAASp6F,EAAMf,GAC9C,GAAIm1F,GAASC,CAIb,IAHY,MAARr0F,IACFA,EAAOA,EAAKw6F,WAEVrwB,EAASnqE,GACX,IAAKo0F,IAAWp0F,GACTq2F,EAAQ/7F,KAAK0F,EAAMo0F,KACxBC,EAAWr0F,EAAKo0F,GAChBl1D,KAAKk7D,UAAUhG,EAASC,QAGtBpqB,GAAWhrE,KACbA,EAAQA,EAAMm6C,SAEXla,KAAKc,QAAQy6D,oBAAgC,MAATx7F,IACvCigC,KAAKq+B,WAAWv9D,GAAQ,GAAIk0F,GAAah1D,KAAMl/B,EAAMf,GAGzD,OAAOigC,OAGT21D,EAAW52D,UAAUy8D,gBAAkB,SAAS16F,GAC9C,GAAIo0F,GAASl6F,EAAGooE,CAChB,IAAY,MAARtiE,EACF,KAAM,IAAI7F,OAAM,yBAGlB,IADA6F,EAAOA,EAAKw6F,UACR/5C,EAAQzgD,GACV,IAAK9F,EAAI,EAAGooE,EAAMtiE,EAAKzF,OAAQL,EAAIooE,EAAKpoE,IACtCk6F,EAAUp0F,EAAK9F,SACRglC,MAAKq+B,WAAW62B,cAGlBl1D,MAAKq+B,WAAWv9D,EAEzB,OAAOk/B,OAGT21D,EAAW52D,UAAU+6D,YAAc,SAASv6C,EAAQx/C,GAClD,GAAI/E,GAAGygG,EAAWC,EAAU5B,EAAa12B,CAOzC,IANc,MAAV7jB,IACFA,EAASA,EAAO+7C,WAEL,MAATv7F,IACFA,EAAQA,EAAMu7F,WAEZ/5C,EAAQhC,GACV,IAAKvkD,EAAI,EAAGooE,EAAM7jB,EAAOlkD,OAAQL,EAAIooE,EAAKpoE,IACxCygG,EAAYl8C,EAAOvkD,GACnBglC,KAAK85D,YAAY2B,OAEd,IAAIxwB,EAAS1rB,GAClB,IAAKk8C,IAAal8C,GACX43C,EAAQ/7F,KAAKmkD,EAAQk8C,KAC1BC,EAAWn8C,EAAOk8C,GAClBz7D,KAAK85D,YAAY2B,EAAWC,QAG1B3wB,GAAWhrE,KACbA,EAAQA,EAAMm6C,SAEhB4/C,EAAc,GAAIL,GAAyBz5D,KAAMuf,EAAQx/C,GACzDigC,KAAKi7D,aAAa7pD,KAAK0oD,EAEzB,OAAO95D,OAGT21D,EAAW52D,UAAUuG,SAAW,SAASxE,EAASu0D,GAChD,GAAIn1B,GAAKtB,EAAO5jE,EAAGo7F,EAAQ0D,EAAa31B,EAAGf,EAAKu4B,EAAM76F,EAAMu1F,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMuD,EAAM4B,EAAMC,EAAMvE,CAS3H,KARAhB,GAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACJs/F,EAAOh6D,KAAKi7D,aACPjgG,EAAI,EAAGooE,EAAM42B,EAAK3+F,OAAQL,EAAIooE,EAAKpoE,IACtC8+F,EAAcE,EAAKh/F,GACnBN,GAAKo/F,EAAYx0D,SAASxE,EAASu0D,EAAQ,EAEzCiB,KACF57F,GAAK48F,GAEP58F,GAAK,IAAMslC,KAAKl/B,KAChB86F,EAAO57D,KAAKq+B,UACZ,KAAKv9D,IAAQ86F,GACNzE,EAAQ/7F,KAAKwgG,EAAM96F,KACxBo/D,EAAM07B,EAAK96F,GACXpG,GAAKwlE,EAAI56B,SAASxE,GAEpB,IAA6B,IAAzBd,KAAK4gC,SAASvlE,QAAgB2/F,EAAMh7D,KAAK4gC,SAAU,SAASrmE,GAC9D,MAAmB,KAAZA,EAAEwF,QAETrF,GAAK,KACD47F,IACF57F,GAAK27F,OAEF,IAAIC,GAAmC,IAAzBt2D,KAAK4gC,SAASvlE,QAA2C,MAA1B2kC,KAAK4gC,SAAS,GAAG7gE,MACnErF,GAAK,IACLA,GAAKslC,KAAK4gC,SAAS,GAAG7gE,MACtBrF,GAAK,KAAOslC,KAAKl/B,KAAO,IACxBpG,GAAK27F,MACA,CAML,IALA37F,GAAK,IACD47F,IACF57F,GAAK27F,GAEPwF,EAAO77D,KAAK4gC,SACPuD,EAAI,EAAGw3B,EAAOE,EAAKxgG,OAAQ8oE,EAAIw3B,EAAMx3B,IACxCvF,EAAQi9B,EAAK13B,GACbzpE,GAAKkkE,EAAMt5B,SAASxE,EAASu0D,EAAQ,EAEnCiB,KACF57F,GAAK48F,GAEP58F,GAAK,KAAOslC,KAAKl/B,KAAO,IACpBw1F,IACF57F,GAAK27F,GAGT,MAAO37F,IAGTi7F,EAAW52D,UAAUmhC,IAAM,SAASp/D,EAAMf,GACxC,MAAOigC,MAAKk7D,UAAUp6F,EAAMf,IAG9B41F,EAAW52D,UAAUu7D,IAAM,SAAS/6C,EAAQx/C,GAC1C,MAAOigC,MAAK85D,YAAYv6C,EAAQx/C,IAGlC41F,EAAW52D,UAAUjkC,EAAI,SAASgG,EAAMf,GACtC,MAAOigC,MAAKk7D,UAAUp6F,EAAMf,IAG9B41F,EAAW52D,UAAU/jC,EAAI,SAASukD,EAAQx/C,GACxC,MAAOigC,MAAK85D,YAAYv6C,EAAQx/C,IAG3B41F,GAENsB,KAEF77F,KAAK4kC,QAEL87D,iBAAiB,GAAGvE,YAAY,GAAGuD,6BAA6B,GAAGiB,0BAA0B,IAAIxD,sBAAsB,IAAIyD,yBAAyB,IAAIhD,uBAAuB,IAAI1D,uBAAuB,MAAM2G,IAAI,SAASlhG,EAAQQ,EAAOJ,IAC/O,WACE,GAAI67F,GAAUS,EAAYhC,EAAgBC,EAAYC,EAAYsB,EAASiF,EAAQC,EAAS56C,EAAS8M,EAAS0c,EAAYE,EACxHksB,KAAa14D,cAEfwsC,GAAWlwE,EAAQ,wBAEnBwmD,EAAUxmD,EAAQ,uBAElBgwE,EAAahwE,EAAQ,0BAErBszD,EAAUtzD,EAAQ,uBAElB46F,EAAa,KAEbqB,EAAW,KAEXS,EAAa,KAEbhC,EAAiB,KAEjBC,EAAa,KAEbwG,EAAS,KAETC,EAAU,KAEV5gG,EAAOJ,QAAU87F,EAAU,WACzB,QAASA,GAAQhC,GACfj1D,KAAKi1D,OAASA,EACdj1D,KAAKc,QAAUd,KAAKi1D,OAAOn0D,QAC3Bd,KAAK4X,UAAY5X,KAAKi1D,OAAOr9C,UACV,OAAf+9C,IACFA,EAAa56F,EAAQ,gBACrBi8F,EAAWj8F,EAAQ,cACnB08F,EAAa18F,EAAQ,gBACrB06F,EAAiB16F,EAAQ,oBACzB26F,EAAa36F,EAAQ,gBACrBmhG,EAASnhG,EAAQ,YACjBohG,EAAUphG,EAAQ,cAkStB,MA9RAk8F,GAAQl4D,UAAUq2D,MAAQ,WACxB,KAAM,IAAIn6F,OAAM,iCAGlBg8F,EAAQl4D,UAAUohC,QAAU,SAASr/D,EAAMu9D,EAAYa,GACrD,GAAIvb,GAAMwgB,EAAGrkE,EAAKs8F,EAAWh5B,EAAKmzB,EAAKjrD,CAYvC,IAXA8wD,EAAY,KACM,MAAd/9B,IACFA,MAEFA,EAAaA,EAAWi9B,UACnBrwB,EAAS5M,KACZk4B,GAAOl4B,EAAYa,GAAOA,EAAOq3B,EAAI,GAAIl4B,EAAak4B,EAAI,IAEhD,MAARz1F,IACFA,EAAOA,EAAKw6F,WAEV/5C,EAAQzgD,GACV,IAAKqjE,EAAI,EAAGf,EAAMtiE,EAAKzF,OAAQ8oE,EAAIf,EAAKe,IACtCxgB,EAAO7iD,EAAKqjE,GACZi4B,EAAYp8D,KAAKmgC,QAAQxc,OAEtB,IAAIonB,EAAWjqE,GACpBs7F,EAAYp8D,KAAKmgC,QAAQr/D,EAAKo5C,aACzB,IAAI+wB,EAASnqE,GAClB,IAAKhB,IAAOgB,GACLq2F,EAAQ/7F,KAAK0F,EAAMhB,KACxBwrC,EAAMxqC,EAAKhB,GACPirE,EAAWz/B,KACbA,EAAMA,EAAI4O,SAEP+wB,EAAS3/B,IAAU+iB,EAAQ/iB,KAC9BA,EAAM,OAEHtL,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAU0kD,eAA+D,IAA9Cx8F,EAAIorC,QAAQlL,KAAK4X,UAAU0kD,eAC/FF,EAAYp8D,KAAKk7D,UAAUp7F,EAAI+iD,OAAO7iB,KAAK4X,UAAU0kD,cAAcjhG,QAASiwC,IAClEtL,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAU2kD,cAA6D,IAA7Cz8F,EAAIorC,QAAQlL,KAAK4X,UAAU2kD,cACrGH,EAAYp8D,KAAK85D,YAAYh6F,EAAI+iD,OAAO7iB,KAAK4X,UAAU2kD,aAAalhG,QAASiwC,GACpE2/B,EAAS3/B,IACbtL,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAU4kD,gBAAiE,IAA/C18F,EAAIorC,QAAQlL,KAAK4X,UAAU4kD,iBAAyBj7C,EAAQjW,GACjI8wD,EAAYp8D,KAAKmgC,QAAQ70B,IAEzB8wD,EAAYp8D,KAAKmgC,QAAQrgE,GACzBs8F,EAAUj8B,QAAQ70B,IAGpB8wD,EAAYp8D,KAAKmgC,QAAQrgE,EAAKwrC,QAKhC8wD,IADGp8D,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAU6kD,gBAAkE,IAAhD37F,EAAKoqC,QAAQlL,KAAK4X,UAAU6kD,gBACrFz8D,KAAKk/B,KAAKA,IACZl/B,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAU8kD,iBAAoE,IAAjD57F,EAAKoqC,QAAQlL,KAAK4X,UAAU8kD,iBAC7F18D,KAAKq3D,MAAMn4B,IACbl/B,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAU+kD,mBAAwE,IAAnD77F,EAAKoqC,QAAQlL,KAAK4X,UAAU+kD,mBAC/F38D,KAAK03D,QAAQx4B,IACfl/B,KAAKc,QAAQu7D,kBAAoBr8D,KAAK4X,UAAUglD,eAAgE,IAA/C97F,EAAKoqC,QAAQlL,KAAK4X,UAAUglD,eAC3F58D,KAAK68D,IAAI39B,GAETl/B,KAAK2lD,KAAK7kF,EAAMu9D,EAAYa,EAG5C,IAAiB,MAAbk9B,EACF,KAAM,IAAInhG,OAAM,uCAAyC6F,EAE3D,OAAOs7F,IAGTnF,EAAQl4D,UAAU+9D,aAAe,SAASh8F,EAAMu9D,EAAYa,GAC1D,GAAIN,GAAO5jE,EAAG+hG,CACd,IAAI/8D,KAAK0gC,OACP,KAAM,IAAIzlE,OAAM,uCAMlB,OAJAD,GAAIglC,KAAKi1D,OAAOr0B,SAAS11B,QAAQlL,MACjC+8D,EAAU/8D,KAAKi1D,OAAOr0B,SAAS7T,OAAO/xD,GACtC4jE,EAAQ5+B,KAAKi1D,OAAO90B,QAAQr/D,EAAMu9D,EAAYa,GAC9ChhB,MAAMnf,UAAUqS,KAAK8I,MAAMla,KAAKi1D,OAAOr0B,SAAUm8B,GAC1Cn+B,GAGTq4B,EAAQl4D,UAAUi+D,YAAc,SAASl8F,EAAMu9D,EAAYa,GACzD,GAAIN,GAAO5jE,EAAG+hG,CACd,IAAI/8D,KAAK0gC,OACP,KAAM,IAAIzlE,OAAM,uCAMlB,OAJAD,GAAIglC,KAAKi1D,OAAOr0B,SAAS11B,QAAQlL,MACjC+8D,EAAU/8D,KAAKi1D,OAAOr0B,SAAS7T,OAAO/xD,EAAI,GAC1C4jE,EAAQ5+B,KAAKi1D,OAAO90B,QAAQr/D,EAAMu9D,EAAYa,GAC9ChhB,MAAMnf,UAAUqS,KAAK8I,MAAMla,KAAKi1D,OAAOr0B,SAAUm8B,GAC1Cn+B,GAGTq4B,EAAQl4D,UAAUk+D,OAAS,WACzB,GAAIjiG,GAAGu7F,CACP,IAAIv2D,KAAK0gC,OACP,KAAM,IAAIzlE,OAAM,iCAIlB,OAFAD,GAAIglC,KAAKi1D,OAAOr0B,SAAS11B,QAAQlL,SAC9B+sB,OAAO7S,MAAMla,KAAKi1D,OAAOr0B,UAAW5lE,EAAGA,EAAIA,EAAI,GAAGs2C,OAAOilD,OAAYA,EACjEv2D,KAAKi1D,QAGdgC,EAAQl4D,UAAU4mD,KAAO,SAAS7kF,EAAMu9D,EAAYa,GAClD,GAAIN,GAAO23B,CAgBX,OAfY,OAARz1F,IACFA,EAAOA,EAAKw6F,WAEI,MAAdj9B,IACFA,MAEFA,EAAaA,EAAWi9B,UACnBrwB,EAAS5M,KACZk4B,GAAOl4B,EAAYa,GAAOA,EAAOq3B,EAAI,GAAIl4B,EAAak4B,EAAI,IAE5D33B,EAAQ,GAAI+2B,GAAW31D,KAAMl/B,EAAMu9D,GACvB,MAARa,GACFN,EAAMM,KAAKA,GAEbl/B,KAAK4gC,SAASxvB,KAAKwtB,GACZA,GAGTq4B,EAAQl4D,UAAUmgC,KAAO,SAASn/D,GAChC,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAIu9B,GAAQn8D,KAAMjgC,GAC1BigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGTi3D,EAAQl4D,UAAUs4D,MAAQ,SAASt3F,GACjC,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAIo4B,GAASh3D,KAAMjgC,GAC3BigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGTi3D,EAAQl4D,UAAU24D,QAAU,SAAS33F,GACnC,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAI64B,GAAWz3D,KAAMjgC,GAC7BigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGTi3D,EAAQl4D,UAAU89D,IAAM,SAAS98F,GAC/B,GAAI6+D,EAGJ,OAFAA,GAAQ,GAAIs9B,GAAOl8D,KAAMjgC,GACzBigC,KAAK4gC,SAASxvB,KAAKwtB,GACZ5+B,MAGTi3D,EAAQl4D,UAAUi3D,YAAc,SAASx6F,EAASyjE,EAAUm6B,GAC1D,GAAImB,GAAK7D,CAIT,OAHA6D,GAAMv6D,KAAK+5D,WACXrD,EAAS,GAAIjB,GAAe8E,EAAK/+F,EAASyjE,EAAUm6B,GACpDmB,EAAI7D,OAASA,EACN6D,EAAI15B,QAGbo2B,EAAQl4D,UAAUo3D,QAAU,SAASF,EAAOC,GAC1C,GAAIqE,GAAKpE,CAIT,OAHAoE,GAAMv6D,KAAK+5D,WACX5D,EAAU,GAAIT,GAAW6E,EAAKtE,EAAOC,GACrCqE,EAAIpE,QAAUA,EACPA,GAGTc,EAAQl4D,UAAU81D,GAAK,WACrB,GAAI70D,KAAK0gC,OACP,KAAM,IAAIzlE,OAAM,iFAElB,OAAO+kC,MAAKi1D,QAGdgC,EAAQl4D,UAAU8hC,KAAO,WACvB,GAAIjC,EACJ,IAAI5+B,KAAK0gC,OACP,MAAO1gC,KAGT,KADA4+B,EAAQ5+B,KAAKi1D,QACLr2B,EAAM8B,QACZ9B,EAAQA,EAAMq2B,MAEhB,OAAOr2B,IAGTq4B,EAAQl4D,UAAUg7D,SAAW,WAC3B,MAAO/5D,MAAK6gC,OAAOg1B,gBAGrBoB,EAAQl4D,UAAUkqB,IAAM,SAASnoB,GAC/B,MAAOd,MAAK+5D,WAAWz0D,SAASxE,IAGlCm2D,EAAQl4D,UAAU+0C,KAAO,WACvB,GAAI94E,EACJ,IAAIglC,KAAK0gC,OACP,KAAM,IAAIzlE,OAAM,4BAGlB,IADAD,EAAIglC,KAAKi1D,OAAOr0B,SAAS11B,QAAQlL,MAC7BhlC,EAAI,EACN,KAAM,IAAIC,OAAM,4BAElB,OAAO+kC,MAAKi1D,OAAOr0B,SAAS5lE,EAAI,IAGlCi8F,EAAQl4D,UAAUm+D,KAAO,WACvB,GAAIliG,EACJ,IAAIglC,KAAK0gC,OACP,KAAM,IAAIzlE,OAAM,4BAGlB,IADAD,EAAIglC,KAAKi1D,OAAOr0B,SAAS11B,QAAQlL,MAC7BhlC,KAAM,GAAMA,IAAMglC,KAAKi1D,OAAOr0B,SAASvlE,OAAS,EAClD,KAAM,IAAIJ,OAAM,2BAElB,OAAO+kC,MAAKi1D,OAAOr0B,SAAS5lE,EAAI,IAGlCi8F,EAAQl4D,UAAUo+D,iBAAmB,SAASr8B,GAC5C,GAAIs8B,EAKJ,OAJAA,GAAat8B,EAAWD,OAAOu0B,QAC/BgI,EAAWnI,OAASj1D,KACpBo9D,EAAW18B,QAAS,EACpB1gC,KAAK4gC,SAASxvB,KAAKgsD,GACZp9D,MAGTi3D,EAAQl4D,UAAUqhC,IAAM,SAASt/D,EAAMu9D,EAAYa,GACjD,MAAOl/B,MAAKmgC,QAAQr/D,EAAMu9D,EAAYa,IAGxC+3B,EAAQl4D,UAAUs+D,IAAM,SAASv8F,EAAMu9D,EAAYa,GACjD,MAAOl/B,MAAK2lD,KAAK7kF,EAAMu9D,EAAYa,IAGrC+3B,EAAQl4D,UAAUwhC,IAAM,SAASxgE,GAC/B,MAAOigC,MAAKk/B,KAAKn/D,IAGnBk3F,EAAQl4D,UAAUq7D,IAAM,SAASr6F,GAC/B,MAAOigC,MAAKq3D,MAAMt3F,IAGpBk3F,EAAQl4D,UAAUs7D,IAAM,SAASt6F,GAC/B,MAAOigC,MAAK03D,QAAQ33F,IAGtBk3F,EAAQl4D,UAAUw7D,IAAM,WACtB,MAAOv6D,MAAK+5D,YAGd9C,EAAQl4D,UAAUu+D,IAAM,SAAS9hG,EAASyjE,EAAUm6B,GAClD,MAAOp5D,MAAKg2D,YAAYx6F,EAASyjE,EAAUm6B,IAG7CnC,EAAQl4D,UAAUw+D,IAAM,SAAStH,EAAOC,GACtC,MAAOl2D,MAAKm2D,QAAQF,EAAOC,IAG7Be,EAAQl4D,UAAUxkC,EAAI,SAASuG,EAAMu9D,EAAYa,GAC/C,MAAOl/B,MAAKmgC,QAAQr/D,EAAMu9D,EAAYa,IAGxC+3B,EAAQl4D,UAAUtkC,EAAI,SAASqG,EAAMu9D,EAAYa,GAC/C,MAAOl/B,MAAK2lD,KAAK7kF,EAAMu9D,EAAYa,IAGrC+3B,EAAQl4D,UAAUvkC,EAAI,SAASuF,GAC7B,MAAOigC,MAAKk/B,KAAKn/D,IAGnBk3F,EAAQl4D,UAAUyrC,EAAI,SAASzqE,GAC7B,MAAOigC,MAAKq3D,MAAMt3F,IAGpBk3F,EAAQl4D,UAAU+lC,EAAI,SAAS/kE,GAC7B,MAAOigC,MAAK03D,QAAQ33F,IAGtBk3F,EAAQl4D,UAAUrkC,EAAI,SAASqF,GAC7B,MAAOigC,MAAK68D,IAAI98F,IAGlBk3F,EAAQl4D,UAAUlkC,EAAI,WACpB,MAAOmlC,MAAK60D,MAGPoC,OAIR77F,KAAK4kC,QAELw6D,aAAa,GAAGC,eAAe,GAAG9D,mBAAmB,GAAGC,eAAe,GAAGC,eAAe,GAAG2G,WAAW,GAAGC,YAAY,GAAGlF,sBAAsB,IAAImF,sBAAsB,IAAI1B,yBAAyB,IAAIhD,uBAAuB,MAAM2E,IAAI,SAAS5iG,EAAQQ,EAAOJ,IACtQ,WACE,GAAIs+F,GAA0BlhD,CAE9BA,GAASx9C,EAAQ,wBAEjBQ,EAAOJ,QAAUs+F,EAA2B,WAC1C,QAASA,GAAyBxE,EAAQ11C,EAAQx/C,GAEhD,GADAigC,KAAK4X,UAAYq9C,EAAOr9C,UACV,MAAV2H,EACF,KAAM,IAAItkD,OAAM,6BAElB+kC,MAAKuf,OAASvf,KAAK4X,UAAU6jD,UAAUl8C,GACnCx/C,IACFigC,KAAKjgC,MAAQigC,KAAK4X,UAAU8jD,SAAS37F,IAgCzC,MA5BA05F,GAAyB16D,UAAUq2D,MAAQ,WACzC,MAAO78C,GAAOkhD,EAAyB16D,UAAWiB,OAGpDy5D,EAAyB16D,UAAUuG,SAAW,SAASxE,EAASu0D,GAC9D,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAoBzD,OAnBAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAK,KACLA,GAAKslC,KAAKuf,OACNvf,KAAKjgC,QACPrF,GAAK,IAAMslC,KAAKjgC,OAElBrF,GAAK,KACD47F,IACF57F,GAAK27F,GAEA37F,GAGF++F,OAIRr+F,KAAK4kC,QAELs1D,uBAAuB,MAAMsI,IAAI,SAAS7iG,EAAQQ,EAAOJ,IAC5D,WACE,GAAI87F,GAASiF,EAAQ3jD,EACnB2+C,EAAS,SAASt4B,EAAOq2B,GAA+F,QAASj5B,KAASh8B,KAAKa,YAAc+9B,EAA1H,IAAK,GAAI9+D,KAAOm1F,GAAckC,EAAQ/7F,KAAK65F,EAAQn1F,KAAM8+D,EAAM9+D,GAAOm1F,EAAOn1F,GAA2J,OAArGk8D,GAAKj9B,UAAYk2D,EAAOl2D,UAAW6/B,EAAM7/B,UAAY,GAAIi9B,GAAQ4C,EAAM3C,UAAYg5B,EAAOl2D,UAAkB6/B,GAClRu4B,KAAa14D,cAEf8Z,GAASx9C,EAAQ,wBAEjBk8F,EAAUl8F,EAAQ,aAElBQ,EAAOJ,QAAU+gG,EAAS,SAAU9E,GAGlC,QAAS8E,GAAOjH,EAAQ/1B,GAEtB,GADAg9B,EAAOjgC,UAAUp7B,YAAYzlC,KAAK4kC,KAAMi1D,GAC5B,MAAR/1B,EACF,KAAM,IAAIjkE,OAAM,mBAElB+kC,MAAKjgC,MAAQigC,KAAK4X,UAAUilD,IAAI39B,GA0BlC,MAjCAg4B,GAAOgF,EAAQ9E,GAUf8E,EAAOn9D,UAAUq2D,MAAQ,WACvB,MAAO78C,GAAO2jD,EAAOn9D,UAAWiB,OAGlCk8D,EAAOn9D,UAAUuG,SAAW,SAASxE,EAASu0D,GAC5C,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAezD,OAdAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAKslC,KAAKjgC,MACNu2F,IACF57F,GAAK27F,GAEA37F,GAGFwhG,GAENjF,KAEF77F,KAAK4kC,QAELu3D,YAAY,GAAGjC,uBAAuB,MAAMuI,IAAI,SAAS9iG,EAAQQ,EAAOJ,IAC3E,WACE,GAAIy6F,GACFkI,EAAO,SAAS3kD,EAAI4kD,GAAK,MAAO,YAAY,MAAO5kD,GAAGe,MAAM6jD,EAAIx1D,aAChE4uD,KAAa14D,cAEfljC,GAAOJ,QAAUy6F,EAAiB,WAChC,QAASA,GAAe90D,GACtBd,KAAKg+D,gBAAkBF,EAAK99D,KAAKg+D,gBAAiBh+D,KAClD,IAAIlgC,GAAKy2F,EAAKx2F,CACdigC,MAAKi+D,oBAAiC,MAAXn9D,EAAkBA,EAAQm9D,oBAAsB,OAC3E1H,GAAkB,MAAXz1D,EAAkBA,EAAQ8W,UAAY,WAC7C,KAAK93C,IAAOy2F,GACLY,EAAQ/7F,KAAKm7F,EAAKz2F,KACvBC,EAAQw2F,EAAIz2F,GACZkgC,KAAKlgC,GAAOC,GAmJhB,MA/IA61F,GAAe72D,UAAUk5D,QAAU,SAAS3sD,GAE1C,MADAA,GAAM,GAAKA,GAAO,GACXtL,KAAKg+D,gBAAgB1yD,IAG9BsqD,EAAe72D,UAAUm/D,QAAU,SAAS5yD,GAE1C,MADAA,GAAM,GAAKA,GAAO,GACXtL,KAAKg+D,gBAAgBh+D,KAAKm+D,SAAS7yD,KAG5CsqD,EAAe72D,UAAUs4D,MAAQ,SAAS/rD,GAExC,GADAA,EAAM,GAAKA,GAAO,GACdA,EAAIkG,MAAM,OACZ,KAAM,IAAIv2C,OAAM,uBAAyBqwC,EAE3C,OAAOtL,MAAKg+D,gBAAgB1yD,IAG9BsqD,EAAe72D,UAAU24D,QAAU,SAASpsD,GAE1C,GADAA,EAAM,GAAKA,GAAO,GACdA,EAAIkG,MAAM,MACZ,KAAM,IAAIv2C,OAAM,6CAA+CqwC,EAEjE,OAAOtL,MAAKg+D,gBAAgB1yD,IAG9BsqD,EAAe72D,UAAU89D,IAAM,SAASvxD,GACtC,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAUm2D,QAAU,SAAS5pD,GAC1C,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAUo2D,SAAW,SAAS7pD,GAE3C,MADAA,GAAM,GAAKA,GAAO,GACXtL,KAAKo+D,UAAU9yD,IAGxBsqD,EAAe72D,UAAU08D,UAAY,SAASnwD,GAC5C,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAU28D,SAAW,SAASpwD,GAE3C,GADAA,EAAM,GAAKA,GAAO,GACdA,EAAIkG,MAAM,OACZ,KAAM,IAAIv2C,OAAM,yCAA2CqwC,EAE7D,OAAOA,IAGTsqD,EAAe72D,UAAUs6D,WAAa,SAAS/tD,GAE7C,GADAA,EAAM,GAAKA,GAAO,IACbA,EAAIkG,MAAM,aACb,KAAM,IAAIv2C,OAAM,2BAA6BqwC,EAE/C,OAAOA,IAGTsqD,EAAe72D,UAAUu6D,YAAc,SAAShuD,GAE9C,GADAA,EAAM,GAAKA,GAAO,IACbA,EAAIkG,MAAM,iCACb,KAAM,IAAIv2C,OAAM,qBAAuBqwC,EAEzC,OAAOA,IAGTsqD,EAAe72D,UAAUw6D,cAAgB,SAASjuD,GAChD,MAAIA,GACK,MAEA,MAIXsqD,EAAe72D,UAAU45D,SAAW,SAASrtD,GAC3C,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAU65D,SAAW,SAASttD,GAC3C,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAUu5D,gBAAkB,SAAShtD,GAClD,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAUm5D,WAAa,SAAS5sD,GAC7C,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAUo5D,cAAgB,SAAS7sD,GAChD,MAAW,OAAPA,EACK,GAAKA,GAAO,GAEZA,GAIXsqD,EAAe72D,UAAUg6D,eAAiB,SAASztD,GACjD,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAU+5D,SAAW,SAASxtD,GAC3C,MAAO,GAAKA,GAAO,IAGrBsqD,EAAe72D,UAAUu9D,cAAgB,IAEzC1G,EAAe72D,UAAUw9D,aAAe,IAExC3G,EAAe72D,UAAU09D,eAAiB,QAE1C7G,EAAe72D,UAAU29D,gBAAkB,SAE3C9G,EAAe72D,UAAU49D,kBAAoB,WAE7C/G,EAAe72D,UAAU69D,cAAgB,OAEzChH,EAAe72D,UAAUy9D,eAAiB,QAE1C5G,EAAe72D,UAAUi/D,gBAAkB,SAASriC,GAClD,GAAI0iC,GAAOC,CAOX,IALED,EADEr+D,KAAKi+D,oBACC,yDAEA,sEAEVK,EAAM3iC,EAAInqB,MAAM6sD,GAEd,KAAM,IAAIpjG,OAAM,sBAAwBqjG,EAAM,gBAAkB3iC,EAAM,aAAe2iC,EAAIpyD,MAE3F,OAAOyvB,IAGTi6B,EAAe72D,UAAUo/D,SAAW,SAASxiC,GAC3C,MAAOA,GAAItjB,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,MAAO,UAG/Fu9C,EAAe72D,UAAUq/D,UAAY,SAASziC,GAC5C,MAAOA,GAAItjB,QAAQ,KAAM,SAASA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,UAAUA,QAAQ,MAAO,SAASA,QAAQ,MAAO,SAASA,QAAQ,MAAO,UAG1Iu9C,OAIRx6F,KAAK4kC,WAEFu+D,IAAI,SAASxjG,EAAQQ,EAAOJ,IAClC,WACE,GAAI87F,GAASkF,EAAS5jD,EACpB2+C,EAAS,SAASt4B,EAAOq2B,GAA+F,QAASj5B,KAASh8B,KAAKa,YAAc+9B,EAA1H,IAAK,GAAI9+D,KAAOm1F,GAAckC,EAAQ/7F,KAAK65F,EAAQn1F,KAAM8+D,EAAM9+D,GAAOm1F,EAAOn1F,GAA2J,OAArGk8D,GAAKj9B,UAAYk2D,EAAOl2D,UAAW6/B,EAAM7/B,UAAY,GAAIi9B,GAAQ4C,EAAM3C,UAAYg5B,EAAOl2D,UAAkB6/B,GAClRu4B,KAAa14D,cAEf8Z,GAASx9C,EAAQ,wBAEjBk8F,EAAUl8F,EAAQ,aAElBQ,EAAOJ,QAAUghG,EAAU,SAAU/E,GAGnC,QAAS+E,GAAQlH,EAAQ/1B,GAEvB,GADAi9B,EAAQlgC,UAAUp7B,YAAYzlC,KAAK4kC,KAAMi1D,GAC7B,MAAR/1B,EACF,KAAM,IAAIjkE,OAAM,uBAElB+kC,MAAKjgC,MAAQigC,KAAK4X,UAAUsmD,QAAQh/B,GA0BtC,MAjCAg4B,GAAOiF,EAAS/E,GAUhB+E,EAAQp9D,UAAUq2D,MAAQ,WACxB,MAAO78C,GAAO4jD,EAAQp9D,UAAWiB,OAGnCm8D,EAAQp9D,UAAUuG,SAAW,SAASxE,EAASu0D,GAC7C,GAAIe,GAAQC,EAASp9B,EAAQq9B,EAAQ57F,EAAG67F,EAAKC,EAAMC,EAAMa,CAezD,OAdAhB,IAAqB,MAAXx1D,EAAkBA,EAAQw1D,OAAS,UAAW,EACxDF,EAA8D,OAApDG,EAAiB,MAAXz1D,EAAkBA,EAAQs1D,OAAS,QAAkBG,EAAM,KAC3Et9B,EAA+D,OAArDu9B,EAAkB,MAAX11D,EAAkBA,EAAQm4B,OAAS,QAAkBu9B,EAAO,EAC7EH,EAAiE,OAAtDI,EAAkB,MAAX31D,EAAkBA,EAAQu1D,QAAU,QAAkBI,EAAO,KAC/EpB,IAAUA,EAAQ,GAClBiC,EAAQ,GAAIp5C,OAAMm3C,EAAQp8B,EAAS,GAAG5tB,KAAK+qD,GAC3C17F,EAAI,GACA47F,IACF57F,GAAK48F,GAEP58F,GAAKslC,KAAKjgC,MACNu2F,IACF57F,GAAK27F,GAEA37F,GAGFyhG,GAENlF,KAEF77F,KAAK4kC,QAELu3D,YAAY,GAAGjC,uBAAuB,MAAMkJ,KAAK,SAASzjG,EAAQQ,EAAOJ,IAC5E,WACE,GAAIq6F,GAAYiJ,CAEhBA,GAAS1jG,EAAQ,wBAEjBy6F,EAAaz6F,EAAQ,gBAErBQ,EAAOJ,QAAQo9C,OAAS,SAASz3C,EAAM41F,EAAQP,EAASr1D,GAEtD,MADAA,GAAU29D,KAAW/H,EAAQP,EAASr1D,GAC/B,GAAI00D,GAAW10F,EAAMggC,GAAS+/B,UAGtCzlE,KAAK4kC,QAEL0+D,eAAe,GAAGC,uBAAuB,MAAMC,KAAK,SAAS7jG,EAAQQ,EAAOJ,GAO/E,QAAS6/F,GAAM6D,EAAYC,EAAWC,GACpC,GAAIC,GAAOz9C,EAAQs9C,GAAcI,EAAaC,CAI9C,OAHwB,kBAAbJ,IAA6C,mBAAXC,KAC3CD,EAAYK,EAAaL,EAAWC,EAAS,IAExCC,EAAKH,EAAYC,GAX1B,GAAIG,GAAalkG,EAAQ,0BACrBokG,EAAepkG,EAAQ,4BACvBmkG,EAAYnkG,EAAQ,yBACpBwmD,EAAUxmD,EAAQ,kBAWtBQ,GAAOJ,QAAU6/F,IAEdoE,yBAAyB,IAAIC,2BAA2B,IAAIC,wBAAwB,IAAIC,kBAAkB,MAAMC,KAAK,SAASzkG,EAAQQ,EAAOJ,GAEhJ,QAAS8jG,GAAW9jC,EAAO2jC,GAIzB,IAHA,GAAI5yD,IAAQ,EACR7wC,EAAS8/D,EAAM9/D,SAEV6wC,EAAQ7wC,GACf,IAAKyjG,EAAU3jC,EAAMjvB,GAAQA,EAAOivB,GAClC,OAAO,CAGX,QAAO,EAGT5/D,EAAOJ,QAAU8jG,OAEXQ,KAAK,SAAS1kG,EAAQQ,EAAOJ,GAKnC,QAASukG,GAAWvmC,EAAQ+M,EAAQy5B,GAClC,GAAIzjC,GAAQ17C,EAAK0lD,EACjB,KAAKy5B,EACH,MAAOC,GAAS15B,EAAQ/M,EAAQ+C,EAKlC,KAHA,GAAIhwB,IAAQ,EACR7wC,EAAS6gE,EAAM7gE,SAEV6wC,EAAQ7wC,GAAQ,CACvB,GAAIyE,GAAMo8D,EAAMhwB,GACZnsC,EAAQo5D,EAAOr5D,GACfw3C,EAASqoD,EAAW5/F,EAAOmmE,EAAOpmE,GAAMA,EAAKq5D,EAAQ+M,IAEpD5uB,IAAWA,EAAUA,IAAWv3C,EAAUA,IAAUA,KACpC,mBAATA,IAA0BD,IAAOq5D,MAC3CA,EAAOr5D,GAAOw3C,GAGlB,MAAO6hB,GAtBT,GAAIymC,GAAW7kG,EAAQ,cACnBylB,EAAOzlB,EAAQ,iBAwBnBQ,GAAOJ,QAAUukG,IAEdG,iBAAiB,IAAIC,aAAa,MAAMC,KAAK,SAAShlG,EAAQQ,EAAOJ,GASxE,QAASgkG,GAAaH,EAAMD,EAASiB,GACnC,GAAI5jG,SAAc4iG,EAClB,OAAY,YAAR5iG,EACwB,mBAAX2iG,IAA0BkB,EAAWjB,GAChDkB,EAAalB,EAAMD,EAASiB,GAC5BhB,EAEM,MAARA,EACKmB,EAEG,UAAR/jG,EACKgkG,EAAYpB,GAEI,mBAAXD,GACVsB,EAAarB,EAAO,IACpBsB,EAAoBtB,EAAO,GAAID,GAvBrC,GAAIqB,GAAcrlG,EAAQ,iBACtBulG,EAAsBvlG,EAAQ,yBAC9BslG,EAAetlG,EAAQ,kBACvBmlG,EAAenlG,EAAQ,kBACvBolG,EAAWplG,EAAQ,uBACnBklG,EAAallG,EAAQ,eAqBzBQ,GAAOJ,QAAUgkG,IAEdoB,sBAAsB,IAAIC,gBAAgB,IAAIC,wBAAwB,IAAIC,iBAAiB,IAAIC,iBAAiB,IAAIC,eAAe,MAAMC,KAAK,SAAS9lG,EAAQQ,EAAOJ,GAEzK,QAASykG,GAAS15B,EAAQ/M,EAAQ+C,GAC3BA,IACHA,EAAQ/C,EACRA,KAKF,KAHA,GAAIjtB,IAAQ,EACR7wC,EAAS6gE,EAAM7gE,SAEV6wC,EAAQ7wC,GAAQ,CACvB,GAAIyE,GAAMo8D,EAAMhwB,EAChBitB,GAAOr5D,GAAOomE,EAAOpmE,GAEvB,MAAOq5D,GAGT59D,EAAOJ,QAAUykG,OAEXkB,KAAK,SAAS/lG,EAAQQ,EAAOJ,IACnC,SAAWiyE,GACX,GAAInC,GAAWlwE,EAAQ,oBAGnBgmG,EAAc,WAChB,QAASxjE,MACT,MAAO,UAASwB,GACd,GAAIksC,EAASlsC,GAAY,CACvBxB,EAAOwB,UAAYA,CACnB,IAAIuY,GAAS,GAAI/Z,EACjBA,GAAOwB,UAAY,KAErB,MAAOuY,IAAU81B,EAAO7vC,YAI5BhiC,GAAOJ,QAAU4lG,IAEd3lG,KAAK4kC,KAAqB,mBAATlB,MAAuBA,KAAyB,mBAAXF,QAAyBA,aAC/EoiE,mBAAmB,MAAMC,KAAK,SAASlmG,EAAQQ,EAAOJ,GAMzD,QAAS+lG,GAASrC,EAAYsC,GAC5B,GAAI9lG,GAASwjG,EAAaA,EAAWxjG,OAAS,CAC9C,KAAK+lG,EAAS/lG,GACZ,MAAOgmG,GAAWxC,EAAYsC,EAKhC,KAHA,GAAIj1D,IAAQ,EACRmN,EAAWioD,EAASzC,KAEf3yD,EAAQ7wC,GACX8lG,EAAS9nD,EAASnN,GAAQA,EAAOmN,MAAc,IAIrD,MAAOwlD,GAlBT,GAAIwC,GAAatmG,EAAQ,gBACrBqmG,EAAWrmG,EAAQ,cACnBumG,EAAWvmG,EAAQ,aAmBvBQ,GAAOJ,QAAU+lG,IAEdK,eAAe,IAAIC,aAAa,IAAIC,aAAa,MAAMC,KAAK,SAAS3mG,EAAQQ,EAAOJ,GAIvF,QAAS+jG,GAAUL,EAAYC,GAC7B,GAAIxnD,IAAS,CAKb,OAJA4pD,GAASrC,EAAY,SAAS9+F,EAAOmsC,EAAO2yD,GAE1C,MADAvnD,KAAWwnD,EAAU/+F,EAAOmsC,EAAO2yD,KAG9BvnD,EATT,GAAI4pD,GAAWnmG,EAAQ,aAYvBQ,GAAOJ,QAAU+jG,IAEdyC,aAAa,MAAMC,KAAK,SAAS7mG,EAAQQ,EAAOJ,GAInD,QAAS0mG,GAAQ1oC,EAAQgoC,EAAUW,GAMjC,IALA,GAAI51D,IAAQ,EACRmN,EAAWioD,EAASnoC,GACpB+C,EAAQ4lC,EAAS3oC,GACjB99D,EAAS6gE,EAAM7gE,SAEV6wC,EAAQ7wC,GAAQ,CACvB,GAAIyE,GAAMo8D,EAAMhwB,EAChB,IAAIi1D,EAAS9nD,EAASv5C,GAAMA,EAAKu5C,MAAc,EAC7C,MAGJ,MAAO8f,GAfT,GAAImoC,GAAWvmG,EAAQ,aAkBvBQ,GAAOJ,QAAU0mG,IAEdJ,aAAa,MAAMM,KAAK,SAAShnG,EAAQQ,EAAOJ,GAKnD,QAASkmG,GAAWloC,EAAQgoC,GAC1B,MAAOU,GAAQ1oC,EAAQgoC,EAAU3gF,GALnC,GAAIqhF,GAAU9mG,EAAQ,aAClBylB,EAAOzlB,EAAQ,iBAOnBQ,GAAOJ,QAAUkmG,IAEdxB,iBAAiB,IAAImC,YAAY,MAAMC,KAAK,SAASlnG,EAAQQ,EAAOJ,GAIvE,QAAS+mG,GAAYniG,EAAOoiG,EAAOxC,EAAYyC,EAASC,EAAQC,GAC9D,GAAIviG,IAAUoiG,EACZ,MAAiB,KAAVpiG,GAAgB,EAAIA,GAAS,EAAIoiG,CAE1C,IAAII,SAAiBxiG,GACjByiG,QAAiBL,EAErB,OAAgB,YAAXI,GAAoC,UAAXA,GAAkC,YAAXC,GAAoC,UAAXA,GACjE,MAATziG,GAA0B,MAAToiG,EACZpiG,IAAUA,GAASoiG,IAAUA,EAE/BM,EAAgB1iG,EAAOoiG,EAAOD,EAAavC,EAAYyC,EAASC,EAAQC,GAdjF,GAAIG,GAAkB1nG,EAAQ,oBAiB9BQ,GAAOJ,QAAU+mG,IAEdQ,oBAAoB,MAAMC,KAAK,SAAS5nG,EAAQQ,EAAOJ,GAsB1D,QAASsnG,GAAgBtpC,EAAQgpC,EAAOS,EAAWjD,EAAYyC,EAASC,EAAQC,GAC9E,GAAIO,GAAWthD,EAAQ4X,GACnB2pC,EAAWvhD,EAAQ4gD,GACnBY,EAASC,EACTC,EAASD,CAERH,KACHE,EAASG,EAAY9nG,KAAK+9D,GACtB4pC,GAAUI,EACZJ,EAASK,EACAL,GAAUK,IACnBP,EAAWQ,EAAalqC,KAGvB2pC,IACHG,EAASC,EAAY9nG,KAAK+mG,GACtBc,GAAUE,EACZF,EAASG,EACAH,GAAUG,IACnBN,EAAWO,EAAalB,IAG5B,IAAImB,GAAWP,GAAUK,EACrBG,EAAWN,GAAUG,EACrBI,EAAYT,GAAUE,CAE1B,IAAIO,IAAeX,IAAYS,EAC7B,MAAOG,GAAWtqC,EAAQgpC,EAAOY,EAEnC,IAAIW,GAAaJ,GAAY7kE,EAAerjC,KAAK+9D,EAAQ,eACrDwqC,EAAaJ,GAAY9kE,EAAerjC,KAAK+mG,EAAO,cAExD,IAAIuB,GAAcC,EAChB,MAAOf,GAAUc,EAAavqC,EAAOp5D,QAAUo5D,EAAQwqC,EAAaxB,EAAMpiG,QAAUoiG,EAAOxC,EAAYyC,EAASC,EAAQC,EAE1H,KAAKkB,EACH,OAAO,CAETnB,KAAWA,MACXC,IAAWA,KAGX,KADA,GAAIjnG,GAASgnG,EAAOhnG,OACbA,KACL,GAAIgnG,EAAOhnG,IAAW89D,EACpB,MAAOmpC,GAAOjnG,IAAW8mG,CAG7BE,GAAOjxD,KAAK+nB,GACZmpC,EAAOlxD,KAAK+wD,EAEZ,IAAI7qD,IAAUurD,EAAWe,EAAcC,GAAc1qC,EAAQgpC,EAAOS,EAAWjD,EAAYyC,EAASC,EAAQC,EAK5G,OAHAD,GAAO3iD,MACP4iD,EAAO5iD,MAEApI,EA5ET,GAAIssD,GAAc7oG,EAAQ,iBACtB0oG,EAAa1oG,EAAQ,gBACrB8oG,EAAe9oG,EAAQ,kBACvBwmD,EAAUxmD,EAAQ,mBAClBsoG,EAAetoG,EAAQ,wBAGvBooG,EAAU,qBACVH,EAAW,iBACXI,EAAY,kBAGZU,EAAcvmE,OAAOwB,UAGrBN,EAAiBqlE,EAAYrlE,eAG7BykE,EAAcY,EAAYx+D,QA6D9B/pC,GAAOJ,QAAUsnG,IAEdlD,kBAAkB,IAAIwE,uBAAuB,IAAIC,gBAAgB,IAAIC,eAAe,IAAIC,iBAAiB,MAAMC,KAAK,SAASppG,EAAQQ,EAAOJ,GAE/I,QAASipG,GAAerkG,GACtB,MAAuB,kBAATA,KAAuB,EAGvCxE,EAAOJ,QAAUipG,OAEXC,KAAK,SAAStpG,EAAQQ,EAAOJ,GAUnC,QAASmpG,GAAYnrC,EAAQ+C,EAAO3E,EAAQgtC,EAAoB5E,GAC9D,GAAItkG,GAAS6gE,EAAM7gE,MACnB,IAAc,MAAV89D,EACF,OAAQ99D,CAKV,KAHA,GAAI6wC,IAAQ,EACRs4D,GAAgB7E,IAEXzzD,EAAQ7wC,GACf,GAAKmpG,GAAgBD,EAAmBr4D,GAChCqrB,EAAOrrB,KAAWitB,EAAO+C,EAAMhwB,KAC9BzN,EAAerjC,KAAK+9D,EAAQ+C,EAAMhwB,IAEzC,OAAO,CAIX,KADAA,GAAQ,IACCA,EAAQ7wC,GAAQ,CACvB,GAAIyE,GAAMo8D,EAAMhwB,EAChB,IAAIs4D,GAAgBD,EAAmBr4D,GACrC,GAAIoL,GAAS7Y,EAAerjC,KAAK+9D,EAAQr5D,OACpC,CACL,GAAI2kG,GAAWtrC,EAAOr5D,GAClB4kG,EAAWntC,EAAOrrB,EAEtBoL,GAASqoD,EAAaA,EAAW8E,EAAUC,EAAU5kG,GAAOihC,OACvC,mBAAVuW,KACTA,EAAS4qD,EAAYwC,EAAUD,EAAU9E,GAAY,IAGzD,IAAKroD,EACH,OAAO,EAGX,OAAO,EA3CT,GAAI4qD,GAAcnnG,EAAQ,iBAGtB+oG,EAAcvmE,OAAOwB,UAGrBN,EAAiBqlE,EAAYrlE,cAwCjCljC,GAAOJ,QAAUmpG,IAEdK,gBAAgB,MAAMC,KAAK,SAAS7pG,EAAQQ,EAAOJ,GAYtD,QAASilG,GAAYl6B,GACnB,GAAIhK,GAAQ17C,EAAK0lD,GACb7qE,EAAS6gE,EAAM7gE,MAEnB,IAAc,GAAVA,EAAa,CACf,GAAIyE,GAAMo8D,EAAM,GACZn8D,EAAQmmE,EAAOpmE,EAEnB,IAAI+kG,EAAmB9kG,GACrB,MAAO,UAASo5D,GACd,MAAiB,OAAVA,GAAkBA,EAAOr5D,KAASC,GAAS0+B,EAAerjC,KAAK+9D,EAAQr5D,IAOpF,IAHA,GAAIy3D,GAASrZ,MAAM7iD,GACfkpG,EAAqBrmD,MAAM7iD,GAExBA,KACL0E,EAAQmmE,EAAOhK,EAAM7gE,IACrBk8D,EAAOl8D,GAAU0E,EACjBwkG,EAAmBlpG,GAAUwpG,EAAmB9kG,EAElD,OAAO,UAASo5D,GACd,MAAOmrC,GAAYnrC,EAAQ+C,EAAO3E,EAAQgtC,IAlC9C,GAAID,GAAcvpG,EAAQ,iBACtB8pG,EAAqB9pG,EAAQ,wBAC7BylB,EAAOzlB,EAAQ,kBAGf+oG,EAAcvmE,OAAOwB,UAGrBN,EAAiBqlE,EAAYrlE,cA8BjCljC,GAAOJ,QAAUilG,IAEdP,iBAAiB,IAAIiF,gBAAgB,IAAIC,uBAAuB,MAAMC,KAAK,SAASjqG,EAAQQ,EAAOJ,GAKtG,QAASmlG,GAAoBxgG,EAAKC,GAChC,MAAI8kG,GAAmB9kG,GACd,SAASo5D,GACd,MAAiB,OAAVA,GAAkBA,EAAOr5D,KAASC,GAGtC,SAASo5D,GACd,MAAiB,OAAVA,GAAkB+oC,EAAYniG,EAAOo5D,EAAOr5D,GAAM,MAAM,IAXnE,GAAIoiG,GAAcnnG,EAAQ,iBACtB8pG,EAAqB9pG,EAAQ,uBAcjCQ,GAAOJ,QAAUmlG,IAEdqE,gBAAgB,IAAII,uBAAuB,MAAME,KAAK,SAASlqG,EAAQQ,EAAOJ,GAEjF,QAASklG,GAAavgG,GACpB,MAAO,UAASq5D,GACd,MAAiB,OAAVA,EAAiBp4B,OAAYo4B,EAAOr5D,IAI/CvE,EAAOJ,QAAUklG,OAEX6E,KAAK,SAASnqG,EAAQQ,EAAOJ,GACnC,GAAIglG,GAAWplG,EAAQ,uBACnBoqG,EAAUpqG,EAAQ,aAGlBqqG,EAAeD,EAAqB,SAASnG,EAAMz1D,GAErD,MADA47D,GAAQjkE,IAAI89D,EAAMz1D,GACXy1D,GAFoBmB,CAK7B5kG,GAAOJ,QAAUiqG,IAEd7E,sBAAsB,IAAI8E,YAAY,MAAMC,KAAK,SAASvqG,EAAQQ,EAAOJ,GAE5E,QAASoqG,GAAaxlG,GACpB,MAAoB,gBAATA,GACFA,EAEO,MAATA,EAAgB,GAAMA,EAAQ,GAGvCxE,EAAOJ,QAAUoqG,OAEXC,KAAK,SAASzqG,EAAQQ,EAAOJ,GAInC,QAAS+kG,GAAalB,EAAMD,EAASiB,GACnC,GAAmB,kBAARhB,GACT,MAAOmB,EAET,IAAsB,mBAAXpB,GACT,MAAOC,EAET,QAAQgB,GACN,IAAK,GAAG,MAAO,UAASjgG,GACtB,MAAOi/F,GAAK5jG,KAAK2jG,EAASh/F,GAE5B,KAAK,GAAG,MAAO,UAASA,EAAOmsC,EAAO2yD,GACpC,MAAOG,GAAK5jG,KAAK2jG,EAASh/F,EAAOmsC,EAAO2yD,GAE1C,KAAK,GAAG,MAAO,UAAS4G,EAAa1lG,EAAOmsC,EAAO2yD,GACjD,MAAOG,GAAK5jG,KAAK2jG,EAAS0G,EAAa1lG,EAAOmsC,EAAO2yD,GAEvD,KAAK,GAAG,MAAO,UAAS9+F,EAAOoiG,EAAOriG,EAAKq5D,EAAQ+M,GACjD,MAAO84B,GAAK5jG,KAAK2jG,EAASh/F,EAAOoiG,EAAOriG,EAAKq5D,EAAQ+M,IAGzD,MAAO,YACL,MAAO84B,GAAK9kD,MAAM6kD,EAASx2D,YAzB/B,GAAI43D,GAAWplG,EAAQ,sBA6BvBQ,GAAOJ,QAAU+kG,IAEdK,sBAAsB,MAAMmF,KAAK,SAAS3qG,EAAQQ,EAAOJ,GAK5D,QAASwqG,GAAeC,GACtB,MAAO,YACL,GAAIp8C,GAAOjhB,UACPltC,EAASmuD,EAAKnuD,OACd89D,EAAS3P,EAAK,EAElB,IAAInuD,EAAS,GAAe,MAAV89D,EAChB,MAAOA,EAET,IAAIwmC,GAAan2C,EAAKnuD,EAAS,GAC3B0jG,EAAUv1C,EAAKnuD,EAAS,GACxBwqG,EAAQr8C,EAAK,EAEbnuD,GAAS,GAA0B,kBAAdskG,IACvBA,EAAaO,EAAaP,EAAYZ,EAAS,GAC/C1jG,GAAU,IAEVskG,EAActkG,EAAS,GAAuB,kBAAX0jG,GAAyBA,EAAU,KACtE1jG,GAAWskG,EAAa,EAAI,GAE1BkG,GAASC,EAAet8C,EAAK,GAAIA,EAAK,GAAIq8C,KAC5ClG,EAAuB,GAAVtkG,EAAc,KAAOskG,EAClCtkG,EAAS,EAGX,KADA,GAAI6wC,GAAQ,IACHA,EAAQ7wC,GAAQ,CACvB,GAAI6qE,GAAS1c,EAAKtd,EACdg6B,IACF0/B,EAASzsC,EAAQ+M,EAAQy5B,GAG7B,MAAOxmC,IAnCX,GAAI+mC,GAAenlG,EAAQ,kBACvB+qG,EAAiB/qG,EAAQ,mBAsC7BQ,GAAOJ,QAAUwqG,IAEdhF,iBAAiB,IAAIoF,mBAAmB,MAAMC,KAAK,SAASjrG,EAAQQ,EAAOJ,GAE9E,QAASyoG,GAAYzoC,EAAOgnC,EAAOS,EAAWjD,EAAYyC,EAASC,EAAQC,GACzE,GAAIp2D,IAAQ,EACRwsC,EAAYvd,EAAM9/D,OAClB4qG,EAAY9D,EAAM9mG,OAClBi8C,GAAS,CAEb,IAAIohC,GAAautB,KAAe7D,GAAW6D,EAAYvtB,GACrD,OAAO,CAET,MAAOphC,KAAYpL,EAAQwsC,GAAW,CACpC,GAAIwtB,GAAW/qC,EAAMjvB,GACjBi6D,EAAWhE,EAAMj2D,EAQrB,IANAoL,EAASvW,OACL4+D,IACFroD,EAAS8qD,EACLzC,EAAWwG,EAAUD,EAAUh6D,GAC/ByzD,EAAWuG,EAAUC,EAAUj6D,IAEhB,mBAAVoL,GACT,GAAI8qD,EAEF,IADA,GAAIgE,GAAWH,EACRG,MACLD,EAAWhE,EAAMiE,KACjB9uD,EAAU4uD,GAAYA,IAAaC,GAAavD,EAAUsD,EAAUC,EAAUxG,EAAYyC,EAASC,EAAQC,WAM7GhrD,GAAU4uD,GAAYA,IAAaC,GAAavD,EAAUsD,EAAUC,EAAUxG,EAAYyC,EAASC,EAAQC,GAIjH,QAAShrD,EAGX/7C,EAAOJ,QAAUyoG,OAEXyC,KAAK,SAAStrG,EAAQQ,EAAOJ,GAUnC,QAASsoG,GAAWtqC,EAAQgpC,EAAO9iC,GACjC,OAAQA,GACN,IAAKinC,GACL,IAAKC,GACH,OAAQptC,IAAWgpC,CAErB,KAAKqE,GACH,MAAOrtC,GAAOr4D,MAAQqhG,EAAMrhG,MAAQq4D,EAAOpqD,SAAWozF,EAAMpzF,OAE9D,KAAK03F,GACH,MAAQttC,KAAWA,EACfgpC,IAAUA,EACC,GAAVhpC,EAAgB,EAAIA,GAAY,EAAIgpC,EAAUhpC,IAAWgpC,CAEhE,KAAKuE,GACL,IAAKC,GACH,MAAOxtC,IAAWgpC,EAAQ,GAE9B,OAAO,EA1BT,GAAImE,GAAU,mBACVC,EAAU,gBACVC,EAAW,iBACXC,EAAY,kBACZC,EAAY,kBACZC,EAAY,iBAwBhBprG,GAAOJ,QAAUsoG,OAEXmD,KAAK,SAAS7rG,EAAQQ,EAAOJ,GAUnC,QAAS0oG,GAAa1qC,EAAQgpC,EAAOS,EAAWjD,EAAYyC,EAASC,EAAQC,GAC3E,GAAIuE,GAAWrmF,EAAK24C,GAChB2tC,EAAYD,EAASxrG,OACrB0rG,EAAWvmF,EAAK2hF,GAChB8D,EAAYc,EAAS1rG,MAEzB,IAAIyrG,GAAab,IAAc7D,EAC7B,OAAO,CAKT,KAHA,GAAI4E,GACA96D,GAAQ,IAEHA,EAAQ46D,GAAW,CAC1B,GAAIhnG,GAAM+mG,EAAS36D,GACfoL,EAAS7Y,EAAerjC,KAAK+mG,EAAOriG,EAExC,IAAIw3C,EAAQ,CACV,GAAImtD,GAAWtrC,EAAOr5D,GAClBqmG,EAAWhE,EAAMriG,EAErBw3C,GAASvW,OACL4+D,IACFroD,EAAS8qD,EACLzC,EAAWwG,EAAU1B,EAAU3kG,GAC/B6/F,EAAW8E,EAAU0B,EAAUrmG,IAEhB,mBAAVw3C,KACTA,EAAUmtD,GAAYA,IAAa0B,GAAavD,EAAU6B,EAAU0B,EAAUxG,EAAYyC,EAASC,EAAQC,IAG/G,IAAKhrD,EACH,OAAO,CAET0vD,KAAYA,EAAiB,eAAPlnG,GAExB,IAAKknG,EAAS,CACZ,GAAIC,GAAU9tC,EAAOt4B,YACjBqmE,EAAU/E,EAAMthE,WAEpB,IAAIomE,GAAWC,GACV,eAAiB/tC,IAAU,eAAiBgpC,MACzB,kBAAX8E,IAAyBA,YAAmBA,IACjC,kBAAXC,IAAyBA,YAAmBA,IACvD,OAAO,EAGX,OAAO,EAvDT,GAAI1mF,GAAOzlB,EAAQ,kBAGf+oG,EAAcvmE,OAAOwB,UAGrBN,EAAiBqlE,EAAYrlE,cAoDjCljC,GAAOJ,QAAU0oG,IAEdhE,iBAAiB,MAAMsH,KAAK,SAASpsG,EAAQQ,EAAOJ,GAevD,QAAS8kG,GAAWjB,GAClB,GAAI1nD,KAAW/c,EAAQ6sE,UAAYpI,EAAKl+F,KAAOy5B,EAAQ8sE,WAEvD,KAAK/vD,EAAQ,CACX,GAAI4uB,GAASohC,EAAWlsG,KAAK4jG,EACxBzkE,GAAQ6sE,YACX9vD,GAAUiwD,EAAW5oD,KAAKunB,IAEvB5uB,IACHA,EAASkwD,EAAO7oD,KAAKunB,IAAWuhC,EAASzI,GACzCoG,EAAYpG,EAAM1nD,IAGtB,MAAOA,GA3BT,GAAI8tD,GAAcrqG,EAAQ,iBACtB0sG,EAAW1sG,EAAQ,oBACnBw/B,EAAUx/B,EAAQ,cAGlBwsG,EAAa,2BAGbC,EAAS,WAGTF,EAAaI,SAAS3oE,UAAUuG,QAmBpC/pC,GAAOJ,QAAU8kG,IAEd0H,mBAAmB,IAAIC,aAAa,IAAIC,gBAAgB,MAAMC,KAAK,SAAS/sG,EAAQQ,EAAOJ,GAK9F,QAAS4sG,GAAQhoG,EAAO1E,GAGtB,MAFA0E,IAASA,EACT1E,EAAmB,MAAVA,EAAiB2sG,EAAmB3sG,EACtC0E,GAAQ,GAAMA,EAAQ,GAAK,GAAKA,EAAQ1E,EANjD,GAAI2sG,GAAmBrrC,KAAKU,IAAI,EAAG,IAAM,CASzC9hE,GAAOJ,QAAU4sG,OAEXE,KAAK,SAASltG,EAAQQ,EAAOJ,GAMnC,QAAS2qG,GAAe/lG,EAAOmsC,EAAOitB,GACpC,IAAK8R,EAAS9R,GACZ,OAAO,CAET,IAAI/8D,SAAc8vC,EAClB,IAAY,UAAR9vC,EACF,GAAIf,GAAS89D,EAAO99D,OAChB6sG,EAAS9G,EAAS/lG,IAAW0sG,EAAQ77D,EAAO7wC,OAEhD6sG,GAAiB,UAAR9rG,GAAoB8vC,IAASitB,EAExC,IAAI+uC,EAAQ,CACV,GAAI/F,GAAQhpC,EAAOjtB,EACnB,OAAOnsC,KAAUA,EAASA,IAAUoiG,EAAUA,IAAUA,EAE1D,OAAO,EApBT,GAAI4F,GAAUhtG,EAAQ,aAClBqmG,EAAWrmG,EAAQ,cACnBkwE,EAAWlwE,EAAQ,mBAqBvBQ,GAAOJ,QAAU2qG,IAEd9E,mBAAmB,IAAImH,YAAY,IAAI3G,aAAa,MAAM4G,KAAK,SAASrtG,EAAQQ,EAAOJ,GAK1F,QAASimG,GAASrhG,GAChB,MAAuB,gBAATA,IAAqBA,GAAQ,GAAMA,EAAQ,GAAK,GAAKA,GAASioG,EAJ9E,GAAIA,GAAmBrrC,KAAKU,IAAI,EAAG,IAAM,CAOzC9hE,GAAOJ,QAAUimG,OAEXiH,KAAK,SAASttG,EAAQQ,EAAOJ,GAEnC,QAASmtG,GAAavoG,GACpB,MAAQA,IAAyB,gBAATA,KAAsB,EAGhDxE,EAAOJ,QAAUmtG,OAEXC,KAAK,SAASxtG,EAAQQ,EAAOJ,GAInC,QAAS0pG,GAAmB9kG,GAC1B,MAAOA,KAAUA,IAAoB,IAAVA,EAAgB,EAAIA,EAAS,GAAMkrE,EAASlrE,IAJzE,GAAIkrE,GAAWlwE,EAAQ,mBAOvBQ,GAAOJ,QAAU0pG,IAEd7D,mBAAmB,MAAMwH,KAAK,SAASztG,EAAQQ,EAAOJ,IACzD,SAAWiyE,GACX,GAAIq6B,GAAW1sG,EAAQ,oBAGnB0tG,EAAUhB,EAASgB,EAAUr7B,EAAOq7B,UAAYA,EAGhDtD,EAAUsD,GAAW,GAAIA,EAE7BltG,GAAOJ,QAAUgqG,IAEd/pG,KAAK4kC,KAAqB,mBAATlB,MAAuBA,KAAyB,mBAAXF,QAAyBA,aAC/E+oE,mBAAmB,MAAMe,KAAK,SAAS3tG,EAAQQ,EAAOJ,GAezD,QAASwtG,GAASxvC,GAWhB,IAVA,GAAI+C,GAAQ0sC,EAAOzvC,GACf0vC,EAAc3sC,EAAM7gE,OACpBA,EAASwtG,GAAe1vC,EAAO99D,OAE/BytG,EAAeztG,GAAU+lG,EAAS/lG,KACnCkmD,EAAQ4X,IAAY5+B,EAAQwuE,aAAeC,EAAY7vC,IAEtDjtB,GAAQ,EACRoL,OAEKpL,EAAQ28D,GAAa,CAC5B,GAAI/oG,GAAMo8D,EAAMhwB,IACX48D,GAAgBf,EAAQjoG,EAAKzE,IAAYojC,EAAerjC,KAAK+9D,EAAQr5D,KACxEw3C,EAAOlG,KAAKtxC,GAGhB,MAAOw3C,GA/BT,GAAI0xD,GAAcjuG,EAAQ,uBACtBwmD,EAAUxmD,EAAQ,mBAClBgtG,EAAUhtG,EAAQ,aAClBqmG,EAAWrmG,EAAQ,cACnB6tG,EAAS7tG,EAAQ,oBACjBw/B,EAAUx/B,EAAQ,cAGlB+oG,EAAcvmE,OAAOwB,UAGrBN,EAAiBqlE,EAAYrlE,cAuBjCljC,GAAOJ,QAAUwtG,IAEdM,sBAAsB,IAAI1J,kBAAkB,IAAI2J,mBAAmB,IAAItB,aAAa,IAAIO,YAAY,IAAI3G,aAAa,MAAM2H,KAAK,SAASpuG,EAAQQ,EAAOJ,GAI3J,QAASmmG,GAASvhG,GAChB,MAAOkrE,GAASlrE,GAASA,EAAQw9B,OAAOx9B,GAJ1C,GAAIkrE,GAAWlwE,EAAQ,mBAOvBQ,GAAOJ,QAAUmmG,IAEdN,mBAAmB,MAAMoI,KAAK,SAASruG,EAAQQ,EAAOJ,GAczD,QAAS6tG,GAAYjpG,GACnB,GAAI1E,GAASitG,EAAavoG,GAASA,EAAM1E,OAAS0lC,MAClD,OAAQqgE,GAAS/lG,IAAW6nG,EAAY9nG,KAAK2E,IAAUojG,IAAY,EAfrE,GAAI/B,GAAWrmG,EAAQ,wBACnButG,EAAevtG,EAAQ,4BAGvBooG,EAAU,qBAGVW,EAAcvmE,OAAOwB,UAGrBmkE,EAAcY,EAAYx+D,QAQ9B/pC,GAAOJ,QAAU6tG,IAEdK,uBAAuB,IAAIC,2BAA2B,MAAMC,KAAK,SAASxuG,EAAQQ,EAAOJ,GAC5F,GAAIimG,GAAWrmG,EAAQ,wBACnB0sG,EAAW1sG,EAAQ,cACnButG,EAAevtG,EAAQ,4BAGvBioG,EAAW,iBAGXc,EAAcvmE,OAAOwB,UAGrBmkE,EAAcY,EAAYx+D,SAG1BkkE,EAAgB/B,EAAS+B,EAAgBtrD,MAAMqD,UAAYioD,EAG3DjoD,EAAUioD,GAAiB,SAASzpG,GACtC,MAAQuoG,GAAavoG,IAAUqhG,EAASrhG,EAAM1E,SAAW6nG,EAAY9nG,KAAK2E,IAAUijG,IAAa,EAGnGznG,GAAOJ,QAAUomD,IAEd8nD,uBAAuB,IAAIC,2BAA2B,IAAIG,aAAa,MAAMC,KAAK,SAAS3uG,EAAQQ,EAAOJ,GAU7G,QAASkzD,GAAQtuD,GACf,GAAa,MAATA,EACF,OAAO,CAET,IAAI1E,GAAS0E,EAAM1E,MACnB,OAAI+lG,GAAS/lG,KAAYkmD,EAAQxhD,IAAU6yE,EAAS7yE,IAAUipG,EAAYjpG,IACrEuoG,EAAavoG,IAAUgrE,EAAWhrE,EAAMgtD,UACnC1xD,GAEFmlB,EAAKzgB,GAAO1E,OAlBtB,GAAI2tG,GAAcjuG,EAAQ,iBACtBwmD,EAAUxmD,EAAQ,aAClBgwE,EAAahwE,EAAQ,gBACrBqmG,EAAWrmG,EAAQ,wBACnButG,EAAevtG,EAAQ,4BACvB63E,EAAW73E,EAAQ,cACnBylB,EAAOzlB,EAAQ,iBAenBQ,GAAOJ,QAAUkzD,IAEdg7C,uBAAuB,IAAIC,2BAA2B,IAAIzJ,iBAAiB,IAAI8J,gBAAgB,IAAIC,YAAY,IAAIC,eAAe,IAAIC,aAAa,MAAMC,KAAK,SAAShvG,EAAQQ,EAAOJ,IACzL,SAAWiyE,GACX,GAAIg3B,GAAiBrpG,EAAQ,8BACzB0sG,EAAW1sG,EAAQ,cAGnBivG,EAAU,oBAGVlG,EAAcvmE,OAAOwB,UAGrBmkE,EAAcY,EAAYx+D,SAG1BgR,EAAamxD,EAASnxD,EAAa82B,EAAO92B,aAAeA,EAGzDy0B,EAAeq5B,EAAe,MAAS9tD,IAAe8tD,EAAe9tD,GAAiC,SAASv2C,GACjH,MAAOmjG,GAAY9nG,KAAK2E,IAAUiqG,GADqD5F,CAIzF7oG,GAAOJ,QAAU4vE,IAEd3vE,KAAK4kC,KAAqB,mBAATlB,MAAuBA,KAAyB,mBAAXF,QAAyBA,aAC/EqrE,6BAA6B,IAAIR,aAAa,MAAMS,KAAK,SAASnvG,EAAQQ,EAAOJ,GA0BpF,QAASssG,GAAS1nG,GAChB,MAAa,OAATA,IAGAmjG,EAAY9nG,KAAK2E,IAAUiqG,EACtBG,EAASxrD,KAAK2oD,EAAWlsG,KAAK2E,IAE/BuoG,EAAavoG,IAAUqqG,EAAWzrD,KAAK5+C,KAAW,GAhC5D,GAAIsqG,GAAetvG,EAAQ,0BACvButG,EAAevtG,EAAQ,4BAGvBivG,EAAU,oBAGVI,EAAa,8BAGbtG,EAAcvmE,OAAOwB,UAGrBuoE,EAAaI,SAAS3oE,UAAUuG,SAGhC49D,EAAcY,EAAYx+D,SAG1B6kE,EAAWzrD,OAAO,IACpB2rD,EAAanH,GACZ7qD,QAAQ,mDAAoD,SAAW,IAc1E98C,GAAOJ,QAAUssG,IAEd6B,2BAA2B,IAAIgB,yBAAyB,MAAMC,KAAK,SAASxvG,EAAQQ,EAAOJ,GAE9F,QAAS8vE,GAASlrE,GAChB,GAAI3D,SAAc2D,EAClB,OAAe,YAAR3D,GAAuB2D,GAAiB,UAAR3D,IAAqB,EAG9Db,EAAOJ,QAAU8vE,OAEXu/B,KAAK,SAASzvG,EAAQQ,EAAOJ,GAanC,QAASy3E,GAAS7yE,GAChB,MAAuB,gBAATA,IAAsBuoG,EAAavoG,IAAUmjG,EAAY9nG,KAAK2E,IAAU4mG,IAAc,EAbtG,GAAI2B,GAAevtG,EAAQ,4BAGvB4rG,EAAY,kBAGZ7C,EAAcvmE,OAAOwB,UAGrBmkE,EAAcY,EAAYx+D,QAO9B/pC,GAAOJ,QAAUy3E,IAEd02B,2BAA2B,MAAMmB,KAAK,SAAS1vG,EAAQQ,EAAOJ,GAoDjE,QAASkoG,GAAatjG,GACpB,MAAQuoG,GAAavoG,IAAUqhG,EAASrhG,EAAM1E,SAAWqvG,EAAexH,EAAY9nG,KAAK2E,MAAY,EApDvG,GAAIqhG,GAAWrmG,EAAQ,wBACnButG,EAAevtG,EAAQ,4BAGvBooG,EAAU,qBACVH,EAAW,iBACXsD,EAAU,mBACVC,EAAU,gBACVC,EAAW,iBACXwD,EAAU,oBACVW,EAAS,eACTlE,EAAY,kBACZrD,EAAY,kBACZsD,EAAY,kBACZkE,EAAS,eACTjE,EAAY,kBACZkE,EAAa,mBAEbC,EAAiB,uBACjBC,EAAa,wBACbC,EAAa,wBACbC,EAAU,qBACVC,EAAW,sBACXC,EAAW,sBACXC,EAAW,sBACXC,EAAkB,6BAClBC,EAAY,uBACZC,EAAY,uBAGZb,IACJA,GAAeK,GAAcL,EAAeM,GAC5CN,EAAeO,GAAWP,EAAeQ,GACzCR,EAAeS,GAAYT,EAAeU,GAC1CV,EAAeW,GAAmBX,EAAeY,GACjDZ,EAAea,IAAa,EAC5Bb,EAAevH,GAAWuH,EAAe1H,GACzC0H,EAAeI,GAAkBJ,EAAepE,GAChDoE,EAAenE,GAAWmE,EAAelE,GACzCkE,EAAeV,GAAWU,EAAeC,GACzCD,EAAejE,GAAaiE,EAAetH,GAC3CsH,EAAehE,GAAagE,EAAeE,GAC3CF,EAAe/D,GAAa+D,EAAeG,IAAc,CAGzD,IAAI/G,GAAcvmE,OAAOwB,UAGrBmkE,EAAcY,EAAYx+D,QAO9B/pC,GAAOJ,QAAUkoG,IAEdgG,uBAAuB,IAAIC,2BAA2B,MAAMkC,KAAK,SAASzwG,EAAQQ,EAAOJ,GAC5F,GAAIukG,GAAa3kG,EAAQ,0BACrB4qG,EAAiB5qG,EAAQ,8BAGzB0jG,EAASkH,EAAejG,EAE5BnkG,GAAOJ,QAAUsjG,IAEdgN,yBAAyB,IAAIC,6BAA6B,MAAMC,KAAK,SAAS5wG,EAAQQ,EAAOJ,GAOhG,QAASo9C,GAAOxZ,EAAW6sE,EAAY/F,GACrC,GAAIvuD,GAASypD,EAAWhiE,EAIxB,OAHI8mE,IAASC,EAAe/mE,EAAW6sE,EAAY/F,KACjD+F,EAAa,MAERA,EAAahM,EAASgM,EAAYt0D,EAAQ92B,EAAKorF,IAAet0D,EAXvE,GAAIsoD,GAAW7kG,EAAQ,wBACnBgmG,EAAahmG,EAAQ,0BACrB+qG,EAAiB/qG,EAAQ,8BACzBylB,EAAOzlB,EAAQ,SAWnBQ,GAAOJ,QAAUo9C,IAEdszD,uBAAuB,IAAIC,yBAAyB,IAAIC,6BAA6B,IAAIC,SAAS,MAAMC,KAAK,SAASlxG,EAAQQ,EAAOJ,GACxI,GAAIimG,GAAWrmG,EAAQ,wBACnB0sG,EAAW1sG,EAAQ,oBACnBkwE,EAAWlwE,EAAQ,oBACnB4tG,EAAW5tG,EAAQ,wBAGnBmxG,EAAazE,EAASyE,EAAa3uE,OAAO/c,OAAS0rF,EAGnD1rF,EAAQ0rF,EAAwB,SAAS/yC,GAC3C,GAAIA,EACF,GAAIgzC,GAAOhzC,EAAOt4B,YACdxlC,EAAS89D,EAAO99D,MAEtB,OAAoB,kBAAR8wG,IAAsBA,EAAKptE,YAAco6B,GAC/B,kBAAVA,IAAyB99D,GAAU+lG,EAAS/lG,GAC/CstG,EAASxvC,GAEX8R,EAAS9R,GAAU+yC,EAAW/yC,OATdwvC,CAYzBptG,GAAOJ,QAAUqlB,IAEd6oF,uBAAuB,IAAI+C,uBAAuB,IAAIzE,mBAAmB,IAAI3G,mBAAmB,MAAMqL,KAAK,SAAStxG,EAAQQ,EAAOJ,GAetI,QAASytG,GAAOzvC,GACd,GAAc,MAAVA,EACF,QAEG8R,GAAS9R,KACZA,EAAS57B,OAAO47B,GAElB,IAAI99D,GAAS89D,EAAO99D,MACpBA,GAAUA,GAAU+lG,EAAS/lG,KAC1BkmD,EAAQ4X,IAAY5+B,EAAQwuE,aAAeC,EAAY7vC,KAAa99D,GAAW,CAQlF,KANA,GAAI8wG,GAAOhzC,EAAOt4B,YACdqL,GAAQ,EACRogE,EAAyB,kBAARH,IAAsBA,EAAKptE,YAAco6B,EAC1D7hB,EAAS4G,MAAM7iD,GACfkxG,EAAclxG,EAAS,IAElB6wC,EAAQ7wC,GACfi8C,EAAOpL,GAAUA,EAAQ,EAE3B,KAAK,GAAIpsC,KAAOq5D,GACRozC,GAAexE,EAAQjoG,EAAKzE,IACrB,eAAPyE,IAAyBwsG,IAAY7tE,EAAerjC,KAAK+9D,EAAQr5D,KACrEw3C,EAAOlG,KAAKtxC,EAGhB,OAAOw3C,GAxCT,GAAI0xD,GAAcjuG,EAAQ,uBACtBwmD,EAAUxmD,EAAQ,mBAClBgtG,EAAUhtG,EAAQ,uBAClBqmG,EAAWrmG,EAAQ,wBACnBkwE,EAAWlwE,EAAQ,oBACnBw/B,EAAUx/B,EAAQ,cAGlB+oG,EAAcvmE,OAAOwB,UAGrBN,EAAiBqlE,EAAYrlE,cAgCjCljC,GAAOJ,QAAUytG,IAEd4D,sBAAsB,IAAInD,uBAAuB,IAAIJ,sBAAsB,IAAI1J,kBAAkB,IAAIyB,mBAAmB,IAAI4G,aAAa,MAAM6E,KAAK,SAAS1xG,EAAQQ,EAAOJ,GAQ/K,QAASkvG,GAAa57D,GAEpB,MADAA,GAAS82D,EAAa92D,GACdA,GAAUi+D,EAAiB/tD,KAAKlQ,GACpCA,EAAO4J,QAAQs0D,EAAe,QAC9Bl+D,EAXN,GAAI82D,GAAexqG,EAAQ,4BAGvB4xG,EAAgB,wBAChBD,EAAmBhuD,OAAOiuD,EAAczmC,OAU5C3qE,GAAOJ,QAAUkvG,IAEduC,2BAA2B,MAAMC,KAAK,SAAS9xG,EAAQQ,EAAOJ,IACjE,SAAWiyE,GACX,GAAIq6B,GAAW1sG,EAAQ,mBAGnBysG,EAAS,WAGT1D,EAAcvmE,OAAOwB,UAGrBg7D,GAAYA,EAAW3sB,EAAOxuC,SAAWm7D,EAASA,SAGlD+S,EAAuBhJ,EAAYgJ,qBAGnCvyE,MAEH,SAASy2C,GAGRz2C,EAAQ8sE,YAAcI,EAASr6B,EAAO2/B,aAAevF,EAAO7oD,KAAK,WAAa,MAAO3e,QAGrFzF,EAAQ6sE,UAAoC,gBAAjBM,UAAS5mG,IAGpC,KACEy5B,EAAQyyE,IAAqD,KAA/CjT,EAASkT,yBAAyBx8B,SAChD,MAAMl2E,GACNggC,EAAQyyE,KAAM,EAIhB,IACEzyE,EAAQwuE,aAAe+D,EAAqB1xG,KAAKmtC,UAAW,GAC5D,MAAMhuC,GACNggC,EAAQwuE,aAAc,IAExB,EAAG,GAELxtG,EAAOJ,QAAUo/B,IAEdn/B,KAAK4kC,KAAqB,mBAATlB,MAAuBA,KAAyB,mBAAXF,QAAyBA,aAC/EsuE,kBAAkB,MAAMC,KAAK,SAASpyG,EAAQQ,EAAOJ,GAExD,QAASglG,GAASpgG,GAChB,MAAOA,GAGTxE,EAAOJ,QAAUglG,YAEN","file":"aws-cognito-sdk.min.js"} \ No newline at end of file diff --git a/src/CognitoUser.js b/src/CognitoUser.js index e8ee4479..e618da14 100644 --- a/src/CognitoUser.js +++ b/src/CognitoUser.js @@ -789,7 +789,7 @@ export default class CognitoUser { return callback(new Error('User is not authenticated'), null); } - this.client.makeUnauthenticatedRequest('setUserMfaPreference', { + this.client.makeUnauthenticatedRequest('setUserMFAPreference', { SMSMfaSettings: smsMfaSettings, SoftwareTokenMfaSettings: softwareTokenMfaSettings, AccessToken: this.signInUserSession.getAccessToken().getJwtToken(), diff --git a/src/CognitoUserPool.js b/src/CognitoUserPool.js index 12ebeef2..3f79bbbe 100644 --- a/src/CognitoUserPool.js +++ b/src/CognitoUserPool.js @@ -155,7 +155,9 @@ export default class CognitoUserPool { if (typeof AmazonCognitoAdvancedSecurityData === 'undefined') { return {}; } + /* eslint-disable */ const amazonCognitoAdvancedSecurityDataConst = AmazonCognitoAdvancedSecurityData; + /* eslint-enable */ if (this.advancedSecurityDataCollectionFlag) { const advancedSecurityData = amazonCognitoAdvancedSecurityDataConst.getData(username, diff --git a/src/CookieStorage.js b/src/CookieStorage.js index 64b48c3c..243f2f9f 100644 --- a/src/CookieStorage.js +++ b/src/CookieStorage.js @@ -1,5 +1,5 @@ -import * as Cookies from "js-cookie"; +import * as Cookies from 'js-cookie'; /** @class */ export default class CookieStorage { @@ -19,12 +19,12 @@ export default class CookieStorage { } else { this.path = '/'; } - if (data.hasOwnProperty('expires')){ + if (Object.prototype.hasOwnProperty.call(data, 'expires')) { this.expires = data.expires; } else { this.expires = 365; } - if (data.hasOwnProperty('secure')){ + if (Object.prototype.hasOwnProperty.call(data, 'secure')) { this.secure = data.secure; } else { this.secure = true; @@ -38,7 +38,12 @@ export default class CookieStorage { * @returns {string} value that was set */ setItem(key, value) { - Cookies.set(key, value, {path: this.path, expires: this.expires, domain: this.domain}); + Cookies.set(key, value, { + path: this.path, + expires: this.expires, + domain: this.domain, + } + ); return Cookies.get(key); } @@ -49,7 +54,7 @@ export default class CookieStorage { * @returns {string} the data item */ getItem(key) { - return Cookies.get(key) + return Cookies.get(key); } /** @@ -58,7 +63,12 @@ export default class CookieStorage { * @returns {string} value - value that was deleted */ removeItem(key) { - return Cookies.remove(key, { path: this.path, domain: this.domain, secure: this.secure}); + return Cookies.remove(key, { + path: this.path, + domain: this.domain, + secure: this.secure, + } + ); } /** @@ -66,8 +76,8 @@ export default class CookieStorage { * @returns {string} nothing */ clear() { - var cookies = Cookies.get(); - var index; + const cookies = Cookies.get(); + let index; for (index = 0; index < cookies.length; ++index) { Cookies.remove(cookies[index]); }