diff --git a/Main/SOGo.m b/Main/SOGo.m index 08e08c716..9fdbefc8a 100644 --- a/Main/SOGo.m +++ b/Main/SOGo.m @@ -327,17 +327,9 @@ static BOOL debugLeaks; } //Create mandatory openId table, if used - if([[defaults authenticationType] isEqualToString: @"openid"]) + if([defaults hasOpenIdType]) { - value = [defaults stringForKey: @"OCSOpenIdURL"]; - if (value) - [[fm openIdFolder] createFolderIfNotExists]; - else - { - [self errorWithFormat: @"No value specified for 'OCSOpenIdURL' for auth mode %@", [defaults authenticationType]]; - ok = NO; - } - + [[fm openIdFolder] createFolderIfNotExists]; } } diff --git a/SoObjects/Mailer/SOGoMailBaseObject.m b/SoObjects/Mailer/SOGoMailBaseObject.m index 59b6b72ad..68bf0fdb5 100644 --- a/SoObjects/Mailer/SOGoMailBaseObject.m +++ b/SoObjects/Mailer/SOGoMailBaseObject.m @@ -132,14 +132,24 @@ - (NGImap4ConnectionManager *) mailManager { - return [NGImap4ConnectionManager defaultConnectionManager]; + SOGoSystemDefaults *sd; + NSString *imapAuthMech, *domain; + + domain = [[[self context] activeUser] loginDomain]; + sd = [SOGoSystemDefaults sharedSystemDefaults]; + if([sd doesLoginTypeByDomain]) + imapAuthMech = [sd getImapAuthMechForDomain: domain]; + else + imapAuthMech = nil; + + return [NGImap4ConnectionManager defaultConnectionManager: imapAuthMech]; } - (NGImap4Connection *) _createIMAP4Connection { NGImap4ConnectionManager *manager; NGImap4Connection *newConnection; - NSString *password; + NSString *password, *domain; NGInternetSocketAddress *host; SOGoSystemDefaults *sd; BOOL usesSSO; @@ -152,12 +162,15 @@ host = [NGInternetSocketAddress addressWithPort:0 onHost:[[self imap4URL] host]]; sd = [SOGoSystemDefaults sharedSystemDefaults]; - usesSSO = [sd isSsoUsed]; + + domain = [[[self context] activeUser] loginDomain]; + usesSSO = [sd isSsoUsed: domain]; if (![[[self mailAccountFolder] nameInContainer] isEqualToString: @"0"] && usesSSO && [host isLocalhost]) { + // [self errorWithFormat: @"Trying to use localhost for additional IMAP account - aborting."]; return nil; } @@ -227,19 +240,17 @@ login = [[[self context] activeUser] login]; if (!login) - login = [[[[self container] context] activeUser] login]; + login = [[[[self container] context] activeUser] login]; - cacheKey = [NSString stringWithFormat: @"%@+%@", - login, - [[self mailAccountFolder] nameInContainer]]; + cacheKey = [NSString stringWithFormat: @"%@+%@", login, [[self mailAccountFolder] nameInContainer]]; imap4 = [sogoCache imap4ConnectionForKey: cacheKey]; if (!imap4) - { - imap4 = [self _createIMAP4Connection]; - [sogoCache registerIMAP4Connection: imap4 - forKey: cacheKey]; - } - [imap4 retain]; + { + imap4 = [self _createIMAP4Connection]; + [sogoCache registerIMAP4Connection: imap4 + forKey: cacheKey]; + } + [imap4 retain]; } // Connection broken, try to reconnect diff --git a/SoObjects/SOGo/NSDictionary+Utilities.m b/SoObjects/SOGo/NSDictionary+Utilities.m index 443297923..99863d178 100644 --- a/SoObjects/SOGo/NSDictionary+Utilities.m +++ b/SoObjects/SOGo/NSDictionary+Utilities.m @@ -95,6 +95,7 @@ return keysWithFormat; } + - (NSComparisonResult) caseInsensitiveDisplayNameCompare: (NSDictionary *) theDictionary { return [[self objectForKey: @"cn"] caseInsensitiveCompare: [theDictionary objectForKey: @"cn"]]; diff --git a/SoObjects/SOGo/NSString+Utilities.m b/SoObjects/SOGo/NSString+Utilities.m index 31f6291be..ac1d36a47 100644 --- a/SoObjects/SOGo/NSString+Utilities.m +++ b/SoObjects/SOGo/NSString+Utilities.m @@ -80,7 +80,10 @@ static int cssEscapingCount; { hostR = [self rangeOfString: @"://"]; locationR = [[self substringFromIndex: (hostR.location + hostR.length)] rangeOfString: @"/"]; - newURL = [self substringFromIndex: (hostR.location + hostR.length + locationR.location)]; + if(locationR.location != NSNotFound) + newURL = [self substringFromIndex: (hostR.location + hostR.length + locationR.location)]; + else + newURL = @""; } return newURL; diff --git a/SoObjects/SOGo/SOGoDefaultsSource.h b/SoObjects/SOGo/SOGoDefaultsSource.h index d887efd12..36457ae2e 100644 --- a/SoObjects/SOGo/SOGoDefaultsSource.h +++ b/SoObjects/SOGo/SOGoDefaultsSource.h @@ -62,6 +62,7 @@ extern NSString *SOGoDefaultsSourceUnmutableSource; - (void) setBool: (BOOL) value forKey: (NSString *) key; - (BOOL) boolForKey: (NSString *) key; +- (BOOL) boolForKey: (NSString *) key andDict: (NSDictionary*) _dict; - (void) setFloat: (float) value forKey: (NSString *) key; - (float) floatForKey: (NSString *) key; diff --git a/SoObjects/SOGo/SOGoDefaultsSource.m b/SoObjects/SOGo/SOGoDefaultsSource.m index 7295fd12d..ac2c54e47 100644 --- a/SoObjects/SOGo/SOGoDefaultsSource.m +++ b/SoObjects/SOGo/SOGoDefaultsSource.m @@ -164,6 +164,29 @@ static Class NSStringKlass = Nil; return value; } +- (BOOL) boolForKey: (NSString *) key andDict: (NSDictionary*) _dict +{ + id boolForKey; + BOOL value; + + boolForKey = [_dict objectForKey: key]; + if (boolForKey) + { + if ([boolForKey respondsToSelector: @selector (boolValue)]) + value = [boolForKey boolValue]; + else + { + [self warnWithFormat: @"expected a boolean for '%@' (ignored)", + key]; + value = NO; + } + } + else + value = NO; + + return value; +} + - (void) setFloat: (float) value forKey: (NSString *) key { diff --git a/SoObjects/SOGo/SOGoOpenIdSession.h b/SoObjects/SOGo/SOGoOpenIdSession.h index 34775c695..a8e65eeaa 100644 --- a/SoObjects/SOGo/SOGoOpenIdSession.h +++ b/SoObjects/SOGo/SOGoOpenIdSession.h @@ -25,6 +25,7 @@ https://openid.net/developers/how-connect-works/ */ #import +#import @class NSString; @@ -33,7 +34,7 @@ @class NSJSONSerialization; -@interface SOGoOpenIdSession : NSObject +@interface SOGoOpenIdSession : SOGoObject { //For cache BOOL cacheUpdateNeeded; @@ -48,6 +49,9 @@ NSString *openIdEmailParam; BOOL openIdEnableRefreshToken; + NSString *forDomain; + + //From request to well-known/configuration NSString *authorizationEndpoint; NSString *tokenEndpoint; @@ -66,16 +70,20 @@ } + (BOOL) checkUserConfig; -+ (SOGoOpenIdSession *) OpenIdSession; ++ (SOGoOpenIdSession *) OpenIdSession: (NSString *) _domain; ++ (SOGoOpenIdSession *) OpenIdSessionWithConfig: (NSDictionary *) _config; ++ (SOGoOpenIdSession *) OpenIdSessionWithToken: (NSString *) token domain: (NSString *) _domain; ++ (SOGoOpenIdSession *) OpenIdSessionWithTokenAndConfig: (NSString *) token config: (NSDictionary *) _config; + (void) deleteValueForSessionKey: (NSString *) theSessionKey; - (void) initialize; +- (void) initializeWithConfig: (NSDictionary *) _config; - (BOOL) sessionIsOK; - (WOResponse *) _performOpenIdRequest: (NSString *) endpoint method: (NSString *) method headers: (NSDictionary *) headers body: (NSData *) body; -- (NSMutableDictionary *) fecthConfiguration; +- (NSMutableDictionary *) fecthConfiguration: (NSString *) _domain; - (void) setAccessToken; - (NSString *) getRefreshToken; - (NSString *) getToken; diff --git a/SoObjects/SOGo/SOGoOpenIdSession.m b/SoObjects/SOGo/SOGoOpenIdSession.m index e86170c59..eb55f82af 100644 --- a/SoObjects/SOGo/SOGoOpenIdSession.m +++ b/SoObjects/SOGo/SOGoOpenIdSession.m @@ -23,6 +23,9 @@ #import #import +#import + + #import #import @@ -52,32 +55,67 @@ static BOOL SOGoOpenIDDebugEnabled = YES; return ([sd openIdConfigUrl] && [sd openIdScope] && [sd openIdClient] && [sd openIdClientSecret]); } -- (void) initialize +- (void) initializeWithConfig: (NSDictionary *) _config { SOGoSystemDefaults *sd; + id refreshTokenBool; - // //From sogo.conf - // openIdConfigUrl = nil; - // openIdScope = nil; - // openIdClient = nil; - // openIdClientSecret = nil; + if([_config objectForKey: @"SOGoOpenIdConfigUrl"] && + [_config objectForKey: @"SOGoOpenIdScope"] && + [_config objectForKey: @"SOGoOpenIdClient"] && + [_config objectForKey: @"SOGoOpenIdClientSecret"]) + { + openIdConfigUrl = [_config objectForKey: @"SOGoOpenIdConfigUrl"]; + openIdScope = [_config objectForKey: @"SOGoOpenIdScope"]; + openIdClient = [_config objectForKey: @"SOGoOpenIdClient"]; + openIdClientSecret = [_config objectForKey: @"SOGoOpenIdClientSecret"]; + openIdEmailParam = [_config objectForKey: @"SOGoOpenIdEmailParam"]; - // //From request to well-known/configuration - // //SHoud be ste in sogo.cong in case of oauth - // authorizationEndpoint = nil; - // tokenEndpoint = nil; - // introspectionEndpoint = nil; - // userinfoEndpoint = nil; - // endSessionEndpoint = nil; - // revocationEndpoint = nil; + openIdEnableRefreshToken = NO; + refreshTokenBool = [_config objectForKey: @"SOGoOpenIdEnableRefreshToken"]; + if (refreshTokenBool && [refreshTokenBool respondsToSelector: @selector (boolValue)]) + openIdEnableRefreshToken = [refreshTokenBool boolValue]; - // //Access token - // accessToken = nil; + userTokenInterval = [_config objectForKey: @"SOGoOpenIdTokenCheckInterval"]; + [self _loadSessionFromCache: forDomain]; + + if(cacheUpdateNeeded) + { + [self fecthConfiguration: forDomain]; + } + } + else + { + [self errorWithFormat: @"Missing parameters from sogo.conf"]; + } +} + +- (void) initialize: (NSString*) _domain +{ + SOGoSystemDefaults *sd; + NSDictionary *config; + NSString *type; sd = [SOGoSystemDefaults sharedSystemDefaults]; SOGoOpenIDDebugEnabled = [sd openIdDebugEnabled]; openIdSessionIsOK = NO; - if ([[self class] checkUserConfig]) + + //Check if there is a root config or config per domain + if(_domain != nil && [sd doesLoginTypeByDomain]) + { + forDomain = _domain; + type = [sd getLoginTypeForDomain: _domain]; + if(type != nil && [type isEqualToString: @"openid"]) + { + config = [sd getLoginConfigForDomain: _domain]; + [self initializeWithConfig: config]; + } + else + { + [self errorWithFormat: @"Missing parameters from sogo.conf"]; + } + } + else if ([[self class] checkUserConfig]) { openIdConfigUrl = [sd openIdConfigUrl]; openIdScope = [sd openIdScope]; @@ -86,12 +124,13 @@ static BOOL SOGoOpenIDDebugEnabled = YES; openIdEmailParam = [sd openIdEmailParam]; openIdEnableRefreshToken = [sd openIdEnableRefreshToken]; userTokenInterval = [sd openIdTokenCheckInterval]; + forDomain = _domain; - [self _loadSessionFromCache]; + [self _loadSessionFromCache: _domain]; if(cacheUpdateNeeded) { - [self fecthConfiguration]; + [self fecthConfiguration: _domain]; } } @@ -101,6 +140,13 @@ static BOOL SOGoOpenIDDebugEnabled = YES; } } +- (NSString *) _get_user_domain +{ + SOGoUser* user = [[context activeUser] login]; + NSLog(@"user is %@", user); + +} + - (WOResponse *) _performOpenIdRequest: (NSString *) endpoint method: (NSString *) method headers: (NSDictionary *) headers @@ -112,13 +158,14 @@ static BOOL SOGoOpenIDDebugEnabled = YES; WOResponse *response; WOHTTPConnection *httpConnection; - + + [self _get_user_domain]; url = [NSURL URLWithString: endpoint]; if (url) { if(SOGoOpenIDDebugEnabled) { - NSLog(@"OpenId perform request: %@ %@", method, [endpoint hostlessURL]); + NSLog(@"OpenId perform request: %@ %@", method, endpoint); NSLog(@"OpenId perform request, headers %@", headers); if(body) NSLog(@"OpenId perform request: content %@", [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]); @@ -156,13 +203,13 @@ static BOOL SOGoOpenIDDebugEnabled = YES; } } -- (NSMutableDictionary *) fecthConfiguration +- (NSMutableDictionary *) fecthConfiguration: (NSString*) _domain { - NSString *location, *content; + NSString *content; WOResponse * response; NSUInteger status; NSMutableDictionary *result; - NSDictionary *config; + NSDictionary *config, *headers; NSURL *url; result = [NSMutableDictionary dictionary]; @@ -171,9 +218,14 @@ static BOOL SOGoOpenIDDebugEnabled = YES; url = [NSURL URLWithString: self->openIdConfigUrl ]; if (url) { + if(_domain != nil && [_domain length] > 0) + headers = [NSDictionary dictionaryWithObject: _domain forKey: @"sogo-user-domain"]; + else + headers = nil; + response = [self _performOpenIdRequest: self->openIdConfigUrl method: @"GET" - headers: nil + headers: headers body: nil]; if (response) @@ -185,12 +237,17 @@ static BOOL SOGoOpenIDDebugEnabled = YES; config = [content objectFromJSONString]; self->authorizationEndpoint = [config objectForKey: @"authorization_endpoint"]; self->tokenEndpoint = [config objectForKey: @"token_endpoint"]; - self->introspectionEndpoint = [config objectForKey: @"introspection_endpoint"]; self->userinfoEndpoint = [config objectForKey: @"userinfo_endpoint"]; self->endSessionEndpoint = [config objectForKey: @"end_session_endpoint"]; - self->revocationEndpoint = [config objectForKey: @"revocation_endpoint"]; + + //Optionnals? + if([config objectForKey: @"introspection_endpoint"]) + self->introspectionEndpoint = [config objectForKey: @"introspection_endpoint"]; + if([config objectForKey: @"revocation_endpoint"]) + self->revocationEndpoint = [config objectForKey: @"revocation_endpoint"]; + openIdSessionIsOK = YES; - [self _saveSessionToCache]; + [self _saveSessionToCache: _domain]; } else { @@ -206,18 +263,29 @@ static BOOL SOGoOpenIDDebugEnabled = YES; return result; } -+ (SOGoOpenIdSession *) OpenIdSession ++ (SOGoOpenIdSession *) OpenIdSession: (NSString *) _domain { SOGoOpenIdSession *newSession; newSession = [self new]; [newSession autorelease]; - [newSession initialize]; + [newSession initialize: _domain]; return newSession; } -+ (SOGoOpenIdSession *) OpenIdSessionWithToken: (NSString *) token ++ (SOGoOpenIdSession *) OpenIdSessionWithConfig: (NSDictionary *) _config +{ + SOGoOpenIdSession *newSession; + + newSession = [self new]; + [newSession autorelease]; + [newSession initializeWithConfig: _config]; + + return newSession; +} + ++ (SOGoOpenIdSession *) OpenIdSessionWithToken: (NSString *) token domain: (NSString *) _domain { SOGoOpenIdSession *newSession; @@ -225,7 +293,7 @@ static BOOL SOGoOpenIDDebugEnabled = YES; { newSession = [self new]; [newSession autorelease]; - [newSession initialize]; + [newSession initialize: _domain]; [newSession setAccessToken: token]; } @@ -235,52 +303,90 @@ static BOOL SOGoOpenIDDebugEnabled = YES; return newSession; } ++ (SOGoOpenIdSession *) OpenIdSessionWithTokenAndConfig: (NSString *) token config: (NSDictionary *) _config +{ + SOGoOpenIdSession *newSession; + + if (token) + { + newSession = [self new]; + [newSession autorelease]; + [newSession initializeWithConfig: _config]; + + [newSession setAccessToken: token]; + } + else + newSession = nil; + + return newSession; +} + + - (BOOL) sessionIsOk { return self->openIdSessionIsOK; } -- (void) _loadSessionFromCache +- (void) _loadSessionFromCache: (NSString*) _domain { SOGoCache *cache; - NSString *jsonSession; + NSString *jsonSession, *cacheKey; NSDictionary *sessionDict; + if(_domain != nil && [_domain length] > 0) + cacheKey = [self->openIdConfigUrl stringByAppendingFormat: @":%@", _domain]; + else + cacheKey = self->openIdConfigUrl; + cache = [SOGoCache sharedCache]; - jsonSession = [cache openIdSessionFromServer: self->openIdConfigUrl]; + jsonSession = [cache openIdSessionFromServer: cacheKey]; if ([jsonSession length]) { sessionDict = [jsonSession objectFromJSONString]; ASSIGN (authorizationEndpoint, [sessionDict objectForKey: @"authorization_endpoint"]); ASSIGN (tokenEndpoint, [sessionDict objectForKey: @"token_endpoint"]); - ASSIGN (introspectionEndpoint, [sessionDict objectForKey: @"introspection_endpoint"]); ASSIGN (userinfoEndpoint, [sessionDict objectForKey: @"userinfo_endpoint"]); ASSIGN (endSessionEndpoint, [sessionDict objectForKey: @"end_session_endpoint"]); - ASSIGN (revocationEndpoint, [sessionDict objectForKey: @"revocation_endpoint"]); + + //Optionnals? + if([sessionDict objectForKey: @"introspection_endpoint"]) + ASSIGN (introspectionEndpoint, [sessionDict objectForKey: @"introspection_endpoint"]); + if([sessionDict objectForKey: @"revocation_endpoint"]) + ASSIGN (revocationEndpoint, [sessionDict objectForKey: @"revocation_endpoint"]); openIdSessionIsOK = YES; } else cacheUpdateNeeded = YES; } -- (void) _saveSessionToCache +- (void) _saveSessionToCache: (NSString*) _domain { SOGoCache *cache; - NSString *jsonSession; + NSString *jsonSession, *cacheKey; NSMutableDictionary *sessionDict; cache = [SOGoCache sharedCache]; sessionDict = [NSMutableDictionary dictionary]; [sessionDict setObject: authorizationEndpoint forKey: @"authorization_endpoint"]; [sessionDict setObject: tokenEndpoint forKey: @"token_endpoint"]; - [sessionDict setObject: introspectionEndpoint forKey: @"introspection_endpoint"]; [sessionDict setObject: userinfoEndpoint forKey: @"userinfo_endpoint"]; [sessionDict setObject: endSessionEndpoint forKey: @"end_session_endpoint"]; - [sessionDict setObject: revocationEndpoint forKey: @"revocation_endpoint"]; + + //Optionnals? + if(introspectionEndpoint) + [sessionDict setObject: introspectionEndpoint forKey: @"introspection_endpoint"]; + if(revocationEndpoint) + [sessionDict setObject: revocationEndpoint forKey: @"revocation_endpoint"]; jsonSession = [sessionDict jsonRepresentation]; + + if(_domain != nil && [_domain length] > 0) + cacheKey = [self->openIdConfigUrl stringByAppendingFormat: @":%@", _domain]; + else + cacheKey = self->openIdConfigUrl; + [cache setOpenIdSession: jsonSession - forServer: self->openIdConfigUrl]; + forServer: cacheKey]; } @@ -332,6 +438,8 @@ static BOOL SOGoOpenIDDebugEnabled = YES; logUrl = [logUrl stringByAppendingString: @"&response_type=code"]; logUrl = [logUrl stringByAppendingFormat: @"&client_id=%@", self->openIdClient]; logUrl = [logUrl stringByAppendingFormat: @"&redirect_uri=%@", oldLocation]; + if(self->forDomain != nil && [self->forDomain length] > 0) + logUrl = [logUrl stringByAppendingFormat: @"&sogo_domain=%@", forDomain]; // logurl = [self->logurl stringByAppendingFormat: @"&state=%@", state]; return logUrl; @@ -397,7 +505,11 @@ static BOOL SOGoOpenIDDebugEnabled = YES; form = [form stringByAppendingFormat: @"&client_secret=%@", self->openIdClientSecret]; form = [form stringByAppendingFormat: @"&client_id=%@", self->openIdClient]; - headers = [NSDictionary dictionaryWithObject: @"application/x-www-form-urlencoded" forKey: @"content-type"]; + if(self->forDomain != nil && [self->forDomain length] > 0) + headers = [NSDictionary dictionaryWithObjectsAndKeys: @"application/x-www-form-urlencoded", @"content-type", + self->forDomain, @"sogo-user-domain", nil]; + else + headers = [NSDictionary dictionaryWithObject: @"application/x-www-form-urlencoded" forKey: @"content-type"]; response = [self _performOpenIdRequest: location method: @"POST" @@ -467,7 +579,11 @@ static BOOL SOGoOpenIDDebugEnabled = YES; form = [form stringByAppendingFormat: @"&client_secret=%@", self->openIdClientSecret]; form = [form stringByAppendingFormat: @"&client_id=%@", self->openIdClient]; - headers = [NSDictionary dictionaryWithObject: @"application/x-www-form-urlencoded" forKey: @"content-type"]; + if(self->forDomain != nil && [self->forDomain length] > 0) + headers = [NSDictionary dictionaryWithObjectsAndKeys: @"application/x-www-form-urlencoded", @"content-type", + self->forDomain, @"sogo-user-domain", nil]; + else + headers = [NSDictionary dictionaryWithObject: @"application/x-www-form-urlencoded" forKey: @"content-type"]; response = [self _performOpenIdRequest: location method: @"POST" @@ -525,7 +641,12 @@ static BOOL SOGoOpenIDDebugEnabled = YES; if (url) { auth = [NSString stringWithFormat: @"Bearer %@", self->accessToken]; - headers = [NSDictionary dictionaryWithObject: auth forKey: @"authorization"]; + if(self->forDomain != nil && [self->forDomain length] > 0) + headers = [NSDictionary dictionaryWithObjectsAndKeys: @"application/x-www-form-urlencoded", @"content-type", + self->forDomain, @"sogo-user-domain", + auth, @"authorization", nil]; + else + headers = [NSDictionary dictionaryWithObject: auth forKey: @"authorization"]; response = [self _performOpenIdRequest: location method: @"GET" @@ -646,7 +767,7 @@ static BOOL SOGoOpenIDDebugEnabled = YES; return @"anonymous"; } -- (BOOL) login: (NSString *) email +- (NSString *) login: (NSString *) email { //Check if we need to fetch userinfo if(self->userTokenInterval > 0 && [self _loadUserFromCache: email]) diff --git a/SoObjects/SOGo/SOGoSession.m b/SoObjects/SOGo/SOGoSession.m index 8ec3b53b1..859fea8cd 100644 --- a/SoObjects/SOGo/SOGoSession.m +++ b/SoObjects/SOGo/SOGoSession.m @@ -247,12 +247,20 @@ usingKey: theKey]; r = [decodedValue rangeOfString: @":"]; - *theLogin = [decodedValue substringToIndex: r.location]; - *thePassword = [decodedValue substringFromIndex: r.location+1]; + if (r.location != NSNotFound) + { + *theLogin = [decodedValue substringToIndex: r.location]; + *thePassword = [decodedValue substringFromIndex: r.location+1]; + } + else + { + *theLogin = nil; + *thePassword = nil; + } *theDomain = nil; - + sd = [SOGoSystemDefaults sharedSystemDefaults]; - if ([sd enableDomainBasedUID]) + if (*theLogin &&[sd enableDomainBasedUID]) { r = [*theLogin rangeOfString: @"@" options: NSBackwardsSearch]; if (r.location != NSNotFound) diff --git a/SoObjects/SOGo/SOGoSieveManager.m b/SoObjects/SOGo/SOGoSieveManager.m index 2b2962cc0..4fba5b905 100644 --- a/SoObjects/SOGo/SOGoSieveManager.m +++ b/SoObjects/SOGo/SOGoSieveManager.m @@ -28,6 +28,7 @@ #import #import #import +#import #import #import @@ -697,8 +698,11 @@ static NSString *sieveScriptName = @"sogo"; NSDictionary *result; NSString *login, *authname, *password; SOGoDomainDefaults *dd; + SOGoSystemDefaults *sd; NGSieveClient *client; NSString *sieveServer, *sieveScheme, *sieveQuery, *imapServer; + NSString *imapAuthMech, *userDomain; + NSRange r; NSURL *url, *cUrl; int sievePort; BOOL connected; @@ -773,7 +777,20 @@ static NSString *sieveScriptName = @"sogo"; url = [NSURL URLWithString: [NSString stringWithFormat: @"%@://%@:%d%@", sieveScheme, sieveServer, sievePort, sieveQuery]]; - client = [[NGSieveClient alloc] initWithURL: url]; + //In case of differrent auth method for different domain, check it + sd = [SOGoSystemDefaults sharedSystemDefaults]; + imapAuthMech = nil; + if([sd doesLoginTypeByDomain]) + { + r = [theUsername rangeOfString: @"@"]; + if (r.location != NSNotFound) + { + userDomain = [theUsername substringFromIndex: r.location+1]; + imapAuthMech = [sd getImapAuthMechForDomain: userDomain]; + } + } + + client = [[NGSieveClient alloc] initWithURL: url andAuthMech: imapAuthMech]; if (!client) { [self errorWithFormat: @"Sieve connection failed on %@", [url description]]; diff --git a/SoObjects/SOGo/SOGoSystemDefaults.h b/SoObjects/SOGo/SOGoSystemDefaults.h index 696bb4921..03c7dbb25 100644 --- a/SoObjects/SOGo/SOGoSystemDefaults.h +++ b/SoObjects/SOGo/SOGoSystemDefaults.h @@ -36,6 +36,11 @@ static const NSString *kDisableSharingCalendar = @"Calendar"; + (SOGoSystemDefaults *) sharedSystemDefaults; - (NSArray *) domainIds; +- (BOOL) doesLoginTypeByDomain; +- (NSString *) getLoginTypeForDomain: (NSString*) _domain; +- (NSString *) getLoginConfigForDomain: (NSDictionary*) _domain; +- (NSString *) getImapAuthMechForDomain: (NSString*) _domain; +- (NSString *) getSmtpAuthMechForDomain: (NSString*) _domain; - (BOOL) forbidUnknownDomainsAuth; - (NSArray *) domainsAllowed; - (BOOL) enableDomainBasedUID; @@ -89,7 +94,7 @@ NSComparisonResult languageSort(id el1, id el2, void *context); - (NSString *) loginSuffix; - (NSString *) authenticationType; -- (BOOL) isSsoUsed; +- (BOOL) isSsoUsed: (NSString *) domain; - (NSString *) davAuthenticationType; - (NSString *) CASServiceURL; @@ -101,7 +106,7 @@ NSComparisonResult languageSort(id el1, id el2, void *context); - (NSString *) openIdClientSecret; - (NSString *) openIdEmailParam; - (BOOL) openIdEnableRefreshToken; -- (BOOL) openIdLogoutEnabled; +- (BOOL) openIdLogoutEnabled: (NSString *) _domain; - (int) openIdTokenCheckInterval; - (NSString *) SAML2PrivateKeyLocation; diff --git a/SoObjects/SOGo/SOGoSystemDefaults.m b/SoObjects/SOGo/SOGoSystemDefaults.m index 09e510673..f788bd34a 100644 --- a/SoObjects/SOGo/SOGoSystemDefaults.m +++ b/SoObjects/SOGo/SOGoSystemDefaults.m @@ -262,6 +262,143 @@ _injectConfigurationFromFile (NSMutableDictionary *defaultsDict, return [domains allKeys]; } +- (BOOL) doesLoginTypeByDomain +{ + return ([self dictionaryForKey: @"SOGoLoginTypeByDomain"] != nil); +} + +- (NSString *) getLoginTypeForDomain: (NSString*) _domain +{ + NSDictionary *domains, *config; + NSString *type; + if(![self doesLoginTypeByDomain]) + return nil; + domains = [self dictionaryForKey: @"SOGoLoginTypeByDomain"]; + if([domains objectForKey: _domain]) + { + config = [domains objectForKey: _domain]; + } + else if([domains objectForKey: @"login_default"]) + { + config = [domains objectForKey: @"login_default"]; + } + else + return nil; + + if((type = [config objectForKey: @"type"])) + { + return type; + } + else + return nil; +} + +- (NSString *) getImapAuthMechForDomain: (NSString*) _domain +{ + NSDictionary *domains, *config; + NSString *type; + + if(![self doesLoginTypeByDomain]) + return nil; + + domains = [self dictionaryForKey: @"SOGoLoginTypeByDomain"]; + + if([domains objectForKey: _domain]) + { + config = [domains objectForKey: _domain]; + } + else if([domains objectForKey: @"login_default"]) + { + config = [domains objectForKey: @"login_default"]; + } + else + return nil; + + if((type = [config objectForKey: @"imapAuthMech"])) + { + return type; + } + else + return nil; +} + +- (NSString *) getSmtpAuthMechForDomain: (NSString*) _domain +{ + NSDictionary *domains, *config; + NSString *type; + + if(![self doesLoginTypeByDomain]) + return nil; + + domains = [self dictionaryForKey: @"SOGoLoginTypeByDomain"]; + + if([domains objectForKey: _domain]) + { + config = [domains objectForKey: _domain]; + } + else if([domains objectForKey: @"login_default"]) + { + config = [domains objectForKey: @"login_default"]; + } + else + return nil; + + if((type = [config objectForKey: @"smtpAuthMech"])) + { + return type; + } + else + return nil; +} + +- (NSString *) getLoginConfigForDomain: (NSDictionary*) _domain +{ + NSDictionary *domains, *config; + if(![self doesLoginTypeByDomain]) + return nil; + domains = [self dictionaryForKey: @"SOGoLoginTypeByDomain"]; + if([domains objectForKey: _domain]) + { + config = [domains objectForKey: _domain]; + } + else if([domains objectForKey: @"login_default"]) + { + config = [domains objectForKey: @"login_default"]; + } + + if(config) + return config; + else + return nil; +} + +- (BOOL) hasOpenIdType +{ + if([self doesLoginTypeByDomain]) + { + NSDictionary *domainsConfig; + NSEnumerator *e; + NSString *domain, *type; + if(![self doesLoginTypeByDomain]) + return NO; + domainsConfig = [self dictionaryForKey: @"SOGoLoginTypeByDomain"]; + e = [domainsConfig keyEnumerator]; + while((domain = [e nextObject])) + { + if((type = [[domainsConfig objectForKey: domain] objectForKey: @"type"])) + { + if([type isEqualToString: @"openid"]) + return YES; + } + } + return NO; + } + else + return [[self authenticationType] isEqualToString: @"openid"]; + +} + + - (BOOL) enableDomainBasedUID { return [self boolForKey: @"SOGoEnableDomainBasedUID"]; @@ -582,11 +719,13 @@ NSComparisonResult languageSort(id el1, id el2, void *context) return [[self stringForKey: @"SOGoAuthenticationType"] lowercaseString]; } -- (BOOL) isSsoUsed +- (BOOL) isSsoUsed: (NSString *) domain { NSString* authType; - authType = [self authenticationType]; + authType = [self getLoginTypeForDomain: domain]; + if(!authType) + authType = [self authenticationType]; return ([authType isEqualToString: @"cas"] || [authType isEqualToString: @"saml2"] || [authType isEqualToString: @"openid"]); } @@ -635,8 +774,20 @@ NSComparisonResult languageSort(id el1, id el2, void *context) return emailParam; } -- (BOOL) openIdLogoutEnabled +- (BOOL) openIdLogoutEnabled: (NSString *) _domain { + if(_domain && [self doesLoginTypeByDomain]) + { + NSDictionary *config; + NSString *type; + id value; + if((config = [self getLoginConfigForDomain: _domain])) + { + if((type = [config objectForKey: @"type"]) && [type isEqualToString:@"openid"]) + return [self boolForKey: @"SOGoOpenIdLogoutEnabled" andDict: config]; + } + return NO; + } return [self boolForKey: @"SOGoOpenIdLogoutEnabled"]; } diff --git a/SoObjects/SOGo/SOGoUser.h b/SoObjects/SOGo/SOGoUser.h index 1b329a83e..7cb85ef37 100644 --- a/SoObjects/SOGo/SOGoUser.h +++ b/SoObjects/SOGo/SOGoUser.h @@ -91,6 +91,7 @@ /* properties */ - (NSString *) domain; +- (NSString *) loginDomain; - (id ) authenticationSource; - (NSArray *) allEmails; diff --git a/SoObjects/SOGo/SOGoUser.m b/SoObjects/SOGo/SOGoUser.m index 389fe13c1..80255d6c3 100644 --- a/SoObjects/SOGo/SOGoUser.m +++ b/SoObjects/SOGo/SOGoUser.m @@ -301,6 +301,19 @@ static const NSString *kEncryptedUserNamePrefix = @"uenc"; return [self _fetchFieldForUser: @"c_domain"]; } +- (NSString *) loginDomain +{ + NSRange r; + NSString *domain = nil; + r = [self->login rangeOfString: @"@"]; + if (r.location != NSNotFound) + { + domain = [self->login substringFromIndex: r.location+1]; + } + return domain; +} + + - (id ) authenticationSource { NSString *sourceID; diff --git a/SoObjects/SOGo/SOGoUserManager.m b/SoObjects/SOGo/SOGoUserManager.m index db392f7f8..0a5a2fb5a 100644 --- a/SoObjects/SOGo/SOGoUserManager.m +++ b/SoObjects/SOGo/SOGoUserManager.m @@ -587,6 +587,7 @@ static const NSString *kObfuscatedSecondaryEmailKey = @"obfuscatedSecondaryEmail sd = [SOGoSystemDefaults sharedSystemDefaults]; username = _login; + NSLog(@"D login are %@", _login); if (*_domain && ![*_domain isKindOfClass: NSNullK]) { diff --git a/SoObjects/SOGo/SOGoWebAuthenticator.m b/SoObjects/SOGo/SOGoWebAuthenticator.m index 65a4a616f..1d05698ad 100644 --- a/SoObjects/SOGo/SOGoWebAuthenticator.m +++ b/SoObjects/SOGo/SOGoWebAuthenticator.m @@ -134,11 +134,36 @@ SOGoOpenIdSession * openIdSession; SOGoSystemDefaults *sd; NSString *authenticationType; + NSString* loginDomain; BOOL rc; sd = [SOGoSystemDefaults sharedSystemDefaults]; + + NSLog(@"B Credentials are %@", _login); + //Basic check + if(!_login) + return NO; + if(_login && [_login length] == 0) + return NO; + + loginDomain = nil; + if(*_domain == nil || [*_domain length] == 0) + { + NSRange r; + r = [_login rangeOfString: @"@"]; + if (r.location != NSNotFound) + { + loginDomain = [_login substringFromIndex: r.location+1]; + } + } + if(loginDomain) + NSLog(@"C domain are %@", loginDomain); + + if([sd doesLoginTypeByDomain]) + authenticationType = [sd getLoginTypeForDomain: loginDomain]; + else + authenticationType = [sd authenticationType]; - authenticationType = [sd authenticationType]; if ([authenticationType isEqualToString: @"cas"]) { casSession = [SOGoCASSession CASSessionWithIdentifier: _pwd fromProxy: NO]; @@ -149,7 +174,7 @@ } else if ([authenticationType isEqualToString: @"openid"]) { - openIdSession = [SOGoOpenIdSession OpenIdSessionWithToken: _pwd]; + openIdSession = [SOGoOpenIdSession OpenIdSessionWithToken: _pwd domain: loginDomain]; if (openIdSession) rc = [[openIdSession login: _login] isEqualToString: _login]; else @@ -173,9 +198,8 @@ domain: _domain perr: _perr expire: _expire - grace: _grace + grace: _grace useCache: _useCache]; - //[self logWithFormat: @"Checked login with ppolicy enabled: %d %d %d", *_perr, *_expire, *_grace]; // It's important to return the real value here. The callee will handle @@ -249,12 +273,15 @@ sessionKey = [creds objectAtIndex:1]; + NSLog(@"AAAA decodevalue for"); [SOGoSession decodeValue: [SOGoSession valueForSessionKey: sessionKey] usingKey: userKey login: &login domain: &domain password: &pwd]; + NSLog(@"A Credentials are %@", login); + if (![self checkLogin: login password: pwd domain: &domain @@ -276,32 +303,42 @@ { NSString *authType, *password; SOGoSystemDefaults *sd; + SOGoUser *user; + NSRange r; + NSString *loginDomain, *login; password = [self passwordInContext: context]; if ([password length]) { + user = [self userInContext: context]; + login = [user loginInDomain]; + r = [login rangeOfString: @"@"]; + if (r.location != NSNotFound) + loginDomain = [login substringFromIndex: r.location+1]; + else + loginDomain = nil; + sd = [SOGoSystemDefaults sharedSystemDefaults]; - authType = [sd authenticationType]; + if([sd doesLoginTypeByDomain]) + authType = [sd getLoginTypeForDomain: loginDomain]; + else + authType = [sd authenticationType]; + if ([authType isEqualToString: @"cas"]) { SOGoCASSession *session; - SOGoUser *user; NSString *service, *scheme; session = [SOGoCASSession CASSessionWithIdentifier: password fromProxy: NO]; - - user = [self userInContext: context]; // Try configured CAS service name first service = [[user domainDefaults] imapCASServiceName]; if (!service) { // We must NOT assume the scheme exists scheme = [server scheme]; - if (!scheme) scheme = @"imap"; - service = [NSString stringWithFormat: @"%@://%@", scheme, [server host]]; } @@ -310,17 +347,16 @@ [session invalidateTicketForService: service]; password = [session ticketForService: service]; - if ([password length] || renew) [session updateCache]; } else if ([authType isEqualToString: @"openid"]) { SOGoOpenIdSession* session; - NSString* currentToken; + //If the token has been refresh during the request, we need to use the new access_token //as the one from the cookie is no more valid - session = [SOGoOpenIdSession OpenIdSessionWithToken: password]; + session = [SOGoOpenIdSession OpenIdSessionWithToken: password domain: loginDomain]; password = [session getCurrentToken]; } #if defined(SAML2_CONFIG) @@ -453,21 +489,36 @@ { NSArray *listCookies = nil; SOGoSystemDefaults *sd; - NSString *authType; + NSString *authType, *username, *login, *loginDomain; + NSRange r; + SOGoUser *user; + + user = [self userInContext: _ctx]; + login = [user loginDomain]; + r = [login rangeOfString: @"@"]; + if (r.location != NSNotFound) + loginDomain = [login substringFromIndex: r.location+1]; + else + loginDomain = nil; sd = [SOGoSystemDefaults sharedSystemDefaults]; - authType = [sd authenticationType]; + if(loginDomain && [sd doesLoginTypeByDomain]) + authType = [sd getLoginTypeForDomain: loginDomain]; + else + authType = [sd authenticationType]; if([authType isEqualToString:@"openid"] && [sd openIdEnableRefreshToken]) { - NSString *currentPassword, *newPassword, *username; + NSString *currentPassword, *newPassword; SOGoOpenIdSession *openIdSession; - WOCookie* newCookie; + + currentPassword = [self passwordInContext: _ctx]; newPassword = [self imapPasswordInContext: _ctx forURL: nil forceRenew: NO]; if(currentPassword && newPassword && ![newPassword isEqualToString: currentPassword]) { - openIdSession = [SOGoOpenIdSession OpenIdSessionWithToken: newPassword]; + + openIdSession = [SOGoOpenIdSession OpenIdSessionWithToken: newPassword domain: loginDomain]; if (openIdSession) username = [openIdSession login: @""]; //Force to refresh the name else diff --git a/Tools/SOGoToolExpireOpenIdSessions.m b/Tools/SOGoToolExpireOpenIdSessions.m new file mode 100644 index 000000000..231b435c3 --- /dev/null +++ b/Tools/SOGoToolExpireOpenIdSessions.m @@ -0,0 +1,235 @@ +/* SOGoToolExpireUserSessions.m - this file is part of SOGo + * + * Copyright (C) 2012-2021 Inverse inc. + * + * This file is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2, or (at your option) + * any later version. + * + * This file is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; see the file COPYING. If not, write to + * the Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#import +#import +#import +#import +#import + +#import + +#import +#import + +#import + +#import +#import +#import + +#import "SOGoTool.h" + +@interface SOGoToolExpireUserSessions : SOGoTool +@end + +@implementation SOGoToolExpireUserSessions + ++ (NSString *) command +{ + return @"expire-sessions"; +} + ++ (NSString *) description +{ + return @"expires user sessions without activity for specified number of minutes"; +} + +- (void) usage +{ + fprintf (stderr, "expire-sessions [nbMinutes]\n\n" + " nbMinutes Number of minutes of inactivity after which a user session will be expired\n" + "\n" + "The expire-sessions action should be configured as a cronjob.\n"); +} + +- (BOOL) expireUserOpenIdSessionOlderThan: (int) nbMinutes +{ + BOOL rc; + EOAdaptorChannel *channel; + GCSChannelManager *cm; + NSArray *attrs; + NSDictionary *qresult; + NSException *ex; + NSString *sql, *sessionsFolderURL, *sessionID; + NSURL *tableURL; + NSUserDefaults *ud; + + unsigned int now, oldest; + + rc = YES; + ud = [NSUserDefaults standardUserDefaults]; + now = [[NSCalendarDate calendarDate] timeIntervalSince1970]; + oldest = now - (nbMinutes * 60); + sessionID = nil; + + sessionsFolderURL = [ud stringForKey: @"OCSOpenIdURL"]; + if (!sessionsFolderURL) + { + if (verbose) + NSLog(@"Couldn't read OCSOpenIdURL"); + return rc = NO; + } + + tableURL = [[NSURL alloc] initWithString: sessionsFolderURL]; + cm = [GCSChannelManager defaultChannelManager]; + channel = [cm acquireOpenChannelForURL: tableURL]; + if (!channel) + { + /* FIXME: nice error msg */ + NSLog(@"Can't aquire channel"); + return rc = NO; + } + + sql = [NSString stringWithFormat: @"SELECT c_user_session FROM %@ WHERE c_access_token_expires_in <= %d", + [tableURL gcsTableName], oldest]; + ex = [channel evaluateExpressionX: sql]; + if (ex) + { + NSLog(@"%@", [ex reason]); + [ex raise]; + return rc = NO; + } + + attrs = [channel describeResults: NO]; + while ((qresult = [channel fetchAttributes: attrs withZone: NULL])) + { + sessionID = [qresult objectForKey: @"c_user_session"]; + if (sessionID) + { + if (verbose) + NSLog(@"Removing session %@", sessionID); + [SOGoOpenIdSession deleteValueForSessionKey: sessionID]; + } + } + [cm releaseChannel: channel immediately: YES]; + + if (verbose && sessionID == nil) + NSLog(@"No session to remove on openId"); + + return rc; +} + +- (BOOL) expireUserSessionOlderThan: (int) nbMinutes +{ + BOOL rc; + EOAdaptorChannel *channel; + GCSChannelManager *cm; + NSArray *attrs; + NSDictionary *qresult; + NSException *ex; + NSString *sql, *sessionsFolderURL, *sessionID, *authType; + NSURL *tableURL; + NSUserDefaults *ud; + + unsigned int now, oldest; + + rc = YES; + ud = [NSUserDefaults standardUserDefaults]; + now = [[NSCalendarDate calendarDate] timeIntervalSince1970]; + oldest = now - (nbMinutes * 60); + sessionID = nil; + + sessionsFolderURL = [ud stringForKey: @"OCSSessionsFolderURL"]; + if (!sessionsFolderURL) + { + if (verbose) + NSLog(@"Couldn't read OCSSessionsFolderURL"); + return rc = NO; + } + + tableURL = [[NSURL alloc] initWithString: sessionsFolderURL]; + cm = [GCSChannelManager defaultChannelManager]; + channel = [cm acquireOpenChannelForURL: tableURL]; + if (!channel) + { + /* FIXME: nice error msg */ + NSLog(@"Can't aquire channel"); + return rc = NO; + } + + sql = [NSString stringWithFormat: @"SELECT c_id FROM %@ WHERE c_lastseen <= %d", + [tableURL gcsTableName], oldest]; + ex = [channel evaluateExpressionX: sql]; + if (ex) + { + NSLog(@"%@", [ex reason]); + [ex raise]; + return rc = NO; + } + + attrs = [channel describeResults: NO]; + while ((qresult = [channel fetchAttributes: attrs withZone: NULL])) + { + sessionID = [qresult objectForKey: @"c_id"]; + if (sessionID) + { + if (verbose) + NSLog(@"Removing session %@", sessionID); + [SOGoSession deleteValueForSessionKey: sessionID]; + } + } + [cm releaseChannel: channel immediately: YES]; + + if (verbose && sessionID == nil) + NSLog(@"No session to remove"); + + //doing openid session if needed + authType = [ud stringForKey:@"SOGoAuthenticationType"]; + if([authType isEqualToString: @"openid"]) + { + [self expireUserOpenIdSessionOlderThan: nbMinutes]; + } + + return rc; +} + +- (BOOL) run +{ + BOOL rc; + int sessionExpireMinutes = -1; + + rc = NO; + + if ([arguments count]) + { + sessionExpireMinutes = [[arguments objectAtIndex: 0] intValue]; + } + + NSLog(@"Remove all sessions older than %d min", sessionExpireMinutes); + + if (sessionExpireMinutes == 0 && ![[arguments objectAtIndex: 0] isEqualToString:@"0"]) + { + //If the input is not a number intValue return 0 so we check that's really the case + [self usage]; + } + else if (sessionExpireMinutes >= 0) + { + rc = [self expireUserSessionOlderThan: sessionExpireMinutes]; + } + else + { + [self usage]; + } + + return rc; +} + +@end diff --git a/UI/Common/UIxPageFrame.m b/UI/Common/UIxPageFrame.m index 56f584a6b..b938254d1 100644 --- a/UI/Common/UIxPageFrame.m +++ b/UI/Common/UIxPageFrame.m @@ -488,14 +488,6 @@ && [user isSuperUser]); } -- (BOOL) usesCASAuthentication -{ - SOGoSystemDefaults *sd; - - sd = [SOGoSystemDefaults sharedSystemDefaults]; - - return [[sd authenticationType] isEqualToString: @"cas"]; -} - (BOOL) usesOpenIdAuthentication { @@ -546,19 +538,32 @@ BOOL canLogoff; id auth; SOGoSystemDefaults *sd; - NSString *authType; + NSString *authType, *login, *loginDomain; + NSRange r; auth = [[self clientObject] authenticatorInContext: context]; if ([auth respondsToSelector: @selector (cookieNameInContext:)]) { + sd = [SOGoSystemDefaults sharedSystemDefaults]; - authType = [sd authenticationType]; + + login = [[context activeUser] login]; + r = [login rangeOfString: @"@"]; + if (r.location != NSNotFound) + loginDomain = [login substringFromIndex: r.location+1]; + else + loginDomain = nil; + if(loginDomain && [sd doesLoginTypeByDomain]) + authType = [sd getLoginTypeForDomain: loginDomain]; + else + authType = [sd authenticationType]; + if ([authType isEqualToString: @"cas"]) canLogoff = [sd CASLogoutEnabled]; else if ([authType isEqualToString: @"saml2"]) canLogoff = [sd SAML2LogoutEnabled]; else if ([authType isEqualToString: @"openid"]) - canLogoff = [sd openIdLogoutEnabled]; + canLogoff = [sd openIdLogoutEnabled: loginDomain]; else canLogoff = [[auth cookieNameInContext: context] length] > 0; } diff --git a/UI/MainUI/SOGoRootPage.m b/UI/MainUI/SOGoRootPage.m index beb1b3586..3f6b15166 100644 --- a/UI/MainUI/SOGoRootPage.m +++ b/UI/MainUI/SOGoRootPage.m @@ -145,6 +145,7 @@ static const NSString *kJwtKey = @"jwt"; - (WOCookie *) _authLocationCookie: (BOOL) cookieReset withName: (NSString *) cookieName + withValue: (NSString *) _value { WOCookie *locationCookie; NSString *appName; @@ -152,7 +153,10 @@ static const NSString *kJwtKey = @"jwt"; NSCalendarDate *date; rq = [context request]; - locationCookie = [WOCookie cookieWithName: cookieName value: [rq uri]]; + if(_value) + locationCookie = [WOCookie cookieWithName: cookieName value: _value]; + else + locationCookie = [WOCookie cookieWithName: cookieName value: [rq uri]]; appName = [rq applicationName]; [locationCookie setPath: [NSString stringWithFormat: @"/%@/", appName]]; if (cookieReset) @@ -165,6 +169,28 @@ static const NSString *kJwtKey = @"jwt"; return locationCookie; } +- (WOCookie *) _domainCookie: (BOOL) cookieReset + withDomain: (NSString *) _domain +{ + WOCookie *domainCookie; + NSString *appName; + WORequest *rq; + NSCalendarDate *date; + + rq = [context request]; + domainCookie = [WOCookie cookieWithName: @"sogo-user-domain" value: _domain]; + appName = [rq applicationName]; + [domainCookie setPath: [NSString stringWithFormat: @"/%@/", appName]]; + if (cookieReset) + { + date = [NSCalendarDate calendarDate]; + [date setTimeZone: [NSTimeZone timeZoneForSecondsFromGMT: 0]]; + [domainCookie setExpires: [date yesterday]]; + } + + return domainCookie; +} + // // // @@ -389,6 +415,7 @@ static const NSString *kJwtKey = @"jwt"; return response; } + - (NSDictionary *) _casRedirectKeys { NSDictionary *redirectKeys; @@ -462,7 +489,8 @@ static const NSString *kJwtKey = @"jwt"; /* login callback, we expire the "cas-location" cookie, created below */ casLocationCookie = [self _authLocationCookie: YES - withName: @"cas-location"]; + withName: @"cas-location" + withValue: nil]; } } else @@ -501,7 +529,8 @@ static const NSString *kJwtKey = @"jwt"; newLocation = [SOGoCASSession CASURLWithAction: @"login" andParameters: [self _casRedirectKeys]]; casLocationCookie = [self _authLocationCookie: NO - withName: @"cas-location"]; + withName: @"cas-location" + withValue: nil]; } response = [self redirectToLocation: newLocation]; if (casCookie) @@ -512,7 +541,7 @@ static const NSString *kJwtKey = @"jwt"; return response; } -- (id ) _openidDefaultAction +- (id ) _openidDefaultAction: (NSString *) _domain { WOResponse *response; NSString *login, *redirectLocation, *serverUrl; @@ -520,7 +549,7 @@ static const NSString *kJwtKey = @"jwt"; NSURL *newLocation, *oldLocation; NSDictionary *formValues; SOGoUser *loggedInUser; - WOCookie *openIdCookie, *openIdCookieLocation, *openIdRefreshCookie; + WOCookie *openIdCookie, *openIdCookieLocation, *openIdRefreshCookie, *domainCookie; WORequest *rq; SOGoWebAuthenticator *auth; SOGoOpenIdSession *openIdSession; @@ -529,9 +558,16 @@ static const NSString *kJwtKey = @"jwt"; openIdCookie = nil; openIdCookieLocation = nil; openIdRefreshCookie = nil; + domainCookie = nil; newLocation = nil; - openIdSession = [SOGoOpenIdSession OpenIdSession]; + rq = [context request]; + + //Check if the domain is stored in a cookie if not given + if(_domain == nil || [_domain length] == 0) + _domain = [rq cookieValueForKey: @"sogo-user-domain"]; //_domain can still be nil aftert his + + openIdSession = [SOGoOpenIdSession OpenIdSession: _domain]; if(![openIdSession sessionIsOk]) { @@ -540,7 +576,6 @@ static const NSString *kJwtKey = @"jwt"; } login = [[context activeUser] login]; - rq = [context request]; if ([login isEqualToString: @"anonymous"]) login = nil; if (!login) @@ -548,7 +583,6 @@ static const NSString *kJwtKey = @"jwt"; //You get here if you nerver been logged in or if you token is expired serverUrl = [[context serverURL] absoluteString]; redirectLocation = [NSString stringWithFormat: @"%@/%@/", serverUrl, [rq applicationName]]; - NSLog(@"ServerUrl %@ and redirect: %@", serverUrl, redirectLocation); if((formValues = [rq formValues]) && [formValues objectForKey: @"code"]) { //You get here if this is the callback of openid after you logged in @@ -559,6 +593,7 @@ static const NSString *kJwtKey = @"jwt"; // sessionState = [value lastObject]; // else // sessionState = value; + value = [formValues objectForKey: @"code"]; if ([value isKindOfClass: [NSArray class]]) code = [value lastObject]; @@ -574,7 +609,8 @@ static const NSString *kJwtKey = @"jwt"; inContext: context]; } newLocation = [rq cookieValueForKey: @"openid-location"]; - openIdCookieLocation = [self _authLocationCookie: YES withName: @"openid-location"]; + openIdCookieLocation = [self _authLocationCookie: YES withName: @"openid-location" withValue: nil]; + domainCookie = [self _domainCookie: YES withDomain: _domain]; } // else if((formValues = [rq formValues]) && [formValues objectForKey: @"action"]) // { @@ -596,8 +632,13 @@ static const NSString *kJwtKey = @"jwt"; // //To avoid making a redirection to openid server after a post request, we first redirect to a get method // newLocation = [NSString stringWithFormat: @"%@?action=redirect", redirectLocation]; // else - newLocation = [openIdSession loginUrl: redirectLocation]; - openIdCookieLocation = [self _authLocationCookie: NO withName: @"openid-location"]; + if(_domain != nil && [_domain length] > 0) + { + //add the domain cookie to get it after the redirect + domainCookie = [self _domainCookie: NO withDomain: _domain]; + } + newLocation = [openIdSession loginUrl: redirectLocation]; + openIdCookieLocation = [self _authLocationCookie: NO withName: @"openid-location" withValue: nil]; } } else @@ -617,10 +658,14 @@ static const NSString *kJwtKey = @"jwt"; [response addCookie: openIdCookie]; if (openIdCookieLocation) [response addCookie: openIdCookieLocation]; + if(domainCookie) + [response addCookie: domainCookie]; //[response setStatus: 303]; return response; } + + #if defined(SAML2_CONFIG) - (id ) _saml2DefaultAction { @@ -644,7 +689,8 @@ static const NSString *kJwtKey = @"jwt"; newLocation = [rq cookieValueForKey: @"saml2-location"]; if (newLocation) saml2LocationCookie = [self _authLocationCookie: YES - withName: @"saml2-location"]; + withName: @"saml2-location" + withValue: nil]; else { oldLocation = [[self clientObject] baseURLInContext: context]; @@ -659,7 +705,8 @@ static const NSString *kJwtKey = @"jwt"; { newLocation = [SOGoSAML2Session authenticationURLInContext: context]; saml2LocationCookie = [self _authLocationCookie: NO - withName: @"saml2-location"]; + withName: @"saml2-location" + withValue: nil]; } response = [self redirectToLocation: newLocation]; @@ -680,13 +727,11 @@ static const NSString *kJwtKey = @"jwt"; login = nil; if (login) - { - oldLocation = [[self clientObject] baseURLInContext: context]; - response - = [self redirectToLocation: [NSString stringWithFormat: @"%@%@", - oldLocation, - [[SOGoUser getEncryptedUsernameIfNeeded:login request: [context request]] stringByEscapingURL]]]; - } + { + oldLocation = [[self clientObject] baseURLInContext: context]; + response = [self redirectToLocation: [NSString stringWithFormat: @"%@%@", oldLocation, + [[SOGoUser getEncryptedUsernameIfNeeded:login request: [context request]] stringByEscapingURL]]]; + } else { oldLocation = [[context request] uri]; @@ -699,23 +744,174 @@ static const NSString *kJwtKey = @"jwt"; return response; } +- (WOResponse *) connectNameAction +{ + WOResponse *response; + WORequest *request; + NSDictionary *params; + NSString *username, *language, *domain, *type, *serverUrl, *redirectLocation; + NSRange r; + + request = [context request]; + params = [[request contentAsString] objectFromJSONString]; + + username = [params objectForKey: @"userName"]; + + //Extract the domain + r = [username rangeOfString: @"@"]; + if (r.location != NSNotFound) + { + domain = [username substringFromIndex: r.location+1]; + type = [[SOGoSystemDefaults sharedSystemDefaults] getLoginTypeForDomain: domain]; + if(type != nil) + { + if([type isEqualToString: @"plain"]) + { + //Only reload the page with the name + serverUrl = [[context serverURL] absoluteString]; + redirectLocation = [NSString stringWithFormat: @"%@/%@/login?hint=%@", serverUrl, [request applicationName], username]; + //response = [self redirectToLocation: [NSString stringWithFormat: @"%@/", redirectLocation]]; + response = [self responseWithStatus: 200 andJSONRepresentation: + [NSDictionary dictionaryWithObjectsAndKeys: redirectLocation, @"redirect", nil]]; + } + else if([type isEqualToString: @"openid"]) + { + SOGoOpenIdSession *openIdSession; + WOCookie *domainCookie, *openIdCookieLocation; + + //With openId, the user will be redirected to the openid server for login + //With set the domain in a cookie to know it after the openid does the callbacl + serverUrl = [[context serverURL] absoluteString]; + redirectLocation = [NSString stringWithFormat: @"%@/%@/", serverUrl, [request applicationName]]; + + openIdSession = [SOGoOpenIdSession OpenIdSession: domain]; + + domainCookie = [self _domainCookie: NO withDomain: domain]; + openIdCookieLocation = [self _authLocationCookie: NO withName: @"openid-location" withValue: redirectLocation]; + + response = [self responseWithStatus: 200 andJSONRepresentation: + [NSDictionary dictionaryWithObjectsAndKeys: [openIdSession loginUrl: redirectLocation], @"redirect", nil]]; + [response addCookie: domainCookie]; + [response addCookie: openIdCookieLocation]; + } + else if([type isEqualToString: @"cas"] || [type isEqualToString: @"saml2"]) + { + [self logWithFormat: @"Unsupported type for now: %@", type]; + response = [self responseWithStatus: 400 + andString: @"Domain Authentication type not supported"]; + } + else + { + [self logWithFormat: @"Unknown type: %@", type]; + response = [self responseWithStatus: 400 + andString: @"Unknwon Authentication type"]; + } + } + else + { + [self logWithFormat: @"Auth type for Domain given is not set or there is no default value: %@", domain]; + response = [self responseWithStatus: 400 + andString: @"Domain unknown"]; + } + + } + else + { + [self logWithFormat: @"Domain is required but not found for user recovery exception for user %@", username]; + response = [self responseWithStatus: 400 + andString: @"Domain needed in the login"]; + } + + return response; +} + + - (id ) defaultAction { - NSString *authenticationType; + NSString *authenticationType, *loginDomain, *type, *_domain; + SOGoSystemDefaults* sd; id result; - authenticationType = [[SOGoSystemDefaults sharedSystemDefaults] - authenticationType]; - if ([authenticationType isEqualToString: @"cas"]) - result = [self _casDefaultAction]; - else if ([authenticationType isEqualToString: @"openid"]) - result = [self _openidDefaultAction]; -#if defined(SAML2_CONFIG) - else if ([authenticationType isEqualToString: @"saml2"]) - result = [self _saml2DefaultAction]; -#endif /* SAML2_CONFIG */ - else - result = [self _standardDefaultAction]; + loginDomain = nil; + sd = [SOGoSystemDefaults sharedSystemDefaults]; + if([sd doesLoginTypeByDomain]) + { + NSString *login; + //In this mode sogo will ask the mail of the user before doing any authentication + //Check if a user is already logged in + + _domain = [[context request] cookieValueForKey: @"sogo-user-domain"]; //_domain can still be nil aftert his + if(_domain != nil) + { + //This is a callback of an openid session. + return [self _openidDefaultAction: _domain]; + } + + login = [[context activeUser] login]; + if ([login isEqualToString: @"anonymous"]) + login = nil; + if(!login && !_domain) + return [self _standardDefaultAction]; + else + { + //User already logged in. Extract the domain in that case + NSRange r; + r = [login rangeOfString: @"@"]; + if (r.location != NSNotFound) + { + loginDomain = [login substringFromIndex: r.location+1]; + type = [sd getLoginTypeForDomain: loginDomain]; + if(type) + { + if([type isEqualToString: @"plain"]) + { + result = [self _standardDefaultAction]; + } + else if([type isEqualToString: @"openid"]) + { + result = [self _openidDefaultAction: loginDomain]; + } + else if([type isEqualToString: @"cas"] || [type isEqualToString: @"saml2"]) + { + [self logWithFormat: @"Unsupported type for now: %@", type]; + result = [self responseWithStatus: 400 + andString: @"Domain Authentication type not supported"]; + } + else + { + [self logWithFormat: @"Unknown type: %@", type]; + result = [self responseWithStatus: 400 + andString: @"Unknwon Authentication type"]; + } + } + else + { + [self logWithFormat: @"Auth type for Domain given is not set or there is no default value: %@", loginDomain]; + result = [self responseWithStatus: 400 + andString: @"Domain unknown"]; + } + } + else + { + loginDomain = nil; + result = [self _standardDefaultAction]; + } + } + } + else { + authenticationType = [sd authenticationType]; + + if ([authenticationType isEqualToString: @"cas"]) + result = [self _casDefaultAction]; + else if ([authenticationType isEqualToString: @"openid"]) + result = [self _openidDefaultAction: loginDomain]; + #if defined(SAML2_CONFIG) + else if ([authenticationType isEqualToString: @"saml2"]) + result = [self _saml2DefaultAction]; + #endif /* SAML2_CONFIG */ + else + result = [self _standardDefaultAction]; + } return result; } @@ -745,6 +941,57 @@ static const NSString *kJwtKey = @"jwt"; return ([[self loginDomains] count] > 0); } +- (BOOL) doLoginUsernameFirst +{ + return [[SOGoSystemDefaults sharedSystemDefaults] doesLoginTypeByDomain]; +} + +- (BOOL) doFullLogin +{ + //Either we directly do the full login (meaning the user inputs its username and password) + //Or we do it in two times: + //phase 1: user types its username first -> only show the username input + //phase 2: user types its password -> show all inputs + //In phase 2, the username will be in the query at key "login" + if([self doLoginUsernameFirst]){ + WORequest *rq; + BOOL hasLogin; + NSDictionary *formValues; + + rq = [context request]; + hasLogin = ((formValues=[rq formValues]) && [formValues objectForKey: @"hint"]); + return hasLogin; + } + + return YES; +} + +- (BOOL) doPartialLogin +{ + return ![self doFullLogin]; +} + + +- (NSString *) getLoginHint +{ + id value; + WORequest *rq; + NSString* login; + NSDictionary *formValues; + + login = @""; + + rq = [context request]; + if((formValues=[rq formValues]) && (value=[formValues objectForKey: @"hint"])) + { + if ([value isKindOfClass: [NSArray class]]) + login = [value lastObject]; + else + login = value; + } + return login; +} + - (BOOL) hasPasswordRecovery { return [[SOGoSystemDefaults sharedSystemDefaults] isPasswordRecoveryEnabled]; @@ -1108,8 +1355,7 @@ static const NSString *kJwtKey = @"jwt"; message = [[request contentAsString] objectFromJSONString]; username = [message objectForKey: @"userName"]; domain = [message objectForKey: @"domain"]; - if ([[SOGoSystemDefaults sharedSystemDefaults] - isPasswordRecoveryEnabled]) { + if ([[SOGoSystemDefaults sharedSystemDefaults] isPasswordRecoveryEnabled]) { // If no domain, try to retrieve domain from username if (nil != domain && domain != [NSNull null]) { domainName = domain; diff --git a/UI/MainUI/SOGoUserHomePage.m b/UI/MainUI/SOGoUserHomePage.m index df950b84f..4dc9f8e53 100644 --- a/UI/MainUI/SOGoUserHomePage.m +++ b/UI/MainUI/SOGoUserHomePage.m @@ -420,26 +420,38 @@ - (NSString *) _logoutRedirectURL { - NSString *redirectURL; + NSString *redirectURL, *login, *loginDomain, *authType; SOGoSystemDefaults *sd; id container; + NSRange r; + + + login = [[context activeUser] login]; + r = [login rangeOfString: @"@"]; + if (r.location != NSNotFound) + loginDomain = [login substringFromIndex: r.location+1]; + else + loginDomain = nil; sd = [SOGoSystemDefaults sharedSystemDefaults]; - if ([[sd authenticationType] isEqualToString: @"cas"]) - { - redirectURL = [SOGoCASSession CASURLWithAction: @"logout" - andParameters: nil]; - } - else if ([[sd authenticationType] isEqualToString: @"openid"]) + if(loginDomain && [sd doesLoginTypeByDomain]) + authType = [sd getLoginTypeForDomain: loginDomain]; + else + authType = [sd authenticationType]; + + if ([authType isEqualToString: @"cas"]) + { + redirectURL = [SOGoCASSession CASURLWithAction: @"logout" + andParameters: nil]; + } + else if ([authType isEqualToString: @"openid"]) { SOGoOpenIdSession* session; - session = [SOGoOpenIdSession OpenIdSession]; + session = [SOGoOpenIdSession OpenIdSession: loginDomain]; redirectURL = [session logoutUrl]; - //delete openid session in database - } #if defined(SAML2_CONFIG) - else if ([[sd authenticationType] isEqualToString: @"saml2"]) + else if ([authType isEqualToString: @"saml2"]) { NSString *username, *password, *domain, *value; SOGoSAML2Session *saml2Session; diff --git a/UI/MainUI/product.plist b/UI/MainUI/product.plist index 50f0d734d..69844cc82 100644 --- a/UI/MainUI/product.plist +++ b/UI/MainUI/product.plist @@ -168,6 +168,16 @@ pageName = "SOGoRootPage"; actionName = "connect"; }; + connectName = { + protectedBy = ""; + pageName = "SOGoRootPage"; + actionName = "connectName"; + }; + openid_redirect = { + protectedBy = ""; + pageName = "SOGoRootPage"; + actionName = "openIdRedirect"; + }; changePassword = { protectedBy = ""; pageName = "SOGoRootPage"; diff --git a/UI/Templates/MainUI/SOGoRootPage.wox b/UI/Templates/MainUI/SOGoRootPage.wox index 5a0c1adb0..f9cbb6e97 100644 --- a/UI/Templates/MainUI/SOGoRootPage.wox +++ b/UI/Templates/MainUI/SOGoRootPage.wox @@ -12,6 +12,7 @@ -
- language - - - - - - - - - - -
- - - -
- domain - - - - - - - - - -
+ + +
- -
-
- -
-
- - -
- - info - -
- - arrow_forward - -
-
- - - - - -
- -
- -
-
- - - -
-
- - lock - -
+ + person +
-
- - arrow_backward - + + + + vpn_key + + visibility + + + + +
+ language + + + + + + + + + + +
+ + + +
+ domain + + + + + + + + + +
+
+ +
+ + + +
+ +
+ +
+
+
+ + +
+
+ +
+
+ + +
+ + info + +
+ sg-ripple-click="loginContent"> arrow_forward
-
- -
-
- warning -
- {{app.cn}} -
-
- priority_high -
- -
-
-
- -
-
-
- - -
- watch_later - vpn_key -
- -
-
- -
-
-
- - - - - - - - - - - -
-
-
-
-
-
- - - -
-
-
+ + - -
-
- warning -
- {{app.cn}} -
-
- priority_high -
{{app.errorMessage}}
-
-
- - -
-
-
- - - +
- vpn_key -
-
-
- -
-
-
- {{ app.passwordRecovery.passwordRecoveryQuestion }} - - - - -
-
-
-
- {{ app.passwordRecovery.passwordRecoverySecondaryEmailText }} -
-
-
-
- - + ng-switch-when="authenticating"> + +
+ +
+
+ + + +
+
+ + + lock + +
+
+
+ + arrow_backward + + + arrow_forward -
- - - -
-
- - - -
-
- local_shipping -
-
-
- + +
+
+ warning +
+ {{app.cn}} +
+
+ priority_high +
+
- - + +
+
+
+ + + +
+ watch_later + vpn_key +
+ +
+
+ +
+
+
+ + + + + + + + + + + +
+
+
+
+
+
+ +
- - -
- done -
- {{app.cn}} + +
+
+ warning +
+ {{app.cn}} +
+
+ priority_high +
{{app.errorMessage}}
+
+
+ + +
+
-
-
- done -
- {{app.errorMessage}} + + +
+ vpn_key +
+
+
+ +
+
+
+ {{ app.passwordRecovery.passwordRecoveryQuestion }} + + + + +
+
+
+
+ {{ app.passwordRecovery.passwordRecoverySecondaryEmailText }} +
+
+
+
+ + + +
+ + + +
+
+ + + +
+
+
+
+
+ local_shipping +
+
+
+ +
+
+
+ + + +
+
+
+
+ + +
+ done +
+ {{app.cn}} +
- -
- -
- error -
- {{app.errorMessage}} +
+ done +
+ {{app.errorMessage}} +
+
- -
- - + +
+ error +
+ {{app.errorMessage}} +
+ +
-
+ + + +
+ + + +
diff --git a/UI/WebServerResources/js/Common.js b/UI/WebServerResources/js/Common.js index a57d5cf3d..edfba0b5d 100644 --- a/UI/WebServerResources/js/Common.js +++ b/UI/WebServerResources/js/Common.js @@ -1,2 +1,2 @@ -function l(){var n,e,t=arguments[0],o=t,r=arguments;for(labels[t]?o=labels[t]:clabels[t]&&(o=clabels[t]),n=1,e=0;n');return s.on("load",function(){var e=o.get("$state");2"+e+"
");return e.find("a").attr("target","_blank"),t.trustAs("html",e.html())}}e.$inject=["$sce"],angular.module("SOGo.Common").filter("ensureTarget",e)}(),function(){"use strict";angular.module("SOGo.Common").filter("loc",function(){return l})}(),function(){"use strict";angular.module("SOGo.Common").filter("range",function(){return function(e){for(var t=[],n=0;n"):void 0}}e.$inject=["linkyFilter"],angular.module("SOGo.Common").filter("txt2html",e)}(),function(){"use strict";function e(t,n,e,o,r,i,s){var a=this;function c(e,t){if(t&&t.target.parentNode.classList.contains("md-secondary"))return!1;a.selectedUid==e.uid?a.selectedUid=null:(a.selectedUid=e.uid,(a.selectedUser=e).inactive||a.selectedUser.$rights())}a.users=r,a.folder=s,a.selectedUser=null,a.selectedUid=null,a.userToAdd="",a.searchText="",a.folderClassName=function(){return!!angular.isFunction(s.getClassName)&&s.getClassName("bg")},a.templateName=function(e){return"UIx"+(t[0].getElementById("UIxAnonymousUserRightsEditor")&&e.$isAnonymous()?"Anonymous":"")+"UserRightsEditor"},a.userFilter=function(e){return i.$filter(e,s.$acl.users,{dry:!0})},a.closeModal=function(){s.$acl.$resetUsersRights(),e.hide()},a.saveModal=function(){s.$acl.$saveUsersRights().then(function(){e.hide()},function(e,t){o.alert(l("Warning"),l("An error occured, please try again."))})},a.confirmChange=function(e){e=e.$confirmRights(a.folder);e&&(a.confirmation.showing=!0,a.confirmation.message=e)},a.removeUser=function(e){n(function(){s.$acl.$removeUser(e.uid)},500)},a.addUser=function(e){e&&s.$acl.$addUser(e).then(function(e){a.userToAdd="",a.searchText="",a.selectedUid=null,e&&c(e)})},a.toggleAllRights=function(e){s.$acl.$toggleAllRights(e)},a.selectUser=c,a.hasNoRight=function(e){return s.$acl.$hasNoRight(e)},a.showRights=function(e){return a.selectedUid==e.uid&&!e.inactive},a.confirmation={showing:!1,message:""}}e.$inject=["$document","$timeout","$mdDialog","Dialog","usersWithACL","User","folder"],angular.module("SOGo.Common").controller("AclController",e)}(),function(){"use strict";function e(e,t,n,o,r,i,s,a,c,u,d,h,m,g){var p=new m(h.baseURL(),h.activeUser());function f(e,t){var n;t.data&&t.data.message&&angular.isString(t.data.message)?n=t.data.message:t.status&&(n=t.statusText),n?a.show({template:["",'
',' error_outline'," "+l(n)+"","
","
"].join(""),hideDelay:5e3,position:d.toastPosition}):u.debug("untrap error")}this.$onInit=function(){t.isPopup=h.isPopup,t.activeUser=h.activeUser(),t.baseURL=h.baseURL(),t.leftIsClose=!c(d["gt-md"]),t.centerIsClose=!!i.centerIsClose&&!t.leftIsClose,t.currentDay=window.currentDay,n(function(){o(function(){r.get("../date").then(function(e){t.currentDay=e})},864e5)},1e3*window.currentDay.secondsBeforeTomorrow),t.$watch(function(){return c(d["gt-xs"])},function(e){t.isGtExtraSmall=e}),t.$watch(function(){return c(d["gt-md"])},function(e){(t.isGtMedium=e)&&(t.leftIsClose=!1)}),e.$on("http:Error",f),t.isPopup||(h.activeUser("path").calendar&&g.getAlarms(),h.activeUser("path").mail&&g.pollInbox())},t.toggleLeft=function(){t.isGtMedium?t.leftIsClose=!t.leftIsClose:(t.leftIsClose=!s("left").isOpen(),t.leftIsClose&&angular.element(i).triggerHandler("resize"),s("left").toggle().then(function(){u.debug("toggle left is done")}))},t.toggleRight=function(){s("right").toggle().then(function(){u.debug("toggle right is done")})},t.toggleCenter=function(e){t.centerIsClose=!t.centerIsClose,e&&e.save&&p.post(null,"saveListState",{state:t.centerIsClose?"collapse":"rise"})}}e.$inject=["$rootScope","$scope","$timeout","$interval","$http","$window","$mdSidenav","$mdToast","$mdMedia","$log","sgConstant","sgSettings","Resource","Preferences"],angular.module("SOGo.Common").controller("navController",e)}(),function(){"use strict";function s(e){this.folderId=e}s.factory=["$q","$timeout","sgSettings","Resource","User",function(e,t,n,o,r){return angular.extend(s,{$q:e,$timeout:t,$$resource:new o(n.activeUser("folderURL"),n.activeUser()),$User:r}),s}],angular.module("SOGo.Common").factory("Acl",s.factory),s.prototype.$users=function(t){var n,o=this,r=s.$q.defer();return this.users?(r.resolve(this.users),r.promise):(angular.isDefined(t)?s.$$resource.userResource(t):s.$$resource).fetch(this.folderId,"acls").then(function(e){return o.users=[],angular.forEach(e.users,function(e){(n=new s.$User(e)).canSubscribeUser=n.isSubscribed,n.wasSubscribed=n.isSubscribed,n.$rights=angular.bind(n,n.$acl,o.folderId,t),o.users.push(n)}),r.resolve(o.users),o.users},function(e){throw r.reject(l(e.statusText)),Error("No access to object")})},s.prototype.$addUser=function(e,t){var n=this,o=s.$q.defer(),r={uid:e.uid};return!e.uid||-1<_.indexOf(_.map(this.users,"uid"),e.uid)?o.resolve():(angular.isDefined(t)?s.$$resource.userResource(t):s.$$resource).fetch(this.folderId,"addUserInAcls",r).then(function(){e.wasSubscribed=!1,e.userClass=e.isGroup?"normal-group":"normal-user",e.$rights=angular.bind(e,e.$acl,n.folderId,t),n.users.push(e),o.resolve(e)},function(e,t){o.reject(l("An error occured, please try again."))}),o.promise},s.prototype.$removeUser=function(t,e){var n=this,o={uid:t},e=(angular.isDefined(e)?s.$$resource.userResource(e):s.$$resource).fetch(this.folderId,"removeUserFromAcls",o);return e.then(function(){var e=_.indexOf(_.map(n.users,"uid"),t);0<=e&&(n.users[e].$shadowRights=null,n.users.splice(e,1))})},s.prototype.$toggleAllRights=function(n){var o=!angular.isUndefined(_.find(_.values(n.rights),function(e){return 1!==e&&"Modifier"!==e}));_.forEach(n.rights,function(e,t){angular.isNumber(n.rights[t])?n.rights[t]=o?1:0:n.rights[t]=o?"Modifier":"None"})},s.prototype.$hasNoRight=function(e){e=_.find(e.rights,function(e,t){return angular.isNumber(e)?1===e:"None"!==e});return _.isUndefined(e)},s.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(e){e.$resetRights()})},s.prototype.$saveUsersRights=function(e){var t=this,n=s.$q.defer(),o=s.$q.defer(),r={action:"saveUserRights"},i=[];return angular.forEach(this.users,function(e){e.$rightsAreDirty()&&i.push(e.$omit())}),i.length?(angular.isDefined(e)?s.$$resource.userResource(e):s.$$resource).save(this.folderId,i,r).then(function(){angular.forEach(t.users,function(e){e.$rightsAreDirty()&&(e.$shadowRights=angular.copy(e.rights))}),n.resolve()},n.reject):n.resolve(),i=[],angular.forEach(this.users,function(e){!e.wasSubscribed&&e.isSubscribed&&i.push(e.uid)}),i.length?(r={uids:i.join(",")},s.$$resource.fetch(this.folderId,"subscribeUsers",r).then(function(){angular.forEach(t.users,function(e){e.wasSubscribed=e.isSubscribed}),o.resolve()},o.reject)):o.resolve(),s.$q.all([n.promise,o.promise])}}(),function(){"use strict";angular.module("SOGo.Authentication",["ngCookies"]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyPasswordRecoveryFailed:9,PolicyPasswordRecoveryInvalidToken:10,PolicyNoError:65535}).provider("Authentication",function(){function m(e,t){var n,o;return t&&(e+="@"+t),t=""+window.location.href,"/"==(e=ApplicationBaseURL+encodeURIComponent(e))[0]&&(o=(n=t.split("/"))[2],e=n[0]+"//"+o+e),t.startsWith(e)&&!t.endsWith("/logoff")?t:e}function e(c,u,d,h){return{login:function(e){var t,n=c.defer(),o=e.username,r=e.password,i=e.verificationCode,s=e.domain,a=e.rememberLogin?1:0;return e.loginSuffix&&!o.endsWith(e.loginSuffix)&&(o+=loginSuffix,s=!1),e.language&&"WONoSelectionString"!=e.language&&(t=e.language),u({method:"POST",url:"/SOGo/connect",data:{userName:o,password:r,verificationCode:i,domain:s,language:t,rememberLogin:a}}).then(function(e){var t=e.data;navigator&&!navigator.cookieEnabled?n.reject({error:l("cookiesNotEnabled")}):void 0!==t.totpMissingKey&&202==e.status?n.resolve({totpmissingkey:1}):void 0!==t.totpDisabled?n.resolve({cn:t.cn,url:m(t.username,s),totpdisabled:1}):void 0!==t.expire&&void 0!==t.grace?t.expire<0&&0','
',' ','

'," "," ",' '," ","
"," ",' '," "+l("Cancel")," ",' '," "+l("OK")," "," ","
",""].join(""),controller:i}),i.$inject=["scope","$mdDialog"],r.promise},e.$inject=["$q","$mdDialog"],angular.module("SOGo.Common").factory("Dialog",e)}(),function(){"use strict";angular.module("SOGo.Common").factory("Gravatar",function(){return function(e,t,n,o){var r,i=t,s=n;return e?(t||(i=48),"https://www.gravatar.com/avatar/"+(e=0<=(t=e.indexOf("<"))&&t<(r=e.indexOf(">",t))?e.substring(t+1,r):e).md5()+"?s="+i+"&d="+(n=s&&"none"!=s?n:o&&o.no_404?"mm":"404")):""}})}(),function(){"use strict";function a(e,t,n,o,r,i,s){angular.extend(this,{_http:e,_q:t,_window:n,_cookies:o,_path:r,_activeUser:i}),angular.extend(this,s),this._path=this._path.replace(/\/$/,"")}a.$factory=["$http","$q","$window","$cookies",function(o,r,i,s){return function(e,t,n){return new a(o,r,i,s,e,t,n)}}],angular.module("SOGo.Common").factory("Resource",a.$factory),a.prototype.encodeURL=function(e){var t=this,n=e;return angular.isArray(n)||(n=e.split("/")),_.map(n,function(e){return t._window.encodeURIComponent(e.toString())})},a.prototype.userResource=function(e){var t=_.compact(this._activeUser.folderURL.split("/"));return e&&t.splice(t.length-1,1,escape(e)),new a(this._http,this._q,this._window,this._cookies,"/"+t.join("/"),this._activeUser)},a.prototype.path=function(){var e=[this._path];return 0",' ','
',"
","
","
"," "," ",' '," {{keys[0].description}}",'
'," {{keys[0].lkey || hotkey}}","
","
","
","
",""].join(""),controller:t,locals:{hotkeys:e._hotkeys}}).finally(function(){e._cheatSheet=null}),t.$inject=["$scope","hotkeys"]},n}(this.$get=e).$inject=["$rootScope","$window"]})}(),function(){"use strict";function e(t,n){return function(e){n(function(){t.$broadcast("sgRippleDo",e)})}}e.$inject=["$rootScope","$timeout"],angular.module("SOGo.Common").factory("sgRippleClick",e)}(),function(){"use strict";function c(e){e&&this.init(e)}c.factory=["$q","$log","sgSettings","Resource",function(e,t,n,o){return angular.extend(c,{$q:e,$log:t,$$resource:new o(n.activeUser("folderURL"),n.activeUser()),$query:"",$users:[]}),c}],angular.module("SOGo.Common").factory("User",c.factory),c.$filter=function(e,s,a){var t=c.$$resource,n={search:e};if(a&&a.dry)a&&a.uid&&(t=c.$$resource.userResource(a.uid));else{if(!e)return c.$users.splice(0,c.$users.length),c.$q.when(c.$users);if(c.$query==e)return c.$q.when(c.$users);c.$query=e}return t.fetch(null,"usersSearch",n).then(function(e){function n(e){return this.uid==e.uid}var t,o,r,i;for(a?a.dry?i=[]:a.results&&(i=a.results):i=c.$users,t=s?_.filter(e.users,function(e){return!_.find(s,_.bind(n,e))}):e.users,o=i.length-1;0<=o;o--)r=i[o],_.find(t,_.bind(n,r))||i.splice(o,1);return _.forEach(t,function(e,t){_.isUndefined(_.find(i,_.bind(n,e)))&&(e=new c(e),i.splice(t,0,e))}),c.$log.debug(i),i})},c.prototype.init=function(e){angular.extend(this,e),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image),this.$avatarIcon=this.$isGroup()||this.$isSpecial()?"group":"person",this.empty=" "},c.prototype.$fullname=function(){var e=this.cn||this.uid;return this.c_info&&(e+=" ("+this.c_info.split("\n").join("; ")+")"),e},c.prototype.$shortFormat=function(e){var t=this.$fullname(),n=this.c_email;return!(e&&!1===e.email)&&n&&t!=n&&(t+=" <"+n+">"),t},c.prototype.$acl=function(e,t){var n=this,o=c.$q.defer(),r={uid:this.uid};return this.$shadowRights?o.resolve(this.rights):(angular.isDefined(t)?c.$$resource.userResource(t):c.$$resource).fetch(e,"userRights",r).then(function(e){return n.rights=e,n.$shadowRights=angular.copy(e),o.resolve(e),e}),o.promise},c.prototype.$isGroup=function(){return this.isGroup||this.userClass&&"normal-group"==this.userClass},c.prototype.$isAnonymous=function(){return"anonymous"==this.uid},c.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},c.prototype.$confirmRights=function(e){var t=!1;return!this.$confirmation&&(_.some(_.values(this.rights))&&("anonymous"==this.uid?"AddressBook"==e.constructor.name?t=l('Potentially anyone on the Internet will be able to access your address book "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name):"Calendar"==e.constructor.name&&(t=l('Potentially anyone on the Internet will be able to access your calendar "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name)):"anyone"!=this.uid&&""!=this.uid||("AddressBook"==e.constructor.name?t=l('Any user with an account on this system will be able to access your address book "%{0}". Are you certain you trust them all?',e.name):"Calendar"==e.constructor.name?t=l('Any user with an account on this system will be able to access your calendar "%{0}". Are you certain you trust them all?',e.name):"Mailbox"==e.constructor.name&&(t=l('Any user with an account on this system will be able to access your mailbox "%{0}". Are you certain you trust them all?',e.name)))),this.$confirmation=t)},c.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},c.prototype.$resetRights=function(e){var t=this;e?_.map(_.keys(this.rights),function(e){angular.isString(t.rights[e])?t.rights[e]="None":t.rights[e]=0}):this.$shadowRights&&(this.rights=angular.copy(this.$shadowRights))},c.prototype.$folders=function(e){var t=this,n=c.$q.defer(),e={type:e};return this.$$folders?n.resolve(this.$$folders):c.$$resource.userResource(this.uid).fetch(null,"foldersSearch",e).then(function(e){t.$$folders=e.folders,n.resolve(e.folders)}),n.promise},c.prototype.$omit=function(){var n={};return angular.forEach(this,function(e,t){"constructor"!=t&&"$"!=t[0]&&(n[t]=e)}),n},c.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function e(c,e,u){return{restrict:"A",scope:{autogrow:"=sgAutogrow"},link:function(e,t,n){var o,r,i,s,a;function l(){s=(s=o.value.encodeEntities()).replace(/\n/g,"
"),i.innerHTML=s+'
',i.style.visibility="hidden",i.style.display="block",o.style.height=Math.max(r,i.offsetHeight)+"px",i.style.visibility="visible",i.style.display="none"}e.autogrow&&(o=t[0],r=o.clientHeight,i=c[0].createElement("div"),s=null,i.classList.add("md-input"),i.classList.add("plain-text"),i.style.display="none",i.style.whiteSpace="pre-wrap",i.style.wordWrap="break-word",o.parentNode.appendChild(i),o.style.resize="none",o.style.overflow="hidden",t.on("keyup",u.debounce(l,200)),t.on("paste",u.debounce(l,0)),a=e.$watch(function(){return t[0].value},function(e){e&&(l(),a())}))}}}e.$inject=["$document","$timeout","$mdUtil"],angular.module("SOGo.Common").directive("sgAutogrow",e)}(),function(){"use strict";function e(e,t,r,n,i,s){var a,o;function l(){a.url=null,a.urlEmail=null,a.img.addClass("ng-hide"),a.genericImg.removeClass("ng-hide")}function c(){a.genericImg.addClass("ng-hide"),a.img.removeClass("ng-hide")}a=this,e.$on("$destroy",function(){o&&t.off("click",o)}),e.$watch(function(){return a.email},function(e,t){var n,o;e&&a.urlEmail!=e?(l(),i.defaults.SOGoGravatarEnabled&&(o=s(n=e,a.size,i.defaults.SOGoAlternateAvatar),r({method:"GET",url:o,cache:!0,headers:{Accept:"image/*"}}).then(function(){a.url||(a.url=o,a.urlEmail=n,c())},function(){l()}))):e||l()}),"sg-src"in t[0].attributes&&e.$watch(function(){return a.src},function(e){e&&(a.url=e,a.urlEmail=""+a.email,t.addClass("sg-avatar-image--zoomable"),o=function(){t.toggleClass("sg-avatar-image--zoom")},t.on("click",o),c())})}e.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",function(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:['
'," ",' ',' ',"
"].join(""),link:function(e,t,n,o){var r,i=t.find("img"),t=t.find("md-icon"),s=angular.element(t[0]),a=angular.element(t[1]);n.size&&(i.attr("width",n.size),i.attr("height",n.size),s.css("font-size",n.size+"px"),a.css("font-size",parseInt(.4*n.size)+"px"));angular.isDefined(n.ngDisabled)&&(r=e.$watch(n.ngDisabled,function(e){n.disabled&&a.css({display:"block"}),r()}));o.img=i,o.genericImg=s},controller:"sgAvatarImageController",controllerAs:"vm"}}).controller("sgAvatarImageController",e)}(),function(){"use strict";function e(e,l,c){return{link:function(e,t){var n=t[0].querySelector(".sg-button-toggle"),o=n.querySelector(".sg-icon-toggle"),r="md-rotate-180-ccw",i=t[0].querySelector(".sg-block-toggle"),s=!1;function a(){i.setAttribute("aria-hidden",!s),i.setAttribute("aria-expanded",s),s||(i.style.visibility="hidden")}n.classList.add("md-clickable"),angular.element(n).on("click",function(){(s=!s)?o.classList.add(r):o.classList.remove(r),s&&(i.style.visibility="visible"),c(function(){var e=s?i.scrollHeight:0;l(angular.element(i),{easing:"cubic-bezier(0.35, 0, 0.25, 1)",to:{height:e+"px"},duration:.75}).start().then(function(){a()})})}),a()}}}e.$inject=["$mdUtil","$animateCss","$$rAF"],angular.module("SOGo.Common").directive("sgBlockToggle",e)}(),function(){"use strict";function e(a,l,c,u){var d="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:['
"].join(""),scope:{},require:["ngModel","sgTimePane","?^mdInputContainer"],controller:e,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,o){var r=o[0],i=o[1];if(o[2])throw Error("sg-timepicker should not be placed inside md-input-container.");i.configureNgModel(r,i)}}});var g=0;function e(e,t,n,o,r,i,s,a,l){var c;i(e),this.$element=e,this.$scope=t,this.dateUtil=n,this.$mdUtil=o,this.keyCode=r.KEY_CODE,this.$$rAF=s,this.timePaneElement=e[0].querySelector(".sg-time-pane"),this.ngModelCtrl=null,this.SELECTED_TIME_CLASS="sg-time-selected",this.FOCUSED_TIME_CLASS="md-focus",this.id=g++,this.displayTime=null,this.selectedTime=null,this.isInitialized=!1,t.hours=[],t.hours[0]=[],t.hours[0][0]=[],t.hours[0][1]=[],t.hours[1]=[],t.hours[1][0]=[],t.hours[1][1]=[];for(var u=0;u<6;u++)t.hours[0][0][u]={id:"tp-"+this.id+"-hour-"+u,displayName:u<10?"0"+u:""+u,selected:!1},t.hours[0][1][u]={id:"tp-"+this.id+"-hour-"+(u+6),displayName:u+6<10?"0"+(u+6):""+(u+6),selected:!1},t.hours[1][0][u]={id:"tp-"+this.id+"-hour-"+(u+12),displayName:""+(u+12),selected:!1},t.hours[1][1][u]={id:"tp-"+this.id+"-hour-"+(u+18),displayName:""+(u+18),selected:!1};for(t.min5=[],t.min5[0]=[],t.min5[1]=[],u=0;u<6;u++)t.min5[0][u]={id:"tp-"+this.id+"-minute5-"+(c=5*u),displayName:c<10?":0"+c:":"+c,selected:!0},t.min5[1][u]={id:"tp-"+this.id+"-minute5-"+(c+30),displayName:":"+(c+30),selected:!1};for(t.min1=[],u=0;u<12;u++){t.min1[u]=[];for(var d=0;d<5;d++)t.min1[u][d]={id:"tp-"+this.id+"-minute-"+(c=5*u+d),displayName:c<10?":0"+c:":"+c,selected:!0}}t.show5min=!0,t.getToggleBtnLbl=function(){return t.is5min()?">>":"<<"},t.toggleManual5min=function(){t.manual5min=!t.is5min()},t.is5min=function(){return!0===t.manual5min||!1===t.manual5min?t.manual5min:t.show5min},a.tabindex||e.attr("tabindex","-1");var h=this,m=(this.hourClickHandler=function(e){var t=new Date(h.displayTime);t.setHours(Number(e)),h.setNgModelValue(t,"hours")},t.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(e){var e=e.substr(1),t=new Date(h.displayTime);t.setMinutes(Number(e)),h.setNgModelValue(t,"minutes")},t.minuteClickHandler=this.minuteClickHandler,angular.bind(this,this.handleKeyEvent));angular.element(document.body).on("keydown",m),t.$on("$destroy",function(){angular.element(document.body).off("keydown",m)})}e.$inject=["$element","$scope","$$mdDateUtil","$mdUtil","$mdConstant","$mdTheming","$$rAF","$attrs","$mdDateLocale"],e.prototype.configureNgModel=function(e,t){var n=this;n.ngModelCtrl=e,n.$mdUtil.nextTick(function(){n.isInitialized=!0}),e.$render=function(){var e=this.$viewValue;n.$mdUtil.nextTick(function(){n.changeSelectedTime(e,t)})}},e.prototype.changeSelectedTime=function(e,t){var n,o,r=this.selectedTime;this.selectedTime=e,this.displayTime=new Date(e),r&&(o=r.getHours(),(o=document.getElementById("tp-"+t.id+"-hour-"+o))&&(o.classList.remove(this.SELECTED_TIME_CLASS),o.setAttribute("aria-selected","false")),o=r.getMinutes(),(r=document.getElementById("tp-"+t.id+"-minute-"+o))&&(r.classList.remove(this.SELECTED_TIME_CLASS),r.setAttribute("aria-selected","false")),r=document.getElementById("tp-"+t.id+"-minute5-"+o))&&(r.classList.remove(this.SELECTED_TIME_CLASS),r.setAttribute("aria-selected","false")),e&&(o=e.getHours(),(r=document.getElementById("tp-"+t.id+"-hour-"+o))&&(r.classList.add(this.SELECTED_TIME_CLASS),r.setAttribute("aria-selected","true")),(o=e.getMinutes())%5==0?(t.$scope.show5min=!0,(n=document.getElementById("tp-"+t.id+"-minute5-"+o))&&(n.classList.add(this.SELECTED_TIME_CLASS),n.setAttribute("aria-selected","true"))):t.$scope.show5min=!1,n=document.getElementById("tp-"+t.id+"-minute-"+o))&&(n.classList.add(this.SELECTED_TIME_CLASS),n.setAttribute("aria-selected","true"))},e.prototype.setNgModelValue=function(e,t){return this.$scope.$emit("sg-time-pane-change",{date:e,changed:t}),this.ngModelCtrl.$setViewValue(e),this.ngModelCtrl.$render(),e},e.prototype.handleKeyEvent=function(e){var t=this;this.$scope.$apply(function(){e.which==t.keyCode.ESCAPE||e.which==t.keyCode.TAB?(t.$scope.$emit("md-time-pane-close"),e.which==t.keyCode.TAB&&e.preventDefault()):e.which===t.keyCode.ENTER&&(t.setNgModelValue(t.displayTime,"enter"),e.preventDefault())})},e.prototype.focus=function(e,t){var e=e||this.selectedTime||this.today,n=this.timePaneElement.querySelector(".md-focus");n&&n.classList.remove(this.FOCUSED_TIME_CLASS),e&&(n=e.getHours(),e=document.getElementById("tp-"+t.id+"-hour-"+n))&&(e.classList.add(this.FOCUSED_TIME_CLASS),e.focus())}}(),function(){"use strict";function e(u,d,h){return{template:function(e,t){t=t.ariaLabel||t.mdPlaceholder;return['",'
",' ',' ','
',"
","
",'
','
','
',"
",'
',' ',"
","
"].join("")},require:["ngModel","sgTimepicker","?^mdInputContainer","?^form"],scope:{placeholder:"@mdPlaceholder"},controller:t,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,o){var r,i,s=o[0],a=o[1],l=o[2],c=o[3],o=u.parseAttributeBoolean(n.mdNoAsterisk);a.configureNgModel(s,l,h),l?((r=t[0].querySelector(".md-errors-spacer"))&&t.after(angular.element("
").append(r)),l.setHasPlaceholder(n.mdPlaceholder),l.input=t,l.element.addClass(m).toggleClass(g,"time"!==n.mdHideIcons&&"all"!==n.mdHideIcons),l.label?o||n.$observe("required",function(e){l.label.toggleClass("md-required",!!e)}):d.expect(t,"aria-label",n.mdPlaceholder),e.$watch(l.isErrorGetter||function(){return s.$invalid&&(s.$touched||c&&c.$submitted)},l.setInvalid)):c&&(i=e.$watch(function(){return c.$submitted},function(e){e&&(a.updateErrorState(),i())}))}}}angular.module("SOGo.Common").directive("sgTimepicker",e),e.$inject=["$mdUtil","$mdAria","inputDirective"];var o="sg-timepicker-invalid",l="sg-timepicker-open",m="_sg-timepicker-floating-label",g="_sg-timepicker-has-calendar-icon",c={MIN5:{GTXS:192,XS:311},MIN1:{GTXS:384,XS:474}},u={GTXS:530,XS:294},h=/ipad|iphone|ipod|android/i;function t(e,t,n,o,r,i,s,a,l,c,u){this.$window=o,this.dateLocale=a,this.dateUtil=l,this.$mdConstant=r,this.$mdUtil=s,this.$$rAF=c,this.$mdMedia=u,this.documentElement=angular.element(document.documentElement),this.ngModelCtrl=null,this.inputElement=t[0].querySelector("input"),this.ngInputElement=angular.element(this.inputElement),this.inputContainer=t[0].querySelector(".sg-timepicker-input-container"),this.timePane=t[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=t[0].querySelector(".sg-timepicker-button"),this.inputMask=angular.element(t[0].querySelector(".sg-timepicker-input-mask-opaque")),this.$element=t,this.$attrs=n,this.$scope=e,this.time=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled(t[0].disabled||angular.isString(n.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePaneId="sg-time-pane"+s.nextUid(),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowEventName=h.test(navigator.userAgent||navigator.vendor||window.opera)?"orientationchange":"resize",this.windowEventHandler=s.debounce(angular.bind(this,this.closeTimePane),100),this.windowBlurHandler=angular.bind(this,this.handleWindowBlur),this.leftMargin=20,this.topMargin=null,n.tabindex?(this.ngInputElement.attr("tabindex",n.tabindex),n.$set("tabindex",null)):n.$set("tabindex","-1"),i(t),i(angular.element(this.timePane));var d=this;e.$on("$destroy",function(){d.detachTimePane()}),n.mdIsOpen&&e.$watch("ctrl.isOpen",function(e){e?d.openTimePane({target:d.inputElement}):d.closeTimePane()})}t.$inject=["$scope","$element","$attrs","$window","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF","$mdMedia"],t.prototype.$onInit=function(){this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners()},t.prototype.configureNgModel=function(e,t,n){this.ngModelCtrl=e,this.mdInputContainer=t,this.$attrs.$set("type","date");var o=this,t=(o.ngModelCtrl.$formatters.push(function(e){if(!e||e instanceof Date)return o.onExternalChange(e),e;throw Error("The ng-model for sg-timepicker must be a Date instance. Currently the model is a: "+typeof e)}),e.$viewChangeListeners.unshift(angular.bind(this,this.updateErrorState)),o.$mdUtil.getModelOption(e,"updateOn"));t&&this.ngInputElement.on(t,angular.bind(this.$element,this.$element.triggerHandler,t))},t.prototype.attachChangeListeners=function(){var o=this,e=(o.$scope.$on("sg-time-pane-change",function(e,t){var n=new Date(t.date);o.setModelValue(n),o.onExternalChange(n),"minutes"==t.changed&&o.closeTimePane()}),o.ngInputElement.on("input",angular.bind(o,o.resizeInputElement)),angular.isDefined(this.debounceInterval)?this.debounceInterval:500);o.ngInputElement.on("input",o.$mdUtil.debounce(o.handleInputEvent,e,o))},t.prototype.attachInteractionListeners=function(){var t=this,n=this.$scope,o=this.$mdConstant.KEY_CODE;t.ngInputElement.on("keydown",function(e){e.altKey&&e.keyCode==o.DOWN_ARROW&&(t.openTimePane(e),n.$digest())}),n.$on("md-time-close",function(){t.closeTimePane()})},t.prototype.installPropertyInterceptors=function(){var e,t=this;this.$attrs.ngDisabled&&(e=this.$scope.$parent)&&e.$watch(this.$attrs.ngDisabled,function(e){t.setDisabled(e)}),Object.defineProperty(this,"placeholder",{get:function(){return t.inputElement.placeholder},set:function(e){t.inputElement.placeholder=e||""}})},t.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.timeButton&&(this.timeButton.disabled=e)},t.prototype.updateErrorState=function(e){var e=e||this.time,t=(this.clearErrorState(),this.dateUtil.isValidDate(e)||this.ngModelCtrl.$setValidity("valid",null===e),this.inputElement.value),n=this.dateLocale.parseTime(t);!this.isInputValid(t,n)&&this.ngModelCtrl.$valid&&this.ngModelCtrl.$setValidity("valid",null==e),angular.element(this.inputContainer).toggleClass(o,!this.ngModelCtrl.$valid)},t.prototype.isInputValid=function(e,t){return""===e||this.dateUtil.isValidDate(t)},t.prototype.clearErrorState=function(){this.inputContainer.classList.remove(o),["valid"].forEach(function(e){this.ngModelCtrl.$setValidity(e,!0)},this)},t.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+3},t.prototype.handleInputEvent=function(e){var t=this.inputElement.value,n=t?this.dateLocale.parseTime(t):null;this.isInputValid(t,n)&&(t=new Date(this.time),n?(t.setHours(n.getHours()),t.setMinutes(n.getMinutes())):t=null,this.setModelValue(t),this.time=t),this.updateErrorState(n)},t.prototype.attachTimePane=function(){var e=this.timePane,t=document.body,n=(e.style.transform="",this.$element.addClass(l),angular.element(t).addClass("md-datepicker-is-showing"),this.inputContainer.getBoundingClientRect()),o=t.getBoundingClientRect(),r=((!this.topMargin||this.topMargin<0)&&(this.topMargin=(this.inputMask.parent().prop("clientHeight")-this.ngInputElement.prop("clientHeight"))/2),n.top-o.top-this.topMargin),i=n.left-o.left-this.leftMargin,s=o.top<0&&0===t.scrollTop?-o.top:document.body.scrollTop,t=o.left<0&&0===t.scrollLeft?-o.left:document.body.scrollLeft,o=s+this.$window.innerHeight,a=t+this.$window.innerWidth,n=(this.inputMask.css({position:"absolute",left:this.leftMargin+"px",top:this.topMargin+"px",width:n.width-1+"px",height:n.height-2+"px"}),this.$mdMedia("xs")?u.XS:u.GTXS),t=(a/g,">")},String.prototype._base64_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",String.prototype.base64encode=function(){for(var e,t,n,o,r,i,s="",a=0,l=this.utf8encode();a>2,o=(3&e)<<4|(e=l.charCodeAt(a++))>>4,r=(15&e)<<2|(t=l.charCodeAt(a++))>>6,i=63&t,isNaN(e)?r=i=64:isNaN(t)&&(i=64),s=s+this._base64_keyStr.charAt(n)+this._base64_keyStr.charAt(o)+this._base64_keyStr.charAt(r)+this._base64_keyStr.charAt(i);return s},String.prototype.base64decode=function(){for(var e,t,n,o,r,i,s="",a=0,l=""+this;a>2,t=(3&r)<<6|(i=this._base64_keyStr.indexOf(l.charAt(a++))),s+=String.fromCharCode(n<<2|o>>4),64!=r&&(s+=String.fromCharCode(e)),64!=i&&(s+=String.fromCharCode(t));return s},String.prototype.md5=function(){if(this.length){var e=this.toLowerCase();function a(e,t){return e<>>32-t}function l(e,t){var n=2147483648&e,o=2147483648&t,r=1073741824&e,i=1073741824&t,e=(1073741823&e)+(1073741823&t);return r&i?2147483648^e^n^o:r|i?1073741824&e?3221225472^e^n^o:1073741824^e^n^o:e^n^o}function t(e,t,n,o,r,i,s){return e=l(e,l(l(t&n|~t&o,r),s)),l(a(e,i),t)}function n(e,t,n,o,r,i,s){return e=l(e,l(l(t&o|n&~o,r),s)),l(a(e,i),t)}function o(e,t,n,o,r,i,s){return e=l(e,l(l(t^n^o,r),s)),l(a(e,i),t)}function r(e,t,n,o,r,i,s){return e=l(e,l(l(n^(t|~o),r),s)),l(a(e,i),t)}function i(e){for(var t="",n="",o=0;o<=3;o++)t+=(n="0"+(e>>>8*o&255).toString(16)).substr(n.length-2,2);return t}Array();for(var s,c,u,d,h=function(e){for(var t,n=e.length,o=16*(1+((o=n+8)-o%64)/64),r=Array(o-1),i=0,s=0;s>>29,r}(e=function(e){e=e.replace(/rn/g,"n");for(var t="",n=0;n>6|192))+String.fromCharCode(63&o|128):(t=(t+=String.fromCharCode(o>>12|224))+String.fromCharCode(o>>6&63|128))+String.fromCharCode(63&o|128)}return t}(e)),m=1732584193,g=4023233417,p=2562383102,f=271733878,y=0;y');return s.on("load",function(){var e=o.get("$state");2"+e+"
");return e.find("a").attr("target","_blank"),t.trustAs("html",e.html())}}e.$inject=["$sce"],angular.module("SOGo.Common").filter("ensureTarget",e)}(),function(){"use strict";angular.module("SOGo.Common").filter("loc",function(){return l})}(),function(){"use strict";angular.module("SOGo.Common").filter("range",function(){return function(e){for(var t=[],n=0;n"):void 0}}e.$inject=["linkyFilter"],angular.module("SOGo.Common").filter("txt2html",e)}(),function(){"use strict";function e(t,n,e,o,r,i,s){var a=this;function c(e,t){if(t&&t.target.parentNode.classList.contains("md-secondary"))return!1;a.selectedUid==e.uid?a.selectedUid=null:(a.selectedUid=e.uid,(a.selectedUser=e).inactive||a.selectedUser.$rights())}a.users=r,a.folder=s,a.selectedUser=null,a.selectedUid=null,a.userToAdd="",a.searchText="",a.folderClassName=function(){return!!angular.isFunction(s.getClassName)&&s.getClassName("bg")},a.templateName=function(e){return"UIx"+(t[0].getElementById("UIxAnonymousUserRightsEditor")&&e.$isAnonymous()?"Anonymous":"")+"UserRightsEditor"},a.userFilter=function(e){return i.$filter(e,s.$acl.users,{dry:!0})},a.closeModal=function(){s.$acl.$resetUsersRights(),e.hide()},a.saveModal=function(){s.$acl.$saveUsersRights().then(function(){e.hide()},function(e,t){o.alert(l("Warning"),l("An error occured, please try again."))})},a.confirmChange=function(e){e=e.$confirmRights(a.folder);e&&(a.confirmation.showing=!0,a.confirmation.message=e)},a.removeUser=function(e){n(function(){s.$acl.$removeUser(e.uid)},500)},a.addUser=function(e){e&&s.$acl.$addUser(e).then(function(e){a.userToAdd="",a.searchText="",a.selectedUid=null,e&&c(e)})},a.toggleAllRights=function(e){s.$acl.$toggleAllRights(e)},a.selectUser=c,a.hasNoRight=function(e){return s.$acl.$hasNoRight(e)},a.showRights=function(e){return a.selectedUid==e.uid&&!e.inactive},a.confirmation={showing:!1,message:""}}e.$inject=["$document","$timeout","$mdDialog","Dialog","usersWithACL","User","folder"],angular.module("SOGo.Common").controller("AclController",e)}(),function(){"use strict";function e(e,t,n,o,r,i,s,a,c,u,d,h,m,g){var p=new m(h.baseURL(),h.activeUser());function f(e,t){var n;t.data&&t.data.message&&angular.isString(t.data.message)?n=t.data.message:t.status&&(n=t.statusText),n?a.show({template:["",'
',' error_outline'," "+l(n)+"","
","
"].join(""),hideDelay:5e3,position:d.toastPosition}):u.debug("untrap error")}this.$onInit=function(){t.isPopup=h.isPopup,t.activeUser=h.activeUser(),t.baseURL=h.baseURL(),t.leftIsClose=!c(d["gt-md"]),t.centerIsClose=!!i.centerIsClose&&!t.leftIsClose,t.currentDay=window.currentDay,n(function(){o(function(){r.get("../date").then(function(e){t.currentDay=e})},864e5)},1e3*window.currentDay.secondsBeforeTomorrow),t.$watch(function(){return c(d["gt-xs"])},function(e){t.isGtExtraSmall=e}),t.$watch(function(){return c(d["gt-md"])},function(e){(t.isGtMedium=e)&&(t.leftIsClose=!1)}),e.$on("http:Error",f),t.isPopup||(h.activeUser("path").calendar&&g.getAlarms(),h.activeUser("path").mail&&g.pollInbox())},t.toggleLeft=function(){t.isGtMedium?t.leftIsClose=!t.leftIsClose:(t.leftIsClose=!s("left").isOpen(),t.leftIsClose&&angular.element(i).triggerHandler("resize"),s("left").toggle().then(function(){u.debug("toggle left is done")}))},t.toggleRight=function(){s("right").toggle().then(function(){u.debug("toggle right is done")})},t.toggleCenter=function(e){t.centerIsClose=!t.centerIsClose,e&&e.save&&p.post(null,"saveListState",{state:t.centerIsClose?"collapse":"rise"})}}e.$inject=["$rootScope","$scope","$timeout","$interval","$http","$window","$mdSidenav","$mdToast","$mdMedia","$log","sgConstant","sgSettings","Resource","Preferences"],angular.module("SOGo.Common").controller("navController",e)}(),function(){"use strict";function s(e){this.folderId=e}s.factory=["$q","$timeout","sgSettings","Resource","User",function(e,t,n,o,r){return angular.extend(s,{$q:e,$timeout:t,$$resource:new o(n.activeUser("folderURL"),n.activeUser()),$User:r}),s}],angular.module("SOGo.Common").factory("Acl",s.factory),s.prototype.$users=function(t){var n,o=this,r=s.$q.defer();return this.users?(r.resolve(this.users),r.promise):(angular.isDefined(t)?s.$$resource.userResource(t):s.$$resource).fetch(this.folderId,"acls").then(function(e){return o.users=[],angular.forEach(e.users,function(e){(n=new s.$User(e)).canSubscribeUser=n.isSubscribed,n.wasSubscribed=n.isSubscribed,n.$rights=angular.bind(n,n.$acl,o.folderId,t),o.users.push(n)}),r.resolve(o.users),o.users},function(e){throw r.reject(l(e.statusText)),Error("No access to object")})},s.prototype.$addUser=function(e,t){var n=this,o=s.$q.defer(),r={uid:e.uid};return!e.uid||-1<_.indexOf(_.map(this.users,"uid"),e.uid)?o.resolve():(angular.isDefined(t)?s.$$resource.userResource(t):s.$$resource).fetch(this.folderId,"addUserInAcls",r).then(function(){e.wasSubscribed=!1,e.userClass=e.isGroup?"normal-group":"normal-user",e.$rights=angular.bind(e,e.$acl,n.folderId,t),n.users.push(e),o.resolve(e)},function(e,t){o.reject(l("An error occured, please try again."))}),o.promise},s.prototype.$removeUser=function(t,e){var n=this,o={uid:t},e=(angular.isDefined(e)?s.$$resource.userResource(e):s.$$resource).fetch(this.folderId,"removeUserFromAcls",o);return e.then(function(){var e=_.indexOf(_.map(n.users,"uid"),t);0<=e&&(n.users[e].$shadowRights=null,n.users.splice(e,1))})},s.prototype.$toggleAllRights=function(n){var o=!angular.isUndefined(_.find(_.values(n.rights),function(e){return 1!==e&&"Modifier"!==e}));_.forEach(n.rights,function(e,t){angular.isNumber(n.rights[t])?n.rights[t]=o?1:0:n.rights[t]=o?"Modifier":"None"})},s.prototype.$hasNoRight=function(e){e=_.find(e.rights,function(e,t){return angular.isNumber(e)?1===e:"None"!==e});return _.isUndefined(e)},s.prototype.$resetUsersRights=function(){angular.forEach(this.users,function(e){e.$resetRights()})},s.prototype.$saveUsersRights=function(e){var t=this,n=s.$q.defer(),o=s.$q.defer(),r={action:"saveUserRights"},i=[];return angular.forEach(this.users,function(e){e.$rightsAreDirty()&&i.push(e.$omit())}),i.length?(angular.isDefined(e)?s.$$resource.userResource(e):s.$$resource).save(this.folderId,i,r).then(function(){angular.forEach(t.users,function(e){e.$rightsAreDirty()&&(e.$shadowRights=angular.copy(e.rights))}),n.resolve()},n.reject):n.resolve(),i=[],angular.forEach(this.users,function(e){!e.wasSubscribed&&e.isSubscribed&&i.push(e.uid)}),i.length?(r={uids:i.join(",")},s.$$resource.fetch(this.folderId,"subscribeUsers",r).then(function(){angular.forEach(t.users,function(e){e.wasSubscribed=e.isSubscribed}),o.resolve()},o.reject)):o.resolve(),s.$q.all([n.promise,o.promise])}}(),function(){"use strict";angular.module("SOGo.Authentication",["ngCookies"]).constant("passwordPolicyConfig",{PolicyPasswordChangeUnsupported:-3,PolicyPasswordSystemUnknown:-2,PolicyPasswordUnknown:-1,PolicyPasswordExpired:0,PolicyAccountLocked:1,PolicyChangeAfterReset:2,PolicyPasswordModNotAllowed:3,PolicyMustSupplyOldPassword:4,PolicyInsufficientPasswordQuality:5,PolicyPasswordTooShort:6,PolicyPasswordTooYoung:7,PolicyPasswordInHistory:8,PolicyPasswordRecoveryFailed:9,PolicyPasswordRecoveryInvalidToken:10,PolicyNoError:65535}).provider("Authentication",function(){function m(e,t){var n,o;return t&&(e+="@"+t),t=""+window.location.href,"/"==(e=ApplicationBaseURL+encodeURIComponent(e))[0]&&(o=(n=t.split("/"))[2],e=n[0]+"//"+o+e),t.startsWith(e)&&!t.endsWith("/logoff")?t:e}function e(c,u,d,h){return{login:function(e){var t,n=c.defer(),o=e.username,r=e.password,i=e.verificationCode,s=e.domain,a=e.rememberLogin?1:0;return e.loginSuffix&&!o.endsWith(e.loginSuffix)&&(o+=loginSuffix,s=!1),e.language&&"WONoSelectionString"!=e.language&&(t=e.language),u({method:"POST",url:"/SOGo/connect",data:{userName:o,password:r,verificationCode:i,domain:s,language:t,rememberLogin:a}}).then(function(e){var t=e.data;navigator&&!navigator.cookieEnabled?n.reject({error:l("cookiesNotEnabled")}):void 0!==t.totpMissingKey&&202==e.status?n.resolve({totpmissingkey:1}):void 0!==t.totpDisabled?n.resolve({cn:t.cn,url:m(t.username,s),totpdisabled:1}):void 0!==t.expire&&void 0!==t.grace?t.expire<0&&0','
',' ','

'," "," ",' '," ","
"," ",' '," "+l("Cancel")," ",' '," "+l("OK")," "," ","
",""].join(""),controller:i}),i.$inject=["scope","$mdDialog"],r.promise},e.$inject=["$q","$mdDialog"],angular.module("SOGo.Common").factory("Dialog",e)}(),function(){"use strict";angular.module("SOGo.Common").factory("Gravatar",function(){return function(e,t,n,o){var r,i=t,s=n;return e?(t||(i=48),"https://www.gravatar.com/avatar/"+(e=0<=(t=e.indexOf("<"))&&t<(r=e.indexOf(">",t))?e.substring(t+1,r):e).md5()+"?s="+i+"&d="+(n=s&&"none"!=s?n:o&&o.no_404?"mm":"404")):""}})}(),function(){"use strict";function a(e,t,n,o,r,i,s){angular.extend(this,{_http:e,_q:t,_window:n,_cookies:o,_path:r,_activeUser:i}),angular.extend(this,s),this._path=this._path.replace(/\/$/,"")}a.$factory=["$http","$q","$window","$cookies",function(o,r,i,s){return function(e,t,n){return new a(o,r,i,s,e,t,n)}}],angular.module("SOGo.Common").factory("Resource",a.$factory),a.prototype.encodeURL=function(e){var t=this,n=e;return angular.isArray(n)||(n=e.split("/")),_.map(n,function(e){return t._window.encodeURIComponent(e.toString())})},a.prototype.userResource=function(e){var t=_.compact(this._activeUser.folderURL.split("/"));return e&&t.splice(t.length-1,1,escape(e)),new a(this._http,this._q,this._window,this._cookies,"/"+t.join("/"),this._activeUser)},a.prototype.path=function(){var e=[this._path];return 0",' ','
',"
","
","
"," "," ",' '," {{keys[0].description}}",'
'," {{keys[0].lkey || hotkey}}","
","
","
","
",""].join(""),controller:t,locals:{hotkeys:e._hotkeys}}).finally(function(){e._cheatSheet=null}),t.$inject=["$scope","hotkeys"]},n}(this.$get=e).$inject=["$rootScope","$window"]})}(),function(){"use strict";function e(t,n){return function(e){n(function(){t.$broadcast("sgRippleDo",e)})}}e.$inject=["$rootScope","$timeout"],angular.module("SOGo.Common").factory("sgRippleClick",e)}(),function(){"use strict";function c(e){e&&this.init(e)}c.factory=["$q","$log","sgSettings","Resource",function(e,t,n,o){return angular.extend(c,{$q:e,$log:t,$$resource:new o(n.activeUser("folderURL"),n.activeUser()),$query:"",$users:[]}),c}],angular.module("SOGo.Common").factory("User",c.factory),c.$filter=function(e,s,a){var t=c.$$resource,n={search:e};if(a&&a.dry)a&&a.uid&&(t=c.$$resource.userResource(a.uid));else{if(!e)return c.$users.splice(0,c.$users.length),c.$q.when(c.$users);if(c.$query==e)return c.$q.when(c.$users);c.$query=e}return t.fetch(null,"usersSearch",n).then(function(e){function n(e){return this.uid==e.uid}var t,o,r,i;for(a?a.dry?i=[]:a.results&&(i=a.results):i=c.$users,t=s?_.filter(e.users,function(e){return!_.find(s,_.bind(n,e))}):e.users,o=i.length-1;0<=o;o--)r=i[o],_.find(t,_.bind(n,r))||i.splice(o,1);return _.forEach(t,function(e,t){_.isUndefined(_.find(i,_.bind(n,e)))&&(e=new c(e),i.splice(t,0,e))}),c.$log.debug(i),i})},c.prototype.init=function(e){angular.extend(this,e),this.$$shortFormat||(this.$$shortFormat=this.$shortFormat()),this.$$image||(this.$$image=this.image),this.$avatarIcon=this.$isGroup()||this.$isSpecial()?"group":"person",this.empty=" "},c.prototype.$fullname=function(){var e=this.cn||this.uid;return this.c_info&&(e+=" ("+this.c_info.split("\n").join("; ")+")"),e},c.prototype.$shortFormat=function(e){var t=this.$fullname(),n=this.c_email;return!(e&&!1===e.email)&&n&&t!=n&&(t+=" <"+n+">"),t},c.prototype.$acl=function(e,t){var n=this,o=c.$q.defer(),r={uid:this.uid};return this.$shadowRights?o.resolve(this.rights):(angular.isDefined(t)?c.$$resource.userResource(t):c.$$resource).fetch(e,"userRights",r).then(function(e){return n.rights=e,n.$shadowRights=angular.copy(e),o.resolve(e),e}),o.promise},c.prototype.$isGroup=function(){return this.isGroup||this.userClass&&"normal-group"==this.userClass},c.prototype.$isAnonymous=function(){return"anonymous"==this.uid},c.prototype.$isSpecial=function(){return this.userClass&&"public-user"==this.userClass},c.prototype.$confirmRights=function(e){var t=!1;return!this.$confirmation&&(_.some(_.values(this.rights))&&("anonymous"==this.uid?"AddressBook"==e.constructor.name?t=l('Potentially anyone on the Internet will be able to access your address book "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name):"Calendar"==e.constructor.name&&(t=l('Potentially anyone on the Internet will be able to access your calendar "%{0}", even if they do not have an account on this system. Is this information suitable for the public Internet?',e.name)):"anyone"!=this.uid&&""!=this.uid||("AddressBook"==e.constructor.name?t=l('Any user with an account on this system will be able to access your address book "%{0}". Are you certain you trust them all?',e.name):"Calendar"==e.constructor.name?t=l('Any user with an account on this system will be able to access your calendar "%{0}". Are you certain you trust them all?',e.name):"Mailbox"==e.constructor.name&&(t=l('Any user with an account on this system will be able to access your mailbox "%{0}". Are you certain you trust them all?',e.name)))),this.$confirmation=t)},c.prototype.$rightsAreDirty=function(){return this.rights&&!_.isEqual(this.rights,this.$shadowRights)},c.prototype.$resetRights=function(e){var t=this;e?_.map(_.keys(this.rights),function(e){angular.isString(t.rights[e])?t.rights[e]="None":t.rights[e]=0}):this.$shadowRights&&(this.rights=angular.copy(this.$shadowRights))},c.prototype.$folders=function(e){var t=this,n=c.$q.defer(),e={type:e};return this.$$folders?n.resolve(this.$$folders):c.$$resource.userResource(this.uid).fetch(null,"foldersSearch",e).then(function(e){t.$$folders=e.folders,n.resolve(e.folders)}),n.promise},c.prototype.$omit=function(){var n={};return angular.forEach(this,function(e,t){"constructor"!=t&&"$"!=t[0]&&(n[t]=e)}),n},c.prototype.toString=function(){return"[User "+this.c_email+"]"}}(),function(){"use strict";function e(c,e,u){return{restrict:"A",scope:{autogrow:"=sgAutogrow"},link:function(e,t,n){var o,r,i,s,a;function l(){s=(s=o.value.encodeEntities()).replace(/\n/g,"
"),i.innerHTML=s+'
',i.style.visibility="hidden",i.style.display="block",o.style.height=Math.max(r,i.offsetHeight)+"px",i.style.visibility="visible",i.style.display="none"}e.autogrow&&(o=t[0],r=o.clientHeight,i=c[0].createElement("div"),s=null,i.classList.add("md-input"),i.classList.add("plain-text"),i.style.display="none",i.style.whiteSpace="pre-wrap",i.style.wordWrap="break-word",o.parentNode.appendChild(i),o.style.resize="none",o.style.overflow="hidden",t.on("keyup",u.debounce(l,200)),t.on("paste",u.debounce(l,0)),a=e.$watch(function(){return t[0].value},function(e){e&&(l(),a())}))}}}e.$inject=["$document","$timeout","$mdUtil"],angular.module("SOGo.Common").directive("sgAutogrow",e)}(),function(){"use strict";function e(e,t,r,n,i,s){var a,o;function l(){a.url=null,a.urlEmail=null,a.img.addClass("ng-hide"),a.genericImg.removeClass("ng-hide")}function c(){a.genericImg.addClass("ng-hide"),a.img.removeClass("ng-hide")}a=this,e.$on("$destroy",function(){o&&t.off("click",o)}),e.$watch(function(){return a.email},function(e,t){var n,o;e&&a.urlEmail!=e?(l(),i.defaults.SOGoGravatarEnabled&&(o=s(n=e,a.size,i.defaults.SOGoAlternateAvatar),r({method:"GET",url:o,cache:!0,headers:{Accept:"image/*"}}).then(function(){a.url||(a.url=o,a.urlEmail=n,c())},function(){l()}))):e||l()}),"sg-src"in t[0].attributes&&e.$watch(function(){return a.src},function(e){e&&(a.url=e,a.urlEmail=""+a.email,t.addClass("sg-avatar-image--zoomable"),o=function(){t.toggleClass("sg-avatar-image--zoom")},t.on("click",o),c())})}e.$inject=["$scope","$element","$http","$q","Preferences","Gravatar"],angular.module("SOGo.Common").directive("sgAvatarImage",function(){return{restrict:"AE",scope:{},bindToController:{size:"@",email:"=sgEmail",src:"=sgSrc"},transclude:!0,template:['
'," ",' ',' ',"
"].join(""),link:function(e,t,n,o){var r,i=t.find("img"),t=t.find("md-icon"),s=angular.element(t[0]),a=angular.element(t[1]);n.size&&(i.attr("width",n.size),i.attr("height",n.size),s.css("font-size",n.size+"px"),a.css("font-size",parseInt(.4*n.size)+"px"));angular.isDefined(n.ngDisabled)&&(r=e.$watch(n.ngDisabled,function(e){n.disabled&&a.css({display:"block"}),r()}));o.img=i,o.genericImg=s},controller:"sgAvatarImageController",controllerAs:"vm"}}).controller("sgAvatarImageController",e)}(),function(){"use strict";function e(e,l,c){return{link:function(e,t){var n=t[0].querySelector(".sg-button-toggle"),o=n.querySelector(".sg-icon-toggle"),r="md-rotate-180-ccw",i=t[0].querySelector(".sg-block-toggle"),s=!1;function a(){i.setAttribute("aria-hidden",!s),i.setAttribute("aria-expanded",s),s||(i.style.visibility="hidden")}n.classList.add("md-clickable"),angular.element(n).on("click",function(){(s=!s)?o.classList.add(r):o.classList.remove(r),s&&(i.style.visibility="visible"),c(function(){var e=s?i.scrollHeight:0;l(angular.element(i),{easing:"cubic-bezier(0.35, 0, 0.25, 1)",to:{height:e+"px"},duration:.75}).start().then(function(){a()})})}),a()}}}e.$inject=["$mdUtil","$animateCss","$$rAF"],angular.module("SOGo.Common").directive("sgBlockToggle",e)}(),function(){"use strict";function e(a,l,c,u){var d="sg-checked";return{restrict:"E",replace:!0,transclude:!0,require:"?ngModel",template:['
"].join(""),scope:{},require:["ngModel","sgTimePane","?^mdInputContainer"],controller:e,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,o){var r=o[0],i=o[1];if(o[2])throw Error("sg-timepicker should not be placed inside md-input-container.");i.configureNgModel(r,i)}}});var g=0;function e(e,t,n,o,r,i,s,a,l){var c;i(e),this.$element=e,this.$scope=t,this.dateUtil=n,this.$mdUtil=o,this.keyCode=r.KEY_CODE,this.$$rAF=s,this.timePaneElement=e[0].querySelector(".sg-time-pane"),this.ngModelCtrl=null,this.SELECTED_TIME_CLASS="sg-time-selected",this.FOCUSED_TIME_CLASS="md-focus",this.id=g++,this.displayTime=null,this.selectedTime=null,this.isInitialized=!1,t.hours=[],t.hours[0]=[],t.hours[0][0]=[],t.hours[0][1]=[],t.hours[1]=[],t.hours[1][0]=[],t.hours[1][1]=[];for(var u=0;u<6;u++)t.hours[0][0][u]={id:"tp-"+this.id+"-hour-"+u,displayName:u<10?"0"+u:""+u,selected:!1},t.hours[0][1][u]={id:"tp-"+this.id+"-hour-"+(u+6),displayName:u+6<10?"0"+(u+6):""+(u+6),selected:!1},t.hours[1][0][u]={id:"tp-"+this.id+"-hour-"+(u+12),displayName:""+(u+12),selected:!1},t.hours[1][1][u]={id:"tp-"+this.id+"-hour-"+(u+18),displayName:""+(u+18),selected:!1};for(t.min5=[],t.min5[0]=[],t.min5[1]=[],u=0;u<6;u++)t.min5[0][u]={id:"tp-"+this.id+"-minute5-"+(c=5*u),displayName:c<10?":0"+c:":"+c,selected:!0},t.min5[1][u]={id:"tp-"+this.id+"-minute5-"+(c+30),displayName:":"+(c+30),selected:!1};for(t.min1=[],u=0;u<12;u++){t.min1[u]=[];for(var d=0;d<5;d++)t.min1[u][d]={id:"tp-"+this.id+"-minute-"+(c=5*u+d),displayName:c<10?":0"+c:":"+c,selected:!0}}t.show5min=!0,t.getToggleBtnLbl=function(){return t.is5min()?">>":"<<"},t.toggleManual5min=function(){t.manual5min=!t.is5min()},t.is5min=function(){return!0===t.manual5min||!1===t.manual5min?t.manual5min:t.show5min},a.tabindex||e.attr("tabindex","-1");var h=this,m=(this.hourClickHandler=function(e){var t=new Date(h.displayTime);t.setHours(Number(e)),h.setNgModelValue(t,"hours")},t.hourClickHandler=this.hourClickHandler,this.minuteClickHandler=function(e){var e=e.substr(1),t=new Date(h.displayTime);t.setMinutes(Number(e)),h.setNgModelValue(t,"minutes")},t.minuteClickHandler=this.minuteClickHandler,angular.bind(this,this.handleKeyEvent));angular.element(document.body).on("keydown",m),t.$on("$destroy",function(){angular.element(document.body).off("keydown",m)})}e.$inject=["$element","$scope","$$mdDateUtil","$mdUtil","$mdConstant","$mdTheming","$$rAF","$attrs","$mdDateLocale"],e.prototype.configureNgModel=function(e,t){var n=this;n.ngModelCtrl=e,n.$mdUtil.nextTick(function(){n.isInitialized=!0}),e.$render=function(){var e=this.$viewValue;n.$mdUtil.nextTick(function(){n.changeSelectedTime(e,t)})}},e.prototype.changeSelectedTime=function(e,t){var n,o,r=this.selectedTime;this.selectedTime=e,this.displayTime=new Date(e),r&&(o=r.getHours(),(o=document.getElementById("tp-"+t.id+"-hour-"+o))&&(o.classList.remove(this.SELECTED_TIME_CLASS),o.setAttribute("aria-selected","false")),o=r.getMinutes(),(r=document.getElementById("tp-"+t.id+"-minute-"+o))&&(r.classList.remove(this.SELECTED_TIME_CLASS),r.setAttribute("aria-selected","false")),r=document.getElementById("tp-"+t.id+"-minute5-"+o))&&(r.classList.remove(this.SELECTED_TIME_CLASS),r.setAttribute("aria-selected","false")),e&&(o=e.getHours(),(r=document.getElementById("tp-"+t.id+"-hour-"+o))&&(r.classList.add(this.SELECTED_TIME_CLASS),r.setAttribute("aria-selected","true")),(o=e.getMinutes())%5==0?(t.$scope.show5min=!0,(n=document.getElementById("tp-"+t.id+"-minute5-"+o))&&(n.classList.add(this.SELECTED_TIME_CLASS),n.setAttribute("aria-selected","true"))):t.$scope.show5min=!1,n=document.getElementById("tp-"+t.id+"-minute-"+o))&&(n.classList.add(this.SELECTED_TIME_CLASS),n.setAttribute("aria-selected","true"))},e.prototype.setNgModelValue=function(e,t){return this.$scope.$emit("sg-time-pane-change",{date:e,changed:t}),this.ngModelCtrl.$setViewValue(e),this.ngModelCtrl.$render(),e},e.prototype.handleKeyEvent=function(e){var t=this;this.$scope.$apply(function(){e.which==t.keyCode.ESCAPE||e.which==t.keyCode.TAB?(t.$scope.$emit("md-time-pane-close"),e.which==t.keyCode.TAB&&e.preventDefault()):e.which===t.keyCode.ENTER&&(t.setNgModelValue(t.displayTime,"enter"),e.preventDefault())})},e.prototype.focus=function(e,t){var e=e||this.selectedTime||this.today,n=this.timePaneElement.querySelector(".md-focus");n&&n.classList.remove(this.FOCUSED_TIME_CLASS),e&&(n=e.getHours(),e=document.getElementById("tp-"+t.id+"-hour-"+n))&&(e.classList.add(this.FOCUSED_TIME_CLASS),e.focus())}}(),function(){"use strict";function e(u,d,h){return{template:function(e,t){t=t.ariaLabel||t.mdPlaceholder;return['",'
",' ',' ','
',"
","
",'
','
','
',"
",'
',' ',"
","
"].join("")},require:["ngModel","sgTimepicker","?^mdInputContainer","?^form"],scope:{placeholder:"@mdPlaceholder"},controller:t,controllerAs:"ctrl",bindToController:!0,link:function(e,t,n,o){var r,i,s=o[0],a=o[1],l=o[2],c=o[3],o=u.parseAttributeBoolean(n.mdNoAsterisk);a.configureNgModel(s,l,h),l?((r=t[0].querySelector(".md-errors-spacer"))&&t.after(angular.element("
").append(r)),l.setHasPlaceholder(n.mdPlaceholder),l.input=t,l.element.addClass(m).toggleClass(g,"time"!==n.mdHideIcons&&"all"!==n.mdHideIcons),l.label?o||n.$observe("required",function(e){l.label.toggleClass("md-required",!!e)}):d.expect(t,"aria-label",n.mdPlaceholder),e.$watch(l.isErrorGetter||function(){return s.$invalid&&(s.$touched||c&&c.$submitted)},l.setInvalid)):c&&(i=e.$watch(function(){return c.$submitted},function(e){e&&(a.updateErrorState(),i())}))}}}angular.module("SOGo.Common").directive("sgTimepicker",e),e.$inject=["$mdUtil","$mdAria","inputDirective"];var o="sg-timepicker-invalid",l="sg-timepicker-open",m="_sg-timepicker-floating-label",g="_sg-timepicker-has-calendar-icon",c={MIN5:{GTXS:192,XS:311},MIN1:{GTXS:384,XS:474}},u={GTXS:530,XS:294},h=/ipad|iphone|ipod|android/i;function t(e,t,n,o,r,i,s,a,l,c,u){this.$window=o,this.dateLocale=a,this.dateUtil=l,this.$mdConstant=r,this.$mdUtil=s,this.$$rAF=c,this.$mdMedia=u,this.documentElement=angular.element(document.documentElement),this.ngModelCtrl=null,this.inputElement=t[0].querySelector("input"),this.ngInputElement=angular.element(this.inputElement),this.inputContainer=t[0].querySelector(".sg-timepicker-input-container"),this.timePane=t[0].querySelector(".sg-timepicker-time-pane"),this.timeButton=t[0].querySelector(".sg-timepicker-button"),this.inputMask=angular.element(t[0].querySelector(".sg-timepicker-input-mask-opaque")),this.$element=t,this.$attrs=n,this.$scope=e,this.time=null,this.isFocused=!1,this.isDisabled=!1,this.setDisabled(t[0].disabled||angular.isString(n.disabled)),this.isTimeOpen=!1,this.timePaneOpenedFrom=null,this.timePaneId="sg-time-pane"+s.nextUid(),this.bodyClickHandler=angular.bind(this,this.handleBodyClick),this.windowEventName=h.test(navigator.userAgent||navigator.vendor||window.opera)?"orientationchange":"resize",this.windowEventHandler=s.debounce(angular.bind(this,this.closeTimePane),100),this.windowBlurHandler=angular.bind(this,this.handleWindowBlur),this.leftMargin=20,this.topMargin=null,n.tabindex?(this.ngInputElement.attr("tabindex",n.tabindex),n.$set("tabindex",null)):n.$set("tabindex","-1"),i(t),i(angular.element(this.timePane));var d=this;e.$on("$destroy",function(){d.detachTimePane()}),n.mdIsOpen&&e.$watch("ctrl.isOpen",function(e){e?d.openTimePane({target:d.inputElement}):d.closeTimePane()})}t.$inject=["$scope","$element","$attrs","$window","$mdConstant","$mdTheming","$mdUtil","$mdDateLocale","$$mdDateUtil","$$rAF","$mdMedia"],t.prototype.$onInit=function(){this.installPropertyInterceptors(),this.attachChangeListeners(),this.attachInteractionListeners()},t.prototype.configureNgModel=function(e,t,n){this.ngModelCtrl=e,this.mdInputContainer=t,this.$attrs.$set("type","date");var o=this,t=(o.ngModelCtrl.$formatters.push(function(e){if(!e||e instanceof Date)return o.onExternalChange(e),e;throw Error("The ng-model for sg-timepicker must be a Date instance. Currently the model is a: "+typeof e)}),e.$viewChangeListeners.unshift(angular.bind(this,this.updateErrorState)),o.$mdUtil.getModelOption(e,"updateOn"));t&&this.ngInputElement.on(t,angular.bind(this.$element,this.$element.triggerHandler,t))},t.prototype.attachChangeListeners=function(){var o=this,e=(o.$scope.$on("sg-time-pane-change",function(e,t){var n=new Date(t.date);o.setModelValue(n),o.onExternalChange(n),"minutes"==t.changed&&o.closeTimePane()}),o.ngInputElement.on("input",angular.bind(o,o.resizeInputElement)),angular.isDefined(this.debounceInterval)?this.debounceInterval:500);o.ngInputElement.on("input",o.$mdUtil.debounce(o.handleInputEvent,e,o))},t.prototype.attachInteractionListeners=function(){var t=this,n=this.$scope,o=this.$mdConstant.KEY_CODE;t.ngInputElement.on("keydown",function(e){e.altKey&&e.keyCode==o.DOWN_ARROW&&(t.openTimePane(e),n.$digest())}),n.$on("md-time-close",function(){t.closeTimePane()})},t.prototype.installPropertyInterceptors=function(){var e,t=this;this.$attrs.ngDisabled&&(e=this.$scope.$parent)&&e.$watch(this.$attrs.ngDisabled,function(e){t.setDisabled(e)}),Object.defineProperty(this,"placeholder",{get:function(){return t.inputElement.placeholder},set:function(e){t.inputElement.placeholder=e||""}})},t.prototype.setDisabled=function(e){this.isDisabled=e,this.inputElement.disabled=e,this.timeButton&&(this.timeButton.disabled=e)},t.prototype.updateErrorState=function(e){var e=e||this.time,t=(this.clearErrorState(),this.dateUtil.isValidDate(e)||this.ngModelCtrl.$setValidity("valid",null===e),this.inputElement.value),n=this.dateLocale.parseTime(t);!this.isInputValid(t,n)&&this.ngModelCtrl.$valid&&this.ngModelCtrl.$setValidity("valid",null==e),angular.element(this.inputContainer).toggleClass(o,!this.ngModelCtrl.$valid)},t.prototype.isInputValid=function(e,t){return""===e||this.dateUtil.isValidDate(t)},t.prototype.clearErrorState=function(){this.inputContainer.classList.remove(o),["valid"].forEach(function(e){this.ngModelCtrl.$setValidity(e,!0)},this)},t.prototype.resizeInputElement=function(){this.inputElement.size=this.inputElement.value.length+3},t.prototype.handleInputEvent=function(e){var t=this.inputElement.value,n=t?this.dateLocale.parseTime(t):null;this.isInputValid(t,n)&&(t=new Date(this.time),n?(t.setHours(n.getHours()),t.setMinutes(n.getMinutes())):t=null,this.setModelValue(t),this.time=t),this.updateErrorState(n)},t.prototype.attachTimePane=function(){var e=this.timePane,t=document.body,n=(e.style.transform="",this.$element.addClass(l),angular.element(t).addClass("md-datepicker-is-showing"),this.inputContainer.getBoundingClientRect()),o=t.getBoundingClientRect(),r=((!this.topMargin||this.topMargin<0)&&(this.topMargin=(this.inputMask.parent().prop("clientHeight")-this.ngInputElement.prop("clientHeight"))/2),n.top-o.top-this.topMargin),i=n.left-o.left-this.leftMargin,s=o.top<0&&0===t.scrollTop?-o.top:document.body.scrollTop,t=o.left<0&&0===t.scrollLeft?-o.left:document.body.scrollLeft,o=s+this.$window.innerHeight,a=t+this.$window.innerWidth,n=(this.inputMask.css({position:"absolute",left:this.leftMargin+"px",top:this.topMargin+"px",width:n.width-1+"px",height:n.height-2+"px"}),this.$mdMedia("xs")?u.XS:u.GTXS),t=(a/g,">")},String.prototype._base64_keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",String.prototype.base64encode=function(){for(var e,t,n,o,r,i,s="",a=0,l=this.utf8encode();a>2,o=(3&e)<<4|(e=l.charCodeAt(a++))>>4,r=(15&e)<<2|(t=l.charCodeAt(a++))>>6,i=63&t,isNaN(e)?r=i=64:isNaN(t)&&(i=64),s=s+this._base64_keyStr.charAt(n)+this._base64_keyStr.charAt(o)+this._base64_keyStr.charAt(r)+this._base64_keyStr.charAt(i);return s},String.prototype.base64decode=function(){for(var e,t,n,o,r,i,s="",a=0,l=""+this;a>2,t=(3&r)<<6|(i=this._base64_keyStr.indexOf(l.charAt(a++))),s+=String.fromCharCode(n<<2|o>>4),64!=r&&(s+=String.fromCharCode(e)),64!=i&&(s+=String.fromCharCode(t));return s},String.prototype.md5=function(){if(this.length){var e=this.toLowerCase();function a(e,t){return e<>>32-t}function l(e,t){var n=2147483648&e,o=2147483648&t,r=1073741824&e,i=1073741824&t,e=(1073741823&e)+(1073741823&t);return r&i?2147483648^e^n^o:r|i?1073741824&e?3221225472^e^n^o:1073741824^e^n^o:e^n^o}function t(e,t,n,o,r,i,s){return e=l(e,l(l(t&n|~t&o,r),s)),l(a(e,i),t)}function n(e,t,n,o,r,i,s){return e=l(e,l(l(t&o|n&~o,r),s)),l(a(e,i),t)}function o(e,t,n,o,r,i,s){return e=l(e,l(l(t^n^o,r),s)),l(a(e,i),t)}function r(e,t,n,o,r,i,s){return e=l(e,l(l(n^(t|~o),r),s)),l(a(e,i),t)}function i(e){for(var t="",n="",o=0;o<=3;o++)t+=(n="0"+(e>>>8*o&255).toString(16)).substr(n.length-2,2);return t}Array();for(var s,c,u,d,h=function(e){for(var t,n=e.length,o=16*(1+((o=n+8)-o%64)/64),r=Array(o-1),i=0,s=0;s>>29,r}(e=function(e){e=e.replace(/rn/g,"n");for(var t="",n=0;n>6|192))+String.fromCharCode(63&o|128):(t=(t+=String.fromCharCode(o>>12|224))+String.fromCharCode(o>>6&63|128))+String.fromCharCode(63&o|128)}return t}(e)),m=1732584193,g=4023233417,p=2562383102,f=271733878,y=0;y":e.email?e.full="<"+e.email+">":e.full="",e.signature&&(t=angular.element("
"+e.signature+"
"),e.textSignature=_.map(t.contents(),"textContent").join(" ").trim())}),this.$mailboxes)&&c.$Mailbox.$unwrapCollection(this,c.$q.when({mailboxes:this.$mailboxes})).then(function(e){t.$mailboxes=e})}c.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(e,t,s,n,i,a,o,r){return angular.extend(c,{$q:e,$timeout:t,$log:s,$$resource:new i(n.activeUser("folderURL")+"Mail",n.activeUser()),$Preferences:a,$Mailbox:o,$Message:r}),c}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",c.$factory),c.$findAll=function(e){return e?c.$unwrapCollection(e):c.$accounts?c.$q.when(c.$accounts):c.$$resource.fetch("","mailAccounts").then(function(e){return c.$unwrapCollection(e)})},c.$unwrapCollection=function(e){var s=[];return angular.forEach(e,function(e,t){e.id=t,s[t]=new c(e)}),c.$accounts=s},c.refreshUnseenCount=function(e){var t,s=1===c.$Preferences.defaults.SOGoMailFetchAllUnseenCountFolders,n=c.$Preferences.defaults.SOGoRefreshViewCheck;if(s)t=[];else{if(!e)throw Error("SOGoMailFetchAllUnseenCountFolders is disabled and no folders list provided");t=e}_.forEach(c.$accounts,function(e){s?_.forEach(e.$$flattenMailboxes,function(e){t.push(e.id)}):(_.includes(t,e.id+"/folderINBOX")||t.push(e.id+"/folderINBOX"),_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(e.unseenCount)&&!_.includes(t,e.id)&&t.push(e.id)}))}),c.$$resource.post("","unseenCount",{mailboxes:t}).then(function(t){_.forEach(c.$accounts,function(e){_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(t[e.id])&&(e.unseenCount=t[e.id])})})}),n&&"manually"!=n&&(c.$refreshUnseenCount&&c.$timeout.cancel(c.$refreshUnseenCount),c.$refreshUnseenCount=c.$timeout(angular.bind(this,c.refreshUnseenCount,e),1e3*n.timeInterval()))},c.prototype.getLength=function(){return this.$expanded?this.$flattenMailboxes().length:0},c.prototype.getItemAtIndex=function(e){var t=this.$flattenMailboxes();return 0<=e&&e"+e.signature+"
"),e.textSignature=_.map(t.contents(),"textContent").join(" ").trim()):e.textSignature="",e.textSignature},c.prototype.$hasCertificate=function(){return this.security&&this.security.hasCertificate},c.prototype.$certificate=function(){var t=this;return this.$hasCertificate()?this.$$certificate?c.$q.when(this.$$certificate):c.$$resource.fetch(this.id.toString(),"certificate").then(function(e){return t.$$certificate=e}):c.$q.reject()},c.prototype.$removeCertificate=function(){var e=this;return c.$$resource.fetch(this.id.toString(),"removeCertificate").then(function(){e.security.hasCertificate=!1})},c.prototype.updateQuota=function(e){var t,s;e.maxQuota?(t=Math.round(1e4*e.usedSpace/e.maxQuota)/100,s=l("quotasFormat").formatted(t,Math.round(e.maxQuota/10.24)/100)):e.maxMessages&&(t=Math.round(1e4*e.messagesCount/e.maxMessages)/100,s=l("messageQuotasFormat").formatted(t,e.maxMessages)),this.$quota={percent:t,description:s}},c.prototype.$newMessage=function(n){var i=this;return c.$$resource.fetch(this.id.toString(),"compose").then(function(e){return c.$log.debug("New message (compose): "+JSON.stringify(e,void 0,2)),new c.$Message(e.accountId,i.$getMailboxByPath(e.mailboxPath),e)}).then(function(s){return c.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(e){var t=c.$Preferences.defaults.AuxiliaryMailAccounts[i.id];return t.security&&(t.security.alwaysSign&&(e.sign=!0),t.security.alwaysEncrypt)&&(e.encrypt=!0),c.$log.debug("New message (edit): "+JSON.stringify(e,void 0,2)),angular.extend(s.editable,e),s.isNew=!0,n&&n.mailto&&(angular.isObject(n.mailto)?angular.extend(s.editable,n.mailto):s.$parseMailto(n.mailto)),s})})},c.prototype.$addDelegate=function(e){var t=this,s=c.$q.defer(),n={uid:e.uid};return!e.uid||-1<_.indexOf(_.map(this.delegates,"uid"),e.uid)?s.resolve():c.$$resource.fetch(this.id.toString(),"addDelegate",n).then(function(){t.delegates.push(e),s.resolve(t.users)},function(e,t){s.reject(l("An error occured, please try again."))}),s.promise},c.prototype.$removeDelegate=function(t){var s=this,e={uid:t};return c.$$resource.fetch(this.id.toString(),"removeDelegate",e).then(function(){var e=_.indexOf(_.map(s.delegates,"uid"),t);0<=e&&s.delegates.splice(e,1)})},c.prototype.$omit=function(t){var s={},n=[],i=[],a=!1;return angular.forEach(this,function(e,t){"constructor"!=t&&"identities"!=t&&"$"!=t[0]&&(s[t]=angular.copy(e))}),t&&(_.forEach(this.$mailboxes,function(e){i.push(e.$omit(t))}),s.$mailboxes=i),_.forEach(this.identities,function(e){e.isReadOnly&&!t||n.push(_.pick(e,["email","fullName","replyTo","signature","isDefault"])),e.isDefault&&(a=e)}),s.identities=n,a&&s.forceDefaultIdentity||delete s.forceDefaultIdentity,s}}(),function(){"use strict";function u(e,t){this.$account=e,"function"!=typeof t.then?(this.init(t),this.name&&!this.path&&(e=u.$$resource.create("createFolder",this.name),this.$unwrap(e))):this.$unwrap(t)}u.$factory=["$q","$timeout","$log","$rootScope","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD","sgMailbox_BATCH_DELETE_LIMIT",function(e,t,s,n,i,a,o,r,l,c,d){return angular.extend(u,{$q:e,$timeout:t,$log:s,$rootScope:n,$$resource:new a(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:o,$$Acl:r,$Preferences:l,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,$virtualPath:!1,$searchMode:!1,PRELOAD:c,BATCH_DELETE_LIMIT:d}),l.settings.Mail.SortingState&&(u.$query.sort=l.settings.Mail.SortingState[0],u.$query.asc=parseInt(l.settings.Mail.SortingState[1])),u}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).constant("sgMailbox_BATCH_DELETE_LIMIT",1e3).factory("Mailbox",u.$factory),u.$find=function(e,t){t=t&&t.all?this.$$resource.fetch(e.id.toString(),"viewAll"):this.$$resource.fetch(e.id.toString(),"view");return u.$unwrapCollection(e,t)},u.$unwrapCollection=function(n,e){function i(e,t){t.isSentFolder=t.isSentFolder||"sent"==t.type,t.isDraftsFolder=t.isDraftsFolder||"draft"==t.type;for(var s=0;s{"subject_or_from"!=e.searchBy&&"contains"!=e.searchBy&&"body"!=e.searchBy&&"from"!=e.searchBy&&"to"!=e.searchBy&&"subject"!=e.searchBy||e.searchInput.split(" ").forEach(e=>{e=e.trim().toLowerCase();this.$highlightWords.includes(e)||this.$highlightWords.push(e)})})),angular.extend(i,{sortingAttributes:u.$query}),angular.isDefined(t)?(i.filters=_.reject(angular.copy(t),function(e){return!e.searchInput||0===e.searchInput.length}),_.forEach(i.filters,function(e){var t=e.searchBy.match(/(\w+)_or_(\w+)/);t&&(i.sortingAttributes.match="OR",e.searchBy=t[1],(e=angular.copy(e)).searchBy=t[2],i.filters.push(e))})):e||this.$flaggedOnly||this.$unseenOnly||!this.$syncToken||(n="changes",i.syncToken=this.$syncToken),this.$unseenOnly&&(i.unseenOnly=1),this.$flaggedOnly&&(i.flaggedOnly=1),_.filter(_.keys(this.$filteredLabels),function(e){return!!s.$filteredLabels[e]})),t=(e.length&&(i.labels=e),u.$virtualMode||(e=u.$Preferences.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&(t=angular.bind(this,u.prototype.$filter,null,t),u.$refreshTimeout=u.$timeout(t,1e3*e.timeInterval())),u.$$resource.post(this.id,n,i));return this.$unwrap(t)},u.prototype.$loadMessage=function(e){var t,s,n=this.uidsMap[e],i=this.$messages.length,a=!1;if(angular.isDefined(this.uidsMap[e])&&nr.uids.length-1)&&(c.$topIndex=0),r.syncToken&&(c.$syncToken=r.syncToken),r.deleted&&(_.forEachRight(r.deleted,function(e,t){e=c.uidsMap[e.toString()];(e<0||!c.$messages[e])&&r.deleted.splice(t,1)}),r.deleted.length)&&c.$_deleteMessages(r.deleted),r.changed){var i,o=0;if(_.forEach(r.changed,function(e){angular.isUndefined(c.uidsMap[e.toString()])&&(c.uidsMap[e]=o,c.$messages.splice(o,0,{uid:e}),n=!0,o++)}),0",e.name.length<10?e.shortname=e.name:e.name.split(" ").length&&(e.shortname=_.first(_.last(e.name.split(/, */)).split(/ +/)).replace("'",""))):e.email&&(e.full="<"+e.email+">",e.shortname=e.email.split("@")[0]),e.image=r.$avatar(e.email,32),0<=_.indexOf(s,e.email)&&(e.shortname=l("me"))})})},r.prototype.$shortRecipients=function(s){var t=this,n=[],i=0,a=0;return _.forEach(["to","cc","bcc"],function(e){a+=t[e]?t[e].length:0,_.forEach(t[e],function(e,t){i":this[e][0].name||this[e][0].email||"")),punycode.toUnicode(n)},r.prototype.allowReplyAll=function(){var n=_.map(this.$mailbox.$account.identities,"email"),e=_.reduce(["to","cc","bcc","reply-to"],_.bind(function(e,t){var s=0;return this[t]?(s=this[t].length,_.forEach(this[t],function(e){0<=_.indexOf(n,e.email)&&s--}),e+s):e},this),0);return!this.isDraft&&1"}),n={to:e}),_.forEach(["subject","body"],function(e){var t=new RegExp(e+"=([^&]+)");e="body"==e?"text":e,(i=t.exec(s))&&(n[e]=decodeURIComponent(i[1]))}),"html"==r.$Preferences.defaults.SOGoMailComposeMessageType&&n.text&&0")),_.forEach(["cc","bcc"],function(e){var t=new RegExp(e+"=([^&]+)");(i=t.exec(s))&&(n[e]=_.map(decodeURIComponent(i[1]).split(","),function(e){return"<"+e.trim()+">"}))}),_.isEmpty(n)||angular.extend(this.editable,n)},r.prototype.$reply=function(){return this.$newDraft("reply")},r.prototype.$replyAll=function(){return this.$newDraft("replyall")},r.prototype.$forward=function(){return this.$newDraft("forward")},r.prototype.$compose=function(){return this.$newDraft("compose")},r.prototype.$newDraft=function(n){var i=this;return r.$$resource.fetch(this.$absolutePath(),n).then(function(e){var t,s;return r.$log.debug("New "+n+": "+JSON.stringify(e,void 0,2)),t=i.$mailbox.$account.$getMailboxByPath(e.mailboxPath),s=new r(e.accountId,t,e),r.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(e){r.$log.debug("New "+n+": "+JSON.stringify(e,void 0,2)+" original UID: "+i.uid);var t=r.$Preferences.defaults.AuxiliaryMailAccounts[i.$mailbox.$account.id];return t.security&&(t.security.alwaysSign&&(e.sign=!0),t.security.alwaysEncrypt)&&(e.encrypt=!0),e.isHTML&&(t=(t=(t=(t=(t=(t=(t=e.text).replace(/<\/?html[^>]*>/g,"")).replace(/<\/?body[^>]*>/g,"")).replace(/]*>.*<\/meta>/g,"")).replace(/]*>.*<\/link>/g,"")).replace(/]*>.*<\/base>/g,"")).replace(/]*>.*<\/title>/g,""),e.text=t),angular.extend(s.editable,e),s.origin={message:i,action:n},s})})},r.prototype.$save=function(){var t=this,e=this.$omit();return r.$log.debug("save = "+JSON.stringify(e,void 0,2)),r.$$resource.save(this.$absolutePath({asDraft:!0}),e).then(function(e){r.$log.debug("save = "+JSON.stringify(e,void 0,2)),t.$setUID(e.uid),t.$reload(),t.isNew=!1})},r.prototype.punycode=function(e){var t=/<(.*)>|^([\w\-\.@]+)$/gm.exec(e),s=e;return t&&0','
',' '," arrow_back"," ",' image','
',' '," file_download"," ","
",'
',' '," navigate_before"," ",' ',' '," navigate_next"," ","
",'
','
',' ',"
","
",""].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){s.show=!0,_.forEach(u.$document.find("sg-image-gallery")[0].getElementsByClassName("sg-image-thumbnail"),function(e){var t=e.children[0];angular.element(t).one("load",function(){t.naturalWidtht.scrollTop+t.clientHeight)&&document.querySelectorAll(".md-virtual-repeat-scroller")[1].scrollTo({top:C*e-(t.clientHeight-C)/2,behavior:"smooth"})}function P(e){var t;M.selectedFolder.hasSelectedMessage()&&0<=(t=E(e))&&M.toggleMessageSelection(e,M.selectedFolder.$messages[t])}function k(e){var t;M.selectedFolder.hasSelectedMessage()&&0<=(t=A(e))&&M.toggleMessageSelection(e,M.selectedFolder.$messages[t])}function O(){return y.$virtualMode?M.selectedFolder.$mailboxes:[M.selectedFolder]}function T(e,t){var s,n,i=t;M.mode.multiple=M.selectedFolder.selectedCount(),e&&(0{e.setHighlightWords([])}),M.mode.search=!1,M.selectedFolder.$filter(M.service.$query).then(function(){M.selectedFolder.$selectedMessage&&(M.selectedFolder.$topIndex=M.selectedFolder.uidsMap[M.selectedFolder.$selectedMessage])})},this.composeWindowEnabled=function(){return $.defaults.SOGoMailComposeWindowEnabled},this.openInPopup=function(e,t){var s=[f.baseURL(),"UIxMailPopupView#!/Mail",this.account.id],n=this.account.id+"/"+Math.random(0,1e3);e&&(s.push(g(g(e.$mailbox.path))),s.push(e.uid),n=e.$absolutePath()),t&&(n+="/"+t,s.push(t)),s=s.join("/"),i.open(s,n,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){i.document.body.classList.contains("popup")&&i.close()},this._showMailEditorInPopup=function(e,t,s){return!(f.isPopup||"popup"!=$.defaults.SOGoMailComposeWindow&&!s||(this.openInPopup(e,t),0))},this.newMessage=function(t,e){this._showMailEditorInPopup(null,"new",e)||this.account.$newMessage().then(function(e){F(t,e)})},this.selectMessage=function(e){(y.$virtualMode?(M.isLoadingMessage=!0,o.go("mail.account.virtualMailbox.message",{mailboxId:g(g(e.$mailbox.path)),messageId:e.uid}).then(function(){}).catch(e=>{console.error(e)})):(M.isLoadingMessage=!0,o.go("mail.account.mailbox.message",{mailboxId:g(g(e.$mailbox.path)),messageId:e.uid}).then(function(){}).catch(e=>{console.error(e)}))).finally(()=>{M.isLoadingMessage=!1,M.nextAction&&(M.nextAction.m(M.nextAction.p),M.nextAction=null)})},this.toggleMessageSelection=function(e,t){var s,n,i,a=M.selectedFolder;if(!(t=t||a.selectedMessage()))return!0;if(t.selected=!t.selected,e.shiftKey&&0{e=e.trim().toLowerCase();this.highlightWords.includes(e)||this.highlightWords.push(e)})},this.reset=function(){this.highlightWords=[],this.searchForm={from:"",to:"",contains:"",notContains:"",subject:"",body:"",date:"anytime",dateStart:new Date,dateEnd:new Date,bcc:"",size:"",sizeOperator:">",sizeUnit:"mb",attachements:0,favorite:0,unseen:0,tags:{searchText:"",selected:""},flags:[]}},this.addSearchParameters=function(){if(this.search.params=[],this.highlightWords=[],this.searchForm.from&&0="));break;case"last30days":n.setDate(n.getDate()-30),t=this.formatDate(n),this.search.params.push(this.newSearchParam("date",t,">="));break;case"last6month":n.setMonth(n.getMonth()-6),t=this.formatDate(n),this.search.params.push(this.newSearchParam("date",t,">="));break;case"before":t=this.formatDate(this.searchForm.dateStart),this.search.params.push(this.newSearchParam("date",t,"<"));break;case"after":t=this.formatDate(this.searchForm.dateStart),this.search.params.push(this.newSearchParam("date",t,">="));break;case"between":t=this.formatDate(this.searchForm.dateStart),e=this.formatDate(this.searchForm.dateEnd),this.search.params.push(this.newSearchDateBetweenParam(t,e))}}this.searchForm.size&&0{}),F.virtualMailbox.setMailboxes(t),F.virtualMailbox.startSearch(F.search.match,F.search.params),"mail.account.virtualMailbox"!=c.$current.name&&c.go("mail.account.virtualMailbox",{accountId:F.accounts[0].id}))},this.formatDate=function(e){return e.getFullYear()+"-"+(e.getMonth()+1).toString().padStart(2,"0")+"-"+e.getDate().toString().padStart(2,"0")},this.changeDate=function(){"between"==this.searchForm.date&&this.searchForm.dateStart>this.searchForm.dateEnd&&(this.searchForm.dateEnd=this.searchForm.dateStart)},this.newSearchParam=function(e,t,s=">"){if(t.length&&e.length){var n=0;switch(t.startsWith("!")&&(t=t.substring(n=1).trim()),e){case"size":return{searchBy:e,searchInput:t,negative:n,operator:s,sizeUnit:this.searchForm.sizeUnit};case"date":return{searchBy:e,searchInput:t,negative:n,operator:s};default:return{searchBy:e,searchInput:t,negative:n}}}},this.newSearchDateBetweenParam=function(e,t){return{searchBy:"date_between",searchInput:"*",dateFrom:e,dateTo:t,negative:0}},this.newSearchFlagsParam=function(){return{searchBy:"flags",searchInput:"*",flags:F.searchForm.flags,negative:0}},this.toggleAccountState=function(e){e.$expanded=!e.$expanded,this.debounceSaveState||(this.debounceSaveState=a.debounce(function(){e.$flattenMailboxes({reload:!0,saveState:!0})},1e3)),this.debounceSaveState()},this.subscribe=function(e){function t(e,t,s){var n=this;n.loading=!0,n.filter={name:""},n.account=new b({id:s.id,name:s.name}),n.close=function(){t.hide()},n.account.$getMailboxes({reload:!0,all:!0}).then(function(){n.loading=!1})}d.show({templateUrl:e.id+"/subscribe",controller:t,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAccount:e}}).finally(function(){e.$getMailboxes({reload:!0})}),t.$inject=["$scope","$mdDialog","srcAccount"]},this.showAdvancedSearch=function(){F.advancedSearchPanelVisible||(F.advancedSearchPanelVisible=!0,y.selectedFolder.path&&(y.$virtualPath=y.selectedFolder.path),o(h["gt-md"])||r("left").close(),d.show({template:document.getElementById("advancedSearch").innerHTML,parent:angular.element(document.body),controller:function(){this.$onInit=function(){this.mainController=F,this.mailbox=y,this.message=C},this.closeDialog=function(){d.hide(),F.advancedSearchPanelVisible=!1},this.search=function(){this.mainController.addSearchParameters(),d.hide(),F.advancedSearchPanelVisible=!1}},controllerAs:"dialogCtrl",clickOutsideToClose:!1,escapeToClose:!1}))},this.newFolder=function(e){f.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(s){e.$newMailbox(e.id,s).then(function(){},function(e,t){f.alert(l('An error occured while creating the mailbox "%{0}".',s),l(e.error))})})},this.delegate=function(e){function t(e,t,s,n){var i=this;i.users=n.delegates,i.account=n,i.userToAdd="",i.searchText="",i.userFilter=function(e){return s.$filter(e,n.delegates)},i.closeModal=function(){t.hide()},i.removeUser=function(e){n.$removeDelegate(e.uid).catch(function(e,t){f.alert(l("Warning"),l("An error occured, please try again."))})},i.addUser=function(e){e&&n.$addDelegate(e).then(function(){i.userToAdd="",i.searchText=""},function(e){f.alert(l("Warning"),e)})}}d.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:M,account:e}}),t.$inject=["$scope","$mdDialog","User","account"]},this.isDroppableFolder=function(e,t){return t.id!=e.id&&t.isWritable()},this.dragSelectedMessages=function(e,t,s){var n,i,a,o,t="/"+t.id,r=e.selectedMessages();0===r.length&&(r=[e.selectedMessage()]),n=_.map(r,"uid"),i=e.$selectedMessage&&0<=n.indexOf(e.$selectedMessage),o="copy"==s?(a=e.$copyMessages(r,t),l("%{0} message(s) copied",r.length)):(a=e.$moveMessages(r,t),l("%{0} message(s) moved",r.length)),a.then(function(){i&&c.go("mail.account.mailbox"),u.show(u.simple().textContent(o).position(h.toastPosition).hideDelay(2e3))})}}e.$inject=["$scope","$rootScope","$state","$transitions","$timeout","$window","$mdUtil","$mdMedia","$mdSidenav","$mdDialog","$mdToast","sgConstant","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts","Message"],angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";function e(n,i,a,c,d,o,r,u,s,h,g,m,f,p,$,b,t,y,v,M,x,e,w,C,S,I){var F=this,E=[];function A(e){return i.mailbox?(0e.length?(n=_.difference(s,e),_.forEach(n,function(e){F.message.addTag(e)})):s.lengths.$lastVisibleIndex&&(s.$topIndex=t-(s.$lastVisibleIndex-s.$topIndex))})):i.go("mail.account.mailbox").then(function(){n=null,delete s.$selectedMessage})}catch(e){}}F.closePopup()}i=e.messageCtrl?(s=e.mailboxCtrl.selectedFolder,n=e.messageCtrl.message,e.messageCtrl.$state):(s=g,n=m,c),w.$virtualMode&&(s=w.selectedFolder),F.mailInDeletion=n.uid,s.$deleteMessages([n]).then(t,function(e){A(y.confirm(l("Warning"),l("The message could not be moved to the trash folder. Would you like to delete it immediately?"),{ok:l("Delete")}).then(function(){s.$deleteMessages([n],{withoutTrash:!0}).then(t).finally(function(){A(null)})}).finally(function(){A(null)}))})},this._showMailEditorInPopup=function(e){return!$.isPopup&&"popup"==v.defaults.SOGoMailComposeWindow&&(this.openInPopup(e),!0)},this.close=function(){var e=w.$virtualMode?"mail.account.virtualMailbox":"mail.account.mailbox";c.go(e).then(function(){F.message=null,delete g.$selectedMessage})},this.reply=function(e){this._showMailEditorInPopup("reply")||k(e,this.message.$reply())},this.replyAll=function(e){this._showMailEditorInPopup("replyall")||k(e,this.message.$replyAll())},this.forward=function(e){this._showMailEditorInPopup("forward")||k(e,this.message.$forward())},this.edit=function(e){this._showMailEditorInPopup("edit")||this.message.$editableContent().then(function(){k(e,F.message)})},this.compose=function(e){this._showMailEditorInPopup("compose")||k(e,this.message.$compose())},this.openInPopup=function(e){var t=[$.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,p(p(this.message.$mailbox.path)),this.message.uid].join("/"),s=this.message.$absolutePath();e&&(s+="/"+e,t+="/"+e),n.open(t,s,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){n.document.body.classList.contains("popup")&&n.close()},this.newMessage=function(t,e){"A"===t.target.tagName&&(t.stopPropagation(),t.preventDefault()),this.account.$newMessage({mailto:e}).then(function(e){k(t,e)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:C.$$resource.post(this.message.id,"viewsource").then(function(e){F.message.$rawSource=e,F.showRawSource=!0})},this.activateRawContent=function(e){this.openInPopup("viewRaw")},this.print=function(e){n.print()},this.convertToEvent=function(e){return O(e,"appointment")},this.convertToTask=function(e){return O(e,"task")}}e.$inject=["$window","$scope","$q","$state","$mdMedia","$mdDialog","$mdPanel","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Preferences","Calendar","Component","Account","Mailbox","Message","AddressBook","Card"],angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";function e(e,n,t,s,i,a,o,r,c,d,u,h,g,m,f,p,$,b,y){var v=this;function M(){var e,t={};try{n.opener&&"$mailboxController"in n.opener&&"selectedFolder"in n.opener.$mailboxController&&(n.opener.$mailboxController.selectedFolder.id==d.$mailbox.id?(t.draftMailboxCtrl=n.opener.$mailboxController,"$messageController"in n.opener&&n.opener.$messageController.message.uid==d.uid&&(t.draftMessageCtrl=n.opener.$messageController)):d.origin&&(e=d.origin.message,n.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id())&&(t.originMailboxCtrl=n.opener.$mailboxController))}catch(e){}return t}function x(){v.uploader.url=v.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save"}function w(){var e,t,s=v.message.editable.attachmentAttrs;if(s)for(e=0;e",n="
( )?[ \n]?"," "):(n=t="\n"," "),i="above"==this.signaturePlacement?2:1,(v.isNew()&&1===y.defaults.SOGoMailUseSignatureOnNew||!v.isNew()&&1===y.defaults.SOGoMailUseSignatureOnForward&&v.message&&v.message.origin&&v.message.origin.action&&"forward"===v.message.origin.action||!v.isNew()&&1===y.defaults.SOGoMailUseSignatureOnReply&&v.message&&v.message.origin&&v.message.origin.action&&"reply"===v.message.origin.action)&&(o=e&&e.signature?t.repeat(i)+"--"+a+t+e.signature:"",!_.find(this.identities,function(e,t){if(e.signature)try{var s=new RegExp("("+n+"){"+i+"}--"+a+n+e.signature.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g,"\\$&"));if(0<=v.message.editable.text.search(s))return v.message.editable.text=v.message.editable.text.replace(s,o),!0}catch(e){return v.message.editable.text+=o,!0}return!1}))&&0 |
',' '," ","
",'

'," {{$ctrl.mailbox.$icon}}",' ',' ',"

",' ',' '," ",' more_vert'].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}})}(),function(){function e(t,e,s,n){var i=this,a=0;this.$onInit=function(){var e=["uid","isread","isflagged","flags","loading"];"draft"!=(this.MailboxService=n).selectedFolder.type&&"templates"!=n.selectedFolder.type||e.push("subject"),t.$watch(function(){return i.message?[_.pick(i.message,e)]:null},function(e,t){i.message&&i.onUpdate()},!0)},this.onUpdate=function(){this.message.loading?e.addClass("sg-skeleton"):(e.removeClass("sg-skeleton"),this.message.isread?e.removeClass("unread"):e.addClass("unread"),n.selectedFolder.isSelectedMessage(this.message.uid,this.message.$mailbox.path)?e.addClass("md-default-theme md-accent md-bg md-hue-2"):e.removeClass("md-default-theme md-accent md-bg md-hue-2"))},this.setVisibility=function(e,t){t?e.classList.remove("ng-hide"):e.classList.add("ng-hide")},t.$on("listRefreshed",function(){s(function(){e.parent()[0]&&e.parent()[0].parentElement&&e.parent()[0].parentElement.parentElement&&(e.parent()[0].parentElement.parentElement.scrollTop=a)},0)}),t.$on("beforeListRefresh",function(){e.parent()[0]&&e.parent()[0].parentElement&&e.parent()[0].parentElement.parentElement&&(a=e.parent()[0].parentElement.parentElement.scrollTop)})}e.$inject=["$scope","$element","$timeout","Mailbox"],angular.module("SOGo.MailerUI").controller("sgMessageListItemController",e).directive("sgMessageListItem",function(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}})}(),function(){function e(n,l,e,t,c,s,i,a,o,r){var d=this;this.$postLink=function(){var t,e,s,o,r;this.parentController=n.parentController,o=this.parentController.onUpdate,r=this.parentController.setVisibility,_.forEach(l.find("div"),function(e){e.classList.contains("sg-tile-content")?t=angular.element(e):e.classList.contains("sg-tile-icons")&&(s=angular.element(e))}),e=t.find("button")[0],this.threadButton=e,e=angular.element(e),this.threadIconElement=e.find("md-icon")[0],this.threadCountElement=e.find("span")[0],this.priorityIconElement=t.find("md-icon")[0],i.$virtualMode&&(this.mailboxNameElement=t.find("span")[0],this.mailboxNameElement.classList.remove("ng-hide")),this.senderElement=t.find("span")[1],_.forEach(t.find("div"),function(e){e.classList.contains("sg-tile-subject")?d.subjectElement=e:e.classList.contains("sg-tile-size")?d.sizeElement=e:e.classList.contains("sg-tile-date")&&(d.dateElement=e)}),_.forEach(s.find("md-icon"),function(e){"star"==e.textContent?d.flagIconElement=e:"reply"==e.textContent?d.answerIconElement=e:"forward"==e.textContent?d.forwardIconElement=e:"attach_file"==e.textContent&&(d.attachmentIconElement=e)}),this.parentController.onUpdate=function(){var e;if(d.message=d.parentController.message,!d.message.loading){var t=l[0].querySelector(".sg-category-dot-container"),s=angular.element(t),n=c.nodesToArray(t.querySelectorAll(".sg-category-dot"));for(_.forEach(n,function(e){t.removeChild(e)}),e=0;e
')).css("background-color",d.service.$tags[a][1]),s.append(i))}d.mailboxNameElement&&(d.mailboxNameElement.innerHTML=d.message.$mailbox.$displayName),d.defineSubjectAndSenderElements(),d.message.priority&&d.message.priority.level<3?(d.priorityIconElement.classList.remove("ng-hide"),d.message.priority.level<2?d.priorityIconElement.classList.add("md-warn"):d.priorityIconElement.classList.remove("md-warn")):d.priorityIconElement.classList.add("ng-hide"),d.message.first?(d.threadButton.classList.remove("ng-hide"),d.threadCountElement.innerHTML=d.message.threadCount,d.message.collapsed&&d.threadIconElement.classList.remove("md-rotate-180-ccw")):d.threadButton.classList.add("ng-hide"),d.sizeElement.innerHTML=d.message.size,d.dateElement.innerHTML=d.message.relativedate,r(d.flagIconElement,d.message.isflagged),r(d.answerIconElement,d.message.isanswered),r(d.forwardIconElement,d.message.isforwarded),r(d.attachmentIconElement,d.message.hasattachment)}angular.bind(d.parentController,o)()},this.service=a,this.MailboxService=i},this.defineSubjectAndSenderElements=function(){d&&d.message&&!d.message.loading&&(d.subjectElement.innerHTML=d.message.getHighlightSubject(),d.MailboxService.selectedFolder.isSentFolder||d.MailboxService.selectedFolder.isDraftsFolder?d.senderElement.innerHTML=d.message.highlightSearchTerms(d.message.$shortAddress("to",r.defaults.SOGoMailDisplayFullEmail),!0):d.senderElement.innerHTML=d.message.highlightSearchTerms(d.message.$shortAddress("from",r.defaults.SOGoMailDisplayFullEmail),!0))},this.$doCheck=function(){d.defineSubjectAndSenderElements()},this.toggleThread=function(){this.message.collapsed?this.threadIconElement.classList.add("md-rotate-180-ccw"):this.threadIconElement.classList.remove("md-rotate-180-ccw"),this.message.toggleThread()}}e.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter","Preferences"],angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",e).directive("sgMessageListItemMain",function(){return{restrict:"C",require:"^^sgMessageListItem",scope:{},template:['
','
',"
",' \x3c!-- mailbox --\x3e',' error'," \x3c!-- sender or recipient --\x3e","
",'
\x3c!-- date --\x3e
',"
",'
','
\x3c!-- categories --\x3e
','
\x3c!-- subject --\x3e
','
\x3c!-- size --\x3e
',' ',' expand_more'," ","
","
",'
',' star',' reply',' forward',' attach_file',"
",'
',' \x3c!-- message loading progress --\x3e',"
"].join(""),link:function(e,t,s,n){e.parentController=n},controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}})}(),function(){"use strict";function e(e,t){var s=this;this.$postLink=function(){t.registerImage(e),e.on("click",this.showImage)},this.showImage=function(e){"IMG"==e.target.tagName&&t.showGallery(e,s.partIndex)}}e.$inject=["$element","ImageGallery"],angular.module("SOGo.MailerUI").directive("sgZoomableImage",function(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:e}})}(); +!function(){"use strict";function c(e){var t=this;"function"!=typeof e.then&&(angular.extend(this,e),_.forEach(this.identities,function(e){var t;e.fullName&&e.email?e.full=e.fullName+" <"+e.email+">":e.email?e.full="<"+e.email+">":e.full="",e.signature&&(t=angular.element("
"+e.signature+"
"),e.textSignature=_.map(t.contents(),"textContent").join(" ").trim())}),this.$mailboxes)&&c.$Mailbox.$unwrapCollection(this,c.$q.when({mailboxes:this.$mailboxes})).then(function(e){t.$mailboxes=e})}c.$factory=["$q","$timeout","$log","sgSettings","Resource","Preferences","Mailbox","Message",function(e,t,s,n,i,a,o,r){return angular.extend(c,{$q:e,$timeout:t,$log:s,$$resource:new i(n.activeUser("folderURL")+"Mail",n.activeUser()),$Preferences:a,$Mailbox:o,$Message:r}),c}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").factory("Account",c.$factory),c.$findAll=function(e){return e?c.$unwrapCollection(e):c.$accounts?c.$q.when(c.$accounts):c.$$resource.fetch("","mailAccounts").then(function(e){return c.$unwrapCollection(e)})},c.$unwrapCollection=function(e){var s=[];return angular.forEach(e,function(e,t){e.id=t,s[t]=new c(e)}),c.$accounts=s},c.refreshUnseenCount=function(e){var t,s=1===c.$Preferences.defaults.SOGoMailFetchAllUnseenCountFolders,n=c.$Preferences.defaults.SOGoRefreshViewCheck;if(s)t=[];else{if(!e)throw Error("SOGoMailFetchAllUnseenCountFolders is disabled and no folders list provided");t=e}_.forEach(c.$accounts,function(e){s?_.forEach(e.$$flattenMailboxes,function(e){t.push(e.id)}):(_.includes(t,e.id+"/folderINBOX")||t.push(e.id+"/folderINBOX"),_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(e.unseenCount)&&!_.includes(t,e.id)&&t.push(e.id)}))}),c.$$resource.post("","unseenCount",{mailboxes:t}).then(function(t){_.forEach(c.$accounts,function(e){_.forEach(e.$$flattenMailboxes,function(e){angular.isDefined(t[e.id])&&(e.unseenCount=t[e.id])})})}),n&&"manually"!=n&&(c.$refreshUnseenCount&&c.$timeout.cancel(c.$refreshUnseenCount),c.$refreshUnseenCount=c.$timeout(angular.bind(this,c.refreshUnseenCount,e),1e3*n.timeInterval()))},c.prototype.getLength=function(){return this.$expanded?this.$flattenMailboxes().length:0},c.prototype.getItemAtIndex=function(e){var t=this.$flattenMailboxes();return 0<=e&&e"+e.signature+"
"),e.textSignature=_.map(t.contents(),"textContent").join(" ").trim()):e.textSignature="",e.textSignature},c.prototype.$hasCertificate=function(){return this.security&&this.security.hasCertificate},c.prototype.$certificate=function(){var t=this;return this.$hasCertificate()?this.$$certificate?c.$q.when(this.$$certificate):c.$$resource.fetch(this.id.toString(),"certificate").then(function(e){return t.$$certificate=e}):c.$q.reject()},c.prototype.$removeCertificate=function(){var e=this;return c.$$resource.fetch(this.id.toString(),"removeCertificate").then(function(){e.security.hasCertificate=!1})},c.prototype.updateQuota=function(e){var t,s;e.maxQuota?(t=Math.round(1e4*e.usedSpace/e.maxQuota)/100,s=l("quotasFormat").formatted(t,Math.round(e.maxQuota/10.24)/100)):e.maxMessages&&(t=Math.round(1e4*e.messagesCount/e.maxMessages)/100,s=l("messageQuotasFormat").formatted(t,e.maxMessages)),this.$quota={percent:t,description:s}},c.prototype.$newMessage=function(n){var i=this;return c.$$resource.fetch(this.id.toString(),"compose").then(function(e){return c.$log.debug("New message (compose): "+JSON.stringify(e,void 0,2)),new c.$Message(e.accountId,i.$getMailboxByPath(e.mailboxPath),e)}).then(function(s){return c.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(e){var t=c.$Preferences.defaults.AuxiliaryMailAccounts[i.id];return t.security&&(t.security.alwaysSign&&(e.sign=!0),t.security.alwaysEncrypt)&&(e.encrypt=!0),c.$log.debug("New message (edit): "+JSON.stringify(e,void 0,2)),angular.extend(s.editable,e),s.isNew=!0,n&&n.mailto&&(angular.isObject(n.mailto)?angular.extend(s.editable,n.mailto):s.$parseMailto(n.mailto)),s})})},c.prototype.$addDelegate=function(e){var t=this,s=c.$q.defer(),n={uid:e.uid};return!e.uid||-1<_.indexOf(_.map(this.delegates,"uid"),e.uid)?s.resolve():c.$$resource.fetch(this.id.toString(),"addDelegate",n).then(function(){t.delegates.push(e),s.resolve(t.users)},function(e,t){s.reject(l("An error occured, please try again."))}),s.promise},c.prototype.$removeDelegate=function(t){var s=this,e={uid:t};return c.$$resource.fetch(this.id.toString(),"removeDelegate",e).then(function(){var e=_.indexOf(_.map(s.delegates,"uid"),t);0<=e&&s.delegates.splice(e,1)})},c.prototype.$omit=function(t){var s={},n=[],i=[],a=!1;return angular.forEach(this,function(e,t){"constructor"!=t&&"identities"!=t&&"$"!=t[0]&&(s[t]=angular.copy(e))}),t&&(_.forEach(this.$mailboxes,function(e){i.push(e.$omit(t))}),s.$mailboxes=i),_.forEach(this.identities,function(e){e.isReadOnly&&!t||n.push(_.pick(e,["email","fullName","replyTo","signature","isDefault"])),e.isDefault&&(a=e)}),s.identities=n,a&&s.forceDefaultIdentity||delete s.forceDefaultIdentity,s}}(),function(){"use strict";function u(e,t){this.$account=e,"function"!=typeof t.then?(this.init(t),this.name&&!this.path&&(e=u.$$resource.create("createFolder",this.name),this.$unwrap(e))):this.$unwrap(t)}u.$factory=["$q","$timeout","$log","$rootScope","sgSettings","Resource","Message","Acl","Preferences","sgMailbox_PRELOAD","sgMailbox_BATCH_DELETE_LIMIT",function(e,t,s,n,i,a,o,r,l,c,d){return angular.extend(u,{$q:e,$timeout:t,$log:s,$rootScope:n,$$resource:new a(i.activeUser("folderURL")+"Mail",i.activeUser()),$Message:o,$$Acl:r,$Preferences:l,$query:{sort:"arrival",asc:0},selectedFolder:null,$refreshTimeout:null,$virtualMode:!1,$virtualPath:!1,$searchMode:!1,PRELOAD:c,BATCH_DELETE_LIMIT:d}),l.settings.Mail.SortingState&&(u.$query.sort=l.settings.Mail.SortingState[0],u.$query.asc=parseInt(l.settings.Mail.SortingState[1])),u}];try{angular.module("SOGo.MailerUI")}catch(e){angular.module("SOGo.MailerUI",["SOGo.Common"])}angular.module("SOGo.MailerUI").constant("sgMailbox_PRELOAD",{LOOKAHEAD:50,SIZE:100}).constant("sgMailbox_BATCH_DELETE_LIMIT",1e3).factory("Mailbox",u.$factory),u.$find=function(e,t){t=t&&t.all?this.$$resource.fetch(e.id.toString(),"viewAll"):this.$$resource.fetch(e.id.toString(),"view");return u.$unwrapCollection(e,t)},u.$unwrapCollection=function(n,e){function i(e,t){t.isSentFolder=t.isSentFolder||"sent"==t.type,t.isDraftsFolder=t.isDraftsFolder||"draft"==t.type;for(var s=0;s{"subject_or_from"!=e.searchBy&&"contains"!=e.searchBy&&"body"!=e.searchBy&&"from"!=e.searchBy&&"to"!=e.searchBy&&"subject"!=e.searchBy||e.searchInput.split(" ").forEach(e=>{e=e.trim().toLowerCase();this.$highlightWords.includes(e)||this.$highlightWords.push(e)})})),angular.extend(i,{sortingAttributes:u.$query}),angular.isDefined(t)?(i.filters=_.reject(angular.copy(t),function(e){return!e.searchInput||0===e.searchInput.length}),_.forEach(i.filters,function(e){var t=e.searchBy.match(/(\w+)_or_(\w+)/);t&&(i.sortingAttributes.match="OR",e.searchBy=t[1],(e=angular.copy(e)).searchBy=t[2],i.filters.push(e))})):e||this.$flaggedOnly||this.$unseenOnly||!this.$syncToken||(n="changes",i.syncToken=this.$syncToken),this.$unseenOnly&&(i.unseenOnly=1),this.$flaggedOnly&&(i.flaggedOnly=1),_.filter(_.keys(this.$filteredLabels),function(e){return!!s.$filteredLabels[e]})),t=(e.length&&(i.labels=e),u.$virtualMode||(e=u.$Preferences.defaults.SOGoRefreshViewCheck)&&"manually"!=e&&(t=angular.bind(this,u.prototype.$filter,null,t),u.$refreshTimeout=u.$timeout(t,1e3*e.timeInterval())),u.$$resource.post(this.id,n,i));return this.$unwrap(t)},u.prototype.$loadMessage=function(e){var t,s,n=this.uidsMap[e],i=this.$messages.length,a=!1;if(angular.isDefined(this.uidsMap[e])&&nr.uids.length-1)&&(c.$topIndex=0),r.syncToken&&(c.$syncToken=r.syncToken),r.deleted&&(_.forEachRight(r.deleted,function(e,t){e=c.uidsMap[e.toString()];(e<0||!c.$messages[e])&&r.deleted.splice(t,1)}),r.deleted.length)&&c.$_deleteMessages(r.deleted),r.changed){var i,o=0;if(_.forEach(r.changed,function(e){angular.isUndefined(c.uidsMap[e.toString()])&&(c.uidsMap[e]=o,c.$messages.splice(o,0,{uid:e}),n=!0,o++)}),0",e.name.length<10?e.shortname=e.name:e.name.split(" ").length&&(e.shortname=_.first(_.last(e.name.split(/, */)).split(/ +/)).replace("'",""))):e.email&&(e.full="<"+e.email+">",e.shortname=e.email.split("@")[0]),e.image=r.$avatar(e.email,32),0<=_.indexOf(s,e.email)&&(e.shortname=l("me"))})})},r.prototype.$shortRecipients=function(s){var t=this,n=[],i=0,a=0;return _.forEach(["to","cc","bcc"],function(e){a+=t[e]?t[e].length:0,_.forEach(t[e],function(e,t){i":this[e][0].name||this[e][0].email||"")),punycode.toUnicode(n)},r.prototype.allowReplyAll=function(){var n=_.map(this.$mailbox.$account.identities,"email"),e=_.reduce(["to","cc","bcc","reply-to"],_.bind(function(e,t){var s=0;return this[t]?(s=this[t].length,_.forEach(this[t],function(e){0<=_.indexOf(n,e.email)&&s--}),e+s):e},this),0);return!this.isDraft&&1"}),n={to:e}),_.forEach(["subject","body"],function(e){var t=new RegExp(e+"=([^&]+)");e="body"==e?"text":e,(i=t.exec(s))&&(n[e]=decodeURIComponent(i[1]))}),"html"==r.$Preferences.defaults.SOGoMailComposeMessageType&&n.text&&0")),_.forEach(["cc","bcc"],function(e){var t=new RegExp(e+"=([^&]+)");(i=t.exec(s))&&(n[e]=_.map(decodeURIComponent(i[1]).split(","),function(e){return"<"+e.trim()+">"}))}),_.isEmpty(n)||angular.extend(this.editable,n)},r.prototype.$reply=function(){return this.$newDraft("reply")},r.prototype.$replyAll=function(){return this.$newDraft("replyall")},r.prototype.$forward=function(){return this.$newDraft("forward")},r.prototype.$compose=function(){return this.$newDraft("compose")},r.prototype.$newDraft=function(n){var i=this;return r.$$resource.fetch(this.$absolutePath(),n).then(function(e){var t,s;return r.$log.debug("New "+n+": "+JSON.stringify(e,void 0,2)),t=i.$mailbox.$account.$getMailboxByPath(e.mailboxPath),s=new r(e.accountId,t,e),r.$$resource.fetch(s.$absolutePath({asDraft:!0}),"edit").then(function(e){r.$log.debug("New "+n+": "+JSON.stringify(e,void 0,2)+" original UID: "+i.uid);var t=r.$Preferences.defaults.AuxiliaryMailAccounts[i.$mailbox.$account.id];return t.security&&(t.security.alwaysSign&&(e.sign=!0),t.security.alwaysEncrypt)&&(e.encrypt=!0),e.isHTML&&(t=(t=(t=(t=(t=(t=(t=e.text).replace(/<\/?html[^>]*>/g,"")).replace(/<\/?body[^>]*>/g,"")).replace(/]*>.*<\/meta>/g,"")).replace(/]*>.*<\/link>/g,"")).replace(/]*>.*<\/base>/g,"")).replace(/]*>.*<\/title>/g,""),e.text=t),angular.extend(s.editable,e),s.origin={message:i,action:n},s})})},r.prototype.$save=function(){var t=this,e=this.$omit();return r.$log.debug("save = "+JSON.stringify(e,void 0,2)),r.$$resource.save(this.$absolutePath({asDraft:!0}),e).then(function(e){r.$log.debug("save = "+JSON.stringify(e,void 0,2)),t.$setUID(e.uid),t.$reload(),t.isNew=!1})},r.prototype.punycode=function(e){var t=/<(.*)>|^([\w\-\.@]+)$/gm.exec(e),s=e;return t&&0','
',' '," arrow_back"," ",' image','
',' '," file_download"," ","
",'
',' '," navigate_before"," ",' ',' '," navigate_next"," ","
",'
','
',' ',"
","
",""].join(""),trapFocus:!0,clickOutsideToClose:!0,escapeToClose:!0,focusOnOpen:!0,onOpenComplete:function(){s.show=!0,_.forEach(u.$document.find("sg-image-gallery")[0].getElementsByClassName("sg-image-thumbnail"),function(e){var t=e.children[0];angular.element(t).one("load",function(){t.naturalWidtht.scrollTop+t.clientHeight)&&document.querySelectorAll(".md-virtual-repeat-scroller")[1].scrollTo({top:C*e-(t.clientHeight-C)/2,behavior:"smooth"})}function P(e){var t;M.selectedFolder.hasSelectedMessage()&&0<=(t=E(e))&&M.toggleMessageSelection(e,M.selectedFolder.$messages[t])}function k(e){var t;M.selectedFolder.hasSelectedMessage()&&0<=(t=A(e))&&M.toggleMessageSelection(e,M.selectedFolder.$messages[t])}function O(){return y.$virtualMode?M.selectedFolder.$mailboxes:[M.selectedFolder]}function T(e,t){var s,n,i=t;M.mode.multiple=M.selectedFolder.selectedCount(),e&&(0{e.setHighlightWords([])}),M.mode.search=!1,M.selectedFolder.$filter(M.service.$query).then(function(){M.selectedFolder.$selectedMessage&&(M.selectedFolder.$topIndex=M.selectedFolder.uidsMap[M.selectedFolder.$selectedMessage])})},this.composeWindowEnabled=function(){return $.defaults.SOGoMailComposeWindowEnabled},this.openInPopup=function(e,t){var s=[f.baseURL(),"UIxMailPopupView#!/Mail",this.account.id],n=this.account.id+"/"+Math.random(0,1e3);e&&(s.push(g(g(e.$mailbox.path))),s.push(e.uid),n=e.$absolutePath()),t&&(n+="/"+t,s.push(t)),s=s.join("/"),i.open(s,n,["resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){i.document.body.classList.contains("popup")&&i.close()},this._showMailEditorInPopup=function(e,t,s){return!(f.isPopup||"popup"!=$.defaults.SOGoMailComposeWindow&&!s||(this.openInPopup(e,t),0))},this.newMessage=function(t,e){this._showMailEditorInPopup(null,"new",e)||this.account.$newMessage().then(function(e){F(t,e)})},this.selectMessage=function(e){(y.$virtualMode?(M.isLoadingMessage=!0,o.go("mail.account.virtualMailbox.message",{mailboxId:g(g(e.$mailbox.path)),messageId:e.uid}).then(function(){}).catch(e=>{console.error(e)})):(M.isLoadingMessage=!0,o.go("mail.account.mailbox.message",{mailboxId:g(g(e.$mailbox.path)),messageId:e.uid}).then(function(){}).catch(e=>{console.error(e)}))).finally(()=>{M.isLoadingMessage=!1,M.nextAction&&(M.nextAction.m(M.nextAction.p),M.nextAction=null)})},this.toggleMessageSelection=function(e,t){var s,n,i,a=M.selectedFolder;if(!(t=t||a.selectedMessage()))return!0;if(t.selected=!t.selected,e.shiftKey&&0{e=e.trim().toLowerCase();this.highlightWords.includes(e)||this.highlightWords.push(e)})},this.reset=function(){this.highlightWords=[],this.searchForm={from:"",to:"",contains:"",notContains:"",subject:"",body:"",date:"anytime",dateStart:new Date,dateEnd:new Date,bcc:"",size:"",sizeOperator:">",sizeUnit:"mb",attachements:0,favorite:0,unseen:0,tags:{searchText:"",selected:""},flags:[]}},this.addSearchParameters=function(){if(this.search.params=[],this.highlightWords=[],this.searchForm.from&&0="));break;case"last30days":n.setDate(n.getDate()-30),t=this.formatDate(n),this.search.params.push(this.newSearchParam("date",t,">="));break;case"last6month":n.setMonth(n.getMonth()-6),t=this.formatDate(n),this.search.params.push(this.newSearchParam("date",t,">="));break;case"before":t=this.formatDate(this.searchForm.dateStart),this.search.params.push(this.newSearchParam("date",t,"<"));break;case"after":t=this.formatDate(this.searchForm.dateStart),this.search.params.push(this.newSearchParam("date",t,">="));break;case"between":t=this.formatDate(this.searchForm.dateStart),e=this.formatDate(this.searchForm.dateEnd),this.search.params.push(this.newSearchDateBetweenParam(t,e))}}this.searchForm.size&&0{}),F.virtualMailbox.setMailboxes(t),F.virtualMailbox.startSearch(F.search.match,F.search.params),"mail.account.virtualMailbox"!=c.$current.name&&c.go("mail.account.virtualMailbox",{accountId:F.accounts[0].id}))},this.formatDate=function(e){return e.getFullYear()+"-"+(e.getMonth()+1).toString().padStart(2,"0")+"-"+e.getDate().toString().padStart(2,"0")},this.changeDate=function(){"between"==this.searchForm.date&&this.searchForm.dateStart>this.searchForm.dateEnd&&(this.searchForm.dateEnd=this.searchForm.dateStart)},this.newSearchParam=function(e,t,s=">"){if(t.length&&e.length){var n=0;switch(t.startsWith("!")&&(t=t.substring(n=1).trim()),e){case"size":return{searchBy:e,searchInput:t,negative:n,operator:s,sizeUnit:this.searchForm.sizeUnit};case"date":return{searchBy:e,searchInput:t,negative:n,operator:s};default:return{searchBy:e,searchInput:t,negative:n}}}},this.newSearchDateBetweenParam=function(e,t){return{searchBy:"date_between",searchInput:"*",dateFrom:e,dateTo:t,negative:0}},this.newSearchFlagsParam=function(){return{searchBy:"flags",searchInput:"*",flags:F.searchForm.flags,negative:0}},this.toggleAccountState=function(e){e.$expanded=!e.$expanded,this.debounceSaveState||(this.debounceSaveState=a.debounce(function(){e.$flattenMailboxes({reload:!0,saveState:!0})},1e3)),this.debounceSaveState()},this.subscribe=function(e){function t(e,t,s){var n=this;n.loading=!0,n.filter={name:""},n.account=new b({id:s.id,name:s.name}),n.close=function(){t.hide()},n.account.$getMailboxes({reload:!0,all:!0}).then(function(){n.loading=!1})}d.show({templateUrl:e.id+"/subscribe",controller:t,controllerAs:"subscriptions",clickOutsideToClose:!0,escapeToClose:!0,locals:{srcAccount:e}}).finally(function(){e.$getMailboxes({reload:!0})}),t.$inject=["$scope","$mdDialog","srcAccount"]},this.showAdvancedSearch=function(){F.advancedSearchPanelVisible||(F.advancedSearchPanelVisible=!0,y.selectedFolder.path&&(y.$virtualPath=y.selectedFolder.path),o(h["gt-md"])||r("left").close(),d.show({template:document.getElementById("advancedSearch").innerHTML,parent:angular.element(document.body),controller:function(){this.$onInit=function(){this.mainController=F,this.mailbox=y,this.message=C},this.closeDialog=function(){d.hide(),F.advancedSearchPanelVisible=!1},this.search=function(){this.mainController.addSearchParameters(),d.hide(),F.advancedSearchPanelVisible=!1}},controllerAs:"dialogCtrl",clickOutsideToClose:!1,escapeToClose:!1}))},this.newFolder=function(e){f.prompt(l("New Folder..."),l("Enter the new name of your folder")).then(function(s){e.$newMailbox(e.id,s).then(function(){},function(e,t){f.alert(l('An error occured while creating the mailbox "%{0}".',s),l(e.error))})})},this.delegate=function(e){function t(e,t,s,n){var i=this;i.users=n.delegates,i.account=n,i.userToAdd="",i.searchText="",i.userFilter=function(e){return s.$filter(e,n.delegates)},i.closeModal=function(){t.hide()},i.removeUser=function(e){n.$removeDelegate(e.uid).catch(function(e,t){f.alert(l("Warning"),l("An error occured, please try again."))})},i.addUser=function(e){e&&n.$addDelegate(e).then(function(){i.userToAdd="",i.searchText=""},function(e){f.alert(l("Warning"),e)})}}d.show({templateUrl:e.id+"/delegation",controller:t,controllerAs:"delegate",clickOutsideToClose:!0,escapeToClose:!0,locals:{User:M,account:e}}),t.$inject=["$scope","$mdDialog","User","account"]},this.isDroppableFolder=function(e,t){return t.id!=e.id&&t.isWritable()},this.dragSelectedMessages=function(e,t,s){var n,i,a,o,t="/"+t.id,r=e.selectedMessages();0===r.length&&(r=[e.selectedMessage()]),n=_.map(r,"uid"),i=e.$selectedMessage&&0<=n.indexOf(e.$selectedMessage),o="copy"==s?(a=e.$copyMessages(r,t),l("%{0} message(s) copied",r.length)):(a=e.$moveMessages(r,t),l("%{0} message(s) moved",r.length)),a.then(function(){i&&c.go("mail.account.mailbox"),u.show(u.simple().textContent(o).position(h.toastPosition).hideDelay(2e3))})}}e.$inject=["$scope","$rootScope","$state","$transitions","$timeout","$window","$mdUtil","$mdMedia","$mdSidenav","$mdDialog","$mdToast","sgConstant","sgFocus","encodeUriFilter","Dialog","sgSettings","sgHotkeys","Account","Mailbox","VirtualMailbox","User","Preferences","stateAccounts","Message"],angular.module("SOGo.MailerUI").controller("MailboxesController",e)}(),function(){"use strict";function e(n,i,a,c,d,o,r,u,s,h,g,m,f,p,$,b,t,y,v,M,x,e,w,C,S,I){var F=this,E=[];function A(e){return i.mailbox?(0e.length?(n=_.difference(s,e),_.forEach(n,function(e){F.message.addTag(e)})):s.lengths.$lastVisibleIndex&&(s.$topIndex=t-(s.$lastVisibleIndex-s.$topIndex))})):i.go("mail.account.mailbox").then(function(){n=null,delete s.$selectedMessage})}catch(e){}}F.closePopup()}i=e.messageCtrl?(s=e.mailboxCtrl.selectedFolder,n=e.messageCtrl.message,e.messageCtrl.$state):(s=g,n=m,c),w.$virtualMode&&(s=w.selectedFolder),F.mailInDeletion=n.uid,s.$deleteMessages([n]).then(t,function(e){A(y.confirm(l("Warning"),l("The message could not be moved to the trash folder. Would you like to delete it immediately?"),{ok:l("Delete")}).then(function(){s.$deleteMessages([n],{withoutTrash:!0}).then(t).finally(function(){A(null)})}).finally(function(){A(null)}))})},this._showMailEditorInPopup=function(e){return!$.isPopup&&"popup"==v.defaults.SOGoMailComposeWindow&&(this.openInPopup(e),!0)},this.close=function(){var e=w.$virtualMode?"mail.account.virtualMailbox":"mail.account.mailbox";c.go(e).then(function(){F.message=null,delete g.$selectedMessage})},this.reply=function(e){this._showMailEditorInPopup("reply")||k(e,this.message.$reply())},this.replyAll=function(e){this._showMailEditorInPopup("replyall")||k(e,this.message.$replyAll())},this.forward=function(e){this._showMailEditorInPopup("forward")||k(e,this.message.$forward())},this.edit=function(e){this._showMailEditorInPopup("edit")||this.message.$editableContent().then(function(){k(e,F.message)})},this.compose=function(e){this._showMailEditorInPopup("compose")||k(e,this.message.$compose())},this.openInPopup=function(e){var t=[$.baseURL(),"UIxMailPopupView#!/Mail",this.message.accountId,p(p(this.message.$mailbox.path)),this.message.uid].join("/"),s=this.message.$absolutePath();e&&(s+="/"+e,t+="/"+e),n.open(t,s,["width=680","height=520","resizable=1","scrollbars=1","toolbar=0","location=0","directories=0","status=0","menubar=0","copyhistory=0"].join(","))},this.closePopup=function(){n.document.body.classList.contains("popup")&&n.close()},this.newMessage=function(t,e){"A"===t.target.tagName&&(t.stopPropagation(),t.preventDefault()),this.account.$newMessage({mailto:e}).then(function(e){k(t,e)})},this.toggleRawSource=function(e){this.showRawSource||this.message.$rawSource?this.showRawSource=!this.showRawSource:C.$$resource.post(this.message.id,"viewsource").then(function(e){F.message.$rawSource=e,F.showRawSource=!0})},this.activateRawContent=function(e){this.openInPopup("viewRaw")},this.print=function(e){n.print()},this.convertToEvent=function(e){return O(e,"appointment")},this.convertToTask=function(e){return O(e,"task")}}e.$inject=["$window","$scope","$q","$state","$mdMedia","$mdDialog","$mdPanel","sgConstant","stateAccounts","stateAccount","stateMailbox","stateMessage","sgHotkeys","encodeUriFilter","sgSettings","ImageGallery","sgFocus","Dialog","Preferences","Calendar","Component","Account","Mailbox","Message","AddressBook","Card"],angular.module("SOGo.MailerUI").controller("MessageController",e)}(),function(){"use strict";function e(e,n,t,s,i,a,o,r,c,d,u,h,g,m,f,p,$,b,y){var v=this;function M(){var e,t={};try{n.opener&&"$mailboxController"in n.opener&&"selectedFolder"in n.opener.$mailboxController&&(n.opener.$mailboxController.selectedFolder.id==d.$mailbox.id?(t.draftMailboxCtrl=n.opener.$mailboxController,"$messageController"in n.opener&&n.opener.$messageController.message.uid==d.uid&&(t.draftMessageCtrl=n.opener.$messageController)):d.origin&&(e=d.origin.message,n.opener.$mailboxController.selectedFolder.$id()==e.$mailbox.$id())&&(t.originMailboxCtrl=n.opener.$mailboxController))}catch(e){}return t}function x(){v.uploader.url=v.message.$absolutePath({asDraft:!0,withResourcePath:!0})+"/save"}function w(){var e,t,s=v.message.editable.attachmentAttrs;if(s)for(e=0;e",n="
( )?[ \n]?"," "):(n=t="\n"," "),i="above"==this.signaturePlacement?2:1,(v.isNew()&&1===y.defaults.SOGoMailUseSignatureOnNew||!v.isNew()&&1===y.defaults.SOGoMailUseSignatureOnForward&&v.message&&v.message.origin&&v.message.origin.action&&"forward"===v.message.origin.action||!v.isNew()&&1===y.defaults.SOGoMailUseSignatureOnReply&&v.message&&v.message.origin&&v.message.origin.action&&"reply"===v.message.origin.action)&&(o=e&&e.signature?t.repeat(i)+"--"+a+t+e.signature:"",!_.find(this.identities,function(e,t){if(e.signature)try{var s=new RegExp("("+n+"){"+i+"}--"+a+n+e.signature.replace(/[-\[\]{}()*+?.,\\^$|#\s]/g,"\\$&"));if(0<=v.message.editable.text.search(s))return v.message.editable.text=v.message.editable.text.replace(s,o),!0}catch(e){return v.message.editable.text+=o,!0}return!1}))&&0 |
',' '," ","
",'

'," {{$ctrl.mailbox.$icon}}",' ',' ',"

",' ',' '," ",' more_vert'].join(""),controller:"sgMailboxListItemController",controllerAs:"$ctrl"}})}(),function(){function e(t,e,s,n){var i=this,a=0;this.$onInit=function(){var e=["uid","isread","isflagged","flags","loading"];"draft"!=(this.MailboxService=n).selectedFolder.type&&"templates"!=n.selectedFolder.type||e.push("subject"),t.$watch(function(){return i.message?[_.pick(i.message,e)]:null},function(e,t){i.message&&i.onUpdate()},!0)},this.onUpdate=function(){this.message.loading?e.addClass("sg-skeleton"):(e.removeClass("sg-skeleton"),this.message.isread?e.removeClass("unread"):e.addClass("unread"),n.selectedFolder.isSelectedMessage(this.message.uid,this.message.$mailbox.path)?e.addClass("md-default-theme md-accent md-bg md-hue-2"):e.removeClass("md-default-theme md-accent md-bg md-hue-2"))},this.setVisibility=function(e,t){t?e.classList.remove("ng-hide"):e.classList.add("ng-hide")},t.$on("listRefreshed",function(){s(function(){e.parent()[0]&&e.parent()[0].parentElement&&e.parent()[0].parentElement.parentElement&&(e.parent()[0].parentElement.parentElement.scrollTop=a)},0)}),t.$on("beforeListRefresh",function(){e.parent()[0]&&e.parent()[0].parentElement&&e.parent()[0].parentElement.parentElement&&(a=e.parent()[0].parentElement.parentElement.scrollTop)})}e.$inject=["$scope","$element","$timeout","Mailbox"],angular.module("SOGo.MailerUI").controller("sgMessageListItemController",e).directive("sgMessageListItem",function(){return{restrict:"C",scope:{},bindToController:{message:"=sgMessage"},controller:"sgMessageListItemController"}})}(),function(){function e(n,l,e,t,c,s,i,a,o,r){var d=this;this.$postLink=function(){var t,e,s,o,r;this.parentController=n.parentController,o=this.parentController.onUpdate,r=this.parentController.setVisibility,_.forEach(l.find("div"),function(e){e.classList.contains("sg-tile-content")?t=angular.element(e):e.classList.contains("sg-tile-icons")&&(s=angular.element(e))}),e=t.find("button")[0],this.threadButton=e,e=angular.element(e),this.threadIconElement=e.find("md-icon")[0],this.threadCountElement=e.find("span")[0],this.priorityIconElement=t.find("md-icon")[0],i.$virtualMode&&(this.mailboxNameElement=t.find("span")[0],this.mailboxNameElement.classList.remove("ng-hide")),this.senderElement=t.find("span")[1],_.forEach(t.find("div"),function(e){e.classList.contains("sg-tile-subject")?d.subjectElement=e:e.classList.contains("sg-tile-size")?d.sizeElement=e:e.classList.contains("sg-tile-date")&&(d.dateElement=e)}),_.forEach(s.find("md-icon"),function(e){"star"==e.textContent?d.flagIconElement=e:"reply"==e.textContent?d.answerIconElement=e:"forward"==e.textContent?d.forwardIconElement=e:"attach_file"==e.textContent&&(d.attachmentIconElement=e)}),this.parentController.onUpdate=function(){var e;if(d.message=d.parentController.message,!d.message.loading){var t=l[0].querySelector(".sg-category-dot-container"),s=angular.element(t),n=c.nodesToArray(t.querySelectorAll(".sg-category-dot"));for(_.forEach(n,function(e){t.removeChild(e)}),e=0;e')).css("background-color",d.service.$tags[a][1]),s.append(i))}d.mailboxNameElement&&(d.mailboxNameElement.innerHTML=d.message.$mailbox.$displayName),d.defineSubjectAndSenderElements(),d.message.priority&&d.message.priority.level<3?(d.priorityIconElement.classList.remove("ng-hide"),d.message.priority.level<2?d.priorityIconElement.classList.add("md-warn"):d.priorityIconElement.classList.remove("md-warn")):d.priorityIconElement.classList.add("ng-hide"),d.message.first?(d.threadButton.classList.remove("ng-hide"),d.threadCountElement.innerHTML=d.message.threadCount,d.message.collapsed&&d.threadIconElement.classList.remove("md-rotate-180-ccw")):d.threadButton.classList.add("ng-hide"),d.sizeElement.innerHTML=d.message.size,d.dateElement.innerHTML=d.message.relativedate,r(d.flagIconElement,d.message.isflagged),r(d.answerIconElement,d.message.isanswered),r(d.forwardIconElement,d.message.isforwarded),r(d.attachmentIconElement,d.message.hasattachment)}angular.bind(d.parentController,o)()},this.service=a,this.MailboxService=i},this.defineSubjectAndSenderElements=function(){d&&d.message&&!d.message.loading&&(d.subjectElement.innerHTML=d.message.getHighlightSubject(),d.MailboxService.selectedFolder.isSentFolder||d.MailboxService.selectedFolder.isDraftsFolder?d.senderElement.innerHTML=d.message.highlightSearchTerms(d.message.$shortAddress("to",r.defaults.SOGoMailDisplayFullEmail),!0):d.senderElement.innerHTML=d.message.highlightSearchTerms(d.message.$shortAddress("from",r.defaults.SOGoMailDisplayFullEmail),!0))},this.$doCheck=function(){d.defineSubjectAndSenderElements()},this.toggleThread=function(){this.message.collapsed?this.threadIconElement.classList.add("md-rotate-180-ccw"):this.threadIconElement.classList.remove("md-rotate-180-ccw"),this.message.toggleThread()}}e.$inject=["$scope","$element","$parse","$state","$mdUtil","$mdToast","Mailbox","Message","encodeUriFilter","Preferences"],angular.module("SOGo.MailerUI").controller("sgMessageListItemMainController",e).directive("sgMessageListItemMain",function(){return{restrict:"C",require:"^^sgMessageListItem",scope:{},template:['
','
',"
",' \x3c!-- mailbox --\x3e',' error'," \x3c!-- sender or recipient --\x3e","
",'
\x3c!-- date --\x3e
',"
",'
','
\x3c!-- categories --\x3e
','
\x3c!-- subject --\x3e
','
\x3c!-- size --\x3e
',' ',' expand_more'," ","
","
",'
',' star',' reply',' forward',' attach_file',"
",'
',' \x3c!-- message loading progress --\x3e',"
"].join(""),link:function(e,t,s,n){e.parentController=n},controller:"sgMessageListItemMainController",controllerAs:"$ctrl"}})}(),function(){"use strict";function e(e,t){var s=this;this.$postLink=function(){t.registerImage(e),e.on("click",this.showImage)},this.showImage=function(e){"IMG"==e.target.tagName&&t.showGallery(e,s.partIndex)}}e.$inject=["$element","ImageGallery"],angular.module("SOGo.MailerUI").directive("sgZoomableImage",function(){return{restrict:"A",bindToController:{partIndex:"=sgZoomableImage"},controller:e}})}(); //# sourceMappingURL=Mailer.services.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer.services.js.map b/UI/WebServerResources/js/Mailer.services.js.map index 4151da701..b4e0b4aa5 100644 --- a/UI/WebServerResources/js/Mailer.services.js.map +++ b/UI/WebServerResources/js/Mailer.services.js.map @@ -1 +1 @@ -{"version":3,"file":"Mailer.services.js","sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/sgImageGallery.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgAccountSection.directive.js","Mailer/sgIMIP.directive.js","Mailer/sgMailboxListItem.directive.js","Mailer/sgMessageListItem.directive.js","Mailer/sgMessageListItemMain.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","_this","this","then","angular","extend","_","forEach","identities","identity","element","fullName","email","full","signature","textSignature","map","contents","join","trim","$mailboxes","$Mailbox","$unwrapCollection","$q","when","mailboxes","collection","$factory","$timeout","$log","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Message","module","e","factory","$findAll","data","$accounts","fetch","o","i","id","refreshUnseenCount","folders","unseenCountFolders","fetchAllUnseenCountFolders","defaults","SOGoMailFetchAllUnseenCountFolders","refreshViewCheck","SOGoRefreshViewCheck","Error","account","$$flattenMailboxes","mailbox","push","includes","isDefined","unseenCount","post","$refreshUnseenCount","cancel","bind","timeInterval","prototype","getLength","$expanded","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","reload","$futureMailboxesData","$find","_visitForUnseencount","previousMailbox","find","previousMailboxes","children","all","_visitForExpanded","expandedFolders","indexOf","settings","Mail","ExpandedFolders","isString","fromJson","warn","_visit","allMailboxes","saveState","reduce","$getMailboxByType","type","_find","$getMailboxByPath","path","$newMailbox","name","toString","getTextSignature","$hasCertificate","security","hasCertificate","$certificate","$$certificate","reject","$removeCertificate","updateQuota","percent","description","maxQuota","Math","round","usedSpace","l","formatted","maxMessages","messagesCount","$quota","$newMessage","debug","JSON","stringify","undefined","accountId","mailboxPath","message","$absolutePath","asDraft","accountDefaults","AuxiliaryMailAccounts","alwaysSign","sign","alwaysEncrypt","encrypt","editable","isNew","mailto","isObject","$parseMailto","$addDelegate","user","deferred","defer","param","uid","delegates","resolve","users","status","promise","$removeDelegate","splice","$omit","deep","defaultIdentity","value","key","copy","isReadOnly","pick","isDefault","forceDefaultIdentity","futureMailboxData","$account","init","newMailboxData","create","$unwrap","$rootScope","Acl","PRELOAD","BATCH_DELETE_LIMIT","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","$virtualPath","$searchMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","isSentFolder","isDraftsFolder","quotas","split","component","asCSSIdentifier","isUndefined","uidsMap","headers","$isLoading","$messages","$visibleMessages","$selectedMessages","$highlightWords","$id","$acl","threaded","$collapsedThreads","threadsCollapsed","$displayName","$isEditable","isEditable","$isSpecial","$icon","$isNoInferiors","isNoInferiors","$shadowData","selectFolder","setSearchMode","searchMode","$lastVisibleIndex","max","$loadMessage","selectedMessages","updateCache","filter","selected","selectedCount","$unselectMessages","isSelectedMessage","messageId","$selectedMessage","selectedMessage","$selectedMessageIndex","hasSelectedMessage","$filter","sortingAttributes","filters","action","labels","searchBy","searchInput","word","cleanedWord","toLowerCase","match","secondFilter","$flaggedOnly","$unseenOnly","$syncToken","syncToken","unseenOnly","flaggedOnly","keys","$filteredLabels","k","f","endIndex","uids","startIndex","loaded","subject","min","loading","futureHeadersData","$unwrapHeaders","flags","isNoSelect","isWritable","getClassName","base","$rename","findParent","parent","parentMailbox","$save","_updateChildren","child","replace","pathRE","oldPath","sibling","localeCompare","RegExp","$compact","$canFolderAs","$setFolderAs","$empty","capitalize","substring","$markAsRead","isread","getLabels","$labels","filteredByLabel","$flagMessages","messages","operation","msgUIDs","forwardMessages","saveSelectedMessages","selectedUIDs","download","exportFolder","filename","open","$delete","$_deleteMessages","firstIndex","forEachRight","selectedIndex","findIndex","updateVisibleMessages","$deleteMessages","batchSize","_deleteMessages","start","end","currentUids","slice","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$move","parentPath","finally","save","response","error","$reset","Object","assign","childrenArray","collapsedThread","msg","first","collapsed","$broadcast","$futureMailboxData","headersFields","msgObject","hasNewMessages","$topIndex","deleted","j","changed","msgs","zipObject","count","isNaN","threadMember","invokeMap","isError","messageHeaders","$updateSubscribe","subscribed","setHighlightWords","highlightWords","getHighlightWords","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","threadCount","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","results","tag","pair","search","color","$formatFullAddresses","flag","charAt","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","last","image","$shortRecipients","result","total","$shortAddress","fullEmail","address","String","emailRE","punycode","toUnicode","allowReplyAll","recipientsCount","typeCount","recipient","isDraft","loadUnsafeContent","$parts","$content","arr","from","parts","part","winmail","msgclass","content","alternatePart","preferredPart","contentType","isArray","encrypted","valid","decrypted","opaqueSigned","signed","certificate","certificates","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","elements","querySelectorAll","removeAttr","compile","hasOwn","shouldDisplayAttachment","highlightSearchTerms","getHighlightSubject","getHighlightFrom","encodeEntities","dom","Mark","mark","remove","fullHighlighted","nameHighlighted","$editableContent","text","$plainContent","addTag","_tag","label","imapName","$addOrRemoveTag","removeTag","toggleRead","$imipAction","$reload","$sendMDN","shouldAskReceipt","hasAttachments","$deleteAttachment","attachmentAttrs","attachment","toggleFlag","isflagged","toggleThread","catch","$loaded","useCache","$futureMessageData","SOGoMailAutoMarkAsReadDelay","$markAsReadPromise","raw","exec","decodeURIComponent","SOGoMailComposeMessageType","isEmpty","$reply","$newDraft","$replyAll","$forward","$compose","isHTML","origin","r","puny","toASCII","$send","startsWith","isanswered","isforwarded","isRead","privateAttributes","source","addr","downloadArchive","downloadAttachmentsArchive","ImageGallery","show","$document","$mdPanel","sgHotkeys","setMessage","registerImage","registerHotkeys","$ctrl","createHotkey","callback","previousImage","nextImage","registerHotkey","showGallery","$event","partIndex","partSrc","src","_findImages","images","viewURL","panelPosition","body","addClass","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","lastIndex","selectedImage","bindToController","controller","PanelController","controllerAs","position","targetEvent","fullscreen","hasBackdrop","template","trapFocus","clickOutsideToClose","escapeToClose","focusOnOpen","onOpenComplete","getElementsByClassName","imgContainer","imgEl","one","naturalWidth","naturalHeight","classList","add","onDomRemoved","removeClass","hotkeys","deregisterHotkey","mdPanelRef","close","selectImage","$inject","VirtualMailbox","setMailboxes","startSearch","params","stopSearch","resetSelectedMessage","len","offset","selectedMailbox","transform","messagesMap","size","sum","allMessages","promises","flatten","currentMailbox","$comact","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgConstant","sgSettings","focus","Dialog","sortLabels","vm","defaultWindowTitle","msgHeight","_compactBeforeUnload","event","_messageDialog","arguments","messageDialog","_showMailEditor","onCompleteDeferred","templateUrl","onComplete","scope","stateParent","stateMessage","onCompletePromise","noop","closePopup","_nextMessage","isLoadingMessage","nextAction","m","p","_scrollToIndex","selectMessage","preventDefault","_previousMessage","scroller","querySelector","scrollTop","clientHeight","scrollTo","top","behavior","_addNextMessageToSelection","toggleMessageSelection","_addPreviousMessageToSelection","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","mode","multiple","go","date","arrival","$onInit","$mailboxController","service","accounts","allSelected","newMessage","markOrUnMarkMessagesAsJunk","preventInClass","hotkey","confirmDeleteSelectedMessages","on","$on","off","$watch","title","centerIsClose","navController_centerIsClose","field","sortedBy","ascending","refresh","pollInbox","cancelSearch","$$state","composeWindowEnabled","SOGoMailComposeWindowEnabled","openInPopup","url","baseURL","wId","random","contains","_showMailEditorInPopup","inPopup","isPopup","SOGoMailComposeWindow","mailboxId","console","err","nextSelectedIndex","shiftKey","stopPropagation","confirm","ok","deleteSelectedMessage","withoutTrash","moveSelectedMessage","dstFolder","copySelectedMessages","simple","textContent","toastPosition","hideDelay","moveSelectedMessages","selectAll","unselectMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","markSelectedMessagesAsRead","forwardSelectedMessages","mdVirtualRepeatContainerDirectiveDecorator","$delegate","resetScroll","$element","updateSize","decorator","MailboxesController","$transitions","$mdUtil","$mdMedia","$mdSidenav","User","closeDialog","hide","advancedSearchPanelVisible","reset","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","selectedFolderController","$selectedCount","confirmDelete","showAdvancedSearch","hideAdvancedSearch","searchPreviousMailbox","addHighlightWords","sentence","searchForm","notContains","dateStart","Date","dateEnd","sizeOperator","sizeUnit","attachements","favorite","unseen","tags","searchText","addSearchParameters","newSearchParam","doesnotcontains","dateTo","today","tmp","setDate","getDate","formatDate","setMonth","getMonth","newSearchDateBetweenParam","newSearchFlagsParam","toggleAdvancedSearch","searchFieldChange","keyCode","root","virtualMailbox","$current","getFullYear","padStart","changeDate","searchParam","pattern","operator","n","negative","dateFrom","toggleAccountState","debounceSaveState","debounce","subscribe","SubscriptionsDialogController","srcAccount","getElementById","mainController","newFolder","parentFolder","prompt","alert","delegate","MailboxDelegationController","userToAdd","userFilter","closeModal","removeUser","addUser","isDroppableFolder","srcFolder","dragSelectedMessages","clearMessageView","success","dstId","MessageController","Calendar","Component","AddressBook","Card","_unlessInDialog","apply","$parentControllers","ctrls","opener","mailboxCtrl","$messageController","messageCtrl","_convertToComponent","componentData","pid","$defaultCalendar","summary","comment","stateComponent","isPopupWindow","showFlags","$alwaysShowDetailedRecipients","$showDetailedRecipients","showRawSource","mailInDeletion","reply","replyAll","forward","deleteMessage","$watchCollection","newTags","oldTags","wasflagged","_newTags","_oldTags","difference","addFlags","toggleDetailedRecipients","focusChip","chipElement","tagName","parentNode","blurChip","relatedTarget","panel","selectRecipient","targetElement","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","addressbooks","$addressbooks","subscriptions","$subscriptions","MenuController","onKeyDown","which","newCard","addressbookId","card","c_cn","emails","panelRef","panelEl","filterMailtoLinks","href","attributes","state","parentCtrls","_success","destination","edit","compose","toggleRawSource","$rawSource","activateRawContent","print","convertToEvent","convertToTask","MessageEditorController","$stateParams","FileUploader","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","_updateFileUploader","uploader","_addAttachments","fileItem","attrs","mimetype","FileItem","progress","isUploaded","isSuccess","inlineUrl","queue","toggleFullscreen","isFullscreen","autocomplete","autosave","screen","orientation","hideBcc","hideCc","fromIdentity","identitySearchText","recipientSeparatorKeys","emailSeparatorKeys","sendState","firstFocus","editor","autoUpload","alias","removeAfterUpload","onSuccessItem","item","lastAttachmentAttrs","file","onCancelItem","removeFromQueue","onErrorItem","SOGoMailAutoSave","autosaveDrafts","localeCode","LocaleCode","ckConfig","language","ckLocaleCode","composeType","signaturePlacement","SOGoMailSignaturePlacement","replyPlacement","SOGoMailReplyPlacement","destroy","actionName","removeAttachment","isUploading","cancelItem","toast","prop","ignoreReturn","send","onEditorChange","errorMessage","statusText","contactFilter","$filterAll","priority","cards","explodedCards","manyCards","uniqBy","$$fullname","$$email","containername","addRecipient","contact","list","recipients","charCodeAt","isValidEmail","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","$isGroup","isExpandable","members","$members","setFromIdentity","reNl","nlNb","space","quotedMessageIndex","nl","SOGoMailUseSignatureOnNew","SOGoMailUseSignatureOnForward","SOGoMailUseSignatureOnReply","repeat","currentIdentity","currentSignature","identitySearch","q","expandGroup","onTextFocus","textArea","newOffset","val","hasSignature","test","signatureLength","setCaretTo","sigLimit","lastIndexOf","caretPosition","matches","onHTMLReady","$editor","onHTMLFocus","node","caretAtTop","getSelection","selected_ranges","getRanges","getBody","getChildren","getItem","x","getPrevious","encodeURI","getText","selectElement","scrollIntoView","collapse","selectRanges","SendMessageToastController","closeToast","sgAccountController","$postLink","quotaElement","div","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","pathToAttachment","link","iElement","sgImipPath","sgMailboxListItemController","editMode","accountController","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","srcEvent","select","saveFolder","disabled","revertEditing","showMenu","itemCtrl","$menuCtrl","markFolderRead","compactFolder","emptyJunkFolder","emptyFolder","emptyTrashFolder","successMsg","share","encodeURL","$users","usersWithACL","setFolderAs","isParentOf","findChildren","moveFolder","require","sgMessageListItemController","scrollPosition","watchedAttrs","MailboxService","newId","oldId","onUpdate","setVisibility","visible","parentElement","sgMessageListItemMainController","$parse","contentDivElement","threadButton","iconsDivElement","parentControllerOnUpdate","parentController","threadIconElement","threadCountElement","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagList","$flagList","flagElements","nodesToArray","flagElement","removeChild","css","append","defineSubjectAndSenderElements","relativedate","hasattachment","SOGoMailDisplayFullEmail","$doCheck","sgZoomableImageController","showImage"],"mappings":"AAEA,CAAA,WACE,aAOA,SAASA,EAAQC,GACf,IAAIC,EAAQC,KAE0B,YAAlC,OAAOF,EAAkBG,OAC3BC,QAAQC,OAAOH,KAAMF,CAAiB,EACtCM,EAAEC,QAAQL,KAAKM,WAAY,SAASC,GAOlC,IACMC,EAPFD,EAASE,UAAYF,EAASG,MAChCH,EAASI,KAAOJ,EAASE,SAAW,KAAOF,EAASG,MAAQ,IACrDH,EAASG,MAChBH,EAASI,KAAO,IAAMJ,EAASG,MAAQ,IAEvCH,EAASI,KAAO,GACdJ,EAASK,YACPJ,EAAUN,QAAQM,QAAQ,QAAUD,EAASK,UAAY,QAAQ,EACrEL,EAASM,cAAgBT,EAAEU,IAAIN,EAAQO,SAAS,EAAG,aAAa,EAAEC,KAAK,GAAG,EAAEC,KAAK,EAErF,CAAC,EACGjB,KAAKkB,aAEPrB,EAAQsB,SAASC,kBAAkBpB,KAAMH,EAAQwB,GAAGC,KAAK,CAAEC,UAAWvB,KAAKkB,UAAW,CAAC,CAAC,EAAEjB,KAAK,SAASuB,GACtGzB,EAAMmB,WAAaM,CACrB,CAAC,CAOP,CAOA3B,EAAQ4B,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,WAAY,cAAe,UAAW,UAAW,SAASJ,EAAIK,EAAUC,EAAMC,EAAUC,EAAUC,EAAaC,EAASC,GAWlL,OAVA9B,QAAQC,OAAON,EAAS,CACtBwB,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNM,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFC,aAAcL,EACdX,SAAUY,EACVK,SAAUJ,CACZ,CAAC,EAEMnC,CACT,GAMA,IACEK,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAMC,GACJpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3BE,QAAQ,UAAW1C,EAAQ4B,QAAQ,EAQtC5B,EAAQ2C,SAAW,SAASC,GAC1B,OAAIA,EACK5C,EAAQuB,kBAAkBqB,CAAI,EAE9B5C,EAAQ6C,UACR7C,EAAQwB,GAAGC,KAAKzB,EAAQ6C,SAAS,EAGjC7C,EAAQoC,WAAWU,MAAM,GAAI,cAAc,EAAE1C,KAAK,SAAS2C,GAChE,OAAO/C,EAAQuB,kBAAkBwB,CAAC,CACpC,CAAC,CAEL,EAQA/C,EAAQuB,kBAAoB,SAASqB,GACnC,IAAIjB,EAAa,GAQjB,OANAtB,QAAQG,QAAQoC,EAAM,SAASG,EAAGC,GAChCD,EAAEE,GAAKD,EACPrB,EAAWqB,GAAK,IAAIhD,EAAQ+C,CAAC,CAC/B,CAAC,EACD/C,EAAQ6C,UAAYlB,CAGtB,EAQA3B,EAAQkD,mBAAqB,SAASC,GACpC,IAAIC,EACAC,EAAmG,IAArErD,EAAQsC,aAAagB,SAASC,mCAC5DC,EAAmBxD,EAAQsC,aAAagB,SAASG,qBAErD,GAAIJ,EACFD,EAAqB,OAClB,CAAA,GAAID,CAAAA,EAGP,MAAMO,MAAM,6EAA6E,EAFzFN,EAAqBD,CAEqE,CAE5F5C,EAAEC,QAAQR,EAAQ6C,UAAW,SAASc,GAChCN,EAEF9C,EAAEC,QAAQmD,EAAQC,mBAAoB,SAASC,GAC7CT,EAAmBU,KAAKD,EAAQZ,EAAE,CACpC,CAAC,GAII1C,EAAEwD,SAASX,EAAoBO,EAAQV,GAAK,cAAc,GAC7DG,EAAmBU,KAAKH,EAAQV,GAAK,cAAc,EAErD1C,EAAEC,QAAQmD,EAAQC,mBAAoB,SAASC,GACzCxD,QAAQ2D,UAAUH,EAAQI,WAAW,GACrC,CAAC1D,EAAEwD,SAASX,EAAoBS,EAAQZ,EAAE,GAC5CG,EAAmBU,KAAKD,EAAQZ,EAAE,CACtC,CAAC,EAEL,CAAC,EAEDjD,EAAQoC,WAAW8B,KAAK,GAAI,cAAe,CAACxC,UAAW0B,CAAkB,CAAC,EAAEhD,KAAK,SAASwC,GACxFrC,EAAEC,QAAQR,EAAQ6C,UAAW,SAASc,GACpCpD,EAAEC,QAAQmD,EAAQC,mBAAoB,SAASC,GACzCxD,QAAQ2D,UAAUpB,EAAKiB,EAAQZ,GAAG,IACpCY,EAAQI,YAAcrB,EAAKiB,EAAQZ,IAEvC,CAAC,CACH,CAAC,CACH,CAAC,EAEGO,GAAwC,YAApBA,IAClBxD,EAAQmE,qBACVnE,EAAQ6B,SAASuC,OAAOpE,EAAQmE,mBAAmB,EACrDnE,EAAQmE,oBAAsBnE,EAAQ6B,SAASxB,QAAQgE,KAAKlE,KAAMH,EAAQkD,mBAAoBC,CAAO,EAAmC,IAAhCK,EAAiBc,aAAa,CAAM,EAEhJ,EAQAtE,EAAQuE,UAAUC,UAAY,WAC5B,OAAIrE,KAAKsE,UACAtE,KAAKuE,kBAAkB,EAAEC,OAEzB,CACX,EAQA3E,EAAQuE,UAAUK,eAAiB,SAASC,GAC1C,IAEAC,EAAoB3E,KAAKuE,kBAAkB,EAC3C,OAAa,GAATG,GAAcA,EAAQC,EAAkBH,OACnCG,EAAkBD,GAEpB,IACT,EASA7E,EAAQuE,UAAUQ,cAAgB,SAASC,GACzC,IAAI9E,EAAQC,KAAM8E,EAAUD,GAAWA,EAAQC,OAE/C,OAAI9E,KAAKkB,YAAc,CAAC4D,EACfjF,EAAQwB,GAAGC,KAAKtB,KAAKkB,UAAU,GAE/B,CAAC4D,GAAU9E,KAAK+E,uBAIvB/E,KAAK+E,qBAAuBlF,EAAQsB,SAAS6D,MAAMhF,KAAM6E,CAAO,EAAE5E,KAAK,SAASwC,GAMnD,SAAvBwC,EAAgC1D,GAClCnB,EAAEC,QAAQkB,EAAW,SAASqB,GAC5B,IAAIsC,EAAkB9E,EAAE+E,KAAKC,EAAmB,CAAC,KAAMxC,EAAEE,GAAG,EACxDoC,IACFtC,EAAEkB,YAAcoB,EAAgBpB,aAE9BlB,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3BS,EAAqBrC,EAAEyC,QAAQ,CAEnC,CAAC,CACH,CAfA,IAAID,EAAoBrF,EAAMwE,kBAAkB,CAAEe,IAAK,CAAA,CAAK,CAAC,EAC7DvF,EAAMmB,WAAauB,EACnB1C,EAAMuE,UAAY,CAAA,EAclBW,EAAqBlF,EAAMmB,UAAU,EAIb,SAApBqE,EAA6BhE,GAC3BnB,EAAEC,QAAQkB,EAAW,SAASqB,GAC5BA,EAAE0B,UAAoD,GAAvCkB,EAAgBC,QAAQ,IAAM7C,EAAEE,EAAE,EAC7CF,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3Be,EAAkB3C,EAAEyC,QAAQ,CAEhC,CAAC,CACH,CARJ,IAAIG,EASJ,GAAI3F,EAAQsC,aAAauD,SAASC,KAAKC,gBAAiB,CACtD,GAAI1F,QAAQ2F,SAAShG,EAAQsC,aAAauD,SAASC,KAAKC,eAAe,EAErE,IACEJ,EAAkBtF,QAAQ4F,SAASjG,EAAQsC,aAAauD,SAASC,KAAKC,eAAe,CAMvF,CAJA,MAAOtD,GACLzC,EAAQ8B,KAAKoE,KAAK,qDACAlG,EAAQsC,aAAauD,SAASC,KAAKC,eAAe,EACpEJ,EAAkB,EACpB,MAGAA,EAAkB3F,EAAQsC,aAAauD,SAASC,KAAKC,gBAEvD7F,EAAMuE,UAAwD,GAA3CkB,EAAgBC,QAAQ,IAAM1F,EAAM+C,EAAE,EAC5B,EAAzB0C,EAAgBhB,QAClBe,EAAkBxF,EAAMmB,UAAU,CAEtC,CAMA,OALIrB,EAAQ6C,YACV3C,EAAMuE,WAA0C,GAA5BzE,EAAQ6C,UAAU8B,QAExCzE,EAAMwE,kBAAkB,CAACO,OAAQ,CAAA,CAAI,CAAC,EAE/B/E,EAAMmB,UACf,CAAC,GACMlB,KAAK+E,qBAEhB,EAYAlF,EAAQuE,UAAUG,kBAAoB,SAASM,GAIhC,SAATmB,EAAkBzE,GAChBnB,EAAEC,QAAQkB,EAAW,SAASqB,GAC5BqD,EAAatC,KAAKf,CAAC,GACdiC,GAAWA,EAAQS,KAAO1C,EAAE0B,YAAc1B,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QACtEwB,EAAOpD,EAAEyC,QAAQ,CAErB,CAAC,CACH,CAVJ,IACIY,EAAe,GACftB,EAAoB,GAmCxB,MAzBI3E,CAAAA,KAAKyD,oBAAwBoB,IAAYA,EAAQC,QAAUD,EAAQS,MAIrEU,EAAOhG,KAAKkB,UAAU,EACjB2D,GAAYA,EAAQS,MAjBftF,KAkBFyD,mBAAqBwC,EACvBpB,GAAWA,EAAQqB,YAErB9F,EAAEC,QAAQR,EAAQ6C,UAAW,SAASc,GAChCA,EAAQc,WACVK,EAAkBhB,KAAK,IAAMH,EAAQV,EAAE,EAEzC1C,EAAE+F,OAAO3C,EAAQC,mBAAoB,SAAS+B,EAAiB9B,GAI7D,OAHIA,EAAQY,WACVkB,EAAgB7B,KAAK,IAAMD,EAAQZ,EAAE,EAEhC0C,CACT,EAAGb,CAAiB,CACtB,CAAC,EACD9E,EAAQoC,WAAW8B,KAAK,KAAM,mBAAoBY,CAAiB,KAnBvEsB,EAAejG,KAAKyD,mBAwBfwC,CACT,EAEApG,EAAQuE,UAAUgC,kBAAoB,SAASC,GAGjC,SAARC,EAAiB/E,GACf,IAAImC,EAAUtD,EAAE+E,KAAK5D,EAAW,SAASqB,GACvC,OAAOA,EAAEyD,MAAQA,CACnB,CAAC,EAQD,OAPK3C,GACHxD,QAAQG,QAAQkB,EAAW,SAASqB,GAC9B,CAACc,GAAWd,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,SACvCd,EAAU4C,EAAM1D,EAAEyC,QAAQ,EAE9B,CAAC,EAEI3B,CACT,CAGJ,OAFU4C,EAAMtG,KAAKkB,UAAU,CAGjC,EAQArB,EAAQuE,UAAUmC,kBAAoB,SAASC,GAGjC,SAARF,EAAiB/E,GACf,IAAImC,EAAUtD,EAAE+E,KAAK5D,EAAW,SAASqB,GACvC,OAAOA,EAAE4D,MAAQA,CACnB,CAAC,EAQD,OAPK9C,GACHxD,QAAQG,QAAQkB,EAAW,SAASqB,GAC9B,CAACc,GAAWd,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,SACvCd,EAAU4C,EAAM1D,EAAEyC,QAAQ,EAE9B,CAAC,EAEI3B,CACT,CAdJ,IAeAA,EAEA,GAAe,OAAXA,EAFM4C,EAAMtG,KAAKkB,UAAU,GAG7B,MAAMqC,MAAM,kCAAoCiD,CAAI,EAEtD,OAAO9C,CACT,EAQA7D,EAAQuE,UAAUqC,YAAc,SAASD,EAAME,GAC7C,IAAI3G,EAAQC,KAEZ,OAAOH,EAAQoC,WAAW8B,KAAKyC,EAAKG,SAAS,EAAG,eAAgB,CAACD,KAAMA,CAAI,CAAC,EAAEzG,KAAK,WACjFF,EAAM6E,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,CACpC,CAAC,CACH,EAQAjF,EAAQuE,UAAUwC,iBAAmB,SAASrG,GAC5C,IACMC,EAKN,OANID,EAASK,WACPJ,EAAUN,QAAQM,QAAQ,QAAUD,EAASK,UAAY,QAAQ,EACrEL,EAASM,cAAgBT,EAAEU,IAAIN,EAAQO,SAAS,EAAG,aAAa,EAAEC,KAAK,GAAG,EAAEC,KAAK,GAEjFV,EAASM,cAAgB,GAEpBN,EAASM,aAClB,EAQAhB,EAAQuE,UAAUyC,gBAAkB,WAClC,OAAO7G,KAAK8G,UAAY9G,KAAK8G,SAASC,cACxC,EAQAlH,EAAQuE,UAAU4C,aAAe,WAC/B,IAAIjH,EAAQC,KAEZ,OAAIA,KAAK6G,gBAAgB,EACnB7G,KAAKiH,cACApH,EAAQwB,GAAGC,KAAKtB,KAAKiH,aAAa,EAElCpH,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,aAAa,EAAE1G,KAAK,SAASwC,GAE/E,OADA1C,EAAMkH,cAAgBxE,CAExB,CAAC,EAII5C,EAAQwB,GAAG6F,OAAO,CAE7B,EAQArH,EAAQuE,UAAU+C,mBAAqB,WACrC,IAAIpH,EAAQC,KAEZ,OAAOH,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,mBAAmB,EAAE1G,KAAK,WAC5EF,EAAM+G,SAASC,eAAiB,CAAA,CAClC,CAAC,CACH,EAQAlH,EAAQuE,UAAUgD,YAAc,SAAS3E,GACvC,IAAI4E,EAAiBC,EAEjB7E,EAAK8E,UACPF,EAAWG,KAAKC,MAAuB,IAAjBhF,EAAKiF,UAAoBjF,EAAK8E,QAAQ,EAAI,IAEhED,EADSK,EAAE,cAAc,EACJC,UAAUP,EAASG,KAAKC,MAAMhF,EAAK8E,SAAS,KAAK,EAAE,GAAG,GAEpE9E,EAAKoF,cACZR,EAAWG,KAAKC,MAA2B,IAArBhF,EAAKqF,cAAwBrF,EAAKoF,WAAW,EAAI,IAEvEP,EADSK,EAAE,qBAAqB,EACXC,UAAUP,EAAS5E,EAAKoF,WAAW,GAG1D7H,KAAK+H,OAAS,CAAEV,QAASA,EAASC,YAAaA,CAAY,CAC7D,EAQAzH,EAAQuE,UAAU4D,YAAc,SAASnD,GACvC,IAAI9E,EAAQC,KAGZ,OAAOH,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,SAAS,EAAE1G,KAAK,SAASwC,GAG3E,OAFA5C,EAAQ8B,KAAKsG,MAAM,0BAA4BC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EACnE,IAAIvI,EAAQuC,SAASK,EAAK4F,UAAWtI,EAAMwG,kBAAkB9D,EAAK6F,WAAW,EAAG7F,CAAI,CAEpG,CAAC,EAAExC,KAAK,SAASsI,GAEf,OAAO1I,EAAQoC,WAAWU,MAAM4F,EAAQC,cAAc,CAACC,QAAS,CAAA,CAAI,CAAC,EAAG,MAAM,EAAExI,KAAK,SAASwC,GAC5F,IAAIiG,EAAkB7I,EAAQsC,aAAagB,SAASwF,sBAAsB5I,EAAM+C,IAgBhF,OAfI4F,EAAgB5B,WACd4B,EAAgB5B,SAAS8B,aAC3BnG,EAAKoG,KAAO,CAAA,GACVH,EAAgB5B,SAASgC,iBAC3BrG,EAAKsG,QAAU,CAAA,GAEnBlJ,EAAQ8B,KAAKsG,MAAM,uBAAyBC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAC9ElI,QAAQC,OAAOoI,EAAQS,SAAUvG,CAAI,EACrC8F,EAAQU,MAAQ,CAAA,EACZpE,GAAWA,EAAQqE,SACjBhJ,QAAQiJ,SAAStE,EAAQqE,MAAM,EACjChJ,QAAQC,OAAOoI,EAAQS,SAAUnE,EAAQqE,MAAM,EAE/CX,EAAQa,aAAavE,EAAQqE,MAAM,GAEhCX,CACT,CAAC,CACH,CAAC,CACH,EASA1I,EAAQuE,UAAUiF,aAAe,SAASC,GACxC,IAAIvJ,EAAQC,KACRuJ,EAAW1J,EAAQwB,GAAGmI,MAAM,EAC5BC,EAAQ,CAACC,IAAKJ,EAAKI,GAAG,EAa1B,MAZI,CAACJ,EAAKI,KAA2D,CAAC,EAArDtJ,EAAEqF,QAAQrF,EAAEU,IAAId,KAAK2J,UAAW,KAAK,EAAGL,EAAKI,GAAG,EAE/DH,EAASK,QAAQ,EAGjB/J,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,cAAe8C,CAAK,EAAExJ,KAAK,WACtEF,EAAM4J,UAAUhG,KAAK2F,CAAI,EACzBC,EAASK,QAAQ7J,EAAM8J,KAAK,CAC9B,EAAG,SAASpH,EAAMqH,GAChBP,EAASrC,OAAOS,EAAE,qCAAqC,CAAC,CAC1D,CAAC,EAEI4B,EAASQ,OAClB,EASAlK,EAAQuE,UAAU4F,gBAAkB,SAASN,GAC3C,IAAI3J,EAAQC,KACRyJ,EAAQ,CAACC,IAAKA,CAAG,EACrB,OAAO7J,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,iBAAkB8C,CAAK,EAAExJ,KAAK,WAChF,IAAI4C,EAAIzC,EAAEqF,QAAQrF,EAAEU,IAAIf,EAAM4J,UAAW,KAAK,EAAGD,CAAG,EAC3C,GAAL7G,GACF9C,EAAM4J,UAAUM,OAAOpH,EAAG,CAAC,CAE/B,CAAC,CACH,EAQAhD,EAAQuE,UAAU8F,MAAQ,SAAUC,GAClC,IAAI3G,EAAU,GAAIlD,EAAa,GAAIiB,EAAY,GAAI6I,EAAkB,CAAA,EA0BrE,OAxBAlK,QAAQG,QAAQL,KAAM,SAASqK,EAAOC,GACzB,eAAPA,GAA8B,cAANA,GAAgC,KAAVA,EAAI,KACpD9G,EAAQ8G,GAAOpK,QAAQqK,KAAKF,CAAK,EAErC,CAAC,EAEGF,IACF/J,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCnC,EAAUoC,KAAKD,EAAQwG,MAAMC,CAAI,CAAC,CACpC,CAAC,EACD3G,EAAQtC,WAAaK,GAGvBnB,EAAEC,QAAQL,KAAKM,WAAY,SAAUC,GAC9BA,EAASiK,YAAcL,CAAAA,GAC1B7J,EAAWqD,KAAKvD,EAAEqK,KAAKlK,EAAU,CAAC,QAAS,WAAY,UAAW,YAAa,YAAY,CAAC,EAC1FA,EAASmK,YACXN,EAAkB7J,EACtB,CAAC,EACDiD,EAAQlD,WAAaA,EAEhB8J,GAAoB5G,EAAQmH,sBAC/B,OAAOnH,EAAQmH,qBAEVnH,CACT,CAED,EAAE,EC9kBH,WACE,aAOA,SAASzB,EAAQyB,EAASoH,GACxB5K,KAAK6K,SAAWrH,EAEsB,YAAlC,OAAOoH,EAAkB3K,MAC3BD,KAAK8K,KAAKF,CAAiB,EACvB5K,KAAK0G,MAAQ,CAAC1G,KAAKwG,OAEjBuE,EAAiBhJ,EAAQE,WAAW+I,OAAO,eAAgBhL,KAAK0G,IAAI,EACxE1G,KAAKiL,QAAQF,CAAc,IAM7B/K,KAAKiL,QAAQL,CAAiB,CAElC,CAOA7I,EAAQN,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,aAAc,WAAY,UAAW,MAAO,cAAe,oBAAqB,+BAAgC,SAAUJ,EAAIK,EAAUC,EAAMuJ,EAAYtJ,EAAUC,EAAUG,EAASmJ,EAAKrJ,EAAasJ,EAASC,GAyB5Q,OAxBAnL,QAAQC,OAAO4B,EAAS,CACtBV,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNuJ,WAAYA,EACZjJ,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFE,SAAUJ,EACVsJ,MAAOH,EACPhJ,aAAcL,EACdyJ,OAAQ,CAAEC,KAAM,UAAWC,IAAK,CAAE,EAClCC,eAAgB,KAChBC,gBAAiB,KACjBC,aAAc,CAAA,EACdC,aAAc,CAAA,EACdC,YAAa,CAAA,EACbV,QAASA,EACTC,mBAAoBA,CACtB,CAAC,EAEGvJ,EAAY4D,SAASC,KAAKoG,eAC5BhK,EAAQwJ,OAAOC,KAAO1J,EAAY4D,SAASC,KAAKoG,aAAa,GAC7DhK,EAAQwJ,OAAOE,IAAMO,SAASlK,EAAY4D,SAASC,KAAKoG,aAAa,EAAE,GAGlEhK,CACT,GAMA,IACE7B,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAMC,GACJpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3B4J,SAAS,oBAAqB,CAC7BC,UAAW,GACXC,KAAM,GACR,CAAC,EACAF,SAAS,+BAAgC,GAAI,EAC7C1J,QAAQ,UAAWR,EAAQN,QAAQ,EAStCM,EAAQiD,MAAQ,SAASxB,EAASqB,GAI9B+F,EADE/F,GAAWA,EAAQS,IACDtF,KAAKiC,WAAWU,MAAMa,EAAQV,GAAG6D,SAAS,EAAG,SAAS,EAEtD3G,KAAKiC,WAAWU,MAAMa,EAAQV,GAAG6D,SAAS,EAAG,MAAM,EAEzE,OAAO5E,EAAQX,kBAAkBoC,EAASoH,CAAiB,CAC7D,EASA7I,EAAQX,kBAAoB,SAASoC,EAASoH,GAGtB,SAAlBwB,EAA2BC,EAAO3I,GAChCA,EAAQ4I,aAAe5I,EAAQ4I,cAAgC,QAAhB5I,EAAQ2C,KACvD3C,EAAQ6I,eAAiB7I,EAAQ6I,gBAAkC,SAAhB7I,EAAQ2C,KAC3D,IAAK,IAAIxD,EAAI,EAAGA,EAAIa,EAAQ2B,SAASb,OAAQ3B,CAAC,GAC5Ca,EAAQ2B,SAASxC,GAAGwJ,MAAQA,EAC5B3I,EAAQ2B,SAASxC,GAAK,IAAId,EAAQyB,EAASE,EAAQ2B,SAASxC,EAAE,EAC9Da,EAAQ2B,SAASxC,GAAGyJ,aAAe5I,EAAQ4I,aAC3C5I,EAAQ2B,SAASxC,GAAG0J,eAAiB7I,EAAQ6I,eAC7CH,EAAgBC,EAAM,EAAG3I,EAAQ2B,SAASxC,EAAE,CAEhD,CAZJ,IAAIrB,EAAa,GAejB,OAAOoJ,EAAkB3K,KAAK,SAASwC,GACrC,OAAOV,EAAQL,SAAS,WAWtB,OATAxB,QAAQG,QAAQoC,EAAKlB,UAAW,SAASkB,EAAMiC,GAC7CjC,EAAK4J,MAAQ,EACT3I,EAAU,IAAI3B,EAAQyB,EAASf,CAAI,EACvC2J,EAAgB,EAAG1I,CAAO,EAC1BlC,EAAWmC,KAAKD,CAAO,CACzB,CAAC,EAEGjB,EAAK+J,QACPhJ,EAAQ4D,YAAY3E,EAAK+J,MAAM,EAC1BhL,CACT,CAAC,CACH,CAAC,CACH,EASAO,EAAQyG,cAAgB,SAASH,EAAWC,GAC1C,IAAI9B,EAAO,GAUX,OAPEA,EADE8B,EACKlI,EAAEU,IAAIwH,EAAYmE,MAAM,GAAG,EAAG,SAASC,GAC5C,MAAO,SAAWA,EAAUC,gBAAgB,CAC9C,CAAC,EAGHnG,GAAKyD,OAAO,EAAG,EAAG5B,CAAS,EAEpB7B,EAAKxF,KAAK,GAAG,CACtB,EAQAe,EAAQqC,UAAU0G,KAAO,SAASrI,IAE5BvC,QAAQ0M,YAAY5M,KAAK6M,OAAO,GAAKpK,EAAKqK,WAC5C9M,KAAK+M,WAAa,CAAA,EAClB/M,KAAKgN,UAAY,GACjBhN,KAAK6M,QAAU,GACf7M,KAAKiN,iBAAmBjN,KAAKgN,UAC7BhN,KAAKkN,kBAAoB,IAEvBhN,QAAQ0M,YAAY5M,KAAKmN,eAAe,IAC1CnN,KAAKmN,gBAAkB,IAEzBjN,QAAQC,OAAOH,KAAMyC,CAAI,EACrBzC,KAAKwG,OACPxG,KAAK8C,GAAK9C,KAAKoN,IAAI,EACnBpN,KAAKqN,KAAO,IAAItL,EAAQuJ,MAAM,QAAUtL,KAAK8C,EAAE,EAC3C9C,KAAKsN,YACPtN,KAAKuN,kBAAoB,GACrBxL,EAAQI,aAAauD,SAASC,KAAK6H,mBAAoBzL,EAAQI,aAAauD,SAASC,KAAK6H,iBAAiB,IAAMxN,KAAK8C,MACxH9C,KAAKuN,kBAAoBxL,EAAQI,aAAauD,SAASC,KAAK6H,iBAAiB,IAAMxN,KAAK8C,KAI9F9C,KAAKyN,aAAezN,KAAK0G,KACrB1G,KAAKqG,OACPrG,KAAK0N,YAAc1N,KAAK2N,WAAW,EACnC3N,KAAK4N,WAAa,CAAA,EACD,SAAb5N,KAAKqG,MACPrG,KAAKyN,aAAe9F,EAAE,iBAAiB,EACvC3H,KAAK6N,MAAQ,SAEO,SAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,kBAAkB,EACxC3H,KAAK6N,MAAQ,UAEO,QAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,gBAAgB,EACtC3H,KAAK6N,MAAQ,QAEO,SAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,iBAAiB,EACvC3H,KAAK6N,MAAQ,UAEO,QAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,gBAAgB,EACtC3H,KAAK6N,MAAQ,cAEO,aAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,qBAAqB,EAC3C3H,KAAK6N,MAAQ,gBAEO,cAAb7N,KAAKqG,KACZrG,KAAK6N,MAAQ,SAEO,UAAb7N,KAAKqG,MAGQ,cAAbrG,KAAKqG,KACZrG,KAAK6N,MAAQ,gBAEO,WAAb7N,KAAKqG,KACZrG,KAAK6N,MAAQ,uBAGb7N,KAAK4N,WAAa,CAAA,EAClB5N,KAAK6N,MAAQ,WAGjB7N,KAAK8N,eAAiB9N,KAAK+N,cAAc,EACrC7N,QAAQ0M,YAAY5M,KAAKgO,WAAW,IAEtChO,KAAKgO,YAAchO,KAAKkK,MAAM,EAElC,EAOAnI,EAAQqC,UAAU6J,aAAe,WAC1BlM,EAAQ6J,eACX7J,EAAQ2J,eAAiB1L,KAC7B,EAQA+B,EAAQqC,UAAU8J,cAAgB,SAAUC,GAC1CpM,EAAQ+J,YAAcqC,CACxB,EAQApM,EAAQqC,UAAUC,UAAY,WAC5B,OAAOrE,KAAKiN,iBAAiBzI,MAC/B,EAQAzC,EAAQqC,UAAUK,eAAiB,SAASC,GAC1C,IAAI6D,EAEJ,OAAa,GAAT7D,GAAcA,EAAQ1E,KAAKiN,iBAAiBzI,QAC9C+D,EAAUvI,KAAKiN,iBAAiBvI,GAChC1E,KAAKoO,kBAAoB5G,KAAK6G,IAAI,EAAG3J,EAAQ,CAAC,EAC9C1E,KAAKsO,aAAa/F,EAAQmB,GAAG,EACtBnB,GAEF,IACT,EAQAxG,EAAQqC,UAAUgJ,IAAM,WACtB,OAAOrL,EAAQyG,cAAcxI,KAAK6K,SAAS/H,GAAI9C,KAAKwG,IAAI,CAC1D,EAQAzE,EAAQqC,UAAUmK,iBAAmB,SAAS1J,GAG5C,OAFIA,GAAWA,EAAQ2J,cACrBxO,KAAKkN,kBAAoB9M,EAAEqO,OAAOzO,KAAKgN,UAAW,SAASzE,GAAW,OAAOA,EAAQmG,QAAU,CAAC,GAC3F1O,KAAKkN,iBACd,EAQAnL,EAAQqC,UAAUuK,cAAgB,WAChC,OAAO3O,KAAKkN,kBAAkB1I,MAChC,EAOAzC,EAAQqC,UAAUwK,kBAAoB,WACpCxO,EAAEC,QAAQL,KAAKkN,kBAAmB,SAAS3E,GACzCA,EAAQmG,SAAW,CAAA,CACrB,CAAC,EACD1O,KAAKkN,kBAAoB,EAC3B,EASAnL,EAAQqC,UAAUyK,kBAAoB,SAASC,GAC7C,OAAO9O,KAAK+O,kBAAoBD,CAClC,EAQA/M,EAAQqC,UAAU4K,gBAAkB,WAClC,IAAIjP,EAAQC,KACZ,OAAOI,EAAE+E,KAAKnF,KAAKgN,UAAW,SAASzE,GAAW,OAAOA,EAAQmB,KAAO3J,EAAMgP,gBAAkB,CAAC,CACnG,EAQAhN,EAAQqC,UAAU6K,sBAAwB,WACxC,OAAOjP,KAAK6M,QAAQ7M,KAAK+O,iBAC3B,EAQAhN,EAAQqC,UAAU8K,mBAAqB,WACrC,OAAOhP,QAAQ2D,UAAU7D,KAAK+O,gBAAgB,CAChD,EAgBAhN,EAAQqC,UAAU+K,QAAU,SAASC,EAAmBC,GACtD,IAAItP,EAAQC,KAAMsP,EAAS,OAAQzK,EAAU,GAkEzC0K,GAhECrP,QAAQ2D,UAAU7D,KAAK8D,WAAW,IACrC9D,KAAK8D,YAAc,GAErB9D,KAAK+M,WAAa,CAAA,EAEdhL,EAAQ4J,iBACV5J,EAAQL,SAASuC,OAAOlC,EAAQ4J,eAAe,EAE7CyD,GAEFlP,QAAQC,OAAO4B,EAAQwJ,OAAQ6D,CAAiB,EAE9CC,GAA4B,EAAjBA,EAAQ7K,SAErBxE,KAAKmN,gBAAkB,GACvBkC,EAAQhP,QAAQoO,IACV,mBAAqBA,EAAOe,UAC3B,YAAcf,EAAOe,UACrB,QAAUf,EAAOe,UACjB,QAAUf,EAAOe,UACjB,MAAQf,EAAOe,UACf,WAAaf,EAAOe,UACXf,EAAOgB,YAAYhD,MAAM,GAAG,EAClCpM,QAAQqP,IACRC,EAAcD,EAAKzO,KAAK,EAAE2O,YAAY,EACrC5P,KAAKmN,gBAAgBvJ,SAAS+L,CAAW,GAC5C3P,KAAKmN,gBAAgBxJ,KAAKgM,CAAW,CAEzC,CAAC,CAEL,CAAC,GAGHzP,QAAQC,OAAO0E,EAAS,CAAEuK,kBAAmBrN,EAAQwJ,MAAO,CAAC,EACzDrL,QAAQ2D,UAAUwL,CAAO,GAC3BxK,EAAQwK,QAAUjP,EAAE8G,OAAOhH,QAAQqK,KAAK8E,CAAO,EAAG,SAASZ,GACzD,MAAO,CAACA,EAAOgB,aAA6C,IAA9BhB,EAAOgB,YAAYjL,MACnD,CAAC,EAEDpE,EAAEC,QAAQwE,EAAQwK,QAAS,SAASZ,GAClC,IACIoB,EAAQpB,EAAOe,SAASK,MAAM,gBAAgB,EAC9CA,IACFhL,EAAQuK,kBAAkBS,MAAQ,KAClCpB,EAAOe,SAAWK,EAAM,IACxBC,EAAe5P,QAAQqK,KAAKkE,CAAM,GACrBe,SAAWK,EAAM,GAC9BhL,EAAQwK,QAAQ1L,KAAKmM,CAAY,EAErC,CAAC,GAEOV,GAAsBpP,KAAK+P,cAAiB/P,KAAKgQ,aAAehQ,CAAAA,KAAKiQ,aAG7EX,EAAS,UACTzK,EAAQqL,UAAYlQ,KAAKiQ,YAGvBjQ,KAAKgQ,cACPnL,EAAQsL,WAAa,GAEnBnQ,KAAK+P,eACPlL,EAAQuL,YAAc,GAEXhQ,EAAEqO,OAAOrO,EAAEiQ,KAAKrQ,KAAKsQ,eAAe,EAAG,SAAUC,GAC5D,MAAO,CAAC,CAACxQ,EAAMuQ,gBAAgBC,EACjC,CAAC,GAaG3F,GAZA2E,EAAO/K,SACTK,EAAQ0K,OAASA,GAGdxN,EAAQ6J,eACPvI,EAAmBtB,EAAQI,aAAagB,SAASG,uBACT,YAApBD,IAClBmN,EAAItQ,QAAQgE,KAAKlE,KAAM+B,EAAQqC,UAAU+K,QAAS,KAAME,CAAO,EACnEtN,EAAQ4J,gBAAkB5J,EAAQL,SAAS8O,EAAmC,IAAhCnN,EAAiBc,aAAa,CAAM,GAI9DpC,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAIwM,EAAQzK,CAAO,GACxE,OAAO7E,KAAKiL,QAAQL,CAAiB,CACvC,EAQA7I,EAAQqC,UAAUkK,aAAe,SAASQ,GACxC,IACI2B,EAIAC,EALAC,EAAa3Q,KAAK6M,QAAQiC,GAG1BT,EAAMrO,KAAKgN,UAAUxI,OACrBoM,EAAS,CAAA,EAGb,GAAI1Q,QAAQ2D,UAAU7D,KAAK6M,QAAQiC,EAAU,GAAK6B,EAAa3Q,KAAKgN,UAAUxI,SAExEtE,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYE,OAAO,IAEtDD,EAAS,CAAA,GAIXH,EAAWjJ,KAAKsJ,IAAIH,EAAa5O,EAAQqJ,QAAQc,UAAWmC,EAAM,CAAC,EAC/DnO,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUI,OAAO,GAClD3Q,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUM,OAAO,GACpDrM,EAAQ8C,KAAK6G,IAAIsC,EAAa5O,EAAQqJ,QAAQc,UAAW,CAAC,EACrDhM,QAAQ2D,UAAU7D,KAAKgN,UAAUtI,GAAOmM,OAAO,GAC/C3Q,QAAQ2D,UAAU7D,KAAKgN,UAAUtI,GAAOqM,OAAO,IAElDN,EAAWE,EACXA,EAAanJ,KAAK6G,IAAIsC,EAAa5O,EAAQqJ,QAAQe,KAAM,CAAC,IAK5DsE,EAAWjJ,KAAKsJ,IAAIH,EAAa5O,EAAQqJ,QAAQe,KAAMkC,EAAM,CAAC,EAE5D,CAACnO,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYE,OAAO,GACrD,CAAC3Q,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYI,OAAO,GACrD,CAAC7Q,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUI,OAAO,GACnD,CAAC3Q,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUM,OAAO,GAAG,CAExD,IAAKL,EAAO,GAAIC,EAAaF,GAAYE,EAAatC,EAAKsC,CAAU,GAC/DzQ,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYE,OAAO,GAAK7Q,KAAKgN,UAAU2D,GAAYI,QAEtFN,CAAQ,IAIRC,EAAK/M,KAAK3D,KAAKgN,UAAU2D,GAAYjH,GAAG,EAExC1J,KAAKgN,UAAU2D,GAAYI,QAAU,CAAA,GAIrCL,EAAKlM,SACPzC,EAAQJ,KAAKsG,MAAM,gBAAkByI,EAAK1P,KAAK,GAAG,CAAC,EACnDgQ,EAAoBjP,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,UAAW,CAAC4N,KAAMA,CAAI,CAAC,EAC5E1Q,KAAKiR,eAAeD,CAAiB,EAEzC,CAEF,OAAOJ,CACT,EAQA7O,EAAQqC,UAAUuJ,WAAa,WAC7B,MAAoB,UAAb3N,KAAKqG,IACd,EAQAtE,EAAQqC,UAAU2J,cAAgB,WAChC,OAA4C,GAArC/N,KAAKkR,MAAMzL,QAAQ,aAAa,CACzC,EAQA1D,EAAQqC,UAAU+M,WAAa,WAC7B,OAAyC,GAAlCnR,KAAKkR,MAAMzL,QAAQ,UAAU,CACtC,EAQA1D,EAAQqC,UAAUgN,WAAa,WAC7B,OAAOpR,KAAKkR,MAAMzL,QAAQ,UAAU,EAAI,GAAkB,WAAbzF,KAAKqG,IACpD,EAQAtE,EAAQqC,UAAUiN,aAAe,SAASC,GACxC,MAAO,CAAA,CACT,EASAvP,EAAQqC,UAAUmN,QAAU,WAC1B,IACIC,EACAC,EACApM,EACAxC,EAJA9C,EAAQC,KAMZ,OAAIA,KAAK0G,MAAQ1G,KAAKgO,YAAYtH,KAEzB3E,EAAQV,GAAGC,KAAK,GAuBzBmQ,GAnBAD,EAAa,SAASC,EAAQpM,GAC5B,IAAIqM,EAAgB,KAcpB,OAbctR,EAAE+E,KAAKE,EAAU,SAASzC,GAClC,OAAOA,EAAE4D,MAAQzG,EAAMyG,IACzB,CAAC,EAEHkL,EAAgBD,EAGhBvR,QAAQG,QAAQgF,EAAU,SAASzC,GAC7B,CAAC8O,GAAiB9O,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,SAC7CkN,EAAgBF,EAAW5O,EAAGA,EAAEyC,QAAQ,EAE5C,CAAC,EAEIqM,CACT,GAGoB,KAAM1R,KAAK6K,SAAS3J,UAAU,EAEhDmE,EADa,OAAXoM,EACSzR,KAAK6K,SAAS3J,WAEduQ,EAAOpM,SAGpBxC,EAAIzC,EAAEqF,QAAQrF,EAAEU,IAAIuE,EAAU,IAAI,EAAGrF,KAAK8C,EAAE,EAErC9C,KAAK2R,MAAM,EAAE1R,KAAK,SAASwC,GAmBV,SAAlBmP,EAA2BlO,GAC7BtD,EAAEC,QAAQqD,EAAQ2B,SAAU,SAASwM,GACnCA,EAAMrL,KAAOqL,EAAMrL,KAAKsL,QAAQC,EAAQhS,EAAMyG,IAAI,EAClDqL,EAAM/O,GAAK+O,EAAMzE,IAAI,EACrBwE,EAAgBC,CAAK,CACvB,CAAC,CACH,CAxBA,IAAaG,EAAUjS,EAAMyG,KAiBzBuL,GAhBJhS,EAAM+K,KAAKrI,CAAI,EAGf4C,EAAS4E,OAAOpH,EAAG,CAAC,EACpBoP,EAAU7R,EAAE+E,KAAKE,EAAU,SAASzC,GAClC,MAAkB,UAAVA,EAAEyD,MAAuD,EAAnCzD,EAAE8D,KAAKwL,cAAcnS,EAAM2G,IAAI,CAC/D,CAAC,EAEC7D,EADEoP,EACE7R,EAAEqF,QAAQrF,EAAEU,IAAIuE,EAAU,IAAI,EAAG4M,EAAQnP,EAAE,EAG3CuC,EAASb,OAEfa,EAAS4E,OAAOpH,EAAG,EAAG9C,CAAK,EAGd,IAAIoS,OAAO,IAAMH,CAAO,GAQrCJ,EAAgB7R,CAAK,CACvB,CAAC,EACH,EAQAgC,EAAQqC,UAAUgO,SAAW,WAC3B,IAAIrS,EAAQC,KACZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,SAAS,EAC9C7C,KAAK,SAASwC,GAIb,OAFIA,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,EACjC,CAAA,CACT,CAAC,CACL,EAQAzK,EAAQqC,UAAUiO,aAAe,WAC/B,MAAoB,UAAbrS,KAAKqG,IACd,EAQAtE,EAAQqC,UAAUkO,aAAe,SAASjM,GACxC,OAAOtE,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,QAAUuD,EAAO,QAAQ,CACnE,EAQAtE,EAAQqC,UAAUmO,OAAS,WACzB,IAAIxS,EAAQC,KACRsP,EAAS,QAAUtP,KAAKqG,KAAK,GAAGmM,WAAW,EAAIxS,KAAKqG,KAAKoM,UAAU,CAAC,EAExE,OAAO1Q,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAIwM,CAAM,EAAErP,KAAK,SAASwC,GAE5D1C,EAAMiN,UAAYjN,EAAMkN,iBAAmB,GAC3ClN,EAAM8M,QAAU,GAChB9M,EAAM+D,YAAc,EAGhB5D,QAAQ2D,UAAU9D,EAAMsF,QAAQ,GAAKtF,EAAMsF,SAASb,QACtDzE,EAAM8K,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,EAGzCrC,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,CAC1C,CAAC,CACH,EAQAzK,EAAQqC,UAAUsO,YAAc,WAC9B,IAAI3S,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,UAAU,EAAE7C,KAAK,WACvDF,EAAM+D,YAAc,EACpB1D,EAAEC,QAAQN,EAAMiN,UAAW,SAASzE,GAClCA,EAAQoK,OAAS,CAAA,CACnB,CAAC,CACH,CAAC,CACH,EAQA5Q,EAAQqC,UAAUwO,UAAY,SAAS/N,GACrC,IAAI9E,EAAQC,KAEZ,MAAIA,CAAAA,KAAK6S,SAAahO,GAAWA,EAAQC,QAGrC5E,QAAQ0M,YAAY5M,KAAKsQ,eAAe,IAC1CtQ,KAAKsQ,gBAAkB,IAClBvO,EAAQE,WAAWU,MAAM3C,KAAK8C,GAAI,QAAQ,EAAE7C,KAAK,SAASwC,GAE/D,OADA1C,EAAM8S,QAAUpQ,EACT1C,EAAM8S,OACf,CAAC,GAPQ9Q,EAAQV,GAAGC,KAAKtB,KAAK6S,OAAO,CAQvC,EAEA9Q,EAAQqC,UAAU0O,gBAAkB,WAClC,OAAO1S,EAAEwD,SAAS5D,KAAKsQ,gBAAiB,CAAC,CAC3C,EAQAvO,EAAQqC,UAAU2O,cAAgB,SAASC,EAAU9B,EAAO+B,GACtDxQ,EAAO,CAACyQ,QAAS9S,EAAEU,IAAIkS,EAAU,KAAK,EAC9B9B,MAAOA,EACP+B,UAAWA,CAAS,EAEhC,OAAOlR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,mBAAoBL,CAAI,EAAExC,KAAK,WACrE,OAAO+S,CACT,CAAC,CACH,EAQAjR,EAAQqC,UAAU+O,gBAAkB,SAASH,GAC3C,IAAIjT,EAAQC,KACR0Q,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAEhC,OAAOjR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,kBAAmB,CAAE4N,KAAMA,CAAK,CAAC,EAAEzQ,KAAK,SAASwC,GAGvF,OAFAV,EAAQJ,KAAKsG,MAAM,8BAAgCC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EACvE,IAAIrG,EAAQK,SAASK,EAAK4F,UAAWtI,EAAM8K,SAAStE,kBAAkB9D,EAAK6F,WAAW,EAAG7F,CAAI,CAE7G,CAAC,CACH,EAQAV,EAAQqC,UAAUgP,qBAAuB,WACvC,IAEA7E,EAAmBnO,EAAEqO,OAAOzO,KAAKgN,UAAW,SAASzE,GAAW,OAAOA,EAAQmG,QAAU,CAAC,EAC1F2E,EAAejT,EAAEU,IAAIyN,EAAkB,KAAK,EAEtB5G,EAAE,oBAAoB,EAE5C,OAAO5F,EAAQE,WAAWqR,SAAStT,KAAK8C,GAAI,eAAgB,CAAC4N,KAAM2C,CAAY,CAAC,CAClF,EAQAtR,EAAQqC,UAAUmP,aAAe,WAC/B,IAEA1O,EAAU,CAAE2O,SAAUxT,KAAK0G,KAAO,MAAO,EAEzC,OAAO3E,EAAQE,WAAWwR,KAAKzT,KAAK8C,GAAI,eAAgB,KAAM+B,CAAO,CACvE,EASA9C,EAAQqC,UAAUsP,QAAU,SAAS7O,GACnC,IAAI9E,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,SAAU+B,CAAO,EACtD5E,KAAK,WAEJ,OADAF,EAAM8K,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,EACpC,CAAA,CACT,CAAC,CACL,EASA/C,EAAQqC,UAAUuP,iBAAmB,SAASjD,GAC5C,IAAI3Q,EAAQC,KAAM4T,EAAa5T,KAAKgN,UAAUxI,OA0B9C,OAvBApE,EAAEyT,aAAa7T,KAAKgN,UAAW,SAASzE,EAAS7D,GAC/C,IAAIoP,EAAgB1T,EAAE2T,UAAUrD,EAAM,SAAShH,GAC7C,OAAOnB,EAAQmB,KAAOA,CACxB,CAAC,EACmB,CAAC,EAAjBoK,GACFpD,EAAKzG,OAAO6J,EAAe,CAAC,EAC5B,OAAO/T,EAAM8M,QAAQtE,EAAQmB,KACzBnB,EAAQmB,KAAO3J,EAAMgP,kBACvB,OAAOhP,EAAMgP,iBACfhP,EAAMiN,UAAU/C,OAAOvF,EAAO,CAAC,EAC3BA,EAAQkP,IACVA,EAAalP,IAGf3E,EAAM8M,QAAQtE,EAAQmB,MAAQgH,EAAKlM,MAEvC,CAAC,EAEGxE,KAAKsN,UACPtN,KAAKgU,sBAAsB,EAItBJ,CACT,EASA7R,EAAQqC,UAAU6P,gBAAkB,SAASjB,EAAUnO,GACrD,IAAkB6L,EAAd3Q,EAAQC,KACRkU,EAAYnS,EAAQsJ,mBA0BxB,OAxBAqF,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAG5B,SAASmB,EAAgBC,EAAOC,GAC9B,IAAIC,EAAc5D,EAAK6D,MAAMH,EAAOC,CAAG,EACnC5R,EAAO,CAAEiO,KAAM4D,CAAY,EAE/B,OADIzP,GAAS3E,QAAQC,OAAOsC,EAAMoC,CAAO,EAClC9C,EAAQE,WAAW8B,KAAKhE,EAAM+C,GAAI,cAAeL,CAAI,EAAExC,KAAK,SAASwC,GAC1E,OAAI4R,EAAM3D,EAAKlM,QACbzE,EAAM4T,iBAAiBW,CAAW,EAC3BH,EAAgBE,EAAK7M,KAAKsJ,IAAIuD,EAAMH,EAAWxD,EAAKlM,MAAM,CAAC,IAI9D/B,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,EACpCtM,QAAQ2D,UAAUpB,EAAKqB,WAAW,IACpC/D,EAAM+D,YAAcrB,EAAKqB,aAEpB/D,EAAM4T,iBAAiBW,CAAW,EAE7C,CAAC,CACH,EAEuB,EAAG9M,KAAKsJ,IAAIoD,EAAWxD,EAAKlM,MAAM,CAAC,EAAEvE,KAAK,SAAS2T,GAExE,OADA7T,EAAMmN,kBAAoB,GACnB0G,CACT,CAAC,CACH,EAQA7R,EAAQqC,UAAUoQ,4BAA8B,SAASxB,GACvD,IACItC,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAC5ByB,EAAuB,QAAbzU,KAAKqG,KAAiB,wBAA0B,qBAE9D,OAAOtE,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI2R,EAAQ,CAAC/D,KAAMA,CAAI,CAAC,CAC9D,EAQA3O,EAAQqC,UAAUsQ,cAAgB,SAAS1B,EAAU2B,GACnD,IAAI5U,EAAQC,KACR0Q,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAEhC,OAAOjR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,eAAgB,CAAC4N,KAAMA,EAAMiE,OAAQA,CAAM,CAAC,EACjF1U,KAAK,SAASwC,GAETA,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,CAC1C,CAAC,CACL,EAQAzK,EAAQqC,UAAUwQ,cAAgB,SAAS5B,EAAU2B,GACnD,IAAI5U,EAAQC,KAEZ0Q,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAC5B,OAAOjR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,eAAgB,CAAC4N,KAAMA,EAAMiE,OAAQA,CAAM,CAAC,EACjF1U,KAAK,SAASwC,GAKb,OAJIvC,QAAQ2D,UAAUpB,EAAKqB,WAAW,IACpC/D,EAAM+D,YAAcrB,EAAKqB,aAE3B/D,EAAMmN,kBAAoB,GACnBnN,EAAM4T,iBAAiBjD,CAAI,CACpC,CAAC,CACL,EAQA3O,EAAQqC,UAAUyQ,MAAQ,SAASC,GACjC,IAAI/U,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,OAAQ,CAAC2O,OAAQqD,CAAU,CAAC,EAAEC,QAAQ,WAE5E,OADAhV,EAAM8K,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,EACpC,CAAA,CACT,CAAC,CACH,EAQA/C,EAAQqC,UAAUuN,MAAQ,WACxB,IAAI5R,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW+S,KAAKhV,KAAK8C,GAAI9C,KAAKkK,MAAM,CAAC,EAAEjK,KAAK,SAASwC,GAIlE,OAFA1C,EAAMiO,YAAcjO,EAAMmK,MAAM,EAChCnI,EAAQJ,KAAKsG,MAAMC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAC9C3F,CACT,EAAG,SAASwS,GAIV,OAHAlT,EAAQJ,KAAKuT,MAAMhN,KAAKC,UAAU8M,EAASxS,KAAM2F,KAAAA,EAAW,CAAC,CAAC,EAE9DrI,EAAMoV,OAAO,EACNF,EAASxS,IAClB,CAAC,CACH,EAQAV,EAAQqC,UAAUqC,YAAc,SAASD,EAAME,GAC7C,OAAO1G,KAAK6K,SAASpE,YAAYD,EAAME,CAAI,CAC7C,EAOA3E,EAAQqC,UAAU+Q,OAAS,SAAStQ,GAClC,IACIrB,EADAzD,EAAQC,KAEZE,QAAQG,QAAQL,KAAKgO,YAAa,SAAS3D,EAAOC,GAChD,OAAOvK,EAAMuK,EACf,CAAC,EACD9G,EAAU4R,OAAOC,OAAO,GAAItV,EAAM8K,QAAQ,EAC1C3K,QAAQC,OAAOH,KAAMA,KAAKgO,WAAW,EACrChO,KAAKgO,YAAchO,KAAKkK,MAAM,EAC9BlK,KAAKwD,QAAUA,EACXqB,GAAWA,EAAQf,cACrB9D,KAAK8D,YAAce,EAAQf,aAEzBe,GAAWA,EAAQ4J,SACrBzO,KAAKgN,UAAY,GACjBhN,KAAKiN,iBAAmB,GACxB,OAAOjN,KAAKiQ,WAEhB,EAQAlO,EAAQqC,UAAU8F,MAAQ,SAASC,GACjC,IACsB9E,EACZiQ,EAFN5R,EAAU,GAsBd,OAbAxD,QAAQG,QAAQL,KAAM,SAASqK,EAAOC,GACzB,eAAPA,GACO,YAAPA,GACO,WAAPA,GACO,QAAPA,GACO,WAAPA,GACU,KAAVA,EAAI,KACN5G,EAAQ4G,GAAOD,EAEnB,CAAC,EACGF,GAAQnK,KAAKqF,WACf3B,EAAQ2B,UAnBYA,EAmBMrF,KAAKqF,SAlBvBiQ,EAAgB,GACpBlV,EAAEC,QAAQgF,EAAU,SAASzC,GAC3B0S,EAAc3R,KAAKf,EAAEsH,MAAMC,CAAI,CAAC,CAClC,CAAC,EACMmL,IAgBN5R,CACT,EAOA3B,EAAQqC,UAAU4P,sBAAwB,WACxC,IAAIuB,EAAkB,CAAA,EAElBvV,KAAKsN,WACPtN,KAAKiN,iBAAmB7M,EAAEqO,OAAOzO,KAAKgN,UAAW,SAASwI,EAAK3S,GAM7D,OALI2S,EAAIC,MACNF,EAAkBC,EAAIE,UACbF,EAAInJ,MAAQ,IACrBkJ,EAAkB,CAAA,GAEbC,EAAIC,OAA6B,CAAA,IAApBF,CACtB,CAAC,EAEL,EASAxT,EAAQqC,UAAU6G,QAAU,SAASL,GACnC7I,EAAQmJ,WAAWyK,WAAW,mBAAmB,EACjD,IAAI5V,EAAQC,KACRuJ,EAAWxH,EAAQV,GAAGmI,MAAM,EAoIhC,OAlIAxJ,KAAK4V,mBAAqBhL,EAC1B5K,KAAK4V,mBAAmB3V,KAAK,SAASwC,GACpC,IAAI8L,EAAmBnO,EAAEU,IAAIf,EAAMmN,kBAAmB,KAAK,EAC3DnL,EAAQL,SAAS,WACf,IAAIgP,EAAM5D,EAAS+I,EAAeC,EAAWC,EAAiB,CAAA,EAiB9D,IAfI,CAACtT,EAAKiO,MAAQ3Q,EAAMiW,UAAYvT,EAAKiO,KAAKlM,OAAS,KACrDzE,EAAMiW,UAAY,GAChBvT,EAAKyN,YACPnQ,EAAMkQ,WAAaxN,EAAKyN,WAEtBzN,EAAKwT,UACP7V,EAAEyT,aAAapR,EAAKwT,QAAS,SAASvM,EAAK7G,GACrCqT,EAAInW,EAAM8M,QAAQnD,EAAI/C,SAAS,IAC/BuP,EAAI,GAAK,CAACnW,EAAMiN,UAAUkJ,KAE5BzT,EAAKwT,QAAQhM,OAAOpH,EAAG,CAAC,CAC5B,CAAC,EACGJ,EAAKwT,QAAQzR,SACfzE,EAAM4T,iBAAiBlR,EAAKwT,OAAO,EAEnCxT,EAAK0T,QAAS,CAChB,IAAWD,EAAPrT,EAAI,EAWR,GAVAzC,EAAEC,QAAQoC,EAAK0T,QAAS,SAASzM,GAC3BxJ,QAAQ0M,YAAY7M,EAAM8M,QAAQnD,EAAI/C,SAAS,EAAE,IAEnD5G,EAAM8M,QAAQnD,GAAO7G,EACrB9C,EAAMiN,UAAU/C,OAAOpH,EAAG,EAAG,CAAC6G,IAAKA,CAAG,CAAC,EACvCqM,EAAiB,CAAA,EACjBlT,CAAC,GAEL,CAAC,EAEO,EAAJA,EAEF,IAAKqT,EAAIrT,EAAGqT,EAAInW,EAAMiN,UAAUxI,OAAQ0R,CAAC,GACvCJ,EAAY/V,EAAMiN,UAAUkJ,GAC5BnW,EAAM8M,QAAQiJ,EAAUpM,MAAQ7G,CAGtC,CACI3C,QAAQ2D,UAAUpB,EAAKqB,WAAW,IACpC/D,EAAM+D,YAAcrB,EAAKqB,aAGvBrB,EAAKiO,OAEP3O,EAAQJ,KAAKsG,MAAM,cAAgBxF,EAAKiO,KAAKlM,OAAS,WAAW,EAEjEuR,EAAiB,CAAA,EACjBhW,EAAM+K,KAAKrI,CAAI,EAGX1C,EAAMuN,WACRoD,EAAO3Q,EAAM2Q,KAAK,GAClB3Q,EAAM2Q,KAAKzG,OAAO,EAAG,CAAC,GAIxB7J,EAAE+F,OAAOpG,EAAM2Q,KAAM,SAAS0F,EAAMZ,EAAK3S,GACvC,IAAIJ,EACJ,GAAI1C,EAAMuN,SAER,GAAmB,KADnB7K,EAAOrC,EAAEiW,UAAU3F,EAAM8E,CAAG,GACnBC,MAAa,CAEpB,IADA,IAAIa,EAAQ,EACLvW,EAAM2Q,KAAK7N,EAAIyT,IACa,GAA5BvW,EAAM2Q,KAAK7N,EAAIyT,GAAO,IACO,IAA7BvW,EAAM2Q,KAAK7N,EAAIyT,GAAO,IAC3BA,CAAK,GAEP7T,EAAK6T,MAAQA,EACb7T,EAAKiT,UAAY,CAAA,EAC2C,GAAxD3V,EAAMwN,kBAAkB9H,QAAQhD,EAAKiH,IAAI/C,SAAS,CAAC,IACrDlE,EAAKiT,UAAY,CAAA,EAErB,KACS,CAACa,MAAM9T,EAAK4J,KAAK,GAAmB,GAAd5J,EAAK4J,QAClC5J,EAAK+T,aAAe,CAAA,QAItB/T,EAAO,CAACiH,IAAK8L,CAAG,EAYlB,OARAzV,EAAM8M,QAAQpK,EAAKiH,KAAO7G,EAG1BJ,EAAKiM,SAAgD,CAAC,EAAtCH,EAAiB9I,QAAQhD,EAAKiH,GAAG,EAGjD0M,EAAKzS,KAAKlB,CAAI,EAEP2T,CACT,EAAGrW,EAAMiN,SAAS,GAGhBvK,EAAKqK,UAEP+I,EAAgBzV,EAAEqW,UAAUhU,EAAKqK,QAAQ7C,OAAO,EAAG,CAAC,EAAE,GAAI,aAAa,EACvE6C,EAAUrK,EAAKqK,QAGf1M,EAAEC,QAAQyM,EAAS,SAASrK,GAC1B,IAAI+S,EAAMpV,EAAEiW,UAAUR,EAAepT,CAAI,EACrCI,EAAI9C,EAAM8M,QAAQ2I,EAAI9L,IAAI/C,SAAS,GACjC5G,EAAMiN,UAAUnK,aAAcd,EAAQK,WAC1CrC,EAAMiN,UAAUnK,GAAK,IAAId,EAAQK,SAASrC,EAAM8K,SAAS/H,GAAI/C,EAAOA,EAAMiN,UAAUnK,GAAI,CAAA,CAAI,GAE9F9C,EAAMiN,UAAUnK,GAAGiI,KAAK0K,CAAG,CAC7B,CAAC,GAGCO,GAAkBhW,EAAMuN,UAC1BvN,EAAMiU,sBAAsB,EAG9BjS,EAAQJ,KAAKsG,MAAM,WAAalI,EAAM+C,GAAK,QAAQ,EACnD/C,EAAMgN,WAAa,CAAA,EACnBhL,EAAQmJ,WAAWyK,WAAW,eAAe,EAC7CpM,EAASK,QAAQ7J,EAAMiN,SAAS,CAClC,CAAC,CACH,EAAG,SAASvK,GACVV,EAAQJ,KAAKuT,MAAMzS,CAAI,EACvBvC,QAAQC,OAAOJ,EAAO0C,CAAI,EAC1B1C,EAAM2W,QAAU,CAAA,EAChB3W,EAAMgN,WAAa,CAAA,EACnBxD,EAASrC,OAAO,CAClB,CAAC,EAEMqC,EAASQ,OAClB,EAQAhI,EAAQqC,UAAU6M,eAAiB,SAASD,GAC1C,IAAIjR,EAAQC,KAEZgR,EAAkB/Q,KAAK,SAASwC,GAC9BV,EAAQL,SAAS,WACf,IAAIoL,EAASoJ,EACK,EAAdzT,EAAK+B,SAEPsI,EAAU1M,EAAEqW,UAAUhU,EAAK,GAAI,aAAa,EAC5CA,EAAKwH,OAAO,EAAG,CAAC,EAChB7J,EAAEC,QAAQoC,EAAM,SAASkU,GACvBA,EAAiBvW,EAAEiW,UAAUvJ,EAAS6J,CAAc,EACpDT,EAAInW,EAAM8M,QAAQ8J,EAAejN,IAAI/C,SAAS,GAC1CzG,QAAQ2D,UAAUqS,CAAC,IACfnW,EAAMiN,UAAUkJ,aAAcnU,EAAQK,WAC1CrC,EAAMiN,UAAUkJ,GAAK,IAAInU,EAAQK,SAASrC,EAAM8K,SAAS/H,GAAI/C,EAAOA,EAAMiN,UAAUkJ,GAAI,CAAA,CAAI,GAE9FnW,EAAMiN,UAAUkJ,GAAGpL,KAAK6L,CAAc,EAE1C,CAAC,EACG5W,EAAMuN,WACRvN,EAAMiU,sBAAsB,CAGlC,CAAC,CACH,CAAC,CACH,EAOAjS,EAAQqC,UAAUwS,iBAAmB,WACnC,IAAItH,EAAStP,KAAK6W,WAAY,YAAc,cAE5C9U,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAIwM,CAAM,CACzC,EAQAvN,EAAQqC,UAAU0S,kBAAoB,SAAUC,GAC9C/W,KAAKmN,gBAAkB4J,CACzB,EAQAhV,EAAQqC,UAAU4S,kBAAoB,WACpC,OAAOhX,KAAKmN,eACd,CACD,EAAE,EChyCH,WACE,aAUA,SAASnL,EAAQqG,EAAW3E,EAASuT,EAAmBC,GACtDlX,KAAKqI,UAAYA,EACjBrI,KAAKmX,SAAWzT,EAChB1D,KAAKoX,kBAAoB,CAAA,EACzBpX,KAAKqX,mBAAqB,CAAA,EAC1BrX,KAAKgJ,SAAW,CAAEsO,GAAI,GAAIC,GAAI,GAAIC,IAAK,EAAG,EAC1CxX,KAAK0O,SAAW,CAAA,EAGsB,YAAlC,OAAOuI,EAAkBhX,MAEvBC,CAAAA,QAAQ0M,YAAYsK,CAAI,GAAMA,GAChClX,KAAK8K,KAAKmM,CAAiB,EAE7BjX,KAAK0J,IAAMsC,SAASiL,EAAkBvN,GAAG,EACzC1J,KAAK0O,SAAW,CAAC,CAACuI,EAAkBvI,SACpC1O,KAAKqM,MAAQL,SAASiL,EAAkB5K,KAAK,EAC7CrM,KAAKyV,MAA8C,IAAtCzJ,SAASiL,EAAkBxB,KAAK,EAC7CzV,KAAKkR,MAAQ,GACTlR,KAAKyV,OACPzV,KAAKyX,YAAczL,SAASiL,EAAkBX,KAAK,EACnDtW,KAAK0V,UAA6C,CAAA,IAAhCuB,EAAkBvB,WAE7B,CAACa,MAAMvW,KAAKqM,KAAK,GAAmB,GAAdrM,KAAKqM,QAClCrM,KAAKwW,aAAe,CAAA,IAKtBxW,KAAKiL,QAAQgM,CAAiB,CAElC,CAOAjV,EAAQP,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,mBAAoB,WAAY,cAAe,SAAUJ,EAAIK,EAAUC,EAAMC,EAAU8V,EAAgB7V,EAAUC,GAsB3K,OArBA5B,QAAQC,OAAO6B,EAAS,CACtB2V,OAAQD,EACRrW,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNM,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFC,aAAcL,EACd8V,QAAS1X,QAAQgE,KAAKpC,EAAaA,EAAY+V,MAAM,CACvD,CAAC,EAGG/V,EAAYqB,SAAS2U,qBACvB9V,EAAQ+V,MAAQjW,EAAYqB,SAAS2U,qBAErC9V,EAAQ+V,MAAQ,GAEdjW,EAAYqB,SAAS6U,mCACmC,UAA1DlW,EAAYqB,SAAS6U,oCACrBhW,EAAQiW,2BAA6B,CAAA,GAGhCjW,CACT,GAMA,IACE9B,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAOC,GACLpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3B4J,SAAS,mBAAoB,CAC5BiM,WAAY,EACZC,gBAAiB,EACjBC,QAAS,EACTC,OAAQ,EACRC,WAAY,GACd,CAAC,EACA/V,QAAQ,UAAWP,EAAQP,QAAQ,EAStCO,EAAQuW,WAAa,SAAUC,EAAOC,GACpC,IAAIC,EAAK,IAAIvG,OAAOqG,EAAO,GAAG,EAC5BG,EAAU,GAUZ,OARAvY,EAAEC,QAAQD,EAAEiQ,KAAKrO,EAAQ+V,KAAK,EAAG,SAAUa,GACzC,IAAIC,EAAO7W,EAAQ+V,MAAMa,GACC,CAAC,GAAvBC,EAAK,GAAGC,OAAOJ,CAAE,GACdtY,EAAEwD,SAAS6U,EAAcG,CAAG,GAC/BD,EAAQhV,KAAK,CAAE+C,KAAMkS,EAAKtR,YAAauR,EAAK,GAAIE,MAAOF,EAAK,EAAG,CAAC,CAEtE,CAAC,EAEMF,CACT,EAQA3W,EAAQoC,UAAU0G,KAAO,SAAUrI,GACjC,IAAI1C,EAAQC,KACZE,QAAQC,OAAOH,KAAMyC,CAAI,EACzBzC,KAAKgZ,qBAAqB,EAC1BhZ,KAAKqX,mBAAqB,CAAA,EAC1BjX,EAAEC,QAAQL,KAAKkR,MAAO,SAAU+H,EAAMpW,GACd,KAAlBoW,EAAKC,OAAO,CAAC,GACfnZ,EAAMmR,MAAMjH,OAAOpH,EAAG,EAAG,IAAMoW,CAAI,CAEvC,CAAC,EAEDjZ,KAAK2S,OAASzS,CAAAA,QAAQ2D,UAAU7D,KAAK2S,MAAM,GAAI,CAAC,CAAC3S,KAAK2S,MACxD,EAQA3Q,EAAQoC,UAAUoE,cAAgB,SAAU3D,GAC1C,IAAI9E,EAAQC,KAAM8C,EAAK9C,KAAK8C,GAE5B,SAASqW,IACP,IACA3S,EAAOpG,EAAEU,IAAIf,EAAMoX,SAAS3Q,KAAKiG,MAAM,GAAG,EAAG,SAAUC,GACrD,MAAO,SAAWA,EAAUC,gBAAgB,CAC9C,CAAC,EAED,OADAnG,EAAKyD,OAAO,EAAG,EAAGlK,EAAMsI,SAAS,EAC1B7B,EAAKxF,KAAK,GAAG,CACtB,CAaA,OAXId,QAAQ0M,YAAY5M,KAAK8C,EAAE,GAAK+B,GAAWA,EAAQuU,WACrDpZ,KAAK8C,GAAKqW,EAAU,EAAI,IAAMnZ,KAAK0J,IACnC5G,EAAK9C,KAAK8C,IAER+B,GAAWA,EAAQ4D,SAAWzI,KAAKqZ,UACrCvW,EAAKqW,EAAU,EAAI,IAAMnZ,KAAKqZ,SAG9BvW,EADE+B,GAAWA,EAAQyU,iBAChBtX,EAAQC,WAAWuE,KAAK1D,CAAE,EAG1BA,CACT,EAQAd,EAAQoC,UAAUmV,QAAU,SAAU7P,GACpC,IAA6ChF,EAAzC8U,EAAUxZ,KAAK0J,KAAO,CAAC,EAAI3J,EAAQC,KAEnCwZ,GAAUxN,SAAStC,CAAG,IACxB1J,KAAK0J,IAAMsC,SAAStC,CAAG,EACvB1J,KAAKwI,cAAc,CAAE4Q,QAAS,CAAA,CAAK,CAAC,EACvB,CAAC,EAAVI,GACFA,EAASA,EAAO7S,SAAS,EACrBzG,QAAQ2D,UAAU7D,KAAKmX,SAAStK,QAAQ2M,EAAO,IACjD9U,EAAQ1E,KAAKmX,SAAStK,QAAQ2M,GAC9BxZ,KAAKmX,SAAStK,QAAQnD,GAAOhF,EAC7B,OAAO1E,KAAKmX,SAAStK,QAAQ2M,GAC7BxZ,KAAKmX,SAASnK,UAAUtI,GAAOgF,IAAM1J,KAAK0J,IAG1CtJ,EAAEC,QAAQ,CAAC,OAAQ,KAAM,WAAY,SAAUoZ,GAC7C1Z,EAAMoX,SAASnK,UAAUtI,GAAO+U,GAAQ1Z,EAAMiJ,SAASyQ,EACzD,CAAC,IAKCzZ,KAAKmX,SAASuC,YAAYhO,gBACqB,SAAjD1L,KAAKmX,SAASuC,YAAYhO,eAAerF,MACzCrG,KAAKmX,SAASuC,YAAYhO,eAAeyD,QAAQ,EAIzD,EAQAnN,EAAQoC,UAAU4U,qBAAuB,WACvC,IAAIjZ,EAAQC,KACRM,EAAaF,EAAEU,IAAIf,EAAMoX,SAAStM,SAASvK,WAAY,OAAO,EAGlEF,EAAEC,QAAQ,CAAC,OAAQ,KAAM,KAAM,MAAO,YAAa,SAAUgG,GAC3DjG,EAAEC,QAAQN,EAAMsG,GAAO,SAAU5D,GAC3BA,EAAKiE,MAAQjE,EAAKiE,MAAQjE,EAAK/B,OACjC+B,EAAK9B,KAAO8B,EAAKiE,KAAO,KAAOjE,EAAK/B,MAAQ,IAExC+B,EAAKiE,KAAKlC,OAAS,GAErB/B,EAAKkX,UAAYlX,EAAKiE,KACfjE,EAAKiE,KAAK+F,MAAM,GAAG,EAAEjI,SAE5B/B,EAAKkX,UAAYvZ,EAAEqV,MAAMrV,EAAEwZ,KAAKnX,EAAKiE,KAAK+F,MAAM,KAAK,CAAC,EAAEA,MAAM,IAAI,CAAC,EAAEqF,QAAQ,IAAM,EAAE,IAEhFrP,EAAK/B,QACZ+B,EAAK9B,KAAO,IAAM8B,EAAK/B,MAAQ,IAC/B+B,EAAKkX,UAAYlX,EAAK/B,MAAM+L,MAAM,GAAG,EAAE,IAGzChK,EAAKoX,MAAQ7X,EAAQ4V,QAAQnV,EAAK/B,MAAO,EAAE,EAIF,GAArCN,EAAEqF,QAAQnF,EAAYmC,EAAK/B,KAAK,IAClC+B,EAAKkX,UAAYhS,EAAE,IAAI,EAC3B,CAAC,CACH,CAAC,CACH,EAQA3F,EAAQoC,UAAU0V,iBAAmB,SAAUzL,GAC7C,IAAItO,EAAQC,KAAM+Z,EAAS,GAAIzD,EAAQ,EAAG0D,EAAQ,EAelD,OAZA5Z,EAAEC,QAAQ,CAAC,KAAM,KAAM,OAAQ,SAAUgG,GACvC2T,GAASja,EAAMsG,GAAQtG,EAAMsG,GAAM7B,OAAS,EAC5CpE,EAAEC,QAAQN,EAAMsG,GAAO,SAAU5D,EAAMI,GACjCyT,EAAQjI,GACV0L,EAAOpW,KAAKlB,EAAKkX,SAAS,EAC5BrD,CAAK,EACP,CAAC,CACH,CAAC,EAEWjI,EAAR2L,GACFD,EAAOpW,KAAKgE,EAAE,mBAAqBqS,EAAQ3L,CAAI,CAAC,EAE3C0L,EAAO/Y,KAAK,IAAI,CACzB,EAQAgB,EAAQoC,UAAU6V,cAAgB,SAAU5T,EAAM6T,GAChD,IAKQrK,EALJsK,EAAU,GA4Bd,OA3BIna,KAAKqG,KACHnG,QAAQ2F,SAAS7F,KAAKqG,EAAK,GAM3B8T,GAHEtK,EAAQ7P,KAAKqG,GAAMwJ,MAAMuK,OAAOC,OAAO,IAEzCF,EAAUna,KAAKqG,GAAMoM,UAAU,EAAG5C,EAAMnL,KAAK,GAC3BoN,QAAQ,oBAAqB,IAAI,EAEhDqI,GAAQ3V,SACX2V,EAAUna,KAAKqG,IAEU,EAApBrG,KAAKqG,GAAM7B,SAKhB2V,EAHED,GAEIla,KAAKqG,GAAM,GAAGK,MAAQ1G,KAAKqG,GAAM,GAAG3F,MAChCV,KAAKqG,GAAM,GAAGK,KAAO,KAAO1G,KAAKqG,GAAM,GAAG3F,MAAO,IAFjDV,KAAKqG,GAAM,GAAGK,MAAQ1G,KAAKqG,GAAM,GAAG3F,OAAS,KAYtD4Z,SAASC,UAAUJ,CAAO,CACnC,EAQAnY,EAAQoC,UAAUoW,cAAgB,WAChC,IAAIla,EAAaF,EAAEU,IAAId,KAAKmX,SAAStM,SAASvK,WAAY,OAAO,EAEjEma,EAAkBra,EAAE+F,OAAO,CAAC,KAAM,KAAM,MAAO,YAAa/F,EAAE8D,KAAK,SAAUoS,EAAOjQ,GAClF,IAAIqU,EAAY,EAChB,OAAI1a,KAAKqG,IACPqU,EAAY1a,KAAKqG,GAAM7B,OACvBpE,EAAEC,QAAQL,KAAKqG,GAAO,SAAUsU,GACgB,GAA1Cva,EAAEqF,QAAQnF,EAAYqa,EAAUja,KAAK,GACvCga,CAAS,EAEb,CAAC,EACMpE,EAAQoE,GAGRpE,CAEX,EAAGtW,IAAI,EAfe,CAeG,EAEzB,MAAO,CAACA,KAAK4a,SAA6B,EAAlBH,CAC1B,EAOAzY,EAAQoC,UAAUyW,kBAAoB,WACpC7a,KAAKqX,mBAAqB,CAAA,EAC1B,OAAOrX,KAAK8a,MACd,EAQA9Y,EAAQoC,UAAU2W,SAAW,WAEvB/a,KAAKsX,IAAuB,EAAjBtX,KAAKsX,GAAG9S,QACrBxE,KAAKsX,GAAGjX,QAAQ,SAAUG,EAASqC,EAAGmY,GAChCxa,EAAQE,OAAsC,EAA7BF,EAAQE,MAAM+E,QAAQ,GAAG,IAC5CuV,EAAInY,GAAGnC,MAAQ4Z,SAASC,UAAU/Z,EAAQE,KAAK,EACnD,CAAC,EAECV,KAAKib,MAAiC,EAAzBjb,KAAKib,KAAKxV,QAAQ,GAAG,IACpCzF,KAAKib,KAAOX,SAASC,UAAUva,KAAKib,IAAI,GAE1C,IAAIlb,EAAQC,KACVkb,EAAQ,GAIRlV,EAAS,SAAUmV,GAEjB,IAgCMC,EAjCND,EAAKE,SAAW,uBACC,gCAAbF,EAAK9U,KACPL,EAAO5F,EAAE+E,KAAKgW,EAAKG,QAAS,SAAUC,GACpC,OAAOJ,EAAKK,eAAiBD,EAAcE,WAC7C,CAAC,CAAC,EAGKvb,QAAQwb,QAAQP,EAAKG,OAAO,IAClB,2BAAbH,EAAK9U,MAAgE,IAA3B8U,EAAK,mBAO7B,8BAAbA,EAAK9U,OACR8U,EAAKQ,YACP5b,EAAM4b,UAAY,CAChBC,MAAOT,EAAKU,SACd,EACIV,EAAKU,UACP9b,EAAM4b,UAAUpT,QAAUZ,EAAE,2BAA2B,EAEvD5H,EAAM4b,UAAUpT,QAAUZ,EAAE,+HAA+H,GAE3JwT,EAAKW,iBACP/b,EAAMgc,OAAS,CACbH,MAAOT,EAAKS,MACZI,YAAab,EAAKc,aAAad,EAAKc,aAAazX,OAAS,GAC1D+D,QAAS4S,EAAK5S,OAChB,IAGA6S,EAAUhb,EAAE+E,KAAKgW,EAAKG,QAAS,SAAUY,GAE3C,MAAyB,yBAAlBA,EAAU7V,MAA8D,EAA3B6V,EAAUZ,QAAQ9W,MACxE,CAAC,IAEc,CAACpE,EAAE+E,KAAKgW,EAAKG,QAAS,SAAUY,GAC7C,MAAyB,gCAAlBA,EAAU7V,IACnB,CAAC,EAGCL,EAAOoV,CAAO,EAGdhb,EAAEC,QAAQ8a,EAAKG,QAAS,SAAUY,GAChClW,EAAOkW,CAAS,CAClB,CAAC,IAIChc,QAAQ0M,YAAYuO,EAAKgB,WAAW,IAEtChB,EAAKgB,YAAchB,EAAKG,QACxBvb,EAAMqX,mBAA6D,CAAC,EAAxC+D,EAAKgB,YAAY1W,QAAQ,UAAU,GAEhD,yBAAb0V,EAAK9U,MACP8U,EAAKiB,KAAO,CAAA,EACRrc,EAAMsX,oBAAsBrV,EAAQiW,4BAClC/X,QAAQ0M,YAAYuO,EAAKkB,aAAa,IACxClB,EAAKkB,cAAgBC,SAASC,cAAc,KAAK,EACjDpB,EAAKkB,cAAcG,UAAYrB,EAAKgB,YACpCjc,QAAQG,QAAQ,CAAC,MAAO,OAAQ,UAAW,aAAc,SAAU,SAAUoc,GAK3E,IAJA,IACEjc,EACA6J,EAFEqS,EAAWvB,EAAKkB,cAAcM,iBAAiB,WAAaF,EAAS,GAAG,EAIvE5Z,EAAI,EAAGA,EAAI6Z,EAASlY,OAAQ3B,CAAC,GAEhCwH,GADA7J,EAAUN,QAAQM,QAAQkc,EAAS7Z,EAAE,GACrB4W,KAAK,UAAYgD,CAAM,EACvCjc,EAAQiZ,KAAKgD,EAAQpS,CAAK,EAC1B7J,EAAQoc,WAAW,UAAYH,CAAM,CAEzC,CAAC,EACD1c,EAAMqX,kBAAoB,CAAA,GAE5B+D,EAAKG,QAAUH,EAAKkB,cAAcG,WAGlCrB,EAAKG,QAAUH,EAAKgB,YAEtBjB,EAAMvX,KAAKwX,CAAI,GAEK,yBAAbA,EAAK9U,MACC,0BAAb8U,EAAK9U,MACQ,yBAAb8U,EAAK9U,MAEY,0BAAb8U,EAAK9U,KACP8U,EAAKE,SAAW,uBACI,yBAAbF,EAAK9U,OACZ8U,EAAKE,SAAW,uBAGlBF,EAAK0B,QAAU,CAAA,EACVzH,OAAO0H,OAAO3B,EAAM,yBAAyB,GAAK,GAAKA,EAAK4B,yBAC/D7B,EAAMvX,KAAKwX,CAAI,IAIjBA,EAAKiB,KAAO,CAAA,EACZjB,EAAKG,QAAUH,EAAKgB,YACpBjB,EAAMvX,KAAKwX,CAAI,GAGrB,EAIF,GAAInb,KAAK8a,OAEP,OAAO9a,KAAK8a,OAOd,GALS9a,KAAKkb,OACZlV,EAAOhG,KAAKkb,KAAK,EAIfA,GAASlb,KAAKmX,UAAuD,EAA3CnX,KAAKmX,SAASH,kBAAkB,EAAExS,OAE9D,IADA,IAAI3B,EAAI,EACHA,EAAI,EAAGA,EAAIqY,EAAM1W,OAAQ3B,CAAC,GACzBqY,EAAMrY,IACLqY,EAAMrY,GAAGwD,OACR,yBAA2B6U,EAAMrY,GAAGwD,MACrC,yBAA2B6U,EAAMrY,GAAGwD,QAEvC6U,EAAMrY,GAAGyY,QAAUtb,KAAKgd,qBAAqB9B,EAAMrY,GAAGyY,QAAS,CAAA,CAAK,EAEpEtb,KAAK6Q,QAAU7Q,KAAKid,oBAAoB,EAExCjd,KAAKib,KAAOjb,KAAKkd,iBAAiB,GAQxC,OAFAld,KAAK8a,OAASI,CAGhB,EAQAlZ,EAAQoC,UAAU4Y,qBAAuB,SAAUva,EAAM0a,GACvD,IAKMC,EAUN,OAdIpd,KAAKmX,SAASH,kBAAkB,GACc,EAA3ChX,KAAKmX,SAASH,kBAAkB,EAAExS,QAClC/B,GACA,CAAC,IAAMA,EAAKgD,QAAQ,aAAa,IAClC2X,EAAMd,SAASC,cAAc,KAAK,GAClCC,UAAYW,EAAiB1a,EAAK0a,eAAe,EAAI1a,EACtC,IAAI4a,KAAKD,CAAG,EAClBE,KAAKtd,KAAKmX,SAASH,kBAAkB,CAAC,EACnDvU,EAAO2a,EAAIZ,UACXY,EAAIG,OAAO,GACFJ,IACT1a,EAAOA,EAAK0a,eAAe,GAGtB1a,CACT,EAQAT,EAAQoC,UAAU6Y,oBAAsB,WACtC,OAAOjd,KAAKgd,qBAAqBhd,KAAK6Q,QAAS,CAAA,CAAK,CACtD,EAQA7O,EAAQoC,UAAU8Y,iBAAmB,WAEnC,IADA,IAAIra,EAAI,EACHA,EAAI,EAAGA,EAAI7C,KAAKib,KAAKzW,OAAQ3B,CAAC,GACjC7C,KAAKib,KAAKpY,GAAG2a,gBAAkBxd,KAAKgd,qBAAqBhd,KAAKib,KAAKpY,GAAGlC,KAAM,CAAA,CAAK,EACjFX,KAAKib,KAAKpY,GAAG4a,gBAAkBzd,KAAKgd,qBAAqBhd,KAAKib,KAAKpY,GAAG6D,KAAM,CAAA,CAAK,EAGnF,OAAO1G,KAAKib,IACd,EASAjZ,EAAQoC,UAAUsZ,iBAAmB,WACnC,IAAI3d,EAAQC,KAEZ,OAAOgC,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,MAAM,EAAEvI,KAAK,SAAUwC,GAE3E,OADAvC,QAAQC,OAAOJ,EAAO0C,CAAI,EACnBT,EAAQC,WAAWU,MAAM5C,EAAMyI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,MAAM,EAAExI,KAAK,SAAUwC,GAE7F,IAAIlC,EAAWH,EAAE+E,KAAKpF,EAAMoX,SAAStM,SAASvK,WAAY,SAAUC,GAClE,OAAOkC,EAAKwY,MAA4D,CAAC,IAArDxY,EAAKwY,KAAKrL,YAAY,EAAEnK,QAAQlF,EAASG,KAAK,CACpE,CAAC,EAGGgI,GAFAnI,IACFkC,EAAKwY,KAAO1a,EAASI,MACDqB,EAAQG,aAAagB,SAASwF,sBAAsB5I,EAAMoX,SAAStM,SAAS/H,KASlG,OARI4F,EAAgB5B,WACd4B,EAAgB5B,SAAS8B,aAC3BnG,EAAKoG,KAAO,CAAA,GACVH,EAAgB5B,SAASgC,iBAC3BrG,EAAKsG,QAAU,CAAA,GAEnB/G,EAAQL,KAAKsG,MAAM,cAAgBC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EACrElI,QAAQC,OAAOJ,EAAMiJ,SAAUvG,CAAI,EAC5BA,EAAKkb,IACd,CAAC,CACH,CAAC,CACH,EAOA3b,EAAQoC,UAAUwZ,cAAgB,WAChC,OAAO5b,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,WAAW,CACnE,EASAxG,EAAQoC,UAAUyZ,OAAS,SAAUjF,GACnC,IAAI7Y,EAAQC,KACV8d,EAAOlF,EAAI9G,QAAQ,OAAQ,GAAG,EAChC,OAAO9R,KAAKmX,SAASvE,UAAU,EAAE3S,KAAK,SAAUsP,GAC9C,IAAIzK,EAAS,CAAC1E,EAAE+E,KAAKoK,EAAQ,SAAUwO,GACrC,OAAOA,EAAMC,UAAYF,CAC3B,CAAC,EACD,OAAO/d,EAAMke,gBAAgB,MAAOrF,CAAG,EAAE3Y,KAAK,WACxC6E,GAEF/E,EAAMoX,SAASvE,UAAU,CAAE9N,OAAQ,CAAA,CAAK,CAAC,CAC7C,CAAC,CACH,CAAC,CACH,EASA9C,EAAQoC,UAAU8Z,UAAY,SAAUtF,GACtC,OAAO5Y,KAAKie,gBAAgB,SAAUrF,CAAG,CAC3C,EAUA5W,EAAQoC,UAAU6Z,gBAAkB,SAAUhL,EAAW2F,GACnDnW,EAAO,CACTwQ,UAAWA,EACXC,QAAS,CAAClT,KAAK0J,KACfwH,MAAO0H,EAAI9G,QAAQ,OAAQ,GAAG,CAChC,EAEA,GAAI8G,EACF,OAAO5W,EAAQC,WAAW8B,KAAK/D,KAAKmX,SAAS/J,IAAI,EAAG,mBAAoB3K,CAAI,CAChF,EAQAT,EAAQoC,UAAU+Z,WAAa,WAC7B,IAAIpe,EAAQC,KAEZ,OAAIA,KAAK2S,OACA3Q,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,mBAAmB,EAAEvI,KAAK,WAC9E+B,EAAQN,SAAS,WACf3B,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,CAAC,EAEM9B,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,iBAAiB,EAAEvI,KAAK,WAC5E+B,EAAQN,SAAS,WACf3B,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,CAAC,CACL,EAUA9B,EAAQoC,UAAUga,YAAc,SAAU5X,EAAM8I,EAAQ7M,GACtD,IAAI1C,EAAQC,KACZgC,EAAQC,WAAW8B,KAAK,CAAC/D,KAAKwI,cAAc,EAAGhC,GAAMxF,KAAK,GAAG,EAAGsO,EAAQ7M,CAAI,EAAExC,KAAK,SAAUwC,GAC3FT,EAAQN,SAAS,WACf3B,EAAMse,QAAQ,CAChB,CAAC,CACH,CAAC,CACH,EAOArc,EAAQoC,UAAUka,SAAW,WAE3B,OADAte,KAAKue,iBAAmB,EACjBvc,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,EAAG,SAAS,CAChE,EAOAxG,EAAQoC,UAAUoa,eAAiB,SAAUlD,GAC3C,IAAIvb,EAAQC,KAEZ,MAAO,CAAC,CAACI,EAAE+E,KAAKmW,GAAWtb,KAAKkb,MAAMI,QAAS,SAAUH,GACvD,OAAIjb,QAAQwb,QAAQP,EAAKG,OAAO,EACvBvb,EAAMye,eAAerD,EAAKG,OAAO,EAEtB,yBAAbH,EAAK9U,MAAgD,0BAAb8U,EAAK9U,IACtD,CAAC,CACH,EAQArE,EAAQoC,UAAUqa,kBAAoB,SAAUjL,GAC9C,IAAI/Q,EAAO,CAAE+Q,SAAYA,CAAS,EAC9BzT,EAAQC,KACZ,OAAOgC,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,mBAAoBhG,CAAI,EAAExC,KAAK,WACpG+B,EAAQN,SAAS,WACf3B,EAAMiJ,SAAS0V,gBAAkBte,EAAEqO,OAAO1O,EAAMiJ,SAAS0V,gBAAiB,SAAUC,GAClF,OAAOA,EAAWnL,UAAYA,CAChC,CAAC,CACH,CAAC,CACH,CAAC,CACH,EAQAxR,EAAQoC,UAAUwa,WAAa,WAC7B,IAAI7e,EAAQC,KACVsP,EAAS,qBAKX,OAHItP,KAAK6e,YACPvP,EAAS,wBAEJtN,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,EAAG8G,CAAM,EAAErP,KAAK,SAAUwC,GAC1ET,EAAQN,SAAS,WACf3B,EAAM8e,UAAY,CAAC9e,EAAM8e,SAC3B,CAAC,CACH,CAAC,CACH,EAQA7c,EAAQoC,UAAU0a,aAAe,WAC/B,IAAI/e,EAAQC,KACVsP,EAAS,sBAQX,OANItP,KAAK0V,YACPpG,EAAS,yBAEXtP,KAAK0V,UAAY,CAAC1V,KAAK0V,UACvB1V,KAAKmX,SAASnD,sBAAsB,EAE7BhS,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,EAAG8G,CAAM,EAAEyP,MAAM,WACjE/e,KAAK0V,UAAY,CAAC1V,KAAK0V,UACvB3V,EAAMoX,SAASnD,sBAAsB,CACvC,CAAC,CACH,EAQAhS,EAAQoC,UAAU2I,WAAa,WAC7B,OAAO/M,KAAKgf,SAAWhd,EAAQ2V,OAAOS,OACxC,EASApW,EAAQoC,UAAUia,QAAU,SAAUxZ,GACpC,IAAI9E,EAAQC,KAEZ,OAAI6E,GAAWA,EAAQoa,UAAYjf,KAAKkf,oBAEjClf,KAAK2S,QACwD,CAAC,EAA7D3Q,EAAQG,aAAagB,SAASgc,8BAEhCpf,EAAMqf,mBAAqBpd,EAAQN,SAAS,WAC1CM,EAAQC,WAAWU,MAAM5C,EAAMyI,cAAc,EAAG,iBAAiB,EAAEvI,KAAK,WACtEF,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,EAA+D,IAA5D9B,EAAQG,aAAagB,SAASgc,2BAAkC,GAEhEnf,OAIPiX,EADEpS,GAAWA,EAAQwa,IACDrd,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc3D,CAAO,EAAG,SAAS,EAE/D7C,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc3D,CAAO,EAAG,MAAM,EAE3E7E,KAAKiL,QAAQgM,CAAiB,EACvC,EAQAjV,EAAQoC,UAAUgF,aAAe,SAAUF,GACzC,IAAIoO,EAAI7U,EAAO,GAAIoN,EAAQ,mBAAmByP,KAAKpW,CAAM,EACrD2G,IAEFyH,EAAKlX,EAAEU,IAAIye,mBAAmB1P,EAAM,EAAE,EAAEpD,MAAM,GAAG,EAAG,SAAU/L,GAC5D,MAAO,IAAMA,EAAMO,KAAK,EAAI,GAC9B,CAAC,EACDwB,EAAO,CAAE6U,GAAIA,CAAG,GAGlBlX,EAAEC,QAAQ,CAAC,UAAW,QAAS,SAAUoJ,GACvC,IAAIiP,EAAK,IAAIvG,OAAO1I,EAAQ,UAAU,EACtCA,EAAkB,QAATA,EAAmB,OAASA,GACrCoG,EAAQ6I,EAAG4G,KAAKpW,CAAM,KAEpBzG,EAAKgH,GAAS8V,mBAAmB1P,EAAM,EAAE,EAC7C,CAAC,EACG,QAAU7N,EAAQG,aAAagB,SAASqc,4BAA8B/c,EAAKkb,MAA2B,EAAnBlb,EAAKkb,KAAKnZ,SAC/F/B,EAAKkb,KAAOlb,EAAKkb,KAAK7L,QAAQ,gBAAiB,OAAO,GAIxD1R,EAAEC,QAAQ,CAAC,KAAM,OAAQ,SAAUoJ,GACjC,IAAIiP,EAAK,IAAIvG,OAAO1I,EAAQ,UAAU,GACtCoG,EAAQ6I,EAAG4G,KAAKpW,CAAM,KAEpBzG,EAAKgH,GAASrJ,EAAEU,IAAIye,mBAAmB1P,EAAM,EAAE,EAAEpD,MAAM,GAAG,EAAG,SAAU/L,GACrE,MAAO,IAAMA,EAAMO,KAAK,EAAI,GAC9B,CAAC,EACL,CAAC,EACIb,EAAEqf,QAAQhd,CAAI,GACjBvC,QAAQC,OAAOH,KAAKgJ,SAAUvG,CAAI,CACtC,EAQAT,EAAQoC,UAAUsb,OAAS,WACzB,OAAO1f,KAAK2f,UAAU,OAAO,CAC/B,EAQA3d,EAAQoC,UAAUwb,UAAY,WAC5B,OAAO5f,KAAK2f,UAAU,UAAU,CAClC,EAQA3d,EAAQoC,UAAUyb,SAAW,WAC3B,OAAO7f,KAAK2f,UAAU,SAAS,CACjC,EAQA3d,EAAQoC,UAAU0b,SAAW,WAC3B,OAAO9f,KAAK2f,UAAU,SAAS,CACjC,EAeA3d,EAAQoC,UAAUub,UAAY,SAAUrQ,GACtC,IAAIvP,EAAQC,KAGZ,OAAOgC,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG8G,CAAM,EAAErP,KAAK,SAAUwC,GAC3E,IAAIiB,EAAS6E,EAKb,OAJAvG,EAAQL,KAAKsG,MAAM,OAASqH,EAAS,KAAOpH,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAC9E1E,EAAU3D,EAAMoX,SAAStM,SAAStE,kBAAkB9D,EAAK6F,WAAW,EACpEC,EAAU,IAAIvG,EAAQS,EAAK4F,UAAW3E,EAASjB,CAAI,EAE5CT,EAAQC,WAAWU,MAAM4F,EAAQC,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,MAAM,EAAExI,KAAK,SAAUwC,GAC/FT,EAAQL,KAAKsG,MAAM,OAASqH,EAAS,KAAOpH,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,EAAI,kBAAoBrI,EAAM2J,GAAG,EAC9G,IAAIhB,EAAkB1G,EAAQG,aAAagB,SAASwF,sBAAsB5I,EAAMoX,SAAStM,SAAS/H,IAuBlG,OAtBI4F,EAAgB5B,WACd4B,EAAgB5B,SAAS8B,aAC3BnG,EAAKoG,KAAO,CAAA,GACVH,EAAgB5B,SAASgC,iBAC3BrG,EAAKsG,QAAU,CAAA,GAEftG,EAAKsd,SASP3D,GADAA,GADAA,GADAA,GADAA,GAAOA,GAFHA,EAAO3Z,EAAKkb,MACJ7L,QAAQ,kBAAmB,EAAE,GAC7BA,QAAQ,kBAAmB,EAAE,GAC7BA,QAAQ,yBAA0B,EAAE,GACpCA,QAAQ,yBAA0B,EAAE,GACpCA,QAAQ,yBAA0B,EAAE,GACpCA,QAAQ,2BAA4B,EAAE,EAClDrP,EAAKkb,KAAOvB,GAEdlc,QAAQC,OAAOoI,EAAQS,SAAUvG,CAAI,EAGrC8F,EAAQyX,OAAS,CAAEzX,QAASxI,EAAOuP,OAAQA,CAAO,EAC3C/G,CACT,CAAC,CACH,CAAC,CACH,EAQAvG,EAAQoC,UAAUuN,MAAQ,WACxB,IAAI5R,EAAQC,KACVyC,EAAOzC,KAAKkK,MAAM,EAIpB,OAFAlI,EAAQL,KAAKsG,MAAM,UAAYC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAE1DpG,EAAQC,WAAW+S,KAAKhV,KAAKwI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAGhG,CAAI,EAAExC,KAAK,SAAUgV,GACzFjT,EAAQL,KAAKsG,MAAM,UAAYC,KAAKC,UAAU8M,EAAU7M,KAAAA,EAAW,CAAC,CAAC,EACrErI,EAAMwZ,QAAQtE,EAASvL,GAAG,EAC1B3J,EAAMse,QAAQ,EACdte,EAAMkJ,MAAQ,CAAA,CAChB,CAAC,CACH,EAQAjH,EAAQoC,UAAUkW,SAAW,SAAU9Z,GACrC,IACIyf,EADK,0BACEX,KAAK9e,CAAO,EACnB0f,EAAO1f,EAIX,OAHIyf,GAAgB,EAAXA,EAAEzb,QAAcyb,EAAE,KACzBC,EAAOD,EAAE,IAEJzf,EAAQsR,QAAQoO,EAAM5F,SAAS6F,QAAQD,CAAI,CAAC,CACrD,EAQAle,EAAQoC,UAAUgc,MAAQ,WACxB,IAAIrgB,EAAQC,KACVyC,EAAOzC,KAAKkK,MAAM,EAsBpB,OApBAlI,EAAQL,KAAKsG,MAAM,UAAYC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAG7D3F,EAAK6U,IAAuB,EAAjB7U,EAAK6U,GAAG9S,QACrB/B,EAAK6U,GAAGjX,QAAQ,SAAUG,EAASqC,EAAGmY,GACpCA,EAAInY,GAAK9C,EAAMua,SAAS9Z,CAAO,CACjC,CAAC,EAECiC,EAAK+U,KAAyB,EAAlB/U,EAAK+U,IAAIhT,QACvB/B,EAAK+U,IAAInX,QAAQ,SAAUG,EAASqC,EAAGmY,GACrCA,EAAInY,GAAK9C,EAAMua,SAAS9Z,CAAO,CACjC,CAAC,EAECiC,EAAK8U,IAAuB,EAAjB9U,EAAK8U,GAAG/S,QACrB/B,EAAK8U,GAAGlX,QAAQ,SAAUG,EAASqC,EAAGmY,GACpCA,EAAInY,GAAK9C,EAAMua,SAAS9Z,CAAO,CACjC,CAAC,EAEHiC,EAAKwY,KAAOlb,EAAMua,SAAS7X,EAAKwY,IAAI,EAE7BjZ,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,OAAQhG,CAAI,EAAExC,KAAK,SAAUgV,GACjG,MAAuB,WAAnBA,EAASnL,QACP5J,QAAQ2D,UAAU9D,EAAMigB,MAAM,IAC5BjgB,EAAMigB,OAAO1Q,OAAO+Q,WAAW,OAAO,EACxCtgB,EAAMigB,OAAOzX,QAAQ+X,WAAa,CAAA,EACJ,WAAvBvgB,EAAMigB,OAAO1Q,SACpBvP,EAAMigB,OAAOzX,QAAQgY,YAAc,CAAA,IAEhCtL,GAGAjT,EAAQX,GAAG6F,OAAO+N,EAASxS,IAAI,CAE1C,CAAC,CACH,EAQAT,EAAQoC,UAAU6G,QAAU,SAAUgM,GACpC,IAAIlX,EAAQC,KAmCZ,OAhCAA,KAAKgf,QAAUhd,EAAQ2V,OAAOQ,gBAC9BnW,EAAQN,SAAS,WACX3B,EAAMif,SAAWhd,EAAQ2V,OAAOU,SAClCtY,EAAMif,QAAUhd,EAAQ2V,OAAOS,QACnC,EAAGpW,EAAQ2V,OAAOW,UAAU,EAG5BtY,KAAKkf,mBAAqBjI,EAAkBhX,KAAK,SAAUwC,GAiBzD,OAfKA,EAAK+d,OAUAzgB,EAAM4S,SAEd5S,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,IAZsC,CAAC,EAA7D9B,EAAQG,aAAagB,SAASgc,8BAEhCpf,EAAMqf,mBAAqBpd,EAAQN,SAAS,WAC1CM,EAAQC,WAAWU,MAAM5C,EAAMyI,cAAc,EAAG,iBAAiB,EAAEvI,KAAK,WACtEF,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,EAA+D,IAA5D9B,EAAQG,aAAagB,SAASgc,2BAAkC,GAOhEnd,EAAQN,SAAS,WAItB,OAHA,OAAO3B,EAAM+a,OACb/a,EAAMif,QAAUhd,EAAQ2V,OAAOU,OAC/BtY,EAAM+K,KAAKrI,CAAI,EACR1C,CACT,CAAC,CACH,CAAC,EAEMC,KAAKkf,kBACd,EAQAld,EAAQoC,UAAU8F,MAAQ,SAAUrF,GAClC,IAAI0D,EAAU,GACZkY,EAAoB5b,GAAWA,EAAQ4b,kBACvCC,EAASD,EAAoBzgB,KAAOA,KAAKgJ,SAY3C,OAXA9I,QAAQG,QAAQqgB,EAAQ,SAAUrW,EAAOC,GACnClK,EAAEwD,SAAS,CAAC,KAAM,KAAM,OAAQ0G,CAAG,GAAK,CAACmW,EAC3ClY,EAAQ+B,GAAOlK,EAAEU,IAAIuJ,EAAO,SAAUsW,GACpC,OAAOA,EAAKha,SAAS,CACvB,CAAC,GAEa,eAAP2D,GAAkC,KAAVA,EAAI,IAAamW,KAChDlY,EAAQ+B,GAAOD,EAEnB,CAAC,EAEM9B,CACT,EAQAvG,EAAQoC,UAAUwc,gBAAkB,WAClC,IAEAne,EAAO,CAAEiO,KAAM,CAAC1Q,KAAK0J,IAAK,EAC1B7E,EAAU,CAAE2O,SAAUxT,KAAK6Q,QAAU,MAAO,EAE5C,OAAO7O,EAAQC,WAAWqR,SAAStT,KAAKmX,SAASrU,GAAI,eAAgBL,EAAMoC,CAAO,CACpF,EAQA7C,EAAQoC,UAAUkP,SAAW,WAC3B,IAEAzO,EAAU,CAAE2O,SAAUxT,KAAK6Q,QAAU,OAAQxK,KAAM,gBAAiB,EACpE,OAAOrE,EAAQC,WAAWqR,SAAStT,KAAKwI,cAAc,EAAG,SAAUJ,KAAAA,EAAWvD,CAAO,CACvF,EAQA7C,EAAQoC,UAAUyc,2BAA6B,WAC7C,IAEAhc,EAAU,CAAE2O,SAAU7L,EAAE,aAAa,EAAI,IAAM3H,KAAK0J,IAAM,MAAO,EAEjE,OAAO1H,EAAQC,WAAWqR,SAAStT,KAAKwI,cAAc,EAAG,qBAAsB,KAAM3D,CAAO,CAC9F,CAED,EAAE,EC7nCH,WACE,aAMA,SAASic,IACP9gB,KAAK+gB,KAAO,CAAA,EACZ/gB,KAAKuI,QAAU,KACfvI,KAAK0c,SAAW,EAClB,CAOAoE,EAAarf,SAAW,CAAC,YAAa,WAAY,WAAY,YAAa,SAASuf,EAAWtf,EAAUuf,EAAUC,GAQjH,OAPAhhB,QAAQC,OAAO2gB,EAAc,CAC3BE,UAAWA,EACXtf,SAAUA,EACVuf,SAAUA,EACVC,UAAWA,CACb,CAAC,EAEM,IAAIJ,CACb,GAOAA,EAAa1c,UAAU+c,WAAa,SAAS5Y,GAC3CvI,KAAKuI,QAAUA,CACjB,EAOAuY,EAAa1c,UAAUgd,cAAgB,SAAS5gB,GAC9CR,KAAK0c,SAAS/Y,KAAKnD,CAAO,CAC5B,EAOAsgB,EAAa1c,UAAUid,gBAAkB,SAASC,GAChDthB,KAAKqQ,KAAO,CACVyQ,EAAaI,UAAUK,aAAa,CAClCjX,IAAK,OACLhD,YAAaK,EAAE,oBAAoB,EACnC6Z,SAAUthB,QAAQgE,KAAKod,EAAOA,EAAMG,aAAa,CACnD,CAAC,EACDX,EAAaI,UAAUK,aAAa,CAClCjX,IAAK,QACLhD,YAAaK,EAAE,gBAAgB,EAC/B6Z,SAAUthB,QAAQgE,KAAKod,EAAOA,EAAMI,SAAS,CAC/C,CAAC,GAEHthB,EAAEC,QAAQL,KAAKqQ,KAAM,SAAS/F,GAC5BwW,EAAaI,UAAUS,eAAerX,CAAG,CAC3C,CAAC,CACH,EAOAwW,EAAa1c,UAAUwd,YAAc,SAASC,EAAQC,GACpD,IAAI/hB,EAAQC,KACRihB,EAAWH,EAAaG,SACxBc,EAAU7hB,QAAQM,QAAQR,KAAKuI,QAAQwS,SAAS,EAAE+G,GAAWxG,OAAO,EAAEnW,KAAK,KAAK,EAAE,GAAG6c,IAErFC,EAAc,SAAU/G,EAAOgH,GACjC9hB,EAAEC,QAAQ6a,EAAO,SAAUC,GACR,0BAAbA,EAAK9U,KACP6b,EAAOve,KAAKwX,CAAI,EAEc,UAAvB,OAAOA,EAAKG,SACnB2G,EAAY9G,EAAKG,QAAS4G,CAAM,CAEpC,CAAC,CACH,EACIA,EAAS,GAGTpO,GAFJmO,EAAYjiB,KAAKuI,QAAQwS,SAAS,EAAGmH,CAAM,EAEvB9hB,EAAE2T,UAAUmO,EAAQ,SAASrI,GAC/C,OAAyC,GAAlCkI,EAAQtc,QAAQoU,EAAMsI,OAAO,CACtC,CAAC,GAMGC,GAHJliB,QAAQM,QAAQsgB,EAAaE,UAAU,GAAGqB,IAAI,EAAEC,SAAS,2BAA2B,EAGhErB,EAASsB,iBAAiB,EACzCC,SAAS,GAEVC,EAAiBxB,EAASyB,kBAAkB,EAC3CC,SAASd,EAAOe,MAAM,EACtBC,SAAS,GAAG,EACZC,cAAc7B,EAAS8B,UAAUC,IAAI,EAEtCC,EAAS,CACXC,SAAUhjB,QAAQM,QAAQ8b,SAAS+F,IAAI,EACvCc,OAAQ,CACNC,UAAWlB,EAAO1d,OAAQ,EAC1B0d,OAAQA,EACRpO,cAAeA,EACfuP,cAAenB,EAAOpO,EACxB,EACAwP,iBAAkB,CAAA,EAClBC,WAAYC,EACZC,aAAc,aACdC,SAAUtB,EACVW,UAAWN,EACXkB,YAAa9B,EACb+B,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,SAAU,CACR,qCACA,oFACA,wCACA,+BAAiCnc,EAAE,OAAO,EAAI,IAC9C,iDACA,sCACA,mBACA,kDACA,0FACA,wCACA,+BAAiCA,EAAE,iBAAiB,EAAI,IACxD,sEACA,yCACA,mBACA,WACA,2EACA,gFACA,gEACA,6CACA,qBACA,6EACA,4EACA,mFACA,2CACA,qBACA,WACA,wCACA,kFACA,uGACA,eACA,aACA,uBACA3G,KAAK,EAAE,EACT+iB,UAAW,CAAA,EACXC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,YAAa,CAAA,EACbC,eAAgB,WACdpkB,EAAMghB,KAAO,CAAA,EACb3gB,EAAEC,QAAQygB,EAAaE,UAAU7b,KAAK,kBAAkB,EAAE,GAAGif,uBAAuB,oBAAoB,EAC9F,SAASC,GACP,IAAIC,EAAQD,EAAahf,SAAS,GAClCnF,QAAQM,QAAQ8jB,CAAK,EAAEC,IAAI,OAAQ,WAC7BD,EAAME,aAAeF,EAAMG,eAC7BH,EAAMI,UAAUC,IAAI,UAAU,CAClC,CAAC,EAED7D,EAAapf,SAAS,WACpB4iB,EAAMI,UAAUnH,OAAO,SAAS,CAClC,EAAG,GAAI,CACT,CAAC,CACb,EACAqH,aAAc,WACZ1kB,QAAQM,QAAQsgB,EAAaE,UAAU,GAAGqB,IAAI,EAAEwC,YAAY,2BAA2B,EACvF9kB,EAAMghB,KAAO,CAAA,EAEb3gB,EAAEC,QAAQN,EAAM+kB,QAAS,SAASxa,GAChCwW,EAAaI,UAAU6D,iBAAiBza,CAAG,CAC7C,CAAC,CACH,CACF,EAOA,SAASkZ,EAAgBwB,IAGvBA,EAAW1D,MAAQthB,MAEdilB,MAAQ,WACXD,EAAWC,MAAM,CACnB,EAEAjlB,KAAKklB,YAAc,SAASxgB,GAC1B1E,KAAK8T,cAAgBpP,EACrB1E,KAAKqjB,cAAgBrjB,KAAKkiB,OAAOxd,EACnC,EAEA1E,KAAK0hB,UAAY,WACX1hB,KAAK8T,eAAiB9T,KAAKojB,WAC7BpjB,KAAKklB,YAAYllB,KAAK8T,cAAgB,CAAC,CAC3C,EAEA9T,KAAKyhB,cAAgB,WACM,EAArBzhB,KAAK8T,eACP9T,KAAKklB,YAAYllB,KAAK8T,cAAgB,CAAC,CAC3C,CAEF,CA7BAmN,EAASxN,KAAKwP,CAAM,EAAEhjB,KAAK,SAAS+kB,GAClCjlB,EAAMshB,gBAAgB2D,EAAW1D,KAAK,CACxC,CAAC,EAEDkC,EAAgB2B,QAAU,CAAC,aA2B7B,EAGAjlB,QAAQmC,OAAO,eAAe,EAC3BE,QAAQ,eAAgBue,EAAarf,QAAQ,CAEjD,EAAE,ECjOH,WACE,aAOA,SAAS2jB,EAAe5hB,GACtBxD,KAAK6K,SAAWrH,CAClB,CAOA4hB,EAAe3jB,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,aAAc,WAAY,UAAW,UAAW,oBAAqB,SAAUJ,EAAIK,EAAUC,EAAMuJ,EAAYtJ,EAAUC,EAAUE,EAASC,EAASoJ,GAYtN,OAXAlL,QAAQC,OAAOilB,EAAgB,CAC7B/jB,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNuJ,WAAYA,EACZjJ,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFE,SAAUJ,EACV0J,eAAgB,KAChBN,QAASA,CACX,CAAC,EAEMga,CACT,GAMA,IACEllB,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAMC,GACJpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3B4J,SAAS,oBAAqB,CAC7BC,UAAW,GACXC,KAAM,GACR,CAAC,EACA5J,QAAQ,iBAAkB6iB,EAAe3jB,QAAQ,EAQpD2jB,EAAe5c,cAAgB,SAASH,GACtC,MAAO,CAACA,EAAW,WAAWrH,KAAK,GAAG,CACxC,EAQAokB,EAAehhB,UAAU0G,KAAO,SAASrI,GACvCzC,KAAK+M,WAAa,CAAA,EAClB/M,KAAKkB,WAAa,GAClBlB,KAAK6M,QAAU,GACf3M,QAAQC,OAAOH,KAAMyC,CAAI,EACzBzC,KAAK8C,GAAK9C,KAAKoN,IAAI,CACrB,EAEAgY,EAAehhB,UAAUihB,aAAe,SAAS5iB,GAC/CzC,KAAKkB,WAAauB,EAElBrC,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCA,EAAQsJ,UAAY,GACpBtJ,EAAQmJ,QAAU,EACpB,CAAC,CACH,EAEAuY,EAAehhB,UAAUkhB,YAAc,SAASzV,EAAO0V,GACrD,IAAIxlB,EAAQC,KACR8Y,EAASsM,EAAe/jB,GAAGC,KAAK,EAEpCtB,KAAK+M,WAAa,CAAA,EAElB3M,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCoV,EAASA,EAAO7Y,KAAK,WACnB,GAAIF,EAAMgN,WAER,OADAqY,EAAezjB,KAAKsG,MAAM,qBAAuBvE,EAAQ8C,IAAI,EACtD9C,EAAQyL,QAAS,CAAC3D,KAAM,OAAQC,IAAK,CAAA,EAAOoE,MAAOA,CAAK,EAAG0V,CAAM,CAE5E,CAAC,CACH,CAAC,EAEDzM,EAAO/D,QAAQ,WACbhV,EAAMgN,WAAa,CAAA,CACrB,CAAC,CACH,EAEAqY,EAAehhB,UAAUohB,WAAa,WACpCJ,EAAezjB,KAAKsG,MAAM,oBAAoB,EAC9CjI,KAAK+M,WAAa,CAAA,CACpB,EAOAqY,EAAehhB,UAAU6J,aAAe,aASxCmX,EAAehhB,UAAUqhB,qBAAuB,WAC9CrlB,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClC,OAAOA,EAAQqL,gBACjB,CAAC,CACH,EAQAqW,EAAehhB,UAAU8K,mBAAqB,WAC5C,OAAOhP,QAAQ2D,UAAUzD,EAAE+E,KAAKnF,KAAKkB,WAAY,SAASwC,GACxD,OAAOxD,QAAQ2D,UAAUH,EAAQqL,gBAAgB,CACnD,CAAC,CAAC,CACJ,EAUAqW,EAAehhB,UAAUyK,kBAAoB,SAASC,EAAWxG,GAC/D,OAAOpI,QAAQ2D,UAAUzD,EAAE+E,KAAKnF,KAAKkB,WAAY,SAASwC,GACxD,OAAOA,EAAQ8C,MAAQ8B,GAAe5E,EAAQqL,kBAAoBD,CACpE,CAAC,CAAC,CACJ,EAQAsW,EAAehhB,UAAUC,UAAY,WACnC,IAAIqhB,EAAM,EASV,OAPKxlB,QAAQ2D,UAAU7D,KAAKkB,UAAU,GAGtCd,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCgiB,GAAOhiB,EAAQsJ,UAAUxI,MAC3B,CAAC,EAEMkhB,CACT,EAQAN,EAAehhB,UAAUK,eAAiB,SAASC,GACjD,IAAI7B,EAAGqT,EAAG3F,EAAG7M,EAAS6E,EAEtB,GAAIrI,QAAQ2D,UAAU7D,KAAKkB,UAAU,GAAc,GAATwD,EAExC,IAAKwR,EADLrT,EAAI,EACQqT,EAAIlW,KAAKkB,WAAWsD,OAAQ0R,CAAC,GAEvC,IADAxS,EAAU1D,KAAKkB,WAAWgV,GACrB3F,EAAI,EAAGA,EAAI7M,EAAQsJ,UAAUxI,OAAQ3B,CAAC,GAAI0N,CAAC,GAC9C,GAAI1N,GAAK6B,IACP6D,EAAU7E,EAAQsJ,UAAUuD,GACxB7M,EAAQ4K,aAAa/F,EAAQmB,GAAG,GAClC,OAAOnB,EAMjB,OAAO,IACT,EAQA6c,EAAehhB,UAAUgJ,IAAM,WAC7B,OAAOgY,EAAe5c,cAAcxI,KAAK6K,SAAS/H,EAAE,CACtD,EAQAsiB,EAAehhB,UAAU6K,sBAAwB,WAC/C,IAAI0W,EAAS,EACTC,EAAkBxlB,EAAE+E,KAAKnF,KAAKkB,WAAY,SAASwC,GACrD,MAAIxD,CAAAA,CAAAA,QAAQ2D,UAAUH,EAAQqL,gBAAgB,IAI5C4W,GAAUjiB,EAAQW,UAAU,EACrB,CAAA,EAEX,CAAC,EACD,OAAOshB,EAASC,EAAgB/Y,QAAQ+Y,EAAgB7W,iBAC1D,EAQAqW,EAAehhB,UAAUmK,iBAAmB,SAAS1J,GAEnD,OAAOzE,EAAEqO,OAAOrO,EAAEylB,UAAU7lB,KAAKkB,WAAY,SAAS4kB,EAAapiB,GAC7DmB,GAAWA,EAAQ2J,cACrB9K,EAAQwJ,kBAAoB9M,EAAEqO,OAAO/K,EAAQsJ,UAAW,SAAUzE,GAAW,OAAOA,EAAQmG,QAAU,CAAC,GACzGoX,EAAYpiB,EAAQZ,IAAMY,EAAQwJ,iBACpC,EAAG,EAAE,EAAG,SAAStK,GACf,OAAmB,EAAZxC,EAAE2lB,KAAKnjB,CAAC,CACjB,CAAC,CACH,EAQAwiB,EAAehhB,UAAUuK,cAAgB,WACvC,OAAOvO,EAAE4lB,IAAI5lB,EAAEqW,UAAUzW,KAAKkB,WAAY,eAAe,CAAC,CAC5D,EAWAkkB,EAAehhB,UAAU2O,cAAgB,SAAS+S,EAAa5U,EAAO+B,GACpE,IAAIxQ,EAAO,CACTyO,MAAOA,EACP+B,UAAWA,CACb,EACIgT,EAAc,GACdC,EAAW,GAWf,OATA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GACxC,IACM4N,EADgB,EAAlBsC,EAASxO,SACPkM,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAChCiT,EAAYtiB,KAAKqP,CAAQ,EACrBjJ,EAAUqb,EAAenjB,WAAW8B,KAAKjB,EAAI,mBAAoB1C,EAAEiV,OAAO5S,EAAM,CAACyQ,QAASxC,CAAI,CAAC,CAAC,EACpGwV,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,EAAEjmB,KAAK,WAC1C,OAAOG,EAAE+lB,QAAQF,CAAW,CAC9B,CAAC,CACH,EASAb,EAAehhB,UAAU6P,gBAAkB,SAAS6R,GAClD,IAKMvd,EACA7E,EANF3D,EAAQC,KAAMkmB,EAAW,GAE7B,OAAI9lB,EAAEsb,QAAQoK,CAAW,GAA4B,IAAvBA,EAAYthB,QACrCshB,EAAY,IAAMA,EAAY,GAAGpiB,SAAW,CAACtD,EAAEsb,QAAQoK,EAAY,GAAGpiB,OAAO,GAE5E6E,EAAUud,EAAY,IACtBpiB,EAAU6E,EAAQ4O,UACPlD,gBAAgB,CAAC1L,EAAQ,EAAEtI,KAAK,SAASyE,GACtD,IAAIihB,EAAS,EAUb,OATAvlB,EAAE+E,KAAKpF,EAAMmB,WAAY,SAASklB,GAChC,OAAIA,EAAetjB,KAAOY,EAAQZ,KAIhC6iB,GAAUS,EAAe/hB,UAAU,EAC5B,CAAA,EAEX,CAAC,EACMshB,EAASjhB,CAClB,CAAC,IAIDtE,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJlD,gBAAgBjB,CAAQ,EAC9CkT,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,EAEzC,EASAd,EAAehhB,UAAUoQ,4BAA8B,SAASsR,GAC9D,IAAII,EAAW,GAUf,OARA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJ3C,4BAA4BxB,CAAQ,EAC1DkT,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,CACvC,EAUAd,EAAehhB,UAAUsQ,cAAgB,SAASoR,EAAanR,GAC7D,IAAIuR,EAAW,GAUf,OARA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJzC,cAAc1B,EAAU2B,CAAM,EACpDuR,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,CACvC,EAUAd,EAAehhB,UAAUwQ,cAAgB,SAASkR,EAAanR,GAC7D,IAAIuR,EAAW,GAUf,OARA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJvC,cAAc5B,EAAU2B,CAAM,EACpDuR,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,CACvC,EAOAd,EAAehhB,UAAUiiB,QAAU,WACjC,MAAO,CAAA,CACT,EAOAjB,EAAehhB,UAAU+Q,OAAS,SAAStQ,GACzCzE,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCA,EAAQyR,OAAOtQ,CAAO,CACxB,CAAC,CACH,CAED,EAAE,EC9ZH,WACE,aAMA,SAASyhB,EAAkBC,EAASC,EAAQ9kB,EAAUL,EAAIolB,EAAQC,EAAWC,EAAUC,EAAeC,EAAcC,EAAc5F,EAAW6F,EAAiBC,EAAYC,EAAYC,EAAOC,EAAQrlB,EAAajC,EAASkC,GACzN,IAGIqlB,EAHAC,EAAKrnB,KACLsnB,EAAqBpnB,QAAQM,QAAQ+lB,EAAQjK,QAAQ,EAAEnX,KAAK,OAAO,EAAEsU,KAAK,YAAY,GAAK,OAC3FqL,EAAU,GAGVyC,EAAY,GAyHhB,SAASC,EAAqBC,GAC5B,MAAI1lB,CAAAA,CAAAA,EAAQ6J,cAELyb,EAAG3b,eAAe0G,SAAS,CACpC,CA6FA,SAASsV,EAAT,GACE,OAAIlB,EAAO9iB,SACc,EAAnBikB,UAAUnjB,SACZgiB,EAAO9iB,QAAQkkB,cAHrB,GAIWpB,EAAO9iB,QAAQkkB,eAEjB,IACT,CAEA,SAASC,EAAgBhG,EAAQtZ,GAC/B,IACMuf,EADmB,OAArBJ,EAAe,IACbI,EAAqBzmB,EAAGmI,MAAM,EAClCke,EACEhB,EACG3F,KAAK,CACJtP,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCsB,YAAa9B,EACbmC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACf8D,YAAa,gBACbxE,WAAY,0BACZE,aAAc,SACduE,WAAY,SAAUC,EAAOznB,GAC3B,OAAOsnB,EAAmBle,QAAQpJ,CAAO,CAC3C,EACA2iB,OAAQ,CACN+E,YAAa1B,EACbK,aAAcQ,EAAG7jB,QACjB2kB,aAAc5f,EACd6f,kBAAmB,WACjB,OAAON,EAAmB/d,OAC5B,CACF,CACF,CAAC,EACAgV,MAAM3e,EAAEioB,IAAI,EACZtT,QAAQ,WACP2S,EAAe,IAAI,EACnBL,EAAGiB,WAAW,CAChB,CAAC,CACL,EAEJ,CAsBA,SAASC,EAAa1G,GAChBwF,EAAGmB,mBACLnB,EAAGoB,WAAa,CAAEC,EAAGH,EAAcI,EAAG9G,CAAO,GAG/C,IAAInd,EAAQ2iB,EAAG3b,eAAeuD,sBAAsB,EAkBpD,OAhBI/O,QAAQ2D,UAAUa,CAAK,GACzBA,CAAK,GAC6B,EAA9B2iB,EAAG3b,eAAesK,WACpB4S,EAAelkB,CAAK,IAItBA,EAAQ2iB,EAAG3b,eAAerH,UAAU,EAAI,EACxCgjB,EAAG3b,eAAesK,UAAYqR,EAAG3b,eAAerH,UAAU,GAGhD,CAAC,EAATK,GAAc,CAAC2iB,EAAGmB,kBACpBnB,EAAGwB,cAAcxB,EAAG3b,eAAejH,eAAeC,CAAK,CAAC,EAE1Dmd,EAAOiH,eAAe,EAEfpkB,CACT,CAKA,SAASqkB,EAAiBlH,GACpBwF,EAAGmB,mBACLnB,EAAGoB,WAAa,CAAEC,EAAGK,EAAkBJ,EAAG9G,CAAO,GAGnD,IAAInd,EAAQ2iB,EAAG3b,eAAeuD,sBAAsB,EAkBpD,OAhBI/O,QAAQ2D,UAAUa,CAAK,GACzBA,CAAK,GACD2iB,EAAG3b,eAAesK,UAAYqR,EAAG3b,eAAerH,UAAU,GAC5DukB,EAAelkB,CAAK,GAItBA,EAAQ,EAENA,EAAQ2iB,EAAG3b,eAAerH,UAAU,GAAK,CAACgjB,EAAGmB,iBAC/CnB,EAAGwB,cAAcxB,EAAG3b,eAAejH,eAAeC,CAAK,CAAC,EAExDA,EAAQ,CAAC,EAEXmd,EAAOiH,eAAe,EAEfpkB,CACT,CAKA,SAASkkB,EAAelkB,GACtB,IAAIskB,EAAW1M,SAAS2M,cAAc,+CAA+C,EACjFC,EAAYxkB,EAAQ6iB,GAEpB2B,EAAYF,EAASE,WAAcA,EAAY3B,EAAayB,EAASE,UAAYF,EAASG,eAC5F7M,SAASK,iBAAiB,6BAA6B,EAAE,GAAGyM,SAAS,CACnEC,IAAK9B,EAAY7iB,GAASskB,EAASG,aAAe5B,GAAW,EAC7D+B,SAAU,QACZ,CAAC,CACL,CAEA,SAASC,EAA2B1H,GAClC,IAAInd,EAEA2iB,EAAG3b,eAAewD,mBAAmB,GAE1B,IADbxK,EAAQ6jB,EAAa1G,CAAM,IAEzBwF,EAAGmC,uBAAuB3H,EAAQwF,EAAG3b,eAAesB,UAAUtI,EAAM,CAE1E,CAEA,SAAS+kB,EAA+B5H,GACtC,IAAInd,EAEA2iB,EAAG3b,eAAewD,mBAAmB,GAE1B,IADbxK,EAAQqkB,EAAiBlH,CAAM,IAE7BwF,EAAGmC,uBAAuB3H,EAAQwF,EAAG3b,eAAesB,UAAUtI,EAAM,CAE1E,CA8EA,SAASglB,IACP,OAAI3nB,EAAQ6J,aACHyb,EAAG3b,eAAexK,WAElB,CAACmmB,EAAG3b,eACf,CAIA,SAASie,EAAiBphB,EAAS7D,GACjC,IAAIklB,EAAaC,EAAiBC,EAAYplB,EAC9C2iB,EAAG0C,KAAKC,SAAW3C,EAAG3b,eAAeiD,cAAc,EAC/CpG,IAEU,EAAR7D,IAEFklB,EAAcvC,EAAG3b,eAAesB,UADhC8c,EAAAA,IAGEplB,EAAQ2iB,EAAG3b,eAAesB,UAAUxI,SACtCqlB,EAAkBxC,EAAG3b,eAAesB,UAAUtI,IAC5CklB,EACEA,EAAYjX,QAAUkX,GAAmB,CAACA,EAAgBlX,SAC5DmX,EAAYplB,EACZklB,EAAcC,GAGTA,IACPC,EAAYplB,EACZklB,EAAcC,GAEZD,GACFvC,EAAG3b,eAAesK,UAAY8T,EAC9BrD,EAAOwD,GAAG,+BAAgC,CAAEnb,UAAW8a,EAAYlgB,GAAI,CAAC,GAGxE+c,EAAOwD,GAAG,sBAAsB,EAGtC,CAleA7C,EAAa,CACXvW,QAAS,UACToK,KAAM,OACNiP,KAAM,OACNnE,KAAM,OACNoE,QAAS,gBACX,EAEAnqB,KAAKoqB,QAAU,WA4Cf,IAA0B/Z,EA1CxBkW,EAAQ8D,mBAAqBhD,EAE7BrnB,KAAKsqB,QAAUvoB,EACf/B,KAAKuqB,SAAW3D,EAChB5mB,KAAKwD,QAAUqjB,EACf7mB,KAAK0L,eAAiBob,EACtB9mB,KAAK4nB,cAAgB,KACrB5nB,KAAK+pB,KAAO,CAAEjR,OAAQ,CAAA,EAAOkR,SAAU,CAAE,EACzChqB,KAAKwqB,YAAc,CAAA,EACnBxqB,KAAKwoB,iBAAmB,CAAA,EACxBxoB,KAAKyoB,WAAa,KAEb1mB,EAAQ6J,cACX5L,KAAK0L,eAAekH,UAAU,GA6BRvC,EA3BPyU,GA4BZnhB,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,eAAe,EACtBL,YAAaK,EAAE,QAAQ,EACvB6Z,SAAU6F,EAAGlZ,UACf,CAAC,CAAC,EACFkC,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,gBAAgB,EACvBL,YAAaK,EAAE,qBAAqB,EACpC6Z,SAAU,SAASK,GACQ,OAArBwF,EAAGO,eACLP,EAAGoD,WAAW5I,CAAM,CACxB,CACF,CAAC,CAAC,EACFxR,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,SAAS,EAChBL,YAAaK,EAAE,oCAAoC,EACnD6Z,SAAU6F,EAAGqD,0BACf,CAAC,CAAC,EACFra,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,QACLhD,YAAaK,EAAE,aAAa,EAC5B6Z,SAAU6F,EAAGmC,sBACf,CAAC,CAAC,EACFnZ,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,cACLhD,YAAaK,EAAE,uBAAuB,EACtC6Z,SAAU6F,EAAGmC,sBACf,CAAC,CAAC,EACFnZ,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,KACLhD,YAAaK,EAAE,gBAAgB,EAC/B6Z,SAAU+G,EACVoC,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFta,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,OACLhD,YAAaK,EAAE,oBAAoB,EACnC6Z,SAAUuH,EACV4B,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFta,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,WACLhD,YAAaK,EAAE,4BAA4B,EAC3C6Z,SAAU+H,EACVoB,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFta,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,aACLhD,YAAaK,EAAE,gCAAgC,EAC/C6Z,SAAUiI,EACVkB,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFvqB,EAAEC,QAAQ,CAAC,YAAa,UAAW,SAASuqB,GAC1Cva,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAKsgB,EACLtjB,YAAaK,EAAE,mCAAmC,EAClD6Z,SAAU6F,EAAGwD,6BACf,CAAC,CAAC,CACJ,CAAC,EAGDzqB,EAAEC,QAAQgQ,EAAM,SAAS/F,GACvB4W,EAAUS,eAAerX,CAAG,CAC9B,CAAC,EAxFDpK,QAAQM,QAAQ+lB,CAAO,EAAEuE,GAAG,eAAgBtD,CAAoB,EAChEhB,EAAOuE,IAAI,WAAY,WACrB7qB,QAAQM,QAAQ+lB,CAAO,EAAEyE,IAAI,eAAgBxD,CAAoB,EAEjEpnB,EAAEC,QAAQykB,EAAS,SAASxa,GAC1B4W,EAAU6D,iBAAiBza,CAAG,CAChC,CAAC,CAKH,CAAC,EAGDkc,EAAOyE,OAAO,WAAa,OAAO5D,EAAG3b,eAAe5H,WAAa,EAAG,SAASA,GAC3E,IAAIonB,EAAQ,GACRpnB,IACFonB,GAAS,IAAMpnB,EAAc,MAC/BonB,GAAS7D,EAAG3b,eAAe+B,aAE3B8Y,EAAQjK,SAAS4O,MADjBA,GAAS,MAAQ5D,CAEnB,CAAC,CACH,EA2EAtnB,KAAKmrB,cAAgB,SAASC,GAE5B,OAAOprB,KAAK0L,eAAewD,mBAAmB,GAAK,CAAC,CAACkc,CACvD,EAEAprB,KAAKwL,KAAO,SAAS6f,GACnB,GAAIA,CAAAA,EAIF,OAAOjE,EAAWC,EAAGiD,QAAQ/e,OAAOC,MAHpC6b,EAAG3b,eAAeyD,QAAQ,CAAE3D,KAAM6f,CAAM,CAAC,CAK7C,EAEArrB,KAAKsrB,SAAW,SAASD,GACvB,OAAOtpB,EAAQwJ,OAAOC,MAAQ6f,CAChC,EAEArrB,KAAKurB,UAAY,WACf,OAAOxpB,EAAQwJ,OAAOE,GACxB,EAEAzL,KAAKwrB,QAAU,WACb1pB,EAAY2pB,UAAU,EACtBzrB,KAAK0L,eAAeyD,QAAQ,CAC9B,EAEAnP,KAAKmO,WAAa,SAAS0T,GACzBwF,EAAG0C,KAAKjR,OAAS,CAAA,EACjBoO,EAAM,QAAQ,EACVrF,GACFA,EAAOiH,eAAe,CAC1B,EAEA9oB,KAAK0rB,aAAe,WAEdrE,EAAG7jB,SACL6jB,EAAG7jB,QAAQoB,cAAc,EAAE+mB,QAAQthB,MAAMhK,QAAQ,IAC/CqD,EAAQoT,kBAAkB,EAAE,CAC9B,CAAC,EAEHuQ,EAAG0C,KAAKjR,OAAS,CAAA,EACjBuO,EAAG3b,eAAeyD,QAAQkY,EAAGiD,QAAQ/e,MAAM,EAAEtL,KAAK,WAC5ConB,EAAG3b,eAAeqD,mBACpBsY,EAAG3b,eAAesK,UAAYqR,EAAG3b,eAAemB,QAAQwa,EAAG3b,eAAeqD,kBAE9E,CAAC,CACH,EAEA/O,KAAK4rB,qBAAuB,WAC1B,OAAO9pB,EAAYqB,SAAS0oB,4BAC9B,EAEA7rB,KAAK8rB,YAAc,SAASvjB,EAAS+G,GACnC,IAAIyc,EAAM,CAAC9E,EAAW+E,QAAQ,EACnB,0BACAhsB,KAAKwD,QAAQV,IACpBmpB,EAAMjsB,KAAKwD,QAAQV,GAAK,IAAM0E,KAAK0kB,OAAO,EAAG,GAAI,EACjD3jB,IAEFwjB,EAAIpoB,KAAKojB,EAAgBA,EAAgBxe,EAAQ4O,SAAS3Q,IAAI,CAAC,CAAC,EAChEulB,EAAIpoB,KAAK4E,EAAQmB,GAAG,EACpBuiB,EAAM1jB,EAAQC,cAAc,GAE1B8G,IACF2c,GAAO,IAAM3c,EACbyc,EAAIpoB,KAAK2L,CAAM,GAEjByc,EAAMA,EAAI/qB,KAAK,GAAG,EACJulB,EAAQ9S,KAAKsY,EAAKE,EACL,CAAC,YACA,aACA,cACA,eACA,YACA,aACA,gBACA,WACA,YACA,iBACAjrB,KAAK,GAAG,CAAC,CACvC,EAEAhB,KAAKsoB,WAAa,WACZ/B,EAAQjK,SAAS+F,KAAKqC,UAAUyH,SAAS,OAAO,GAClD5F,EAAQtB,MAAM,CAClB,EAgDAjlB,KAAKosB,uBAAyB,SAAS7jB,EAAS+G,EAAQ+c,GACtD,MAAA,EAAKpF,EAAWqF,SACmC,SAA9CxqB,EAAYqB,SAASopB,uBAAoCF,CAAAA,IAC5DrsB,KAAK8rB,YAAYvjB,EAAS+G,CAAM,EACzB,GAGX,EAEAtP,KAAKyqB,WAAa,SAAS5I,EAAQwK,GAC5BrsB,KAAKosB,uBAAuB,KAAM,MAAOC,CAAO,GACnDrsB,KAAKwD,QAAQwE,YAAY,EAAE/H,KAAK,SAASsI,GACvCsf,EAAgBhG,EAAQtZ,CAAO,CACjC,CAAC,CAEL,EA8FAvI,KAAK6oB,cAAgB,SAAStgB,IACxBxG,EAAQ6J,cACVyb,EAAGmB,iBAAmB,CAAA,EACtB/B,EAAOwD,GAAG,sCAAuC,CAAEuC,UAAWzF,EAAgBA,EAAgBxe,EAAQ4O,SAAS3Q,IAAI,CAAC,EAAGsI,UAAWvG,EAAQmB,GAAI,CAAC,EAAEzJ,KAAK,YAErJ,EAAE8e,MAAM,IACP0N,QAAQvX,MAAMwX,CAAG,CACnB,CAAC,IASDrF,EAAGmB,iBAAmB,CAAA,EACtB/B,EAAOwD,GAAG,+BAAgC,CAAEuC,UAAWzF,EAAgBA,EAAgBxe,EAAQ4O,SAAS3Q,IAAI,CAAC,EAAGsI,UAAWvG,EAAQmB,GAAI,CAAC,EAAEzJ,KAAK,YAE9I,EAAE8e,MAAM,IACP0N,QAAQvX,MAAMwX,CAAG,CACnB,CAAC,IAbE3X,QAAQ,KACPsS,EAAGmB,iBAAmB,CAAA,EAClBnB,EAAGoB,aACLpB,EAAGoB,WAAWC,EAAErB,EAAGoB,WAAWE,CAAC,EAC/BtB,EAAGoB,WAAa,KAEpB,CAAC,CAgBP,EAEAzoB,KAAKwpB,uBAAyB,SAAS3H,EAAQtZ,GAC7C,IACIuL,EAAe6Y,EAAmB9pB,EADlC8R,EAAS0S,EAAG3b,eAKhB,GAAI,EAFCnD,EAAAA,GACOoM,EAAO3F,gBAAgB,GAEjC,MAAO,CAAA,EAKT,GAHAzG,EAAQmG,SAAW,CAACnG,EAAQmG,SAGxBmT,EAAO+K,UAAqC,EAAzBjY,EAAOhG,cAAc,EAAO,CAIjD,IADAge,GAFA7Y,EAAgBa,EAAO9H,QAAQtE,EAAQmB,MAEH,EACR,GAArBijB,GACA,CAAChY,EAAO3H,UAAU2f,GAAmBje,UAC1Cie,CAAiB,GACnB,GAAIA,EAAoB,EAGtB,IADAA,EAAoB7Y,EAAgB,EAC7B6Y,EAAoBhY,EAAOtQ,UAAU,GACrC,CAACsQ,EAAO3H,UAAU2f,GAAmBje,UAC1Cie,CAAiB,GAErB,GAAyB,GAArBA,GAA0BA,EAAoBhY,EAAOtQ,UAAU,EACjE,IAAKxB,EAAI2E,KAAKsJ,IAAIgD,EAAe6Y,CAAiB,EAC7C9pB,GAAK2E,KAAK6G,IAAIyF,EAAe6Y,CAAiB,EAC9C9pB,CAAC,GACJ8R,EAAO3H,UAAUnK,GAAG6L,SAAW,CAAA,CAErC,CAEAiG,EAAOpG,iBAAiB,CAAEC,YAAa,CAAA,CAAK,CAAC,EAC7C6Y,EAAG0C,KAAKC,SAAW3C,EAAG3b,eAAeiD,cAAc,EACnDkT,EAAOiH,eAAe,EACtBjH,EAAOgL,gBAAgB,CACzB,EA8CA7sB,KAAK6qB,8BAAgC,SAAShJ,GAC5C,IAAItT,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAEjC,OAArB8Y,EAAGO,eAAqD,EAA3BxnB,EAAE2lB,KAAKxX,CAAgB,IACtD8Y,EAAGO,cAAgBT,EAAO2F,QAAQnlB,EAAE,cAAc,EACdA,EAAE,wDAAwD,EAC1D,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EACtD1H,KAAK,WACJ,IAAI+sB,EAAwB3F,EAAG3b,eAAewD,mBAAmB,EACjEmY,EAAG3b,eAAeuI,gBAAgB1F,CAAgB,EAAEtO,KAAK,SAASyE,GAC5D3C,EAAQ6J,aAGNohB,GACFvG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBqD,EAAuBtoB,CAAK,CAEjD,EAAG,SAASuQ,GACVoS,EAAGO,cAAgBT,EAAO2F,QAAQnlB,EAAE,SAAS,EACdA,EAAE,iGAAiG,EACnG,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EAC/C1H,KAAK,WACJonB,EAAG3b,eAAeuI,gBAAgB1F,EAAkB,CAAE0e,aAAc,CAAA,CAAK,CAAC,EACvEhtB,KAAK,SAASyE,GACT3C,EAAQ6J,aAGNohB,GACFvG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBqD,EAAuBtoB,CAAK,CAEjD,CAAC,EACAqQ,QAAQ,WACPsS,EAAGO,cAAgB,IACrB,CAAC,CACL,CAAC,CACL,CAAC,CACH,CAAC,EACA7S,QAAQ,WACPsS,EAAGO,cAAgB,IACrB,CAAC,GAEH/F,EAAOiH,eAAe,CACxB,EAEA9oB,KAAK0qB,2BAA6B,WAChC,IAAIwC,EAAsB7F,EAAG3b,eAAewD,mBAAmB,EAC3DX,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EACzB,IAA7BnO,EAAE2lB,KAAKxX,CAAgB,GAAW2e,IAEpC3e,EAAmB,CAAC8Y,EAAG3b,eAAesD,gBAAgB,IACzB,EAA3B5O,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAe8I,4BAA4BjG,CAAgB,EAAEtO,KAAK,WACnE,IAAIktB,EAAY,IAAM9F,EAAG7jB,QAAQV,GAAK,eACR,QAA1BukB,EAAG3b,eAAerF,OACpB8mB,EAAY,IAAM9F,EAAG7jB,QAAQ4C,kBAAkB,MAAM,EAAEtD,IAEzDukB,EAAG3b,eAAekJ,cAAcrG,EAAkB4e,CAAS,EAAEltB,KAAK,SAASyE,GACrE3C,EAAQ6J,aAGNshB,GACFzG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBuD,EAAqBxoB,CAAK,CAE/C,CAAC,CACH,CAAC,CACL,EAEA1E,KAAKotB,qBAAuB,SAASD,GACnC,IAAI5e,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAegJ,cAAcnG,EAAkB,IAAM4e,CAAS,EAAEltB,KAAK,WACtE0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,yBAA0B0f,EAAG3b,eAAeiD,cAAc,CAAC,CAAC,EAC1E+U,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACL,EAEAxtB,KAAKytB,qBAAuB,SAASN,GACnC,IAAID,EAAsB7F,EAAG3b,eAAewD,mBAAmB,EAC3DX,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EACtD+H,EAAQ+Q,EAAG3b,eAAeiD,cAAc,EACb,EAA3BvO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAekJ,cAAcrG,EAAkB,IAAM4e,CAAS,EAAEltB,KAAK,SAASyE,GAC/EiiB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,wBAAyB2O,CAAK,CAAC,EAC7CoN,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,EAChBzrB,EAAQ6J,aAGNshB,GACFzG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBuD,EAAqBxoB,CAAK,CAE/C,CAAC,CACL,EAEA1E,KAAK0tB,UAAY,WACf,IAAIpX,EAAQ,EACZlW,EAAEC,QAAQqpB,EAAkB,EAAG,SAAS/U,GACtC,IAAI9R,EAAI,EAAG2B,EAASmQ,EAAO3H,UAAUxI,OAErC,IADAmQ,EAAOzH,kBAAoB,GACpBrK,EAAI2B,EAAQ3B,CAAC,GAClB8R,EAAO3H,UAAUnK,GAAG6L,SAAW,CAAC2Y,EAAGmD,YAChC7V,EAAO3H,UAAUnK,GAAG6L,UACrBiG,EAAOzH,kBAAkBvJ,KAAKgR,EAAO3H,UAAUnK,EAAE,EACjDyT,CAAK,EAEX,CAAC,EACD+Q,EAAGmD,YAAc,CAACnD,EAAGmD,YACrBnD,EAAG0C,KAAKC,SAAW1T,CACrB,EAEAtW,KAAK2tB,iBAAmB,WACtBvtB,EAAEC,QAAQqpB,EAAkB,EAAG,SAAS/U,GACtCA,EAAOzH,kBAAoB,GAC3B9M,EAAEC,QAAQsU,EAAO3H,UAAW,SAASzE,GACnCA,EAAQmG,SAAW,CAAA,CACrB,CAAC,CACH,CAAC,EACD2Y,EAAG0C,KAAKC,SAAW,CACrB,EAEAhqB,KAAK4tB,8BAAgC,WACnC,IAAIrf,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeqH,cAAcxE,EAAkB,YAAa,KAAK,EAAEtO,KAAK,SAAS+S,GAClF5S,EAAEC,QAAQ2S,EAAU,SAASzK,GAC3BA,EAAQsW,UAAY,CAAA,CACtB,CAAC,CACH,CAAC,CACL,EAEA7e,KAAK6tB,6BAA+B,WAClC,IAAItf,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeqH,cAAcxE,EAAkB,OAAQ,QAAQ,EAAEtO,KAAK,SAAS+S,GAChF5S,EAAEC,QAAQ2S,EAAU,SAASzK,GACvBA,EAAQoK,QACVpK,EAAQ4O,SAASrT,WAAW,GAC9ByE,EAAQoK,OAAS,CAAA,CACnB,CAAC,CACH,CAAC,CAEL,EAEA3S,KAAK8tB,2BAA6B,WAChC,IAAIvf,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeqH,cAAcxE,EAAkB,OAAQ,KAAK,EAAEtO,KAAK,SAAS+S,GAC7E5S,EAAEC,QAAQ2S,EAAU,SAASzK,GACtBA,EAAQoK,QACXpK,EAAQ4O,SAASrT,WAAW,GAC9ByE,EAAQoK,OAAS,CAAA,CACnB,CAAC,CACH,CAAC,CAEL,EAEA3S,KAAK+tB,wBAA0B,SAASlM,GACtC,IAAI9hB,EAAQC,KACRuO,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeyH,gBAAgB5E,CAAgB,EAAEtO,KAAK,SAASsI,GAC3DxI,EAAMqsB,uBAAuB7jB,EAAS,MAAM,GAC/CA,EAAQmV,iBAAiB,EAAEzd,KAAK,WAC9B4nB,EAAgBhG,EAAQtZ,CAAO,CACjC,CAAC,CAEL,CAAC,CAEL,CAEF,CAUA,SAASylB,EAA2CC,GASlD,OARAA,EAAU,GAAG1K,WAAWnf,UAAU8pB,YAAc,WAGL,gBAArCluB,KAAKmuB,SAAS1c,OAAO,EAAEgI,KAAK,IAAI,EAClCzZ,KAAKouB,WAAW,EAEhBpuB,KAAKopB,SAAS,CAAC,CACnB,EACO6E,CACT,CA/rBA3H,EAAkBnB,QAAU,CAAC,UAAW,SAAU,WAAY,KAAM,SAAU,YAAa,WAAY,gBAAiB,eAAgB,eAAgB,YAAa,kBAAmB,aAAc,aAAc,UAAW,SAAU,cAAe,UAAW,WA6qBnQjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,oBAAqB+C,CAAiB,EAKpD0H,EAA2C7I,QAAU,CAAC,aAatDjlB,QACGmC,OAAO,mCAAmC,EAC1CgsB,UAAU,oCAAqCL,CAA0C,CAE7F,EAAE,EC3sBH,WACE,aAMA,SAASM,EAAoB9H,EAAQtb,EAAYub,EAAQ8H,EAAc7sB,EAAU6kB,EAASiI,EAASC,EAAUC,EAAYhI,EAAWC,EAAUK,EAAYE,EAAOH,EAAiBI,EAAQvlB,EAAUsf,EAAWrhB,EAASkC,EAASqjB,EAAgBuJ,EAAM7sB,EAAa8kB,EAAe5kB,GACjR,IACIwB,EACAE,EAFA2jB,EAAKrnB,KAGL8kB,EAAU,GAEd0B,EAAOoI,YAAc,WACnBlI,EAAUmI,KAAK,CACjB,EAEA7uB,KAAKoqB,QAAU,WAuCf,IAA0B/Z,EAtCxBrQ,KAAKsqB,QAAUvoB,EACf/B,KAAKuqB,SAAW3D,EAChB5mB,KAAKuI,QAAUvG,EACfhC,KAAK8uB,2BAA6B,CAAA,EAGlC9uB,KAAK+uB,MAAM,EAEX/uB,KAAK8Y,OAAS,CACZkW,WAAY,EACZnf,MAAO,MACP0V,OAAQ,EACV,EACAvlB,KAAK+W,eAAiB,GAEtB/W,KAAKivB,mBAAqBntB,EAAYqB,SAAS+rB,kCAE/CrvB,EAAQkD,mBAAmBwjB,EAAQtjB,kBAAkB,EAqB7BoN,EAnBPyU,EAoBjB1kB,EAAEC,QAAQ,CAAC,YAAa,UAAW,SAASuqB,GAC1Cva,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAKsgB,EACLtjB,YAAaK,EAAE,mCAAmC,EAClD6Z,SAAU,WACJzf,EAAQotB,0BACRptB,EAAQ2J,gBACR3J,EAAQ2J,eAAegC,aACvB,CAAC3L,EAAQ2J,eAAewD,mBAAmB,GACC,IAA5CnN,EAAQ2J,eAAe0jB,eAAe,GACxCrtB,EAAQotB,yBAAyBE,cAActtB,EAAQ2J,cAAc,CACzE,CACF,CAAC,CAAC,EACF2E,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,UACLhD,YAAaK,EAAE,iBAAiB,EAChC6Z,SAAU,WACT6F,EAAGiI,mBAAmB,CACvB,CACF,CAAC,CAAC,CACJ,CAAC,EAGDlvB,EAAEC,QAAQgQ,EAAM,SAAS/F,GACvB4W,EAAUS,eAAerX,CAAG,CAC9B,CAAC,EA3CDkc,EAAOuE,IAAI,WAAY,WAErB3qB,EAAEC,QAAQykB,EAAS,SAASxa,GAC1B4W,EAAU6D,iBAAiBza,CAAG,CAChC,CAAC,CACH,CAAC,EAEDY,EAAW6f,IAAI,8BAA+B,WAC5C1D,EAAGiI,mBAAmB,CACxB,CAAC,EAEDpkB,EAAW6f,IAAI,+BAAgC,WAC7C1D,EAAG0H,MAAM,CACX,CAAC,CACH,EA+BA/uB,KAAKuvB,mBAAqB,SAASjtB,GACjC+kB,EAAGiD,QAAQze,aAAe,CAAA,EAC1Bwb,EAAGiD,QAAQ1e,aAAe,CAAA,EAE1BpI,EAAU6jB,EAAGkD,SAAS,GACtB7mB,EAAU2jB,EAAGmI,sBACbnI,EAAGvO,OAAOyM,OAAS,GACnB8B,EAAGtQ,eAAiB,GAChBrT,GAAWA,EAAQ8C,OAErB9C,EAAQoT,kBAAkB,EAAE,EAC5BpT,EAAQyL,QAAQ,CACd3D,KAAQ,OACRC,IAAO,CAAA,EACPoE,MAAS,IACX,CAAC,EAAE5P,KAAK,WACNwmB,EAAOwD,GAAG,uBAAwB,CAAE5hB,UAAW7E,EAAQV,GAAI0pB,UAAWzF,EAAgBrjB,EAAQ8C,IAAI,CAAE,CAAC,EACrG6gB,EAAG+C,QAAQ,CACb,CAAC,GAEH9nB,EAAEuqB,gBAAgB,CACpB,EAEA7sB,KAAKyvB,kBAAoB,SAASC,GACpBA,EAASjjB,MAAM,GAAG,EAExBpM,QAAQqP,IACRC,EAAcD,EAAKzO,KAAK,EAAE2O,YAAY,EACrC5P,KAAK+W,eAAenT,SAAS+L,CAAW,GAC3C3P,KAAK+W,eAAepT,KAAKgM,CAAW,CAExC,CAAC,CACH,EAEA3P,KAAK+uB,MAAQ,WACX/uB,KAAK+W,eAAiB,GACtB/W,KAAK2vB,WAAa,CAChB1U,KAAM,GACN3D,GAAI,GACJ6U,SAAU,GACVyD,YAAa,GACb/e,QAAS,GACTwR,KAAM,GACN6H,KAAM,UACN2F,UAAW,IAAIC,KACfC,QAAS,IAAID,KACbtY,IAAK,GACLuO,KAAM,GACNiK,aAAc,IACdC,SAAU,KACVC,aAAc,EACdC,SAAU,EACVC,OAAQ,EACRC,KAAM,CAAEC,WAAY,GAAI5hB,SAAU,EAAG,EACrCwC,MAAO,EACT,CACF,EAEAlR,KAAKuwB,oBAAsB,WAoCzB,GAnCAvwB,KAAK8Y,OAAOyM,OAAS,GACrBvlB,KAAK+W,eAAiB,GAElB/W,KAAK2vB,WAAW1U,MAAsC,EAA9Bjb,KAAK2vB,WAAW1U,KAAKzW,SAC/CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQxwB,KAAK2vB,WAAW1U,IAAI,CAAC,EACzEjb,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAW1U,IAAI,GAGzCjb,KAAK2vB,WAAWrY,IAAkC,EAA5BtX,KAAK2vB,WAAWrY,GAAG9S,QAC3CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,KAAMxwB,KAAK2vB,WAAWrY,EAAE,CAAC,EAGnEtX,KAAK2vB,WAAWnY,KAAoC,EAA7BxX,KAAK2vB,WAAWnY,IAAIhT,QAC7CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,MAAOxwB,KAAK2vB,WAAWnY,GAAG,CAAC,EAGrExX,KAAK2vB,WAAWxD,UAA8C,EAAlCnsB,KAAK2vB,WAAWxD,SAAS3nB,SACvDxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,WAAYxwB,KAAK2vB,WAAWxD,QAAQ,CAAC,EACjFnsB,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAWxD,QAAQ,GAG7CnsB,KAAK2vB,WAAWc,iBAA4D,EAAzCzwB,KAAK2vB,WAAWc,gBAAgBjsB,QACrExE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,eAAgBxwB,KAAK2vB,WAAWc,eAAe,CAAC,EAG1FzwB,KAAK2vB,WAAW9e,SAA4C,EAAjC7Q,KAAK2vB,WAAW9e,QAAQrM,SACrDxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,UAAWxwB,KAAK2vB,WAAW9e,OAAO,CAAC,EAC/E7Q,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAW9e,OAAO,GAG5C7Q,KAAK2vB,WAAWtN,MAAsC,EAA9BriB,KAAK2vB,WAAWtN,KAAK7d,SAC/CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQxwB,KAAK2vB,WAAWtN,IAAI,CAAC,EACzEriB,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAWtN,IAAI,GAGzCriB,KAAK2vB,WAAWzF,MAAsC,EAA9BlqB,KAAK2vB,WAAWzF,KAAK1lB,OAAY,CAC3D,IACIksB,EADAxG,EAAO,KAEPyG,EAAQ,IAAIb,KACZc,EAAM,IAAId,KAAKa,CAAK,EACxB,OAAQ3wB,KAAK2vB,WAAWzF,MACtB,IAAK,UACH,MACF,IAAK,YACH0G,EAAIC,QAAQD,EAAIE,QAAQ,EAAI,CAAC,EAC7B5G,EAAOlqB,KAAK+wB,WAAWH,CAAG,EAC1B5wB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,aACH0G,EAAIC,QAAQD,EAAIE,QAAQ,EAAI,EAAE,EAC9B5G,EAAOlqB,KAAK+wB,WAAWH,CAAG,EAC1B5wB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,aACH0G,EAAII,SAASJ,EAAIK,SAAS,EAAI,CAAC,EAC/B/G,EAAOlqB,KAAK+wB,WAAWH,CAAG,EAC1B5wB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,SACHA,EAAOlqB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWE,SAAS,EAChD7vB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,GAAG,CAAC,EAC9D,MACF,IAAK,QACHA,EAAOlqB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWE,SAAS,EAChD7vB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,UACHA,EAAOlqB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWE,SAAS,EAChDa,EAAS1wB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWI,OAAO,EAChD/vB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKkxB,0BAA0BhH,EAAMwG,CAAM,CAAC,CAExE,CACF,CAEI1wB,KAAK2vB,WAAW5J,MAA+B,EAAvB/lB,KAAK2vB,WAAW5J,MAC1C/lB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQxwB,KAAK2vB,WAAW5J,KAAKpf,SAAS,EAAG3G,KAAK2vB,WAAWK,YAAY,CAAC,EAGhHhwB,KAAK2vB,WAAWO,cAClBlwB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,aAAc,IAAK,GAAG,CAAC,EAGjExwB,KAAK2vB,WAAWQ,UAClBnwB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,WAAY,IAAK,GAAG,CAAC,EAG/DxwB,KAAK2vB,WAAWS,QAClBpwB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,SAAU,IAAK,GAAG,CAAC,EAG7DxwB,KAAK2vB,WAAWze,OAAwC,EAA/BlR,KAAK2vB,WAAWze,MAAM1M,QACjDxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKmxB,oBAAoB,CAAC,EAGpDnxB,KAAKoxB,qBAAqB,CAC5B,EAEApxB,KAAKqxB,kBAAoB,SAAU5J,GAC7B,IAAMA,EAAM6J,UACdtxB,KAAKuwB,oBAAoB,EACzB7J,EAAUmI,KAAK,EACfxH,EAAGyH,2BAA6B,CAAA,EAEpC,EAEA9uB,KAAKoxB,qBAAuB,WAC1B,IAMMG,EAAMhwB,EACNyE,EAPFjE,EAAQ2J,eAAeqB,WAEzBsa,EAAGmK,eAAehM,WAAW,GAInBjkB,EAAY,GAClByE,EAAS,SAAShD,GAChB5C,EAAEC,QAAQ2C,EAAS,SAASJ,GACrBA,EAAEuO,WAAW,GAChB5P,EAAUoC,KAAKf,CAAC,EACdA,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3BwB,EAAOpD,EAAEyC,QAAQ,CAErB,CAAC,CACH,EAEJgiB,EAAGmK,eAAiB,IAAIpM,EAAeiC,EAAGkD,SAAS,EAAE,EAKhDxoB,EAAQ6J,eACXyb,EAAGmI,sBAAwBztB,EAAQ2J,gBAErC3J,EAAQ2J,eAAiB2b,EAAGmK,eAC5BzvB,EAAQ6J,aAAe,CAAA,EAEnB7J,EAAQ8J,aAAarH,SACvB+sB,EAAOlK,EAAGkD,SAAS,GAAGhkB,kBAAkBxE,EAAQ8J,YAAY,GACvDiL,kBAAkBuQ,EAAGtQ,cAAc,EACxCxV,EAAUoC,KAAK4tB,CAAI,EACflK,EAAGvO,OAAOkW,YAAcuC,EAAKlsB,SAASb,QACxCwB,EAAOurB,EAAKlsB,QAAQ,GAGtB9D,EAAYnB,EAAEqO,OAAO4Y,EAAGkD,SAAS,GAAGhmB,kBAAkB,CAAEe,IAAK,CAAA,CAAK,CAAC,EAAG,SAAS5B,GAC7E,MAAO,CAACA,EAAQyN,WAAW,CAC7B,CAAC,EAGH5P,EAAUlB,QAAQ,KAEjB,EACDgnB,EAAGmK,eAAenM,aAAa9jB,CAAS,EACxC8lB,EAAGmK,eAAelM,YAAY+B,EAAGvO,OAAOjJ,MAAOwX,EAAGvO,OAAOyM,MAAM,EACnC,+BAAxBkB,EAAOgL,SAAS/qB,MAClB+f,EAAOwD,GAAG,8BAA+B,CAAE5hB,UAAWgf,EAAGkD,SAAS,GAAGznB,EAAG,CAAC,EAE/E,EAGA9C,KAAK+wB,WAAa,SAAS7G,GAIzB,OAHWA,EAAKwH,YAAY,EAGd,KAFDxH,EAAK+G,SAAS,EAAI,GAAGtqB,SAAS,EAAEgrB,SAAS,EAAG,GAAG,EAEhC,IADlBzH,EAAK4G,QAAQ,EAAEnqB,SAAS,EAAEgrB,SAAS,EAAG,GAAG,CAErD,EAEA3xB,KAAK4xB,WAAa,WACZ,WAAa5xB,KAAK2vB,WAAWzF,MAC3BlqB,KAAK2vB,WAAWE,UAAY7vB,KAAK2vB,WAAWI,UAC9C/vB,KAAK2vB,WAAWI,QAAU/vB,KAAK2vB,WAAWE,UAGhD,EAEA7vB,KAAKwwB,eAAiB,SAAUqB,EAAaC,EAASC,EAAW,KAC/D,GAAID,EAAQttB,QAAUqtB,EAAYrtB,OAAQ,CACxC,IAAIwtB,EAAI,EAMR,OALIF,EAAQzR,WAAW,GAAG,IAExByR,EAAUA,EAAQrf,UADlBuf,EAAI,CACyB,EAAE/wB,KAAK,GAG9B4wB,GACN,IAAK,OACH,MAAO,CAAEriB,SAAUqiB,EAAapiB,YAAaqiB,EAASG,SAAUD,EAAGD,SAAUA,EAAU9B,SAAUjwB,KAAK2vB,WAAWM,QAAS,EAC5H,IAAK,OACH,MAAO,CAAEzgB,SAAUqiB,EAAapiB,YAAaqiB,EAASG,SAAUD,EAAGD,SAAUA,CAAS,EACxF,QACE,MAAO,CAAEviB,SAAUqiB,EAAapiB,YAAaqiB,EAASG,SAAUD,CAAE,CACtE,CACF,CACF,EAEAhyB,KAAKkxB,0BAA4B,SAAUgB,EAAUxB,GACnD,MAAO,CAAElhB,SAAU,eAAgBC,YAAa,IAAKyiB,SAAUA,EAAUxB,OAAQA,EAAQuB,SAAU,CAAE,CACvG,EAEAjyB,KAAKmxB,oBAAsB,WACzB,MAAO,CAAE3hB,SAAU,QAASC,YAAa,IAAKyB,MAAOmW,EAAGsI,WAAWze,MAAO+gB,SAAU,CAAE,CACxF,EAEAjyB,KAAKmyB,mBAAqB,SAAU3uB,GAClCA,EAAQc,UAAY,CAACd,EAAQc,UACxBtE,KAAKoyB,oBACRpyB,KAAKoyB,kBAAoB5D,EAAQ6D,SAAS,WACxC7uB,EAAQe,kBAAkB,CAAEO,OAAQ,CAAA,EAAMoB,UAAW,CAAA,CAAK,CAAC,CAC7D,EAAG,GAAI,GAETlG,KAAKoyB,kBAAkB,CACzB,EAEApyB,KAAKsyB,UAAY,SAAS9uB,GAkBxB,SAAS+uB,EAA8B/L,EAAQE,EAAW8L,GACxD,IAAInL,EAAKrnB,KAETqnB,EAAGtW,QAAU,CAAA,EACbsW,EAAG5Y,OAAS,CAAE/H,KAAM,EAAG,EACvB2gB,EAAG7jB,QAAU,IAAI3D,EAAQ,CACvBiD,GAAI0vB,EAAW1vB,GACf4D,KAAM8rB,EAAW9rB,IACnB,CAAC,EACD2gB,EAAGpC,MAMH,WACEyB,EAAUmI,KAAK,CACjB,EANAxH,EAAG7jB,QAAQoB,cAAc,CAAEE,OAAQ,CAAA,EAAMQ,IAAK,CAAA,CAAK,CAAC,EAAErF,KAAK,WACzDonB,EAAGtW,QAAU,CAAA,CACf,CAAC,CAKH,CAnCA2V,EAAU3F,KAAK,CACbgH,YAAavkB,EAAQV,GAAK,aAC1BygB,WAAYgP,EACZ9O,aAAc,gBACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfd,OAAQ,CACNqP,WAAYhvB,CACd,CACF,CAAC,EAAEuR,QAAQ,WACPvR,EAAQoB,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,CACxC,CAAC,EAKDytB,EAA8BpN,QAAU,CAAC,SAAU,YAAa,aAoBlE,EAEAnlB,KAAKsvB,mBAAqB,WACnBjI,EAAGyH,6BACNzH,EAAGyH,2BAA6B,CAAA,EAC5B/sB,EAAQ2J,eAAelF,OACzBzE,EAAQ8J,aAAe9J,EAAQ2J,eAAelF,MAG3CioB,EAASzH,EAAW,QAAQ,GAC/B0H,EAAW,MAAM,EAAEzJ,MAAM,EAE3ByB,EAAU3F,KAAK,CACb+C,SAAUxH,SAASmW,eAAe,gBAAgB,EAAEjW,UACpD/K,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCkB,WAAY,WAGVvjB,KAAKoqB,QAAU,WAEbpqB,KAAK0yB,eAAiBrL,EACtBrnB,KAAK0D,QAAU3B,EACf/B,KAAKuI,QAAUvG,CACjB,EAPiBhC,KASN4uB,YAAc,WACvBlI,EAAUmI,KAAK,EACfxH,EAAGyH,2BAA6B,CAAA,CAClC,EAZiB9uB,KAcN8Y,OAAS,WAClB9Y,KAAK0yB,eAAenC,oBAAoB,EACxC7J,EAAUmI,KAAK,EACfxH,EAAGyH,2BAA6B,CAAA,CAClC,CACF,EACArL,aAAc,aACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,CACjB,CAAC,EAEL,EAEAjkB,KAAK2yB,UAAY,SAASC,GACxBzL,EAAO0L,OAAOlrB,EAAE,eAAe,EACjBA,EAAE,mCAAmC,CAAC,EACjD1H,KAAK,SAASyG,GACbksB,EAAansB,YAAYmsB,EAAa9vB,GAAI4D,CAAI,EAC3CzG,KAAK,aAEH,SAASwC,EAAMqH,GAChBqd,EAAO2L,MAAMnrB,EAAE,sDAAuDjB,CAAI,EAC7DiB,EAAElF,EAAKyS,KAAK,CAAC,CAC5B,CAAC,CACL,CAAC,CACL,EAEAlV,KAAK+yB,SAAW,SAASvvB,GAiBvB,SAASwvB,EAA4BxM,EAAQE,EAAWiI,EAAMnrB,GAC5D,IAAI6jB,EAAKrnB,KAETqnB,EAAGxd,MAAQrG,EAAQmG,UACnB0d,EAAG7jB,QAAUA,EACb6jB,EAAG4L,UAAY,GACf5L,EAAGiJ,WAAa,GAChBjJ,EAAG6L,WAKH,SAAoB3nB,GAClB,OAAOojB,EAAKxf,QAAQ5D,EAAQ/H,EAAQmG,SAAS,CAC/C,EANA0d,EAAG8L,WAQH,WACEzM,EAAUmI,KAAK,CACjB,EATAxH,EAAG+L,WAWH,SAAoB9pB,GAClB9F,EAAQwG,gBAAgBV,EAAKI,GAAG,EAAEqV,MAAM,SAAStc,EAAMqH,GACrDqd,EAAO2L,MAAMnrB,EAAE,SAAS,EAAGA,EAAE,qCAAqC,CAAC,CACrE,CAAC,CACH,EAdA0f,EAAGgM,QAgBH,SAAiB5wB,GACXA,GACFe,EAAQ6F,aAAa5G,CAAI,EAAExC,KAAK,WAC9BonB,EAAG4L,UAAY,GACf5L,EAAGiJ,WAAa,EAClB,EAAG,SAASpb,GACViS,EAAO2L,MAAMnrB,EAAE,SAAS,EAAGuN,CAAK,CAClC,CAAC,CAEL,CACF,CApDAwR,EAAU3F,KAAK,CACbgH,YAAavkB,EAAQV,GAAK,cAC1BygB,WAAYyP,EACZvP,aAAc,WACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfd,OAAQ,CACNwL,KAAMA,EACNnrB,QAASA,CACX,CACF,CAAC,EAKDwvB,EAA4B7N,QAAU,CAAC,SAAU,YAAa,OAAQ,UAsCxE,EAEAnlB,KAAKszB,kBAAoB,SAASC,EAAWpG,GAC3C,OAAQA,EAAUrqB,IAAMywB,EAAUzwB,IAAOqqB,EAAU/b,WAAW,CAChE,EAEApR,KAAKwzB,qBAAuB,SAASD,EAAWpG,EAAWpD,GACzD,IAAqBrZ,EAAM+iB,EAAkB1pB,EAAS2pB,EAEtDC,EAAQ,IAAMxG,EAAUrqB,GACxBkQ,EAAWugB,EAAUhlB,iBAAiB,EACd,IAApByE,EAASxO,SACXwO,EAAW,CAACugB,EAAUvkB,gBAAgB,IACxC0B,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAC5BygB,EAAoBF,EAAUxkB,kBAAgE,GAA5C2B,EAAKjL,QAAQ8tB,EAAUxkB,gBAAgB,EAIvF2kB,EAFU,QAAR3J,GACFhgB,EAAUwpB,EAAU7e,cAAc1B,EAAU2gB,CAAK,EACvChsB,EAAE,yBAA0BqL,EAASxO,MAAM,IAGrDuF,EAAUwpB,EAAU3e,cAAc5B,EAAU2gB,CAAK,EACvChsB,EAAE,wBAAyBqL,EAASxO,MAAM,GAGtDuF,EAAQ9J,KAAK,WACPwzB,GACFhN,EAAOwD,GAAG,sBAAsB,EAClCtD,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAYoG,CAAO,EACnBhQ,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,CAEF,CAnhBAc,EAAoBnJ,QAAU,CAAC,SAAU,aAAc,SAAU,eAAgB,WAAY,UAAW,UAAW,WAAY,aAAc,YAAa,WAAY,aAAc,UAAW,kBAAmB,SAAU,aAAc,YAAa,UAAW,UAAW,iBAAkB,OAAQ,cAAe,gBAAiB,WAqhBvUjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,sBAAuB+K,CAAmB,CAGzD,EAAE,EChiBH,WACE,aAMA,SAASsF,EAAkBrN,EAASC,EAAQnlB,EAAIolB,EAAQgI,EAAU/H,EAAWzF,EAAU+F,EAAYJ,EAAeC,EAAcC,EAAcqB,EAAcjH,EAAW6F,EAAiBE,EAAYnG,EAAcoG,EAAOC,EAAQrlB,EAAa+xB,EAAUC,EAAWj0B,EAASkC,EAASC,EAAS+xB,EAAaC,GACzS,IAAI3M,EAAKrnB,KAA0B8kB,EAAU,GAwG7C,SAAS4C,EAAT,GACE,OAAIlB,EAAO9iB,SACc,EAAnBikB,UAAUnjB,SACZgiB,EAAO9iB,QAAQkkB,cAHrB,GAIWpB,EAAO9iB,QAAQkkB,eAEjB,IACT,CAEA,SAASqM,EAAgBzS,GACvB,OAAO,WAEL,GAAyB,OAArBkG,EAAe,EACjB,OAAOlG,EAAS0S,MAAM7M,EAAIM,SAAS,CACvC,CACF,CA4CA,SAASwM,IACP,IAAazwB,EAAS0wB,EAAQ,GAiB9B,OAhBI7N,EAAQ8N,QAEN,uBAAwB9N,EAAQ8N,QAChC,mBAAoB9N,EAAQ8N,OAAOhK,oBACnC9D,EAAQ8N,OAAOhK,mBAAmB3e,eAAe0B,IAAI,GAAK0Z,EAAa1Z,IAAI,IAE3E1J,EAAU6iB,EAAQ8N,OAAOhK,mBACzB+J,EAAME,YAAc5wB,EAChB,uBAAwB6iB,EAAQ8N,SAChC9N,EAAQ8N,OAAOE,mBAAmBhsB,QAAQmB,KAAOye,EAAaze,MAEhEnB,EAAUge,EAAQ8N,OAAOE,mBACzBH,EAAMI,YAAcjsB,GAIrB6rB,CACT,CAyNA,SAASvM,EAAgBhG,EAAQtZ,GAC/B,IACMuf,EADmB,OAArBJ,EAAe,IACbI,EAAqBzmB,EAAGmI,MAAM,EAClCke,EACEhB,EACG3F,KAAK,CACJtP,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCsB,YAAa9B,EACbmC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACf8D,YAAa,gBACbxE,WAAY,0BACZE,aAAc,SACduE,WAAY,SAAUC,EAAOznB,GAC3B,OAAOsnB,EAAmBle,QAAQpJ,CAAO,CAC3C,EACA2iB,OAAQ,CACN+E,YAAa1B,EACbK,aAAcQ,EAAG7jB,QACjB2kB,aAAc5f,EACd6f,kBAAmB,WACjB,OAAON,EAAmB/d,OAC5B,CACF,CACF,CAAC,EACAgV,MAAM3e,EAAEioB,IAAI,EACZtT,QAAQ,WACP2S,EAAe,IAAI,EACnBL,EAAGiB,WAAW,CAChB,CAAC,CACL,EAEJ,CAyHA,SAASmM,EAAoB5S,EAAQxb,GACnCghB,EAAG9e,QAAQqV,cAAc,EAAE3d,KAAK,SAASwC,GACvC,IAAIiyB,EAAgB,CAClBC,IAAKd,EAASe,iBAAiB,EAC/BvuB,KAAMA,EACNwuB,QAASpyB,EAAKoO,QACdikB,QAASryB,EAAK6Y,OAChB,EACI5O,EAAY,IAAIonB,EAAUY,CAAa,EAGvC3M,EAAc,CAChBd,EAAW/kB,WAAW,WAAW,EACjC,WACA,MAAQmE,EAAKmM,WAAW,EAAI,kBAC5BxR,KAAK,GAAG,EACV,OAAO0lB,EAAU3F,KAAK,CACpBtP,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCsB,YAAa9B,EACbmC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACf8D,YAAaA,EACbxE,WAAY,4BACZE,aAAc,SACdN,OAAQ,CACN4R,eAAgBroB,CAClB,CACF,CAAC,CACH,CAAC,CACH,CAnkBA1M,KAAKoqB,QAAU,WACb,IAsHwB/Z,EAtHpB2kB,EAAgB,CAAA,EAGpBzO,EAAQgO,mBAAqBlN,EAG7BvG,EAAaK,WAAWgH,CAAY,EAEpCnoB,KAAKymB,OAASA,EACdzmB,KAAKuqB,SAAW3D,EAChB5mB,KAAKwD,QAAUqjB,EACf7mB,KAAK0D,QAAUojB,EACf9mB,KAAKuI,QAAU4f,EACfnoB,KAAKsqB,QAAUtoB,EACfhC,KAAKqwB,KAAO,CAAEC,WAAY,GAAI5hB,SAAU,EAAG,EAC3C1O,KAAKi1B,UAAY9M,EAAajX,OAAqC,EAA5BiX,EAAajX,MAAM1M,OAC1DxE,KAAKk1B,+BAAiC,CAAC/M,EAAa7Q,IAAM6Q,EAAa7Q,GAAG9S,OAAS,KAAO,CAAC2jB,EAAa5Q,IAAM4Q,EAAa5Q,GAAG/S,OAAS,GACvIxE,KAAKm1B,wBAA0Bn1B,KAAKk1B,8BACpCl1B,KAAKo1B,cAAgB,CAAA,EACrBp1B,KAAKq1B,eAAiB,CAAC,GAmGChlB,EAjGPyU,GAkGZnhB,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,cAAc,EACrBL,YAAaK,EAAE,sBAAsB,EACrC6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKmjB,EAAIA,EAAGiO,KAAK,CAAC,CACtD,CAAC,CAAC,EACFjlB,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,iBAAiB,EACxBL,YAAaK,EAAE,oCAAoC,EACnD6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKmjB,EAAIA,EAAGkO,QAAQ,CAAC,CACzD,CAAC,CAAC,EACFllB,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,gBAAgB,EACvBL,YAAaK,EAAE,0BAA0B,EACzC6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKmjB,EAAIA,EAAGmO,OAAO,CAAC,CACxD,CAAC,CAAC,EACFnlB,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,aAAa,EACpBL,YAAaK,EAAE,SAAS,EACxB6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKikB,EAAcA,EAAavJ,UAAU,CAAC,CAC/E,CAAC,CAAC,EACFxe,EAAEC,QAAQ,CAAC,YAAa,UAAW,SAASuqB,GAC1Cva,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAKsgB,EACLpJ,SAAUyS,EAAgB,SAASpS,GACE,IAA/BwF,EAAG3jB,QAAQiL,cAAc,GACpB0Y,EAAG9e,QAAQmB,MAAQ2d,EAAGgO,gBAC7BhO,EAAGoO,cAAc,EACnB5T,EAAOiH,eAAe,CACxB,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,EAGD1oB,EAAEC,QAAQgQ,EAAM,SAAS/F,GACvB4W,EAAUS,eAAerX,CAAG,CAC9B,CAAC,EAlID,IACE0qB,EAAgBzO,EAAQ8N,QAAU,uBAAwB9N,EAAQ8N,MAEzD,CAAX,MAAO/xB,IAGH0yB,GAEFxO,EAAOkP,iBAAiB,WAAa,OAAOrO,EAAG9e,QAAQ2I,KAAO,EAAG,SAASykB,EAASC,GACjF,IAAIxB,GACAuB,GAAWC,KACbxB,EAAQD,EAAmB,GACjBK,aACRJ,EAAMI,YAAYlK,QAAQ5oB,SAAS,WACjC0yB,EAAMI,YAAYS,UAAY,CAAA,EAC9Bb,EAAMI,YAAYjsB,QAAQ2I,MAAQykB,CACpC,CAAC,CAGP,CAAC,EAEDnP,EAAOyE,OAAO,WAAa,OAAO5D,EAAG9e,QAAQsW,SAAW,EAAG,SAASA,EAAWgX,GAC7E,IAAIzB,EAAQD,EAAmB,EAC3BC,EAAME,aACRF,EAAME,YAAYhK,QAAQ5oB,SAAS,WACnBtB,EAAE+E,KAAKivB,EAAME,YAAY5oB,eAAesB,UAAW,CAAEtD,IAAK2d,EAAG9e,QAAQmB,GAAI,CAAC,EAChFmV,UAAYA,CACtB,CAAC,CAEL,CAAC,GAKD2H,EAAOkP,iBAAiB,WAAa,OAAOrO,EAAG9e,QAAQ2I,KAAO,EAAG,SAAS4kB,EAAUC,GAClF,IAAIJ,EAAkBtF,GAClByF,GAAYC,KACdJ,EAAUG,GAAY,GACtBF,EAAUG,GAAY,GACtB31B,EAAEC,QAAQs1B,EAAS,SAAS/c,EAAK/V,GAC3B3C,QAAQiJ,SAASyP,CAAG,IACtB+c,EAAQ9yB,GAAK+V,EAAIlS,KACrB,CAAC,EACGivB,EAAQnxB,OAASoxB,EAAQpxB,QAC3B6rB,EAAOjwB,EAAE41B,WAAWL,EAASC,CAAO,EACpCx1B,EAAEC,QAAQgwB,EAAM,SAASzX,GACvByO,EAAG9e,QAAQsV,OAAOjF,CAAG,CACvB,CAAC,GAEM+c,EAAQnxB,OAASoxB,EAAQpxB,SAChC6rB,EAAOjwB,EAAE41B,WAAWJ,EAASD,CAAO,EACpCv1B,EAAEC,QAAQgwB,EAAM,SAASzX,GACvByO,EAAG9e,QAAQ2V,UAAUtF,CAAG,CAC1B,CAAC,GAGP,CAAC,EAGH4N,EAAOuE,IAAI,WAAY,WAErB3qB,EAAEC,QAAQykB,EAAS,SAASxa,GAC1B4W,EAAU6D,iBAAiBza,CAAG,CAChC,CAAC,EAEG+c,EAAG9e,QAAQ6W,oBACbiI,EAAGiD,QAAQ5oB,SAASuC,OAAOojB,EAAG9e,QAAQ6W,kBAAkB,EAE1D,OAAOmH,EAAQgO,kBACjB,CAAC,CAEH,EAsFAv0B,KAAKi2B,SAAW,SAASpU,GACvBA,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EACtB9oB,KAAKi1B,UAAY,CAAA,EACjB/N,EAAM,OAAO,CACf,EAEAlnB,KAAKk2B,yBAA2B,SAASrU,GACvC7hB,KAAKm1B,wBAA0B,CAACn1B,KAAKm1B,wBACrCtT,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,CACxB,EAEA9oB,KAAKm2B,UAAY,SAAStU,GAExB,IADA,IAAIuU,EAAcvU,EAAOe,OACM,YAAxBwT,EAAYC,SACjBD,EAAcA,EAAYE,WAE5BF,EAAY1R,UAAUC,IAAI,YAAY,CACxC,EAEA3kB,KAAKu2B,SAAW,SAAS1U,GAEvB,IADA,IAAIuU,EAAcvU,EAAOe,OACM,YAAxBwT,EAAYC,SACjBD,EAAcA,EAAYE,WAE5BF,EAAY1R,UAAUnH,OAAO,YAAY,EACrCsE,EAAO2U,eAAkD,qBAAjC3U,EAAO2U,cAAcH,SAE/ChP,EAAGoP,MAAMxR,MAAM,CAEnB,EAEAjlB,KAAK02B,gBAAkB,SAAS/b,EAAWkH,GAEzCkS,EAAYvxB,SAAS,EAAE,EAEvB,IAAIm0B,EAAgB9U,EAAOe,OAEvBR,EAAgBnB,EAASsB,iBAAiB,EACzCqU,WAAWD,CAAa,EACxBE,iBACC5V,EAAS6V,UAAUC,YACnB9V,EAAS+V,UAAUC,UACrB,EAEAxU,EAAiBxB,EAASyB,kBAAkB,EAC3CC,SAASgU,CAAa,EACtB9T,SAAS,GAAG,EACZC,cAAc7B,EAAS8B,UAAUC,IAAI,EAEtCC,EAAS,CACXC,SAAUhjB,QAAQM,QAAQ8b,SAAS+F,IAAI,EACvCc,OAAQ,CACNxI,UAAWA,EACXuc,aAAcnD,EAAYoD,cAC1BC,cAAerD,EAAYsD,eAC3B5M,WAAYvqB,QAAQgE,KAAKlE,KAAMA,KAAKyqB,UAAU,CAChD,EACAnH,iBAAkB,CAAA,EAClBC,WAAY+T,EACZ7T,aAAc,YACdC,SAAUtB,EACVW,UAAWN,EACXkB,YAAa9B,EACbkG,YAAa,2BACbhE,UAAW,CAAA,EACXC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,YAAa,CAAA,CACf,EAYA,SAASoT,EAAetS,EAAYyB,EAAQE,GAC1C3mB,KAAKu3B,UAAY,SAAS1V,GACH,IAAjBA,EAAO2V,OACTxS,EAAWC,MAAM,CAErB,EAEAjlB,KAAKy3B,QAAU,SAAS9c,EAAW+c,GACjC,IAAIC,EAAO,IAAI3D,EAAK,CAClBW,IAAK+C,EACLE,KAAMjd,EAAUjU,KAChBmxB,OAAQ,CAAC,CAAExtB,MAAOsQ,EAAUja,KAAM,EACpC,CAAC,EACDi3B,EAAKvqB,IAAI,EAAEnN,KAAK,SAAS6C,GACvB60B,EAAKhmB,MAAM,EAAE1R,KAAK,WAEhB0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,2BAA2B,CAAC,EAC1C+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,CAAC,EACDxI,EAAWC,MAAM,CACnB,CACF,CAnCAhE,EAASxN,KAAKwP,CAAM,EACjBhjB,KAAK,SAAS63B,IACbzQ,EAAGoP,MAAQqB,GAEFC,QAAQxT,IAAI,QAAS,WAC5BuT,EAAS7S,MAAM,CACjB,CAAC,CACH,CAAC,EAEHqS,EAAenS,QAAU,CAAC,aAAc,SAAU,YA4BpB,MAA1BwR,EAAcN,UAChBxU,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EAE1B,EAEA9oB,KAAKg4B,kBAAoB,SAASnW,GAChC,IAAIoW,EACyB,KAAzBpW,EAAOe,OAAOyT,SAAkB,SAAUxU,EAAOe,OAAOsV,aAC1DD,EAAOpW,EAAOe,OAAOsV,WAAWD,KAAK5tB,MAC7B,mBAAmBiV,KAAK2Y,CAAI,KAElC,OAAOpW,EAAOe,OAAOsV,WAAWtV,OAChC5iB,KAAKyqB,WAAW5I,EAAQoW,CAAI,EAGlC,EAEAj4B,KAAKy1B,cAAgB,WACnB,IAAI/xB,EAAS6E,EAAS4vB,EAAOvO,EAAaC,EACtCuO,EAAcjE,EAAmB,EACjCzyB,EAAW1B,KAAKsqB,QAAQ5oB,SAiB5B,SAAS22B,EAAS3zB,GAChB,IAAIolB,EAAYplB,EAGhB,GADA6D,EAAU,KACNrI,QAAQ2D,UAAUs0B,CAAK,EAAG,CAEhB,EAARzzB,IACFolB,EAAAA,EACAF,EAAclmB,EAAQe,eAAeqlB,CAAS,GAE5CplB,EAAQhB,EAAQW,UAAU,IAC5BwlB,EAAkBnmB,EAAQe,eAAeC,CAAK,GAE5CklB,EACEA,EAAYjX,QAAUkX,GAAmB,CAACA,EAAgBlX,SAC5DmX,EAAYplB,EACZklB,EAAcC,GAGTA,IACPC,EAAYplB,EACZklB,EAAcC,GAGhB,IACMD,GAAe6E,EAASzH,EAAW,QAAQ,GACzCjlB,EAAQ6J,aACVusB,EAAMlO,GAAG,sCAAuC,CAACuC,UAAWzF,EAAgB6C,EAAYzS,SAAS3Q,IAAI,EAAGsI,UAAW8a,EAAYlgB,GAAG,CAAC,EAEnIyuB,EAAMlO,GAAG,+BAAgC,CAACnb,UAAW8a,EAAYlgB,GAAG,CAAC,EACvEhI,EAAS,WACHooB,EAAYpmB,EAAQsS,UACtBtS,EAAQsS,UAAY8T,EACbA,EAAYpmB,EAAQ0K,oBAC3B1K,EAAQsS,UAAY8T,GAAapmB,EAAQ0K,kBAAoB1K,EAAQsS,WACzE,CAAC,GAGDmiB,EAAMlO,GAAG,sBAAsB,EAAEhqB,KAAK,WACpCsI,EAAU,KACV,OAAO7E,EAAQqL,gBACjB,CAAC,CAGU,CAAf,MAAOmG,IACT,CACAmS,EAAGiB,WAAW,CAChB,CA3DE6P,EAHEC,EAAY5D,aACd9wB,EAAU00B,EAAY9D,YAAY5oB,eAClCnD,EAAU6vB,EAAY5D,YAAYjsB,QAC1B6vB,EAAY5D,YAAY/N,SAGhC/iB,EAAUojB,EACVve,EAAU4f,EACF1B,GAEN1kB,EAAQ6J,eACVlI,EAAU3B,EAAQ2J,gBAEpB2b,EAAGgO,eAAiB9sB,EAAQmB,IAmD5BhG,EAAQuQ,gBAAgB,CAAC1L,EAAQ,EAAEtI,KAAKo4B,EAAU,SAASpjB,GACzDyS,EACIP,EAAO2F,QAAQnlB,EAAE,SAAS,EACXA,EAAE,8FAA8F,EAChG,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EACjC1H,KAAK,WACJyD,EAAQuQ,gBAAgB,CAAC1L,GAAU,CAAE0kB,aAAc,CAAA,CAAK,CAAC,EACtDhtB,KAAKo4B,CAAQ,EACbtjB,QAAQ,WACP2S,EAAe,IAAI,CACrB,CAAC,CACL,CAAC,EACA3S,QAAQ,WACP2S,EAAe,IAAI,CACrB,CAAC,CACL,CACF,CAAC,CACH,EAoCA1nB,KAAKosB,uBAAyB,SAAS9c,GACrC,MAAK2X,CAAAA,EAAWqF,SACkC,SAA9CxqB,EAAYqB,SAASopB,wBACvBvsB,KAAK8rB,YAAYxc,CAAM,EAChB,CAAA,EAGX,EAEAtP,KAAKilB,MAAQ,WACX,IAAIqT,EAAcv2B,EAAQ6J,aAAe,8BAAgC,uBACzE6a,EAAOwD,GAAGqO,CAAW,EAAEr4B,KAAK,WAC1BonB,EAAG9e,QAAU,KACb,OAAOue,EAAa/X,gBACtB,CAAC,CACH,EAEA/O,KAAKs1B,MAAQ,SAASzT,GACf7hB,KAAKosB,uBAAuB,OAAO,GACtCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQmX,OAAO,CAAC,CAEjD,EAEA1f,KAAKu1B,SAAW,SAAS1T,GAClB7hB,KAAKosB,uBAAuB,UAAU,GACzCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQqX,UAAU,CAAC,CAEpD,EAEA5f,KAAKw1B,QAAU,SAAS3T,GACjB7hB,KAAKosB,uBAAuB,SAAS,GACxCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQsX,SAAS,CAAC,CAEnD,EAEA7f,KAAKu4B,KAAO,SAAS1W,GACd7hB,KAAKosB,uBAAuB,MAAM,GACrCpsB,KAAKuI,QAAQmV,iBAAiB,EAAEzd,KAAK,WACnC4nB,EAAgBhG,EAAQwF,EAAG9e,OAAO,CACpC,CAAC,CAEL,EAEAvI,KAAKw4B,QAAU,SAAS3W,GACjB7hB,KAAKosB,uBAAuB,SAAS,GACxCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQuX,SAAS,CAAC,CAEnD,EAEA9f,KAAK8rB,YAAc,SAASxc,GAC1B,IAAIyc,EAAM,CAAC9E,EAAW+E,QAAQ,EACnB,0BACAhsB,KAAKuI,QAAQF,UAEb0e,EAAgBA,EAAgB/mB,KAAKuI,QAAQ4O,SAAS3Q,IAAI,CAAC,EAC3DxG,KAAKuI,QAAQmB,KACnB1I,KAAK,GAAG,EACTirB,EAAMjsB,KAAKuI,QAAQC,cAAc,EACjC8G,IACF2c,GAAO,IAAM3c,EACbyc,GAAO,IAAMzc,GAEDiX,EAAQ9S,KAAKsY,EAAKE,EACL,CAAC,YACA,aACA,cACA,eACA,YACA,aACA,gBACA,WACA,YACA,iBACAjrB,KAAK,GAAG,CAAC,CACvC,EAEAhB,KAAKsoB,WAAa,WACZ/B,EAAQjK,SAAS+F,KAAKqC,UAAUyH,SAAS,OAAO,GAClD5F,EAAQtB,MAAM,CAClB,EAEAjlB,KAAKyqB,WAAa,SAAS5I,EAAQ3Y,GACH,MAA1B2Y,EAAOe,OAAOyT,UAChBxU,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,GAExB9oB,KAAKwD,QAAQwE,YAAY,CAAEkB,OAAQA,CAAO,CAAC,EAAEjJ,KAAK,SAASsI,GACzDsf,EAAgBhG,EAAQtZ,CAAO,CACjC,CAAC,CACH,EAEAvI,KAAKy4B,gBAAkB,SAAS5W,GACzB7hB,KAAKo1B,eAAkBp1B,KAAKuI,QAAQmwB,WAOvC14B,KAAKo1B,cAAgB,CAACp1B,KAAKo1B,cAN3BpzB,EAAQC,WAAW8B,KAAK/D,KAAKuI,QAAQzF,GAAI,YAAY,EAAE7C,KAAK,SAASwC,GACnE4kB,EAAG9e,QAAQmwB,WAAaj2B,EACxB4kB,EAAG+N,cAAgB,CAAA,CACrB,CAAC,CAKL,EAEAp1B,KAAK24B,mBAAqB,SAAU9W,GAClC7hB,KAAK8rB,YAAY,SAAS,CAC5B,EAEA9rB,KAAK44B,MAAQ,SAAS/W,GACpB0E,EAAQqS,MAAM,CAChB,EAEA54B,KAAK64B,eAAiB,SAAShX,GAC7B,OAAO4S,EAAoB5S,EAAQ,aAAa,CAClD,EAEA7hB,KAAK84B,cAAgB,SAASjX,GAC5B,OAAO4S,EAAoB5S,EAAQ,MAAM,CAC3C,CAgCF,CAxkBA+R,EAAkBzO,QAAU,CAAC,UAAW,SAAU,KAAM,SAAU,WAAY,YAAa,WAAY,aAAc,gBAAiB,eAAgB,eAAgB,eAAgB,YAAa,kBAAmB,aAAc,eAAgB,UAAW,SAAU,cAAe,WAAY,YAAa,UAAW,UAAW,UAAW,cAAe,QA0kBjWjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,oBAAqBqQ,CAAiB,CACrD,EAAE,ECnlBH,WACE,aAMA,SAASmF,EAAwBvS,EAAQD,EAASyS,EAAcxK,EAAS9H,EAAWC,EAAUsS,EAAc/Q,EAAarB,EAAcsB,EAAcC,EAAmBrB,EAAiBrlB,EAAUslB,EAAYE,EAAOC,EAAQ4M,EAAaC,EAAMlyB,GAC/O,IAAIulB,EAAKrnB,KAwFT,SAASm0B,IACP,IAAI+E,EAAe9E,EAAQ,GAE3B,IACM7N,EAAQ8N,QACN,uBAAwB9N,EAAQ8N,QAChC,mBAAoB9N,EAAQ8N,OAAOhK,qBACjC9D,EAAQ8N,OAAOhK,mBAAmB3e,eAAe5I,IAAMqlB,EAAahR,SAASrU,IAC/EsxB,EAAM+E,iBAAmB5S,EAAQ8N,OAAOhK,mBACpC,uBAAwB9D,EAAQ8N,QAChC9N,EAAQ8N,OAAOE,mBAAmBhsB,QAAQmB,KAAOye,EAAaze,MAEhE0qB,EAAMgF,iBAAmB7S,EAAQ8N,OAAOE,qBAGnCpM,EAAanI,SACpBkZ,EAAgB/Q,EAAanI,OAAOzX,QAChCge,EAAQ8N,OAAOhK,mBAAmB3e,eAAe0B,IAAI,GAAK8rB,EAAc/hB,SAAS/J,IAAI,KAEvFgnB,EAAMiF,kBAAoB9S,EAAQ8N,OAAOhK,oBAMxC,CAAX,MAAO/nB,IAEP,OAAO8xB,CACT,CAsCA,SAASkF,IACPjS,EAAGkS,SAASxN,IAAM1E,EAAG9e,QAAQC,cAAc,CAACC,QAAS,CAAA,EAAM6Q,iBAAkB,CAAA,CAAI,CAAC,EAAI,OACxF,CAEA,SAASkgB,IAEP,IAAI32B,EAAS42B,EAAUC,EAAQrS,EAAG9e,QAAQS,SAAS0V,gBACnD,GAAIgb,EACF,IAAK72B,EAAI,EAAGA,EAAI62B,EAAMl1B,OAAQ3B,CAAC,GAC7BJ,EAAO,CACLiE,KAAMgzB,EAAM72B,GAAG2Q,SACfnN,KAAMqzB,EAAM72B,GAAG82B,SACf5T,KAAM/Z,SAAS0tB,EAAM72B,GAAGkjB,IAAI,CAC9B,GACA0T,EAAW,IAAIR,EAAaW,SAASvS,EAAGkS,SAAU92B,CAAI,GAC7Co3B,SAAW,IACpBJ,EAASK,WAAa,CAAA,EACtBL,EAASM,UAAY,CAAA,EACrBN,EAASO,UAAYN,EAAM72B,GAAGkpB,IAC9B1E,EAAGkS,SAASU,MAAMt2B,KAAK81B,CAAQ,CAErC,CA8GA,SAASS,IACP7S,EAAG8S,aAAe,CAAC9S,EAAG8S,YACxB,CA7RAn6B,KAAKoqB,QAAU,WACb5D,EAAO8F,QAAUpE,EAAYoE,QAE7BtsB,KAAKwD,QAAUqjB,EACf7mB,KAAKo6B,aAAe,CAAC9iB,GAAI,GAAIC,GAAI,GAAIC,IAAK,EAAE,EAC5CxX,KAAKq6B,SAAW,KAChBr6B,KAAKm6B,aAA8C,KAAA,IAAvBG,OAAOC,aAA+BD,OAAOC,aAAe,oBAAsBD,OAAOC,YAAYl0B,KACjIrG,KAAKw6B,QAAgD,IAArCrS,EAAanf,SAASwO,IAAIhT,OAC1CxE,KAAKy6B,OAA8C,IAApCtS,EAAanf,SAASuO,GAAG/S,OACxCxE,KAAKM,WAAaumB,EAAavmB,WAC/BN,KAAK06B,aAAevS,EAAanf,SAASiS,KAC1Cjb,KAAK26B,mBAAqB,GAC1B36B,KAAKuI,QAAU4f,EACfnoB,KAAK46B,uBAAyB94B,EAAYqB,SAAS03B,mBACnD76B,KAAK86B,UAAY,CAAA,EACjB96B,KAAKk6B,iBAAmBA,EACxBl6B,KAAK+6B,WAAa,CAAA,EAClB/6B,KAAKg7B,OAAS,KAoGd3T,EAAGkS,SAAW,IAAIN,EAAa,CAC7BlN,IAAK1E,EAAG9e,QAAQC,cAAc,CAACC,QAAS,CAAA,EAAM6Q,iBAAkB,CAAA,CAAI,CAAC,EAAI,QACzE2hB,WAAY,CAAA,EACZC,MAAO,cACPC,kBAAmB,CAAA,EAInBC,cAAe,SAASC,EAAMpmB,EAAUnL,EAAQgD,GAC9Cua,EAAG9e,QAAQgR,QAAQtE,EAASvL,GAAG,EAC/B2d,EAAG9e,QAAQ8V,QAAQ,EACnBgd,EAAKrB,UAAY/kB,EAASqmB,oBAAoB,GAAGvP,IACjDsP,EAAKE,KAAK70B,KAAOuO,EAASqmB,oBAAoB,GAAG9nB,QAEnD,EACAgoB,aAAc,SAASH,EAAMpmB,EAAUnL,EAAQgD,GAG7Cua,EAAG9e,QAAQkW,kBAAkB4c,EAAKE,KAAK70B,IAAI,EAC3C1G,KAAKy7B,gBAAgBJ,CAAI,CAC3B,EACAK,YAAa,SAASL,EAAMpmB,EAAUnL,EAAQgD,GAC5C6Z,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,yCAA4C0zB,EAAKE,KAAK70B,IAAI,EAChE,KAAOuO,EAAS1M,QAASZ,EAAEsN,EAAS1M,OAAO,EAAI,GAAG,EAC1Dmb,SAASsD,EAAWuG,aAAa,EACjCje,OAAO3H,EAAE,IAAI,CAAC,EACd6lB,UAAU,CAAA,CAAK,CAAC,EACrBxtB,KAAKy7B,gBAAgBJ,CAAI,CAE3B,CACF,CAAC,EA/HGv5B,EAAYqB,SAASw4B,mBAEvB37B,KAAKq6B,SAAW34B,EAAS1B,KAAK47B,eAAsD,IAAtC95B,EAAYqB,SAASw4B,iBAAsB,EAAE,GAG7F37B,KAAK67B,WAAa/5B,EAAYqB,SAAS24B,WACvC97B,KAAK+7B,SAAW,CAAEC,SAAUl6B,EAAYqB,SAAS84B,YAAa,EAE9Dj8B,KAAKk8B,YAAcp6B,EAAYqB,SAASqc,2BAExCxf,KAAKm8B,mBAAqBr6B,EAAYqB,SAASi5B,2BAC/Cp8B,KAAKq8B,eAAiBv6B,EAAYqB,SAASm5B,uBACvCt8B,KAAKuI,QAAQyX,QAAwC,WAA9BhgB,KAAKuI,QAAQyX,OAAO1Q,SAE7CtP,KAAKq8B,eAAiB,SAIxB7V,EAAOuE,IAAI,WAAY,WAAa1D,EAAGkS,SAASgD,QAAQ,CAAG,CAAC,EAE7B,SAA3BvD,EAAawD,WACfrU,EAAazI,OAAO,EAAEzf,KAAK,SAAS6V,GAClCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCoM,EAAGoT,OAAU,CAAC3kB,EAAU9M,SAASuO,IAAuC,IAAjCzB,EAAU9M,SAASuO,GAAG/S,OAC7D6iB,EAAGmT,QAAW,CAAC1kB,EAAU9M,SAASwO,KAAyC,IAAlC1B,EAAU9M,SAASwO,IAAIhT,OAChE80B,EAAoB,CACtB,CAAC,EAEiC,YAA3BN,EAAawD,WACpBrU,EAAavI,UAAU,EAAE3f,KAAK,SAAS6V,GACrCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCoM,EAAGoT,OAAU,CAAC3kB,EAAU9M,SAASuO,IAAuC,IAAjCzB,EAAU9M,SAASuO,GAAG/S,OAC7D6iB,EAAGmT,QAAW,CAAC1kB,EAAU9M,SAASwO,KAAyC,IAAlC1B,EAAU9M,SAASwO,IAAIhT,OAChE80B,EAAoB,CACtB,CAAC,EAEiC,WAA3BN,EAAawD,WACpBrU,EAAatI,SAAS,EAAE5f,KAAK,SAAS6V,GACpCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCqe,EAAoB,EACpBE,EAAgB,CAClB,CAAC,EAEiC,WAA3BR,EAAawD,WACpBrU,EAAarI,SAAS,EAAE7f,KAAK,SAAS6V,GACpCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCqe,EAAoB,EACpBE,EAAgB,CAClB,CAAC,EAEMt5B,QAAQ2D,UAAUskB,CAAY,IACrCnoB,KAAKuI,QAAU4f,EACfmR,EAAoB,EACpBE,EAAgB,EAEpB,EA8FAx5B,KAAKy8B,iBAAmB,SAAUpB,EAAMv4B,GACtC,IAAI/C,EAAQC,KAWRQ,GAVA66B,EAAKqB,YACPrV,EAAGkS,SAASoD,WAAWtB,CAAI,GAE3BhU,EAAG9e,QAAQkW,kBAAkB4c,EAAKE,KAAK70B,IAAI,EAAEzG,KAAK,WAChDF,EAAMiV,KAAK,CAAC4nB,MAAO,CAAA,CAAK,CAAC,CAC3B,CAAC,EACDvB,EAAK9d,OAAO,GAIAgJ,EAAQjK,SAASmW,eAAe3vB,CAAE,GAC5CtC,GACFN,QAAQM,QAAQA,CAAO,EAAEq8B,KAAK,QAAS,IAAI,CAC/C,EAEA78B,KAAKiE,OAAS,WACRjE,KAAKq6B,UACP34B,EAASuC,OAAOjE,KAAKq6B,QAAQ,EAE3Br6B,KAAKuI,QAAQU,OAASjJ,KAAKuI,QAAQmW,iBACrC1e,KAAKuI,QAAQ4O,SAASlD,gBAAgB,CAACjU,KAAKuI,QAAQ,EAEtDme,EAAUmI,KAAK,CACjB,EAGA7uB,KAAK88B,aAAe,SAAUjb,GAC5B,GAAsB,IAAlBA,EAAOyP,QAGT,OAFAzP,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EACf,CAAA,EAEa,KAAlBjH,EAAOyP,SAAgC,KAAdzP,EAAOvX,MAClCuX,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,GAClBtoB,EAAU+lB,EAAQjK,SAASmW,eAAe5Q,EAAOe,OAAO9f,EAAE,GACtDuH,MAAQ7J,EAAQ6J,MAAQ,IAEpC,EAEArK,KAAKgV,KAAO,SAAUnQ,GACpB,IAAIuvB,EAAQD,EAAmB,EAC/Bn0B,KAAKuI,QAAQoJ,MAAM,EAAE1R,KAAK,WACxBonB,EAAG9e,QAAQmwB,WAAa,KACpBtE,EAAM+E,kBAGR/E,EAAM+E,iBAAiBztB,eAAeyD,QAAQ,EAAElP,KAAK,WAC/Cm0B,EAAMgF,kBAERhF,EAAMgF,iBAAiB3S,OAAOwD,GAAG,+BAAgC,CAAEnb,UAAWuY,EAAG9e,QAAQmB,IAAK5E,OAAQ,CAAA,CAAK,CAAC,CAEhH,CAAC,EAEED,GAAWA,CAAAA,EAAQ+3B,OACtBjW,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,2BAA2B,CAAC,EAC1C+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CAExB,CAAC,CACH,EAEAxtB,KAAK+8B,KAAO,WACN/8B,KAAKg7B,QAAUh7B,KAAKg7B,OAAOtuB,WAC7B1M,KAAKg7B,OAAOtuB,UAAUswB,eAAe,CAAA,CAAI,EAE3Ch9B,KAAK86B,UAAY,UACb96B,KAAKq6B,UACP34B,EAASuC,OAAOjE,KAAKq6B,QAAQ,EAE/Br6B,KAAKuI,QAAQ6X,MAAM,EAAEngB,KAAK,SAASwC,GACjC,IAAI2xB,EAAQD,EAAmB,EAC/B9M,EAAGyT,UAAY,OACX1G,EAAM+E,kBAGR/E,EAAM+E,iBAAiBztB,eAAeyD,QAAQ,EAAElP,KAAK,WAC/Cm0B,EAAMgF,kBAERhF,EAAMgF,iBAAiBnU,MAAM,CAEjC,CAAC,EAECmP,EAAMiF,mBAGRjF,EAAMiF,kBAAkB3tB,eAAeyD,QAAQ,EAEjDwX,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,0BAA0B,CAAC,EACzC+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,EAGpB9rB,EAASglB,EAAUmI,KAAM,GAAI,CAC/B,EAAG,SAAS5Z,GACVvT,EAAS,WACP2lB,EAAGyT,UAAY,QACfzT,EAAG4V,aAAehoB,EAASxS,KAAMwS,EAASxS,KAAK8F,QAAU0M,EAASioB,UACpE,CAAC,CACH,CAAC,CACH,EAMAl9B,KAAKm9B,cAAgB,SAAU5xB,GAC7B,OAAOwoB,EAAYqJ,WAAW7xB,EAAQ,GAAI,CAAC8xB,SAAU,KAAK,CAAC,EAAEp9B,KAAK,SAASq9B,GAGzE,IAAIC,EAAgB,GAOpB,OANAn9B,EAAEC,QAAQD,EAAEqW,UAAU6mB,EAAO,SAAS,EAAG,SAASE,GAChDp9B,EAAEC,QAAQm9B,EAAW,SAAS7F,GAC5B4F,EAAc55B,KAAKg0B,CAAI,CACzB,CAAC,CACH,CAAC,EAEMv3B,EAAEq9B,OAAOF,EAAe,SAAS5F,GACtC,OAAOA,EAAK+F,WAAa,IAAM/F,EAAKgG,QAAU,IAAMhG,EAAKiG,aAC3D,CAAC,CACH,CAAC,CACH,EAEA59B,KAAK69B,aAAe,SAAUC,EAASzS,GACrC,IAAgB1Q,EAAWojB,EAAMl7B,EAAGsX,EAEpC6jB,EAAah+B,KAAKuI,QAAQS,SAASqiB,GAEnC,GAAInrB,QAAQ2F,SAASi4B,CAAO,EAAG,CAM7B,IADA3jB,EAAU,GACLtX,EAAI,EAAGA,EAAIi7B,EAAQt5B,OAAQ3B,CAAC,IACA,GAA1Bi7B,EAAQG,WAAWp7B,CAAC,GACK,IAAzBi7B,EAAQG,WAAWp7B,CAAC,GACK,IAAzBi7B,EAAQG,WAAWp7B,CAAC,GACK,IAAzBi7B,EAAQG,WAAWp7B,CAAC,IACrBsX,EAAQ+jB,aAAa,GACrBF,EAAWv4B,QAAQ0U,CAAO,EAAI,GAChC6jB,EAAWr6B,KAAKwW,CAAO,EACvBA,EAAU,IAGVA,GAAW2jB,EAAQ5kB,OAAOrW,CAAC,EAM/B,OAHIsX,GAAW6jB,EAAWv4B,QAAQ0U,CAAO,EAAI,GAC3C6jB,EAAWr6B,KAAKwW,CAAO,EAElB,IACT,CAkCA,OAhCI2jB,EAAQK,QAAQ,CAACC,WAAY,CAAA,CAAI,CAAC,EAEhCl+B,QAAQ2D,UAAUi6B,EAAQO,IAAI,GAAKP,EAAQO,KAAK75B,OAClDpE,EAAEC,QAAQy9B,EAAQO,KAAM,SAASC,GAC3BA,EAAI59B,MAAM8D,QAAUw5B,EAAWv4B,QAAQ64B,EAAIC,aAAa,CAAC,EAAI,GAC/DP,EAAWr6B,KAAK26B,EAAIC,aAAa,CAAC,CACtC,CAAC,GAGDR,EAAO/J,EAAKhvB,MAAM84B,EAAQU,UAAWV,EAAQW,MAAM,GAC9CrxB,IAAI,EAAEnN,KAAK,SAASy+B,GACvBt+B,EAAEC,QAAQ09B,EAAKM,KAAM,SAASC,GACxBA,EAAI59B,MAAM8D,QAAUw5B,EAAWv4B,QAAQ64B,EAAIC,aAAa,CAAC,EAAI,GAC/DP,EAAWr6B,KAAK26B,EAAIC,aAAa,CAAC,CACtC,CAAC,CACH,CAAC,EAGIT,EAAQa,SAAS,CAACP,WAAY,CAAA,CAAI,CAAC,GAC1CzjB,EAAY,CACVhU,SAAU,WAAc,OAAOm3B,EAAQS,aAAa,CAAG,EACvDK,aAAc,CAAA,EACdC,QAAS,EACX,EACAf,EAAQgB,SAAS,EAAE7+B,KAAK,SAAU4+B,GAChClkB,EAAUkkB,QAAUA,CACtB,CAAC,GAGDlkB,EAAYmjB,EAAQS,aAAa,EAG/B5jB,GAGK,IACX,EAEA3a,KAAK++B,gBAAkB,SAAUx+B,GAC/B,IAAwBy+B,EAAMC,EAAMC,EAwD1BC,EA5BNv+B,EA1BJ,GAAIL,GAAYA,EAASI,KACvBX,KAAKuI,QAAQS,SAASiS,KAAO1a,EAASI,UACnC,GAAIJ,GAAYA,EAASiE,OAC5B,OAKA06B,EAHsB,QAApBl/B,KAAKk8B,aACPkD,EAAK,SACLJ,EAAO,yBACC,WAGRA,EADAI,EAAK,KAEG,KAKRH,EAD6B,SAA3Bj/B,KAAKm8B,mBACA,EAEA,GAEJ9U,EAAGpe,MAAM,GAAwD,IAAnDnH,EAAYqB,SAASk8B,2BAClC,CAAChY,EAAGpe,MAAM,GAA4D,IAAvDnH,EAAYqB,SAASm8B,+BAAuCjY,EAAG9e,SAAW8e,EAAG9e,QAAQyX,QAAUqH,EAAG9e,QAAQyX,OAAO1Q,QAAuC,YAA7B+X,EAAG9e,QAAQyX,OAAO1Q,QAC5J,CAAC+X,EAAGpe,MAAM,GAA0D,IAArDnH,EAAYqB,SAASo8B,6BAAqClY,EAAG9e,SAAW8e,EAAG9e,QAAQyX,QAAUqH,EAAG9e,QAAQyX,OAAO1Q,QAAuC,UAA7B+X,EAAG9e,QAAQyX,OAAO1Q,UAG5J1O,EADEL,GAAYA,EAASK,UACXw+B,EAAGI,OAAOP,CAAI,EAAI,KAAOC,EAAQE,EAAK7+B,EAASK,UAE/C,GAuBV,CArBeR,EAAE+E,KAAKnF,KAAKM,WAAY,SAAUm/B,EAAiB/6B,GAEpE,GAAI+6B,EAAgB7+B,UAClB,IACE,IAAI8+B,EAAmB,IAAIvtB,OAAO,IAAM6sB,EAAO,KAAOC,EAAO,MAAQC,EAAQF,EAC3ES,EAAgB7+B,UAAUkR,QAAQ,4BAA6B,MAAM,CAAC,EACxE,GAAyD,GAArDuV,EAAG9e,QAAQS,SAAS2U,KAAK7E,OAAO4mB,CAAgB,EAElD,OADArY,EAAG9e,QAAQS,SAAS2U,KAAO0J,EAAG9e,QAAQS,SAAS2U,KAAK7L,QAAQ4tB,EAAkB9+B,CAAS,EAChF,CAAA,CAOX,CALE,MAAOsU,GAIP,OADAmS,EAAG9e,QAAQS,SAAS2U,MAAQ/c,EACrB,CAAA,CACT,CAGF,MAAO,CAAA,CACT,CAAC,IAE2C,EAAnBA,EAAU4D,SAE5BxE,KAAKiJ,MAAM,GAA4B,SAAvBjJ,KAAKq8B,gBAAwD,SAA3Br8B,KAAKm8B,mBAW1Dn8B,KAAKuI,QAAQS,SAAS2U,MAAQ/c,GAV1Bu+B,EAAqBn/B,KAAKuI,QAAQS,SAAS2U,KAAK7E,OAAO,IAAI3G,OAAO6sB,EAAO,UAAYA,EAAO,KAAOC,EAAO,+BAA+B,CAAC,EAE5Ij/B,KAAKuI,QAAQS,SAAS2U,KADE,GAAtBwhB,EAEAn/B,KAAKuI,QAAQS,SAAS2U,KAAKpJ,MAAM,EAAG4qB,CAAkB,EACtDv+B,EACAZ,KAAKuI,QAAQS,SAAS2U,KAAKpJ,MAAM4qB,CAAkB,EAExBv+B,EAAYZ,KAAKuI,QAAQS,SAAS2U,MAOzE,EAEA3d,KAAK2/B,eAAiB,SAAUnnB,GAC9B,IAAIonB,EAAIpnB,GAAgB,GACxB,OAAOpY,EAAEqO,OAAOoY,EAAavmB,WAAY,SAASC,GAChD,OAA+D,GAAxDA,EAASI,KAAKiP,YAAY,EAAEnK,QAAQm6B,EAAEhwB,YAAY,CAAC,CAC5D,CAAC,CACH,EAEA5P,KAAK6/B,YAAc,SAAS/B,EAASzS,GACnC,IAAmBnV,EACnB8nB,EAAah+B,KAAKuI,QAAQS,SAASqiB,GACnCxoB,EAAIm7B,EAAWv4B,QAAQq4B,CAAO,EAE9B,IADAE,EAAW/zB,OAAOpH,EAAG,CAAC,EACjBqT,EAAI,EAAGA,EAAI4nB,EAAQe,QAAQr6B,OAAQ0R,CAAC,GAAI,CAC3C,IAAIyE,EAAYmjB,EAAQe,QAAQ3oB,GAAGqoB,aAAa,EAC5CP,EAAWv4B,QAAQkV,CAAS,EAAI,GAClCqjB,EAAW/zB,OAAOpH,EAAIqT,EAAG,EAAG4nB,EAAQe,QAAQ3oB,GAAGqoB,aAAa,CAAC,CACjE,CACF,EAGAv+B,KAAK47B,eAAiB,WACpBvU,EAAG9e,QAAQoJ,MAAM,EACb7P,EAAYqB,SAASw4B,mBACvBtU,EAAGgT,SAAW34B,EAAS2lB,EAAGuU,eAAsD,IAAtC95B,EAAYqB,SAASw4B,iBAAsB,EAAE,EAC3F,EAEA37B,KAAKiJ,MAAQ,WACX,OAAqC,KAAA,IAAvBjJ,KAAKuI,QAAQyX,MAC7B,EAEAhgB,KAAK8/B,YAAc,SAAUje,GAC3B,IAAIke,EAAWle,EAAOe,OAWlB5iB,KAAK+6B,aACP3S,EAAkB,EAAEnoB,KAAK,SAASO,GAChC,IAVEw/B,EAUE1S,EAAcptB,QAAQM,QAAQu/B,CAAQ,EAAEE,IAAI,EAC5CC,EAAe,UAAUC,KAAK7S,CAAW,EACzC8S,EAAkB,EAIG,SAArB/Y,EAAGgV,gBACL0D,EAASM,WAAW,CAAC,EACrB7/B,EAAQ2E,KAAK,mBAAmB,EAAE,GAAG+jB,UAAY,IAI7CgX,GAEa,CAAC,GADhBI,EAAWhT,EAAYiT,YAAY,KAAK,KAEtCH,EAAmB9S,EAAY9oB,OAAS87B,GAE5CE,EAAgBlT,EAAY9oB,OAAS47B,EA3BrCJ,EADqBra,EA6BqB6a,EA3BpB,CAAC,GAFPP,EA6Ba3S,GA3BzB7nB,QAAQ,MAAM,IAEpBu6B,IADAS,EAAUR,EAAInuB,QAAQ,QAAS,IAAI,EAAEyC,MAAM,EAAGoR,CAAM,EAAE9V,MAAM,KAAK,GAC1C4wB,EAAQj8B,OAAS,EAAI,GAyB1Cg8B,EAvBGR,EAwBCE,IACFM,GAAiB,GACnBT,EAASM,WAAWG,CAAa,EAErC,CAAC,EAEDxgC,KAAK+6B,WAAa,CAAA,EAEtB,EAEA/6B,KAAK0gC,YAAc,SAAUC,GACtB3gC,KAAKiJ,MAAM,IACdjJ,KAAKg7B,OAAS2F,EACdvY,EAAkB,EAAEnoB,KAAK,WACvB0gC,EAAQzZ,MAAM,CAChB,CAAC,EAEL,EAEAlnB,KAAK4gC,YAAc,SAAU5F,GACvBh7B,KAAK+6B,aACP3S,EAAkB,EAAEnoB,KAAK,SAASO,GAChC,IAIIqgC,EAJAC,EAAmC,SAArBzZ,EAAGgV,eACjB3tB,EAAWssB,EAAO+F,aAAa,EAC/BC,EAAkBtyB,EAASuyB,UAAU,EACrC57B,EAAW21B,EAAO1e,SAAS4kB,QAAQ,EAAEC,YAAY,EAGrD,GAAIL,EACFD,EAAOx7B,EAAS+7B,QAAQ,CAAC,OAKzB,IADAP,EAAOx7B,EAAS+7B,QAAQ/7B,EAASiR,MAAM,EAAI,CAAC,IAC/B,CACX,IAAI+qB,EAAIR,EAAKS,YAAY,EACzB,GAAU,OAAND,EACF,MAEF,GAAI,qBAAqBlB,KAAKoB,UAAUF,EAAEG,QAAQ,CAAC,CAAC,EAAG,CACrDX,EAAOQ,EAAEC,YAAY,EAAEA,YAAY,EACnC,KACF,CACAT,EAAOQ,CACT,CAEF3yB,EAAS+yB,cAAcZ,CAAI,EAGvBC,GACFpyB,EAASgzB,eAAe,GAC1BV,EAAkBtyB,EAASuyB,UAAU,GACrB,GAAGU,SAAS,CAAA,CAAI,EAChCjzB,EAASkzB,aAAaZ,CAAe,EAChCF,GACHpyB,EAASgzB,eAAe,CAC5B,CAAC,EAED1hC,KAAK+6B,WAAa,CAAA,EAEtB,CACF,CAGA,SAAS8G,EAA2Brb,EAAQG,GAC1CH,EAAOsb,WAAa,WAClBnb,EAASkI,KAAK,CAChB,CACF,CArkBAkK,EAAwB5T,QAAU,CAAC,SAAU,UAAW,eAAgB,UAAW,YAAa,WAAY,eAAgB,cAAe,eAAgB,eAAgB,oBAAqB,kBAAmB,WAAY,aAAc,UAAW,SAAU,cAAe,OAAQ,eAgkBzR0c,EAA2B1c,QAAU,CAAC,SAAU,YAOhDjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,6BAA8Bse,CAA0B,EACnEte,WAAW,0BAA2BwV,CAAuB,CAEjE,EAAE,ECllBH,WAkBE,SAASgJ,EAAoB5T,EAAUI,EAAc9H,EAAQgI,EAAUC,EAAY1H,EAAYjlB,EAASglB,GACtG,IAAkBxlB,EAAY,GAG9BvB,KAAKgiC,UAAY,WACfhiC,KAAKiiC,aAAe7hC,EAAE+E,KAAKgpB,EAAShpB,KAAK,KAAK,EAAG,SAAS+8B,GACxD,OAAOA,EAAIxd,UAAUyH,SAAS,UAAU,CAC1C,CAAC,CACH,EAIAnsB,KAAKmiC,qBAAuB,SAAUC,GACpC7gC,EAAUoC,KAAKy+B,CAAiB,CAClC,EAIApiC,KAAKiO,aAAe,SAAUm0B,GAC5BrgC,EAAQotB,yBAA2BiT,EACJ,OAA3BrgC,EAAQ2J,iBACN22B,EAAsBjiC,EAAE+E,KAAK5D,EAAW,SAAS+gC,GACnD,OAAOA,EAAK5+B,QAAQZ,IAAMf,EAAQ2J,eAAe5I,EACnD,CAAC,IAECu/B,EAAoBE,eAAe,EAGlC9T,EAASzH,EAAW,QAAQ,GAC/B0H,EAAW,MAAM,EAAEzJ,MAAM,CAC7B,CAEF,CAjCA8c,EAAoB5c,QAAU,CAAC,WAAY,eAAgB,SAAU,WAAY,aAAc,aAAc,UAAW,mBAmCxHjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,sBAAuBwe,CAAmB,EACrDS,UAAU,mBAjDb,WACE,MAAO,CACLC,SAAU,IACVxa,MAAO,GACP1E,WAAY,qBACd,CACF,CA2CiD,CAClD,EAAE,ECxDH,WAEE,aAwBA,SAASmf,EAAiBlc,EAAQmI,GAChC,IAAItH,EAAKrnB,KAETwmB,EAAOmc,mBAAqB,CAAA,EAC5Bnc,EAAOoc,YAAc,GACrBpc,EAAO8J,WAAa,GAEpB9J,EAAO0M,WAAa,SAAS3nB,GAC3B,OAAOojB,EAAKxf,QAAQ5D,CAAM,CAC5B,EAEAib,EAAOqc,gBAAkB,SAASvzB,GAChC,IAAI7M,EAEU,YAAV6M,IACF7M,EAAO,CACLqgC,eAAgB,CAAA,EAChBF,YAAapc,EAAOoc,YAAYG,OAClC,GAGFvc,EAAOwc,OAAOz6B,QAAQ6V,YAAYiJ,EAAG4b,iBAAkB3zB,EAAQ7M,CAAI,CACrE,CACF,CAxBAigC,EAAiBvd,QAAU,CAAC,SAAU,QA0BtCjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,mBAAoBmf,CAAgB,EAC/CF,UAAU,SA5Cb,WACE,MAAO,CACLC,SAAU,IACVS,KAIF,SAAcjb,EAAOkb,EAAUzJ,EAAO4I,GACpCA,EAAKW,iBAAmBvJ,EAAM0J,UAChC,EALE7f,WAAY,kBACd,CAKF,CAkC6B,CAC9B,EAAE,ECvDH,WAsDE,SAAS8f,EAA4B7c,EAAQtb,EAAYijB,EAAU1H,EAAQ/kB,EAAUilB,EAAU1F,EAAUwN,EAAUC,EAAY1H,EAAYG,EAAQplB,EAASglB,EAAiBR,EAAS1mB,GACpL,IAAIyhB,EAAQthB,KAGZA,KAAKoqB,QAAU,WACbpqB,KAAKmuB,SAAWA,EAChBnuB,KAAKsjC,SAAW,CAAA,EAChBtjC,KAAKujC,kBAAkBpB,qBAAqBniC,IAAI,CAClD,EAGAA,KAAKgiC,UAAY,WACfhiC,KAAKwjC,kBAAoBrV,EAAShpB,KAAK,KAAK,EAAE,GAC9CnF,KAAKyjC,iBAAmBtV,EAAShpB,KAAK,GAAG,EAAE,GAC3CnF,KAAK0jC,eAAiBvV,EAAShpB,KAAK,oBAAoB,EAAE,GAC1DnF,KAAK2jC,aAAexV,EAAShpB,KAAK,OAAO,EAAE,GAC3CnF,KAAK4jC,kBAAoBxjC,EAAEwZ,KAAKuU,EAAShpB,KAAK,SAAS,CAAC,EAGzB,OAA3BpD,EAAQ2J,gBAA2B3J,EAAQ2J,eAAe5I,IAAM9C,KAAK0D,QAAQZ,IAC/E9C,KAAKujC,kBAAkBt1B,aAAajO,IAAI,CAE5C,EAEAA,KAAK6jC,WAAa,WAChB,MAAO,kBAAoB7jC,KAAK0D,QAAQ2I,KAC1C,EAGArM,KAAKiO,aAAe,SAAS4T,GACvB7hB,KAAKsjC,UAAYtjC,KAAK0D,SAAW3B,EAAQ2J,gBAAkB1L,KAAK0D,QAAQyN,WAAW,IAGvFnR,KAAK0D,QAAQoT,kBAAkB,EAAE,EAE7B/U,EAAQ2J,iBACN3J,EAAQ6J,cACV7J,EAAQ6J,aAAe,CAAA,EACvB7J,EAAQ8J,aAAe,CAAA,EACvBX,EAAWyK,WAAW,8BAA8B,EAChD5T,EAAQ2J,eAAexK,YAAyD,EAA3Ca,EAAQ2J,eAAexK,WAAWsD,QACzEzC,EAAQ2J,eAAeyJ,OAAO,CAAE1G,OAAQ,CAAA,EAAM3K,YAAa/B,EAAQ2J,eAAexK,WAAW,GAAG4C,WAAY,CAAC,GAG/G/B,EAAQ2J,eAAeyJ,OAAO,CAAE1G,OAAQ,CAAA,EAAM3K,YAAa/B,EAAQ2J,eAAe5H,WAAY,CAAC,GAInG9D,KAAKujC,kBAAkBt1B,aAAajO,IAAI,EACpC6hB,IACF4E,EAAOwD,GAAG,uBAAwB,CAChC5hB,UAAWrI,KAAK0D,QAAQmH,SAAS/H,GACjC0pB,UAAWzF,EAAgBA,EAAgB/mB,KAAK0D,QAAQ8C,IAAI,CAAC,CAC/D,CAAC,EACDqb,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,GAE1B,EAGA9oB,KAAKuiC,eAAiB,WACpBpU,EAAS,GAAGzJ,UAAUnH,OAAO,OAAO,CACtC,EAGAvd,KAAK8jC,WAAa,SAASjiB,GACzBA,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EAClB9oB,KAAK0D,QAAQgK,cACf1N,KAAKsjC,SAAW,CAAA,EAChBtjC,KAAK2jC,aAAat5B,MAAQrK,KAAK0D,QAAQgD,KACvC1G,KAAKyjC,iBAAiB/e,UAAUC,IAAI,SAAS,EAC7C3kB,KAAK0jC,eAAehf,UAAUnH,OAAO,SAAS,EAC1CsE,EAAOkiB,UAAoC,YAAxBliB,EAAOkiB,SAAS19B,KACrC3E,EAAS,WACP4f,EAAMqiB,aAAaK,OAAO,EAC1B1iB,EAAMqiB,aAAazc,MAAM,CAC3B,EAAG,GAAG,GAGNlnB,KAAK2jC,aAAaK,OAAO,EACzBhkC,KAAK2jC,aAAazc,MAAM,IAGxBlnB,KAAKy2B,OACPz2B,KAAKy2B,MAAMxR,MAAM,CAErB,EAGAjlB,KAAKikC,WAAa,SAASpiB,GACrB7hB,KAAK2jC,aAAaO,WAGtBlkC,KAAK0D,QAAQgD,KAAO1G,KAAK2jC,aAAat5B,MACtCrK,KAAK2jC,aAAaO,SAAW,CAAA,EAC7BlkC,KAAK0D,QAAQ6N,QAAQ,EAClBtR,KAAK,SAASwC,GACb6e,EAAMgiB,SAAW,CAAA,EACjBhiB,EAAMoiB,eAAehf,UAAUC,IAAI,SAAS,EAC5CrD,EAAMmiB,iBAAiB/e,UAAUnH,OAAO,SAAS,CACnD,CAAC,EACAxI,QAAQ,WACPuM,EAAMqiB,aAAaO,SAAW,CAAA,CAChC,CAAC,EACL,EAGAlkC,KAAKmkC,cAAgB,WACnBnkC,KAAKsjC,SAAW,CAAA,EAChBtjC,KAAKyjC,iBAAiB/e,UAAUnH,OAAO,SAAS,EAChDvd,KAAK0jC,eAAehf,UAAUC,IAAI,SAAS,EAC3C3kB,KAAK2jC,aAAat5B,MAAQrK,KAAK0D,QAAQgD,IACzC,EAGA1G,KAAKqvB,cAAgB,WACnBlI,EAAO2F,QAAQnlB,EAAE,SAAS,EACXA,EAAE,yDAAyD,EAC3D,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EAC/B1H,KAAK,WACJqhB,EAAM5d,QAAQgQ,QAAQ,EACnBzT,KAAK,WACJwmB,EAAOwD,GAAG,oBAAoB,CAChC,EAAG,SAAShV,GACVkS,EAAO2F,QAAQnlB,EAAE,SAAS,EACXA,EAAE,8FAA8F,EAChG,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EAC/B1H,KAAK,WACJqhB,EAAM5d,QAAQgQ,QAAQ,CAAEuZ,aAAc,CAAA,CAAK,CAAC,EACzChtB,KAAK,WACJwmB,EAAOwD,GAAG,oBAAoB,CAChC,EAAG,SAAShV,GACVkS,EAAO2L,MAAMnrB,EAAE,sDAAuD2Z,EAAM5d,QAAQgD,IAAI,EAC3EiB,EAAEsN,EAASC,KAAK,CAAC,CAChC,CAAC,CACL,CAAC,CACL,CAAC,CACL,CAAC,CACL,EAGAlV,KAAKokC,SAAW,SAASviB,GACvB,IAAIO,EAAgBnB,EAASsB,iBAAiB,EACzCqU,WAAW52B,KAAK4jC,iBAAiB,EACjC/M,iBACC5V,EAAS6V,UAAUC,YACnB9V,EAAS+V,UAAUC,UACrB,EAEAxU,EAAiBxB,EAASyB,kBAAkB,EAC3CC,SAAS3iB,KAAK4jC,iBAAiB,EAC/B/gB,SAAS,GAAG,EACZC,cAAc7B,EAAS8B,UAAUC,IAAI,EAEtCC,EAAS,CACXC,SAAUhjB,QAAQM,QAAQ8b,SAAS+F,IAAI,EACvCc,OAAQ,CACNkhB,SAAUrkC,KACV2U,OAAQ3U,KAAK0D,QACbogC,WAAY5jC,QAAQgE,KAAKlE,KAAMA,KAAK8jC,UAAU,EAC9CzU,cAAenvB,QAAQgE,KAAKlE,KAAMA,KAAKqvB,aAAa,CACtD,EACA/L,iBAAkB,CAAA,EAClBC,WAAY+T,EACZ7T,aAAc,YACdC,SAAUtB,EACVW,UAAWN,EACXkB,YAAa9B,EACbkG,YAAa,oBACbhE,UAAW,CAAA,EACXC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,YAAa,CAAA,CACf,EAYA,SAASoT,EAAetS,EAAYyB,EAAQC,EAAWiI,GACrD,IAAI2V,EAAYtkC,KAEhBA,KAAKukC,eAAiB,WACpBvkC,KAAK2U,OAAOjC,YAAY,CAC1B,EAEA1S,KAAK2yB,UAAY,WACfxL,EAAO0L,OAAOlrB,EAAE,eAAe,EACjBA,EAAE,mCAAmC,CAAC,EACjD1H,KAAK,SAASyG,GACb49B,EAAU3vB,OAAOlO,YAAY69B,EAAU3vB,OAAO7R,GAAI4D,CAAI,EACnDzG,KAAK,aAEH,SAASwC,EAAMqH,GAChBqd,EAAO2L,MAAMnrB,EAAE,sDAAuDjB,CAAI,EAC7DiB,EAAElF,EAAKyS,KAAK,CAAC,CAC5B,CAAC,CACL,CAAC,CACL,EAEAlV,KAAKwkC,cAAgB,WACnBxkC,KAAK2U,OAAOvC,SAAS,EAAEnS,KAAK,WAC1B0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,kBAAkB,CAAC,EACjC+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,EAEAxtB,KAAKykC,gBAAkB,WACrB,OAAOzkC,KAAK0kC,YAAY/8B,EAAE,qBAAqB,CAAC,CAClD,EAEA3H,KAAK2kC,iBAAmB,WACtB,OAAO3kC,KAAK0kC,YAAY/8B,EAAE,eAAe,CAAC,CAC5C,EAEA3H,KAAK0kC,YAAc,SAASE,GAC1B5kC,KAAK2U,OAAOpC,OAAO,EAAEtS,KAAK,WACxB0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAYsX,CAAU,EACtBlhB,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,EAEAxtB,KAAKsvB,mBAAqB,WACxBvtB,EAAQ8J,aAAe7L,KAAK2U,OAAOnO,KAE9BioB,EAASzH,EAAW,QAAQ,GAC/B0H,EAAW,MAAM,EAAEzJ,MAAM,EAE3B/Z,EAAWyK,WAAW,6BAA6B,CACrD,EAEA3V,KAAK6kC,MAAQ,WACX,IAAIC,EAAY5kC,QAAQgE,KAAKlE,KAAK2U,OAAO+E,YAAYzX,WACxBjC,KAAK2U,OAAO+E,YAAYzX,WAAW6iC,SAAS,EAEzE9kC,KAAK2U,OAAOtH,KAAK03B,OAAO,EAAE9kC,KAAK,WAE7BymB,EAAU3F,KAAK,CACbgH,YAAa+c,EAAUR,EAAU3vB,OAAO7R,EAAE,EAAE9B,KAAK,GAAG,EAAI,gBACxDuiB,WAAY,gBACZE,aAAc,MACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfd,OAAQ,CACN6hB,aAAcV,EAAU3vB,OAAOtH,KAAKxD,MACpC8kB,KAAMA,EACNha,OAAQ2vB,EAAU3vB,MACpB,CACF,CAAC,CACH,CAAC,CACH,EAEA3U,KAAKilC,YAAc,SAAS5+B,GAC1BrG,KAAK2U,OAAOrC,aAAajM,CAAI,EAAEpG,KAAK,WAClCqkC,EAAU3vB,OAAO9J,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,CACxD,CAAC,CACH,EAEA9E,KAAKklC,WAAa,SAAS1+B,GACzB,IAGA2+B,EAAe,SAAS1zB,GACtB,GAAIA,EAAAA,EAAOpM,UAAqC,EAAzBoM,EAAOpM,SAASb,QAcrC,OAAQiN,EAAOjL,MAAQA,EAbvB,IAAK,IAAI3D,EAAI,EAA4BA,EAAI4O,EAAOpM,SAASb,OAAQ3B,CAAC,GAAI,CACxE,IAAID,EAAI6O,EAAOpM,SAASxC,GACxB,GAAID,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3B,GAAI2gC,EAAaviC,CAAC,EAChB,MAAO,CAAA,CACT,MAEG,GAAIA,EAAE4D,MAAQA,EACjB,MAAO,CAAA,CAEX,CAKJ,EAEA,OAAO2+B,EAAanlC,KAAK2U,MAAM,CACjC,EAEA3U,KAAKolC,WAAa,SAAS5+B,GACzBxG,KAAK2U,OAAOE,MAAMrO,CAAI,EACtBwe,EAAWC,MAAM,CACnB,CAEF,CA9HAhE,EAASxN,KAAKwP,CAAM,EACjBhjB,KAAK,SAAS63B,IACbxW,EAAMmV,MAAQqB,GAELC,QAAQxT,IAAI,QAAS,WAC5BuT,EAAS7S,MAAM,CACjB,CAAC,CACH,CAAC,EAEHqS,EAAenS,QAAU,CAAC,aAAc,SAAU,YAAa,OAwHjE,CACF,CAnTAke,EAA4Ble,QAAU,CAAC,SAAU,aAAc,WAAY,SAAU,WAAY,WAAY,WAAY,WAAY,aAAc,aAAc,SAAU,UAAW,kBAAmB,UAAW,WAsTpNjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,8BAA+B8f,CAA2B,EACrEb,UAAU,oBAxWb,WACE,MAAO,CACLC,SAAU,IACV4C,QAAS,CACP9B,kBAAmB,oBACrB,EACAtb,MAAO,GACP3E,iBAAkB,CAChB5f,QAAS,YACX,EACAogB,SAAU,CACR,kCACA,wCACA,qCACA,kDACA,gCAAkCnc,EAAE,UAAU,EAAI,IAClD,sDACA,oEACA,4GACA,qBACA,WACA,4BACA,4CACA,8CACA,8GACA,sHACA,6CACA,gDACA,wDACA,SACA,iDACA,8CACA,0BAA4BA,EAAE,mCAAmC,EAAI,IACrE,gDACA,iDACA,kDACA,0BACA,mGAAqGA,EAAE,SAAS,EAAI,yBACpH3G,KAAK,EAAE,EACTuiB,WAAY,8BACZE,aAAc,OAChB,CACF,CA8TmD,CACpD,EAAE,EC/WH,WAuBE,SAAS6hB,EAA4B9e,EAAQ2H,EAAUzsB,EAAUK,GAC/D,IAAIuf,EAAQthB,KACRulC,EAAiB,EAErBvlC,KAAKoqB,QAAU,WACb,IAAIob,EAAe,CAAC,MAAO,SAAU,YAAa,QAAS,WAKxB,UAFnCxlC,KAAKylC,eAAiB1jC,GAEV2J,eAAerF,MAAkD,aAA/BtE,EAAQ2J,eAAerF,MACnEm/B,EAAa7hC,KAAK,SAAS,EAE7B6iB,EAAOyE,OACL,WACE,OAAO3J,EAAM/Y,QAAS,CAAEnI,EAAEqK,KAAK6W,EAAM/Y,QAASi9B,CAAY,GAAM,IAClE,EACA,SAASE,EAAOC,GACVrkB,EAAM/Y,SAER+Y,EAAMskB,SAAS,CAEnB,EACA,CAAA,CACF,CACF,EAGA5lC,KAAK4lC,SAAW,WACV5lC,KAAKuI,QAAQwI,QACfod,EAAS7L,SAAS,aAAa,GAGjC6L,EAAStJ,YAAY,aAAa,EAE9B7kB,KAAKuI,QAAQoK,OACfwb,EAAStJ,YAAY,QAAQ,EAE7BsJ,EAAS7L,SAAS,QAAQ,EAExBvgB,EAAQ2J,eAAemD,kBAAkB7O,KAAKuI,QAAQmB,IAAK1J,KAAKuI,QAAQ4O,SAAS3Q,IAAI,EACvF2nB,EAAS7L,SAAS,2CAA2C,EAE7D6L,EAAStJ,YAAY,2CAA2C,EACpE,EAGA7kB,KAAK6lC,cAAgB,SAAUrlC,EAASslC,GAClCA,EACFtlC,EAAQkkB,UAAUnH,OAAO,SAAS,EAElC/c,EAAQkkB,UAAUC,IAAI,SAAS,CACnC,EAgBA6B,EAAOuE,IAAI,gBAAiB,WAN1BrpB,EAAS,WACHysB,EAAS1c,OAAO,EAAE,IAAM0c,EAAS1c,OAAO,EAAE,GAAGs0B,eAAiB5X,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,gBACnG5X,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,cAAc7c,UAAYqc,EACjE,EAAG,CAAC,CAKN,CAAC,EAED/e,EAAOuE,IAAI,oBAAqB,WAf1BoD,EAAS1c,OAAO,EAAE,IAAM0c,EAAS1c,OAAO,EAAE,GAAGs0B,eAAiB5X,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,gBACnGR,EAAiBpX,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,cAAc7c,UAgBtE,CAAC,CAEH,CA7EAoc,EAA4BngB,QAAU,CAAC,SAAU,WAAY,WAAY,WAgFzEjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,8BAA+B+hB,CAA2B,EACrE9C,UAAU,oBAjGb,WACE,MAAO,CACLC,SAAU,IACVxa,MAAO,GACP3E,iBAAkB,CAChB/a,QAAS,YACX,EACAgb,WAAY,6BACd,CACF,CAwFmD,CACpD,EAAE,EC1GH,WA2DE,SAASyiB,EAAgCxf,EAAQ2H,EAAU8X,EAAQxf,EAAQ+H,EAAS7H,EAAU5kB,EAASC,EAAS+kB,EAAiBjlB,GAC/H,IAAIwf,EAAQthB,KAEZA,KAAKgiC,UAAY,WACf,IAAIkE,EAAmBC,EAAcC,EACjCC,EAA0BR,EAE9B7lC,KAAKsmC,iBAAmB9f,EAAO8f,iBAE/BD,EAA2BrmC,KAAKsmC,iBAAiBV,SACjDC,EAAgB7lC,KAAKsmC,iBAAiBT,cAEtCzlC,EAAEC,QAAQ8tB,EAAShpB,KAAK,KAAK,EAAG,SAAS+8B,GACnCA,EAAIxd,UAAUyH,SAAS,iBAAiB,EAC1C+Z,EAAoBhmC,QAAQM,QAAQ0hC,CAAG,EAChCA,EAAIxd,UAAUyH,SAAS,eAAe,IAC7Cia,EAAkBlmC,QAAQM,QAAQ0hC,CAAG,EACzC,CAAC,EAEDiE,EAAeD,EAAkB/gC,KAAK,QAAQ,EAAE,GAChDnF,KAAKmmC,aAAeA,EACpBA,EAAejmC,QAAQM,QAAQ2lC,CAAY,EAC3CnmC,KAAKumC,kBAAoBJ,EAAahhC,KAAK,SAAS,EAAE,GACtDnF,KAAKwmC,mBAAqBL,EAAahhC,KAAK,MAAM,EAAE,GACpDnF,KAAKymC,oBAAsBP,EAAkB/gC,KAAK,SAAS,EAAE,GAEzDpD,EAAQ6J,eAEV5L,KAAK0mC,mBAAqBR,EAAkB/gC,KAAK,MAAM,EAAE,GACzDnF,KAAK0mC,mBAAmBhiB,UAAUnH,OAAO,SAAS,GAGpDvd,KAAK2mC,cAAgBT,EAAkB/gC,KAAK,MAAM,EAAE,GAEpD/E,EAAEC,QAAQ6lC,EAAkB/gC,KAAK,KAAK,EAAG,SAAS+8B,GAC5CA,EAAIxd,UAAUyH,SAAS,iBAAiB,EAC1C7K,EAAMslB,eAAiB1E,EAChBA,EAAIxd,UAAUyH,SAAS,cAAc,EAC5C7K,EAAMulB,YAAc3E,EACbA,EAAIxd,UAAUyH,SAAS,cAAc,IAC5C7K,EAAMwlB,YAAc5E,EACxB,CAAC,EAED9hC,EAAEC,QAAQ+lC,EAAgBjhC,KAAK,SAAS,EAAG,SAAS+8B,GAC3B,QAAnBA,EAAI5U,YACNhM,EAAMylB,gBAAkB7E,EACE,SAAnBA,EAAI5U,YACXhM,EAAM0lB,kBAAoB9E,EACA,WAAnBA,EAAI5U,YACXhM,EAAM2lB,mBAAqB/E,EACD,eAAnBA,EAAI5U,cACXhM,EAAM4lB,sBAAwBhF,EAClC,CAAC,EAKDliC,KAAKsmC,iBAAiBV,SAAW,WAC/B,IAAI/iC,EAGJ,GAFAye,EAAM/Y,QAAU+Y,EAAMglB,iBAAiB/9B,QAEnC,CAAC+Y,EAAM/Y,QAAQwI,QAAS,CAE1B,IAAIo2B,EAAWhZ,EAAS,GAAGlF,cAAc,4BAA4B,EACjEme,EAAYlnC,QAAQM,QAAQ2mC,CAAQ,EACpCE,EAAe7Y,EAAQ8Y,aAAaH,EAASxqB,iBAAiB,kBAAkB,CAAC,EAIrF,IAHAvc,EAAEC,QAAQgnC,EAAc,SAASE,GAC/BJ,EAASK,YAAYD,CAAW,CAClC,CAAC,EACI1kC,EAAI,EAAGA,EAAIye,EAAM/Y,QAAQ2I,MAAM1M,QAAU3B,EAAI,EAAGA,CAAC,GAAI,CACxD,IAEM0kC,EAFF3uB,EAAM0I,EAAM/Y,QAAQ2I,MAAMrO,GAC1Bye,EAAMgJ,QAAQvS,MAAMa,MAClB2uB,EAAcrnC,QAAQM,QAAQ,qCAAqC,GAC3DinC,IAAI,mBAAoBnmB,EAAMgJ,QAAQvS,MAAMa,GAAK,EAAE,EAC/DwuB,EAAUM,OAAOH,CAAW,EAEhC,CAGIjmB,EAAMolB,qBACRplB,EAAMolB,mBAAmBlqB,UAAY8E,EAAM/Y,QAAQ4O,SAAS1J,cAG9D6T,EAAMqmB,+BAA+B,EAGjCrmB,EAAM/Y,QAAQ80B,UAAY/b,EAAM/Y,QAAQ80B,SAAShxB,MAAQ,GAC3DiV,EAAMmlB,oBAAoB/hB,UAAUnH,OAAO,SAAS,EAChD+D,EAAM/Y,QAAQ80B,SAAShxB,MAAQ,EACjCiV,EAAMmlB,oBAAoB/hB,UAAUC,IAAI,SAAS,EAEjDrD,EAAMmlB,oBAAoB/hB,UAAUnH,OAAO,SAAS,GAGtD+D,EAAMmlB,oBAAoB/hB,UAAUC,IAAI,SAAS,EAG/CrD,EAAM/Y,QAAQkN,OAChB6L,EAAM6kB,aAAazhB,UAAUnH,OAAO,SAAS,EAC7C+D,EAAMklB,mBAAmBhqB,UAAY8E,EAAM/Y,QAAQkP,YAC/C6J,EAAM/Y,QAAQmN,WAChB4L,EAAMilB,kBAAkB7hB,UAAUnH,OAAO,mBAAmB,GAG9D+D,EAAM6kB,aAAazhB,UAAUC,IAAI,SAAS,EAI5CrD,EAAMulB,YAAYrqB,UAAY8E,EAAM/Y,QAAQwd,KAG5CzE,EAAMwlB,YAAYtqB,UAAY8E,EAAM/Y,QAAQq/B,aAE5C/B,EAAcvkB,EAAMylB,gBACNzlB,EAAM/Y,QAAQsW,SAAS,EACrCgnB,EAAcvkB,EAAM0lB,kBACN1lB,EAAM/Y,QAAQ+X,UAAU,EACtCulB,EAAcvkB,EAAM2lB,mBACN3lB,EAAM/Y,QAAQgY,WAAW,EACvCslB,EAAcvkB,EAAM4lB,sBACN5lB,EAAM/Y,QAAQs/B,aAAa,CAC3C,CAGA3nC,QAAQgE,KAAKod,EAAMglB,iBAAkBD,CAAwB,EAAE,CACjE,EAEArmC,KAAKsqB,QAAUtoB,EACfhC,KAAKylC,eAAiB1jC,CACxB,EAEA/B,KAAK2nC,+BAAiC,WAChCrmB,GAASA,EAAM/Y,SAAW,CAAC+Y,EAAM/Y,QAAQwI,UAE3CuQ,EAAMslB,eAAepqB,UAAY8E,EAAM/Y,QAAQ0U,oBAAoB,EAG/DqE,EAAMmkB,eAAe/5B,eAAeY,cAAgBgV,EAAMmkB,eAAe/5B,eAAea,eAC1F+U,EAAMqlB,cAAcnqB,UAAY8E,EAAM/Y,QAAQyU,qBAAqBsE,EAAM/Y,QAAQ0R,cAAc,KAAMnY,EAAYqB,SAAS2kC,wBAAwB,EAAG,CAAA,CAAI,EAEzJxmB,EAAMqlB,cAAcnqB,UAAY8E,EAAM/Y,QAAQyU,qBAAqBsE,EAAM/Y,QAAQ0R,cAAc,OAAQnY,EAAYqB,SAAS2kC,wBAAwB,EAAG,CAAA,CAAI,EAEjK,EAEA9nC,KAAK+nC,SAAW,WACdzmB,EAAMqmB,+BAA+B,CACvC,EAEA3nC,KAAK8e,aAAe,WACd9e,KAAKuI,QAAQmN,UACf1V,KAAKumC,kBAAkB7hB,UAAUC,IAAI,mBAAmB,EAExD3kB,KAAKumC,kBAAkB7hB,UAAUnH,OAAO,mBAAmB,EAC7Dvd,KAAKuI,QAAQuW,aAAa,CAC5B,CAEF,CA7JAknB,EAAgC7gB,QAAU,CAAC,SAAU,WAAY,SAAU,SAAU,UAAW,WAAY,UAAW,UAAW,kBAAmB,eAgKrJjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,kCAAmCyiB,CAA+B,EAC7ExD,UAAU,wBArNb,WACE,MAAO,CACLC,SAAU,IACV4C,QAAS,sBACTpd,MAAO,GACPnE,SAAU,CACR,gCACA,gCACA,YACA,6EACA,iDACA,wDACA,aACA,0DACA,WACA,6BACA,6EACA,gEACA,0DACA,kIACA,qHACA,mBACA,WACA,SACA,8BACA,yDACA,6CACA,+CACA,mDACA,SACA,0CACA,0CACA,gDACA,+HACA,UACA9iB,KAAK,EAAE,EACTkiC,KAKF,SAAkBjb,EAAOznB,EAASk5B,EAAO4M,GACvCre,EAAMqe,iBAAmBA,CAC3B,EANE/iB,WAAY,kCACZE,aAAc,OAChB,CAMF,CAwK2D,CAC5D,EAAE,EC9NH,WAEE,aAmDA,SAASukB,EAA0B7Z,EAAUrN,GAC3C,IAAIQ,EAAQthB,KAEZA,KAAKgiC,UAAY,WACflhB,EAAaM,cAAc+M,CAAQ,EACnCA,EAASrD,GAAG,QAAS9qB,KAAKioC,SAAS,CACrC,EAEAjoC,KAAKioC,UAAY,SAASpmB,GACK,OAAzBA,EAAOe,OAAOyT,SAChBvV,EAAac,YAAYC,EAAQP,EAAMQ,SAAS,CACpD,CACF,CAbAkmB,EAA0B7iB,QAAU,CAAC,WAAY,gBAejDjlB,QACGmC,OAAO,eAAe,EACtBmgC,UAAU,kBApDb,WACE,MAAO,CACLC,SAAU,IACVnf,iBAAkB,CAChBxB,UAAW,kBACb,EACAyB,WAAYykB,CACd,CAuBF,CAsB+C,CAChD,EAAE"} \ No newline at end of file +{"version":3,"file":"Mailer.services.js","sources":["Mailer/Account.service.js","Mailer/Mailbox.service.js","Mailer/Message.service.js","Mailer/sgImageGallery.service.js","Mailer/VirtualMailbox.service.js","Mailer/MailboxController.js","Mailer/MailboxesController.js","Mailer/MessageController.js","Mailer/MessageEditorController.js","Mailer/sgAccountSection.directive.js","Mailer/sgIMIP.directive.js","Mailer/sgMailboxListItem.directive.js","Mailer/sgMessageListItem.directive.js","Mailer/sgMessageListItemMain.directive.js","Mailer/sgZoomableImage.directive.js"],"names":["Account","futureAccountData","_this","this","then","angular","extend","_","forEach","identities","identity","element","fullName","email","full","signature","textSignature","map","contents","join","trim","$mailboxes","$Mailbox","$unwrapCollection","$q","when","mailboxes","collection","$factory","$timeout","$log","Settings","Resource","Preferences","Mailbox","Message","$$resource","activeUser","$Preferences","$Message","module","e","factory","$findAll","data","$accounts","fetch","o","i","id","refreshUnseenCount","folders","unseenCountFolders","fetchAllUnseenCountFolders","defaults","SOGoMailFetchAllUnseenCountFolders","refreshViewCheck","SOGoRefreshViewCheck","Error","account","$$flattenMailboxes","mailbox","push","includes","isDefined","unseenCount","post","$refreshUnseenCount","cancel","bind","timeInterval","prototype","getLength","$expanded","$flattenMailboxes","length","getItemAtIndex","index","expandedMailboxes","$getMailboxes","options","reload","$futureMailboxesData","$find","_visitForUnseencount","previousMailbox","find","previousMailboxes","children","all","_visitForExpanded","expandedFolders","indexOf","settings","Mail","ExpandedFolders","isString","fromJson","warn","_visit","allMailboxes","saveState","reduce","$getMailboxByType","type","_find","$getMailboxByPath","path","$newMailbox","name","toString","getTextSignature","$hasCertificate","security","hasCertificate","$certificate","$$certificate","reject","$removeCertificate","updateQuota","percent","description","maxQuota","Math","round","usedSpace","l","formatted","maxMessages","messagesCount","$quota","$newMessage","debug","JSON","stringify","undefined","accountId","mailboxPath","message","$absolutePath","asDraft","accountDefaults","AuxiliaryMailAccounts","alwaysSign","sign","alwaysEncrypt","encrypt","editable","isNew","mailto","isObject","$parseMailto","$addDelegate","user","deferred","defer","param","uid","delegates","resolve","users","status","promise","$removeDelegate","splice","$omit","deep","defaultIdentity","value","key","copy","isReadOnly","pick","isDefault","forceDefaultIdentity","futureMailboxData","$account","init","newMailboxData","create","$unwrap","$rootScope","Acl","PRELOAD","BATCH_DELETE_LIMIT","$$Acl","$query","sort","asc","selectedFolder","$refreshTimeout","$virtualMode","$virtualPath","$searchMode","SortingState","parseInt","constant","LOOKAHEAD","SIZE","createMailboxes","level","isSentFolder","isDraftsFolder","quotas","split","component","asCSSIdentifier","isUndefined","uidsMap","headers","$isLoading","$messages","$visibleMessages","$selectedMessages","$highlightWords","$id","$acl","threaded","$collapsedThreads","threadsCollapsed","$displayName","$isEditable","isEditable","$isSpecial","$icon","$isNoInferiors","isNoInferiors","$shadowData","selectFolder","setSearchMode","searchMode","$lastVisibleIndex","max","$loadMessage","selectedMessages","updateCache","filter","selected","selectedCount","$unselectMessages","isSelectedMessage","messageId","$selectedMessage","selectedMessage","$selectedMessageIndex","hasSelectedMessage","$filter","sortingAttributes","filters","action","labels","searchBy","searchInput","word","cleanedWord","toLowerCase","match","secondFilter","$flaggedOnly","$unseenOnly","$syncToken","syncToken","unseenOnly","flaggedOnly","keys","$filteredLabels","k","f","endIndex","uids","startIndex","loaded","subject","min","loading","futureHeadersData","$unwrapHeaders","flags","isNoSelect","isWritable","getClassName","base","$rename","findParent","parent","parentMailbox","$save","_updateChildren","child","replace","pathRE","oldPath","sibling","localeCompare","RegExp","$compact","$canFolderAs","$setFolderAs","$empty","capitalize","substring","$markAsRead","isread","getLabels","$labels","filteredByLabel","$flagMessages","messages","operation","msgUIDs","forwardMessages","saveSelectedMessages","selectedUIDs","download","exportFolder","filename","open","$delete","$_deleteMessages","firstIndex","forEachRight","selectedIndex","findIndex","updateVisibleMessages","$deleteMessages","batchSize","_deleteMessages","start","end","currentUids","slice","$markOrUnMarkMessagesAsJunk","method","$copyMessages","folder","$moveMessages","$move","parentPath","finally","save","response","error","$reset","Object","assign","childrenArray","collapsedThread","msg","first","collapsed","$broadcast","$futureMailboxData","headersFields","msgObject","hasNewMessages","$topIndex","deleted","j","changed","msgs","zipObject","count","isNaN","threadMember","invokeMap","isError","messageHeaders","$updateSubscribe","subscribed","setHighlightWords","highlightWords","getHighlightWords","futureMessageData","lazy","$mailbox","$hasUnsafeContent","$loadUnsafeContent","to","cc","bcc","threadCount","Message_STATUS","STATUS","$avatar","avatar","SOGoMailLabelsColors","$tags","SOGoMailDisplayRemoteInlineImages","$displayRemoteInlineImages","NOT_LOADED","DELAYED_LOADING","LOADING","LOADED","DELAYED_MS","filterTags","query","excludedTags","re","results","tag","pair","search","color","$formatFullAddresses","flag","charAt","buildPath","nocache","draftId","withResourcePath","$setUID","oldUID","attr","constructor","shortname","last","image","$shortRecipients","result","total","$shortAddress","fullEmail","address","String","emailRE","punycode","toUnicode","allowReplyAll","recipientsCount","typeCount","recipient","isDraft","loadUnsafeContent","$parts","$content","arr","from","parts","part","winmail","msgclass","content","alternatePart","preferredPart","contentType","isArray","encrypted","valid","decrypted","opaqueSigned","signed","certificate","certificates","mixedPart","safeContent","html","unsafeContent","document","createElement","innerHTML","suffix","elements","querySelectorAll","removeAttr","compile","hasOwn","shouldDisplayAttachment","highlightSearchTerms","getHighlightSubject","getHighlightFrom","encodeEntities","dom","Mark","mark","remove","fullHighlighted","nameHighlighted","$editableContent","text","$plainContent","addTag","_tag","label","imapName","$addOrRemoveTag","removeTag","toggleRead","$imipAction","$reload","$sendMDN","shouldAskReceipt","hasAttachments","$deleteAttachment","attachmentAttrs","attachment","toggleFlag","isflagged","toggleThread","catch","$loaded","useCache","$futureMessageData","SOGoMailAutoMarkAsReadDelay","$markAsReadPromise","raw","exec","decodeURIComponent","SOGoMailComposeMessageType","isEmpty","$reply","$newDraft","$replyAll","$forward","$compose","isHTML","origin","r","puny","toASCII","$send","startsWith","isanswered","isforwarded","isRead","privateAttributes","source","addr","downloadArchive","downloadAttachmentsArchive","ImageGallery","show","$document","$mdPanel","sgHotkeys","setMessage","registerImage","registerHotkeys","$ctrl","createHotkey","callback","previousImage","nextImage","registerHotkey","showGallery","$event","partIndex","partSrc","src","_findImages","images","viewURL","panelPosition","body","addClass","newPanelPosition","absolute","panelAnimation","newPanelAnimation","openFrom","target","duration","withAnimation","animation","FADE","config","attachTo","locals","lastIndex","selectedImage","bindToController","controller","PanelController","controllerAs","position","targetEvent","fullscreen","hasBackdrop","template","trapFocus","clickOutsideToClose","escapeToClose","focusOnOpen","onOpenComplete","getElementsByClassName","imgContainer","imgEl","one","naturalWidth","naturalHeight","classList","add","onDomRemoved","removeClass","hotkeys","deregisterHotkey","mdPanelRef","close","selectImage","$inject","VirtualMailbox","setMailboxes","startSearch","params","stopSearch","resetSelectedMessage","len","offset","selectedMailbox","transform","messagesMap","size","sum","allMessages","promises","flatten","currentMailbox","$comact","MailboxController","$window","$scope","$state","$mdDialog","$mdToast","stateAccounts","stateAccount","stateMailbox","encodeUriFilter","sgConstant","sgSettings","focus","Dialog","sortLabels","vm","defaultWindowTitle","msgHeight","_compactBeforeUnload","event","_messageDialog","arguments","messageDialog","_showMailEditor","onCompleteDeferred","templateUrl","onComplete","scope","stateParent","stateMessage","onCompletePromise","noop","closePopup","_nextMessage","isLoadingMessage","nextAction","m","p","_scrollToIndex","selectMessage","preventDefault","_previousMessage","scroller","querySelector","scrollTop","clientHeight","scrollTo","top","behavior","_addNextMessageToSelection","toggleMessageSelection","_addPreviousMessageToSelection","_currentMailboxes","_unselectMessage","nextMessage","previousMessage","nextIndex","mode","multiple","go","date","arrival","$onInit","$mailboxController","service","accounts","allSelected","newMessage","markOrUnMarkMessagesAsJunk","preventInClass","hotkey","confirmDeleteSelectedMessages","on","$on","off","$watch","title","centerIsClose","navController_centerIsClose","field","sortedBy","ascending","refresh","pollInbox","cancelSearch","$$state","composeWindowEnabled","SOGoMailComposeWindowEnabled","openInPopup","url","baseURL","wId","random","contains","_showMailEditorInPopup","inPopup","isPopup","SOGoMailComposeWindow","mailboxId","console","err","nextSelectedIndex","shiftKey","stopPropagation","confirm","ok","deleteSelectedMessage","withoutTrash","moveSelectedMessage","dstFolder","copySelectedMessages","simple","textContent","toastPosition","hideDelay","moveSelectedMessages","selectAll","unselectMessages","markSelectedMessagesAsFlagged","markSelectedMessagesAsUnread","markSelectedMessagesAsRead","forwardSelectedMessages","mdVirtualRepeatContainerDirectiveDecorator","$delegate","resetScroll","$element","updateSize","decorator","MailboxesController","$transitions","$mdUtil","$mdMedia","$mdSidenav","User","closeDialog","hide","advancedSearchPanelVisible","reset","subfolders","showSubscribedOnly","SOGoMailShowSubscribedFoldersOnly","selectedFolderController","$selectedCount","confirmDelete","showAdvancedSearch","hideAdvancedSearch","searchPreviousMailbox","addHighlightWords","sentence","searchForm","notContains","dateStart","Date","dateEnd","sizeOperator","sizeUnit","attachements","favorite","unseen","tags","searchText","addSearchParameters","newSearchParam","doesnotcontains","dateTo","today","tmp","setDate","getDate","formatDate","setMonth","getMonth","newSearchDateBetweenParam","newSearchFlagsParam","toggleAdvancedSearch","searchFieldChange","keyCode","root","virtualMailbox","$current","getFullYear","padStart","changeDate","searchParam","pattern","operator","n","negative","dateFrom","toggleAccountState","debounceSaveState","debounce","subscribe","SubscriptionsDialogController","srcAccount","getElementById","mainController","newFolder","parentFolder","prompt","alert","delegate","MailboxDelegationController","userToAdd","userFilter","closeModal","removeUser","addUser","isDroppableFolder","srcFolder","dragSelectedMessages","clearMessageView","success","dstId","MessageController","Calendar","Component","AddressBook","Card","_unlessInDialog","apply","$parentControllers","ctrls","opener","mailboxCtrl","$messageController","messageCtrl","_convertToComponent","componentData","pid","$defaultCalendar","summary","comment","stateComponent","isPopupWindow","showFlags","$alwaysShowDetailedRecipients","$showDetailedRecipients","showRawSource","mailInDeletion","reply","replyAll","forward","deleteMessage","$watchCollection","newTags","oldTags","wasflagged","_newTags","_oldTags","difference","addFlags","toggleDetailedRecipients","focusChip","chipElement","tagName","parentNode","blurChip","relatedTarget","panel","selectRecipient","targetElement","relativeTo","addPanelPosition","xPosition","ALIGN_START","yPosition","ALIGN_TOPS","addressbooks","$addressbooks","subscriptions","$subscriptions","MenuController","onKeyDown","which","newCard","addressbookId","card","c_cn","emails","panelRef","panelEl","filterMailtoLinks","href","attributes","state","parentCtrls","_success","destination","edit","compose","toggleRawSource","$rawSource","activateRawContent","print","convertToEvent","convertToTask","MessageEditorController","$stateParams","FileUploader","originMessage","draftMailboxCtrl","draftMessageCtrl","originMailboxCtrl","_updateFileUploader","uploader","_addAttachments","fileItem","attrs","mimetype","FileItem","progress","isUploaded","isSuccess","inlineUrl","queue","toggleFullscreen","isFullscreen","autocomplete","autosave","screen","orientation","hideBcc","hideCc","fromIdentity","identitySearchText","recipientSeparatorKeys","emailSeparatorKeys","sendState","firstFocus","editor","autoUpload","alias","removeAfterUpload","onSuccessItem","item","lastAttachmentAttrs","file","onCancelItem","removeFromQueue","onErrorItem","SOGoMailAutoSave","autosaveDrafts","localeCode","LocaleCode","ckConfig","language","ckLocaleCode","composeType","signaturePlacement","SOGoMailSignaturePlacement","replyPlacement","SOGoMailReplyPlacement","destroy","actionName","removeAttachment","isUploading","cancelItem","toast","prop","ignoreReturn","send","onEditorChange","errorMessage","statusText","contactFilter","$filterAll","priority","cards","explodedCards","manyCards","uniqBy","$$fullname","$$email","containername","addRecipient","contact","list","recipients","charCodeAt","isValidEmail","$isList","expandable","refs","ref","$shortFormat","container","c_name","listId","$isGroup","isExpandable","members","$members","setFromIdentity","reNl","nlNb","space","quotedMessageIndex","nl","SOGoMailUseSignatureOnNew","SOGoMailUseSignatureOnForward","SOGoMailUseSignatureOnReply","repeat","currentIdentity","currentSignature","identitySearch","q","expandGroup","onTextFocus","textArea","newOffset","val","hasSignature","test","signatureLength","setCaretTo","sigLimit","lastIndexOf","caretPosition","matches","onHTMLReady","$editor","onHTMLFocus","node","caretAtTop","getSelection","selected_ranges","getRanges","getBody","getChildren","getItem","x","getPrevious","encodeURI","getText","selectElement","scrollIntoView","collapse","selectRanges","SendMessageToastController","closeToast","sgAccountController","$postLink","quotaElement","div","addMailboxController","mailboxController","selectedMailboxCtrl","ctrl","unselectFolder","directive","restrict","sgImipController","delegateInvitation","delegatedTo","iCalendarAction","receiveUpdates","c_email","viewer","pathToAttachment","link","iElement","sgImipPath","sgMailboxListItemController","editMode","accountController","selectableElement","clickableElement","inputContainer","inputElement","moreOptionsButton","childLevel","editFolder","srcEvent","select","saveFolder","disabled","revertEditing","showMenu","itemCtrl","$menuCtrl","markFolderRead","compactFolder","emptyJunkFolder","emptyFolder","emptyTrashFolder","successMsg","share","encodeURL","$users","usersWithACL","setFolderAs","isParentOf","findChildren","moveFolder","require","sgMessageListItemController","scrollPosition","watchedAttrs","MailboxService","newId","oldId","onUpdate","setVisibility","visible","parentElement","sgMessageListItemMainController","$parse","contentDivElement","threadButton","iconsDivElement","parentControllerOnUpdate","parentController","threadIconElement","threadCountElement","priorityIconElement","mailboxNameElement","senderElement","subjectElement","sizeElement","dateElement","flagIconElement","answerIconElement","forwardIconElement","attachmentIconElement","flagList","$flagList","flagElements","nodesToArray","flagElement","removeChild","css","append","defineSubjectAndSenderElements","relativedate","hasattachment","SOGoMailDisplayFullEmail","$doCheck","sgZoomableImageController","showImage"],"mappings":"AAEA,CAAA,WACE,aAOA,SAASA,EAAQC,GACf,IAAIC,EAAQC,KAE0B,YAAlC,OAAOF,EAAkBG,OAC3BC,QAAQC,OAAOH,KAAMF,CAAiB,EACtCM,EAAEC,QAAQL,KAAKM,WAAY,SAASC,GAOlC,IACMC,EAPFD,EAASE,UAAYF,EAASG,MAChCH,EAASI,KAAOJ,EAASE,SAAW,KAAOF,EAASG,MAAQ,IACrDH,EAASG,MAChBH,EAASI,KAAO,IAAMJ,EAASG,MAAQ,IAEvCH,EAASI,KAAO,GACdJ,EAASK,YACPJ,EAAUN,QAAQM,QAAQ,QAAUD,EAASK,UAAY,QAAQ,EACrEL,EAASM,cAAgBT,EAAEU,IAAIN,EAAQO,SAAS,EAAG,aAAa,EAAEC,KAAK,GAAG,EAAEC,KAAK,EAErF,CAAC,EACGjB,KAAKkB,aAEPrB,EAAQsB,SAASC,kBAAkBpB,KAAMH,EAAQwB,GAAGC,KAAK,CAAEC,UAAWvB,KAAKkB,UAAW,CAAC,CAAC,EAAEjB,KAAK,SAASuB,GACtGzB,EAAMmB,WAAaM,CACrB,CAAC,CAOP,CAOA3B,EAAQ4B,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,WAAY,cAAe,UAAW,UAAW,SAASJ,EAAIK,EAAUC,EAAMC,EAAUC,EAAUC,EAAaC,EAASC,GAWlL,OAVA9B,QAAQC,OAAON,EAAS,CACtBwB,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNM,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFC,aAAcL,EACdX,SAAUY,EACVK,SAAUJ,CACZ,CAAC,EAEMnC,CACT,GAMA,IACEK,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAMC,GACJpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3BE,QAAQ,UAAW1C,EAAQ4B,QAAQ,EAQtC5B,EAAQ2C,SAAW,SAASC,GAC1B,OAAIA,EACK5C,EAAQuB,kBAAkBqB,CAAI,EAE9B5C,EAAQ6C,UACR7C,EAAQwB,GAAGC,KAAKzB,EAAQ6C,SAAS,EAGjC7C,EAAQoC,WAAWU,MAAM,GAAI,cAAc,EAAE1C,KAAK,SAAS2C,GAChE,OAAO/C,EAAQuB,kBAAkBwB,CAAC,CACpC,CAAC,CAEL,EAQA/C,EAAQuB,kBAAoB,SAASqB,GACnC,IAAIjB,EAAa,GAQjB,OANAtB,QAAQG,QAAQoC,EAAM,SAASG,EAAGC,GAChCD,EAAEE,GAAKD,EACPrB,EAAWqB,GAAK,IAAIhD,EAAQ+C,CAAC,CAC/B,CAAC,EACD/C,EAAQ6C,UAAYlB,CAGtB,EAQA3B,EAAQkD,mBAAqB,SAASC,GACpC,IAAIC,EACAC,EAAmG,IAArErD,EAAQsC,aAAagB,SAASC,mCAC5DC,EAAmBxD,EAAQsC,aAAagB,SAASG,qBAErD,GAAIJ,EACFD,EAAqB,OAClB,CAAA,GAAID,CAAAA,EAGP,MAAMO,MAAM,6EAA6E,EAFzFN,EAAqBD,CAEqE,CAE5F5C,EAAEC,QAAQR,EAAQ6C,UAAW,SAASc,GAChCN,EAEF9C,EAAEC,QAAQmD,EAAQC,mBAAoB,SAASC,GAC7CT,EAAmBU,KAAKD,EAAQZ,EAAE,CACpC,CAAC,GAII1C,EAAEwD,SAASX,EAAoBO,EAAQV,GAAK,cAAc,GAC7DG,EAAmBU,KAAKH,EAAQV,GAAK,cAAc,EAErD1C,EAAEC,QAAQmD,EAAQC,mBAAoB,SAASC,GACzCxD,QAAQ2D,UAAUH,EAAQI,WAAW,GACrC,CAAC1D,EAAEwD,SAASX,EAAoBS,EAAQZ,EAAE,GAC5CG,EAAmBU,KAAKD,EAAQZ,EAAE,CACtC,CAAC,EAEL,CAAC,EAEDjD,EAAQoC,WAAW8B,KAAK,GAAI,cAAe,CAACxC,UAAW0B,CAAkB,CAAC,EAAEhD,KAAK,SAASwC,GACxFrC,EAAEC,QAAQR,EAAQ6C,UAAW,SAASc,GACpCpD,EAAEC,QAAQmD,EAAQC,mBAAoB,SAASC,GACzCxD,QAAQ2D,UAAUpB,EAAKiB,EAAQZ,GAAG,IACpCY,EAAQI,YAAcrB,EAAKiB,EAAQZ,IAEvC,CAAC,CACH,CAAC,CACH,CAAC,EAEGO,GAAwC,YAApBA,IAClBxD,EAAQmE,qBACVnE,EAAQ6B,SAASuC,OAAOpE,EAAQmE,mBAAmB,EACrDnE,EAAQmE,oBAAsBnE,EAAQ6B,SAASxB,QAAQgE,KAAKlE,KAAMH,EAAQkD,mBAAoBC,CAAO,EAAmC,IAAhCK,EAAiBc,aAAa,CAAM,EAEhJ,EAQAtE,EAAQuE,UAAUC,UAAY,WAC5B,OAAIrE,KAAKsE,UACAtE,KAAKuE,kBAAkB,EAAEC,OAEzB,CACX,EAQA3E,EAAQuE,UAAUK,eAAiB,SAASC,GAC1C,IAEAC,EAAoB3E,KAAKuE,kBAAkB,EAC3C,OAAa,GAATG,GAAcA,EAAQC,EAAkBH,OACnCG,EAAkBD,GAEpB,IACT,EASA7E,EAAQuE,UAAUQ,cAAgB,SAASC,GACzC,IAAI9E,EAAQC,KAAM8E,EAAUD,GAAWA,EAAQC,OAE/C,OAAI9E,KAAKkB,YAAc,CAAC4D,EACfjF,EAAQwB,GAAGC,KAAKtB,KAAKkB,UAAU,GAE/B,CAAC4D,GAAU9E,KAAK+E,uBAIvB/E,KAAK+E,qBAAuBlF,EAAQsB,SAAS6D,MAAMhF,KAAM6E,CAAO,EAAE5E,KAAK,SAASwC,GAMnD,SAAvBwC,EAAgC1D,GAClCnB,EAAEC,QAAQkB,EAAW,SAASqB,GAC5B,IAAIsC,EAAkB9E,EAAE+E,KAAKC,EAAmB,CAAC,KAAMxC,EAAEE,GAAG,EACxDoC,IACFtC,EAAEkB,YAAcoB,EAAgBpB,aAE9BlB,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3BS,EAAqBrC,EAAEyC,QAAQ,CAEnC,CAAC,CACH,CAfA,IAAID,EAAoBrF,EAAMwE,kBAAkB,CAAEe,IAAK,CAAA,CAAK,CAAC,EAC7DvF,EAAMmB,WAAauB,EACnB1C,EAAMuE,UAAY,CAAA,EAclBW,EAAqBlF,EAAMmB,UAAU,EAIb,SAApBqE,EAA6BhE,GAC3BnB,EAAEC,QAAQkB,EAAW,SAASqB,GAC5BA,EAAE0B,UAAoD,GAAvCkB,EAAgBC,QAAQ,IAAM7C,EAAEE,EAAE,EAC7CF,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3Be,EAAkB3C,EAAEyC,QAAQ,CAEhC,CAAC,CACH,CARJ,IAAIG,EASJ,GAAI3F,EAAQsC,aAAauD,SAASC,KAAKC,gBAAiB,CACtD,GAAI1F,QAAQ2F,SAAShG,EAAQsC,aAAauD,SAASC,KAAKC,eAAe,EAErE,IACEJ,EAAkBtF,QAAQ4F,SAASjG,EAAQsC,aAAauD,SAASC,KAAKC,eAAe,CAMvF,CAJA,MAAOtD,GACLzC,EAAQ8B,KAAKoE,KAAK,qDACAlG,EAAQsC,aAAauD,SAASC,KAAKC,eAAe,EACpEJ,EAAkB,EACpB,MAGAA,EAAkB3F,EAAQsC,aAAauD,SAASC,KAAKC,gBAEvD7F,EAAMuE,UAAwD,GAA3CkB,EAAgBC,QAAQ,IAAM1F,EAAM+C,EAAE,EAC5B,EAAzB0C,EAAgBhB,QAClBe,EAAkBxF,EAAMmB,UAAU,CAEtC,CAMA,OALIrB,EAAQ6C,YACV3C,EAAMuE,WAA0C,GAA5BzE,EAAQ6C,UAAU8B,QAExCzE,EAAMwE,kBAAkB,CAACO,OAAQ,CAAA,CAAI,CAAC,EAE/B/E,EAAMmB,UACf,CAAC,GACMlB,KAAK+E,qBAEhB,EAYAlF,EAAQuE,UAAUG,kBAAoB,SAASM,GAIhC,SAATmB,EAAkBzE,GAChBnB,EAAEC,QAAQkB,EAAW,SAASqB,GAC5BqD,EAAatC,KAAKf,CAAC,GACdiC,GAAWA,EAAQS,KAAO1C,EAAE0B,YAAc1B,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QACtEwB,EAAOpD,EAAEyC,QAAQ,CAErB,CAAC,CACH,CAVJ,IACIY,EAAe,GACftB,EAAoB,GAmCxB,MAzBI3E,CAAAA,KAAKyD,oBAAwBoB,IAAYA,EAAQC,QAAUD,EAAQS,MAIrEU,EAAOhG,KAAKkB,UAAU,EACjB2D,GAAYA,EAAQS,MAjBftF,KAkBFyD,mBAAqBwC,EACvBpB,GAAWA,EAAQqB,YAErB9F,EAAEC,QAAQR,EAAQ6C,UAAW,SAASc,GAChCA,EAAQc,WACVK,EAAkBhB,KAAK,IAAMH,EAAQV,EAAE,EAEzC1C,EAAE+F,OAAO3C,EAAQC,mBAAoB,SAAS+B,EAAiB9B,GAI7D,OAHIA,EAAQY,WACVkB,EAAgB7B,KAAK,IAAMD,EAAQZ,EAAE,EAEhC0C,CACT,EAAGb,CAAiB,CACtB,CAAC,EACD9E,EAAQoC,WAAW8B,KAAK,KAAM,mBAAoBY,CAAiB,KAnBvEsB,EAAejG,KAAKyD,mBAwBfwC,CACT,EAEApG,EAAQuE,UAAUgC,kBAAoB,SAASC,GAGjC,SAARC,EAAiB/E,GACf,IAAImC,EAAUtD,EAAE+E,KAAK5D,EAAW,SAASqB,GACvC,OAAOA,EAAEyD,MAAQA,CACnB,CAAC,EAQD,OAPK3C,GACHxD,QAAQG,QAAQkB,EAAW,SAASqB,GAC9B,CAACc,GAAWd,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,SACvCd,EAAU4C,EAAM1D,EAAEyC,QAAQ,EAE9B,CAAC,EAEI3B,CACT,CAGJ,OAFU4C,EAAMtG,KAAKkB,UAAU,CAGjC,EAQArB,EAAQuE,UAAUmC,kBAAoB,SAASC,GAGjC,SAARF,EAAiB/E,GACf,IAAImC,EAAUtD,EAAE+E,KAAK5D,EAAW,SAASqB,GACvC,OAAOA,EAAE4D,MAAQA,CACnB,CAAC,EAQD,OAPK9C,GACHxD,QAAQG,QAAQkB,EAAW,SAASqB,GAC9B,CAACc,GAAWd,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,SACvCd,EAAU4C,EAAM1D,EAAEyC,QAAQ,EAE9B,CAAC,EAEI3B,CACT,CAdJ,IAeAA,EAEA,GAAe,OAAXA,EAFM4C,EAAMtG,KAAKkB,UAAU,GAG7B,MAAMqC,MAAM,kCAAoCiD,CAAI,EAEtD,OAAO9C,CACT,EAQA7D,EAAQuE,UAAUqC,YAAc,SAASD,EAAME,GAC7C,IAAI3G,EAAQC,KAEZ,OAAOH,EAAQoC,WAAW8B,KAAKyC,EAAKG,SAAS,EAAG,eAAgB,CAACD,KAAMA,CAAI,CAAC,EAAEzG,KAAK,WACjFF,EAAM6E,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,CACpC,CAAC,CACH,EAQAjF,EAAQuE,UAAUwC,iBAAmB,SAASrG,GAC5C,IACMC,EAKN,OANID,EAASK,WACPJ,EAAUN,QAAQM,QAAQ,QAAUD,EAASK,UAAY,QAAQ,EACrEL,EAASM,cAAgBT,EAAEU,IAAIN,EAAQO,SAAS,EAAG,aAAa,EAAEC,KAAK,GAAG,EAAEC,KAAK,GAEjFV,EAASM,cAAgB,GAEpBN,EAASM,aAClB,EAQAhB,EAAQuE,UAAUyC,gBAAkB,WAClC,OAAO7G,KAAK8G,UAAY9G,KAAK8G,SAASC,cACxC,EAQAlH,EAAQuE,UAAU4C,aAAe,WAC/B,IAAIjH,EAAQC,KAEZ,OAAIA,KAAK6G,gBAAgB,EACnB7G,KAAKiH,cACApH,EAAQwB,GAAGC,KAAKtB,KAAKiH,aAAa,EAElCpH,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,aAAa,EAAE1G,KAAK,SAASwC,GAE/E,OADA1C,EAAMkH,cAAgBxE,CAExB,CAAC,EAII5C,EAAQwB,GAAG6F,OAAO,CAE7B,EAQArH,EAAQuE,UAAU+C,mBAAqB,WACrC,IAAIpH,EAAQC,KAEZ,OAAOH,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,mBAAmB,EAAE1G,KAAK,WAC5EF,EAAM+G,SAASC,eAAiB,CAAA,CAClC,CAAC,CACH,EAQAlH,EAAQuE,UAAUgD,YAAc,SAAS3E,GACvC,IAAI4E,EAAiBC,EAEjB7E,EAAK8E,UACPF,EAAWG,KAAKC,MAAuB,IAAjBhF,EAAKiF,UAAoBjF,EAAK8E,QAAQ,EAAI,IAEhED,EADSK,EAAE,cAAc,EACJC,UAAUP,EAASG,KAAKC,MAAMhF,EAAK8E,SAAS,KAAK,EAAE,GAAG,GAEpE9E,EAAKoF,cACZR,EAAWG,KAAKC,MAA2B,IAArBhF,EAAKqF,cAAwBrF,EAAKoF,WAAW,EAAI,IAEvEP,EADSK,EAAE,qBAAqB,EACXC,UAAUP,EAAS5E,EAAKoF,WAAW,GAG1D7H,KAAK+H,OAAS,CAAEV,QAASA,EAASC,YAAaA,CAAY,CAC7D,EAQAzH,EAAQuE,UAAU4D,YAAc,SAASnD,GACvC,IAAI9E,EAAQC,KAGZ,OAAOH,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,SAAS,EAAE1G,KAAK,SAASwC,GAG3E,OAFA5C,EAAQ8B,KAAKsG,MAAM,0BAA4BC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EACnE,IAAIvI,EAAQuC,SAASK,EAAK4F,UAAWtI,EAAMwG,kBAAkB9D,EAAK6F,WAAW,EAAG7F,CAAI,CAEpG,CAAC,EAAExC,KAAK,SAASsI,GAEf,OAAO1I,EAAQoC,WAAWU,MAAM4F,EAAQC,cAAc,CAACC,QAAS,CAAA,CAAI,CAAC,EAAG,MAAM,EAAExI,KAAK,SAASwC,GAC5F,IAAIiG,EAAkB7I,EAAQsC,aAAagB,SAASwF,sBAAsB5I,EAAM+C,IAgBhF,OAfI4F,EAAgB5B,WACd4B,EAAgB5B,SAAS8B,aAC3BnG,EAAKoG,KAAO,CAAA,GACVH,EAAgB5B,SAASgC,iBAC3BrG,EAAKsG,QAAU,CAAA,GAEnBlJ,EAAQ8B,KAAKsG,MAAM,uBAAyBC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAC9ElI,QAAQC,OAAOoI,EAAQS,SAAUvG,CAAI,EACrC8F,EAAQU,MAAQ,CAAA,EACZpE,GAAWA,EAAQqE,SACjBhJ,QAAQiJ,SAAStE,EAAQqE,MAAM,EACjChJ,QAAQC,OAAOoI,EAAQS,SAAUnE,EAAQqE,MAAM,EAE/CX,EAAQa,aAAavE,EAAQqE,MAAM,GAEhCX,CACT,CAAC,CACH,CAAC,CACH,EASA1I,EAAQuE,UAAUiF,aAAe,SAASC,GACxC,IAAIvJ,EAAQC,KACRuJ,EAAW1J,EAAQwB,GAAGmI,MAAM,EAC5BC,EAAQ,CAACC,IAAKJ,EAAKI,GAAG,EAa1B,MAZI,CAACJ,EAAKI,KAA2D,CAAC,EAArDtJ,EAAEqF,QAAQrF,EAAEU,IAAId,KAAK2J,UAAW,KAAK,EAAGL,EAAKI,GAAG,EAE/DH,EAASK,QAAQ,EAGjB/J,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,cAAe8C,CAAK,EAAExJ,KAAK,WACtEF,EAAM4J,UAAUhG,KAAK2F,CAAI,EACzBC,EAASK,QAAQ7J,EAAM8J,KAAK,CAC9B,EAAG,SAASpH,EAAMqH,GAChBP,EAASrC,OAAOS,EAAE,qCAAqC,CAAC,CAC1D,CAAC,EAEI4B,EAASQ,OAClB,EASAlK,EAAQuE,UAAU4F,gBAAkB,SAASN,GAC3C,IAAI3J,EAAQC,KACRyJ,EAAQ,CAACC,IAAKA,CAAG,EACrB,OAAO7J,EAAQoC,WAAWU,MAAM3C,KAAK8C,GAAG6D,SAAS,EAAG,iBAAkB8C,CAAK,EAAExJ,KAAK,WAChF,IAAI4C,EAAIzC,EAAEqF,QAAQrF,EAAEU,IAAIf,EAAM4J,UAAW,KAAK,EAAGD,CAAG,EAC3C,GAAL7G,GACF9C,EAAM4J,UAAUM,OAAOpH,EAAG,CAAC,CAE/B,CAAC,CACH,EAQAhD,EAAQuE,UAAU8F,MAAQ,SAAUC,GAClC,IAAI3G,EAAU,GAAIlD,EAAa,GAAIiB,EAAY,GAAI6I,EAAkB,CAAA,EA0BrE,OAxBAlK,QAAQG,QAAQL,KAAM,SAASqK,EAAOC,GACzB,eAAPA,GAA8B,cAANA,GAAgC,KAAVA,EAAI,KACpD9G,EAAQ8G,GAAOpK,QAAQqK,KAAKF,CAAK,EAErC,CAAC,EAEGF,IACF/J,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCnC,EAAUoC,KAAKD,EAAQwG,MAAMC,CAAI,CAAC,CACpC,CAAC,EACD3G,EAAQtC,WAAaK,GAGvBnB,EAAEC,QAAQL,KAAKM,WAAY,SAAUC,GAC9BA,EAASiK,YAAcL,CAAAA,GAC1B7J,EAAWqD,KAAKvD,EAAEqK,KAAKlK,EAAU,CAAC,QAAS,WAAY,UAAW,YAAa,YAAY,CAAC,EAC1FA,EAASmK,YACXN,EAAkB7J,EACtB,CAAC,EACDiD,EAAQlD,WAAaA,EAEhB8J,GAAoB5G,EAAQmH,sBAC/B,OAAOnH,EAAQmH,qBAEVnH,CACT,CAED,EAAE,EC9kBH,WACE,aAOA,SAASzB,EAAQyB,EAASoH,GACxB5K,KAAK6K,SAAWrH,EAEsB,YAAlC,OAAOoH,EAAkB3K,MAC3BD,KAAK8K,KAAKF,CAAiB,EACvB5K,KAAK0G,MAAQ,CAAC1G,KAAKwG,OAEjBuE,EAAiBhJ,EAAQE,WAAW+I,OAAO,eAAgBhL,KAAK0G,IAAI,EACxE1G,KAAKiL,QAAQF,CAAc,IAM7B/K,KAAKiL,QAAQL,CAAiB,CAElC,CAOA7I,EAAQN,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,aAAc,WAAY,UAAW,MAAO,cAAe,oBAAqB,+BAAgC,SAAUJ,EAAIK,EAAUC,EAAMuJ,EAAYtJ,EAAUC,EAAUG,EAASmJ,EAAKrJ,EAAasJ,EAASC,GAyB5Q,OAxBAnL,QAAQC,OAAO4B,EAAS,CACtBV,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNuJ,WAAYA,EACZjJ,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFE,SAAUJ,EACVsJ,MAAOH,EACPhJ,aAAcL,EACdyJ,OAAQ,CAAEC,KAAM,UAAWC,IAAK,CAAE,EAClCC,eAAgB,KAChBC,gBAAiB,KACjBC,aAAc,CAAA,EACdC,aAAc,CAAA,EACdC,YAAa,CAAA,EACbV,QAASA,EACTC,mBAAoBA,CACtB,CAAC,EAEGvJ,EAAY4D,SAASC,KAAKoG,eAC5BhK,EAAQwJ,OAAOC,KAAO1J,EAAY4D,SAASC,KAAKoG,aAAa,GAC7DhK,EAAQwJ,OAAOE,IAAMO,SAASlK,EAAY4D,SAASC,KAAKoG,aAAa,EAAE,GAGlEhK,CACT,GAMA,IACE7B,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAMC,GACJpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3B4J,SAAS,oBAAqB,CAC7BC,UAAW,GACXC,KAAM,GACR,CAAC,EACAF,SAAS,+BAAgC,GAAI,EAC7C1J,QAAQ,UAAWR,EAAQN,QAAQ,EAStCM,EAAQiD,MAAQ,SAASxB,EAASqB,GAI9B+F,EADE/F,GAAWA,EAAQS,IACDtF,KAAKiC,WAAWU,MAAMa,EAAQV,GAAG6D,SAAS,EAAG,SAAS,EAEtD3G,KAAKiC,WAAWU,MAAMa,EAAQV,GAAG6D,SAAS,EAAG,MAAM,EAEzE,OAAO5E,EAAQX,kBAAkBoC,EAASoH,CAAiB,CAC7D,EASA7I,EAAQX,kBAAoB,SAASoC,EAASoH,GAGtB,SAAlBwB,EAA2BC,EAAO3I,GAChCA,EAAQ4I,aAAe5I,EAAQ4I,cAAgC,QAAhB5I,EAAQ2C,KACvD3C,EAAQ6I,eAAiB7I,EAAQ6I,gBAAkC,SAAhB7I,EAAQ2C,KAC3D,IAAK,IAAIxD,EAAI,EAAGA,EAAIa,EAAQ2B,SAASb,OAAQ3B,CAAC,GAC5Ca,EAAQ2B,SAASxC,GAAGwJ,MAAQA,EAC5B3I,EAAQ2B,SAASxC,GAAK,IAAId,EAAQyB,EAASE,EAAQ2B,SAASxC,EAAE,EAC9Da,EAAQ2B,SAASxC,GAAGyJ,aAAe5I,EAAQ4I,aAC3C5I,EAAQ2B,SAASxC,GAAG0J,eAAiB7I,EAAQ6I,eAC7CH,EAAgBC,EAAM,EAAG3I,EAAQ2B,SAASxC,EAAE,CAEhD,CAZJ,IAAIrB,EAAa,GAejB,OAAOoJ,EAAkB3K,KAAK,SAASwC,GACrC,OAAOV,EAAQL,SAAS,WAWtB,OATAxB,QAAQG,QAAQoC,EAAKlB,UAAW,SAASkB,EAAMiC,GAC7CjC,EAAK4J,MAAQ,EACT3I,EAAU,IAAI3B,EAAQyB,EAASf,CAAI,EACvC2J,EAAgB,EAAG1I,CAAO,EAC1BlC,EAAWmC,KAAKD,CAAO,CACzB,CAAC,EAEGjB,EAAK+J,QACPhJ,EAAQ4D,YAAY3E,EAAK+J,MAAM,EAC1BhL,CACT,CAAC,CACH,CAAC,CACH,EASAO,EAAQyG,cAAgB,SAASH,EAAWC,GAC1C,IAAI9B,EAAO,GAUX,OAPEA,EADE8B,EACKlI,EAAEU,IAAIwH,EAAYmE,MAAM,GAAG,EAAG,SAASC,GAC5C,MAAO,SAAWA,EAAUC,gBAAgB,CAC9C,CAAC,EAGHnG,GAAKyD,OAAO,EAAG,EAAG5B,CAAS,EAEpB7B,EAAKxF,KAAK,GAAG,CACtB,EAQAe,EAAQqC,UAAU0G,KAAO,SAASrI,IAE5BvC,QAAQ0M,YAAY5M,KAAK6M,OAAO,GAAKpK,EAAKqK,WAC5C9M,KAAK+M,WAAa,CAAA,EAClB/M,KAAKgN,UAAY,GACjBhN,KAAK6M,QAAU,GACf7M,KAAKiN,iBAAmBjN,KAAKgN,UAC7BhN,KAAKkN,kBAAoB,IAEvBhN,QAAQ0M,YAAY5M,KAAKmN,eAAe,IAC1CnN,KAAKmN,gBAAkB,IAEzBjN,QAAQC,OAAOH,KAAMyC,CAAI,EACrBzC,KAAKwG,OACPxG,KAAK8C,GAAK9C,KAAKoN,IAAI,EACnBpN,KAAKqN,KAAO,IAAItL,EAAQuJ,MAAM,QAAUtL,KAAK8C,EAAE,EAC3C9C,KAAKsN,YACPtN,KAAKuN,kBAAoB,GACrBxL,EAAQI,aAAauD,SAASC,KAAK6H,mBAAoBzL,EAAQI,aAAauD,SAASC,KAAK6H,iBAAiB,IAAMxN,KAAK8C,MACxH9C,KAAKuN,kBAAoBxL,EAAQI,aAAauD,SAASC,KAAK6H,iBAAiB,IAAMxN,KAAK8C,KAI9F9C,KAAKyN,aAAezN,KAAK0G,KACrB1G,KAAKqG,OACPrG,KAAK0N,YAAc1N,KAAK2N,WAAW,EACnC3N,KAAK4N,WAAa,CAAA,EACD,SAAb5N,KAAKqG,MACPrG,KAAKyN,aAAe9F,EAAE,iBAAiB,EACvC3H,KAAK6N,MAAQ,SAEO,SAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,kBAAkB,EACxC3H,KAAK6N,MAAQ,UAEO,QAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,gBAAgB,EACtC3H,KAAK6N,MAAQ,QAEO,SAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,iBAAiB,EACvC3H,KAAK6N,MAAQ,UAEO,QAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,gBAAgB,EACtC3H,KAAK6N,MAAQ,cAEO,aAAb7N,KAAKqG,MACZrG,KAAKyN,aAAe9F,EAAE,qBAAqB,EAC3C3H,KAAK6N,MAAQ,gBAEO,cAAb7N,KAAKqG,KACZrG,KAAK6N,MAAQ,SAEO,UAAb7N,KAAKqG,MAGQ,cAAbrG,KAAKqG,KACZrG,KAAK6N,MAAQ,gBAEO,WAAb7N,KAAKqG,KACZrG,KAAK6N,MAAQ,uBAGb7N,KAAK4N,WAAa,CAAA,EAClB5N,KAAK6N,MAAQ,WAGjB7N,KAAK8N,eAAiB9N,KAAK+N,cAAc,EACrC7N,QAAQ0M,YAAY5M,KAAKgO,WAAW,IAEtChO,KAAKgO,YAAchO,KAAKkK,MAAM,EAElC,EAOAnI,EAAQqC,UAAU6J,aAAe,WAC1BlM,EAAQ6J,eACX7J,EAAQ2J,eAAiB1L,KAC7B,EAQA+B,EAAQqC,UAAU8J,cAAgB,SAAUC,GAC1CpM,EAAQ+J,YAAcqC,CACxB,EAQApM,EAAQqC,UAAUC,UAAY,WAC5B,OAAOrE,KAAKiN,iBAAiBzI,MAC/B,EAQAzC,EAAQqC,UAAUK,eAAiB,SAASC,GAC1C,IAAI6D,EAEJ,OAAa,GAAT7D,GAAcA,EAAQ1E,KAAKiN,iBAAiBzI,QAC9C+D,EAAUvI,KAAKiN,iBAAiBvI,GAChC1E,KAAKoO,kBAAoB5G,KAAK6G,IAAI,EAAG3J,EAAQ,CAAC,EAC9C1E,KAAKsO,aAAa/F,EAAQmB,GAAG,EACtBnB,GAEF,IACT,EAQAxG,EAAQqC,UAAUgJ,IAAM,WACtB,OAAOrL,EAAQyG,cAAcxI,KAAK6K,SAAS/H,GAAI9C,KAAKwG,IAAI,CAC1D,EAQAzE,EAAQqC,UAAUmK,iBAAmB,SAAS1J,GAG5C,OAFIA,GAAWA,EAAQ2J,cACrBxO,KAAKkN,kBAAoB9M,EAAEqO,OAAOzO,KAAKgN,UAAW,SAASzE,GAAW,OAAOA,EAAQmG,QAAU,CAAC,GAC3F1O,KAAKkN,iBACd,EAQAnL,EAAQqC,UAAUuK,cAAgB,WAChC,OAAO3O,KAAKkN,kBAAkB1I,MAChC,EAOAzC,EAAQqC,UAAUwK,kBAAoB,WACpCxO,EAAEC,QAAQL,KAAKkN,kBAAmB,SAAS3E,GACzCA,EAAQmG,SAAW,CAAA,CACrB,CAAC,EACD1O,KAAKkN,kBAAoB,EAC3B,EASAnL,EAAQqC,UAAUyK,kBAAoB,SAASC,GAC7C,OAAO9O,KAAK+O,kBAAoBD,CAClC,EAQA/M,EAAQqC,UAAU4K,gBAAkB,WAClC,IAAIjP,EAAQC,KACZ,OAAOI,EAAE+E,KAAKnF,KAAKgN,UAAW,SAASzE,GAAW,OAAOA,EAAQmB,KAAO3J,EAAMgP,gBAAkB,CAAC,CACnG,EAQAhN,EAAQqC,UAAU6K,sBAAwB,WACxC,OAAOjP,KAAK6M,QAAQ7M,KAAK+O,iBAC3B,EAQAhN,EAAQqC,UAAU8K,mBAAqB,WACrC,OAAOhP,QAAQ2D,UAAU7D,KAAK+O,gBAAgB,CAChD,EAgBAhN,EAAQqC,UAAU+K,QAAU,SAASC,EAAmBC,GACtD,IAAItP,EAAQC,KAAMsP,EAAS,OAAQzK,EAAU,GAkEzC0K,GAhECrP,QAAQ2D,UAAU7D,KAAK8D,WAAW,IACrC9D,KAAK8D,YAAc,GAErB9D,KAAK+M,WAAa,CAAA,EAEdhL,EAAQ4J,iBACV5J,EAAQL,SAASuC,OAAOlC,EAAQ4J,eAAe,EAE7CyD,GAEFlP,QAAQC,OAAO4B,EAAQwJ,OAAQ6D,CAAiB,EAE9CC,GAA4B,EAAjBA,EAAQ7K,SAErBxE,KAAKmN,gBAAkB,GACvBkC,EAAQhP,QAAQoO,IACV,mBAAqBA,EAAOe,UAC3B,YAAcf,EAAOe,UACrB,QAAUf,EAAOe,UACjB,QAAUf,EAAOe,UACjB,MAAQf,EAAOe,UACf,WAAaf,EAAOe,UACXf,EAAOgB,YAAYhD,MAAM,GAAG,EAClCpM,QAAQqP,IACRC,EAAcD,EAAKzO,KAAK,EAAE2O,YAAY,EACrC5P,KAAKmN,gBAAgBvJ,SAAS+L,CAAW,GAC5C3P,KAAKmN,gBAAgBxJ,KAAKgM,CAAW,CAEzC,CAAC,CAEL,CAAC,GAGHzP,QAAQC,OAAO0E,EAAS,CAAEuK,kBAAmBrN,EAAQwJ,MAAO,CAAC,EACzDrL,QAAQ2D,UAAUwL,CAAO,GAC3BxK,EAAQwK,QAAUjP,EAAE8G,OAAOhH,QAAQqK,KAAK8E,CAAO,EAAG,SAASZ,GACzD,MAAO,CAACA,EAAOgB,aAA6C,IAA9BhB,EAAOgB,YAAYjL,MACnD,CAAC,EAEDpE,EAAEC,QAAQwE,EAAQwK,QAAS,SAASZ,GAClC,IACIoB,EAAQpB,EAAOe,SAASK,MAAM,gBAAgB,EAC9CA,IACFhL,EAAQuK,kBAAkBS,MAAQ,KAClCpB,EAAOe,SAAWK,EAAM,IACxBC,EAAe5P,QAAQqK,KAAKkE,CAAM,GACrBe,SAAWK,EAAM,GAC9BhL,EAAQwK,QAAQ1L,KAAKmM,CAAY,EAErC,CAAC,GAEOV,GAAsBpP,KAAK+P,cAAiB/P,KAAKgQ,aAAehQ,CAAAA,KAAKiQ,aAG7EX,EAAS,UACTzK,EAAQqL,UAAYlQ,KAAKiQ,YAGvBjQ,KAAKgQ,cACPnL,EAAQsL,WAAa,GAEnBnQ,KAAK+P,eACPlL,EAAQuL,YAAc,GAEXhQ,EAAEqO,OAAOrO,EAAEiQ,KAAKrQ,KAAKsQ,eAAe,EAAG,SAAUC,GAC5D,MAAO,CAAC,CAACxQ,EAAMuQ,gBAAgBC,EACjC,CAAC,GAaG3F,GAZA2E,EAAO/K,SACTK,EAAQ0K,OAASA,GAGdxN,EAAQ6J,eACPvI,EAAmBtB,EAAQI,aAAagB,SAASG,uBACT,YAApBD,IAClBmN,EAAItQ,QAAQgE,KAAKlE,KAAM+B,EAAQqC,UAAU+K,QAAS,KAAME,CAAO,EACnEtN,EAAQ4J,gBAAkB5J,EAAQL,SAAS8O,EAAmC,IAAhCnN,EAAiBc,aAAa,CAAM,GAI9DpC,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAIwM,EAAQzK,CAAO,GACxE,OAAO7E,KAAKiL,QAAQL,CAAiB,CACvC,EAQA7I,EAAQqC,UAAUkK,aAAe,SAASQ,GACxC,IACI2B,EAIAC,EALAC,EAAa3Q,KAAK6M,QAAQiC,GAG1BT,EAAMrO,KAAKgN,UAAUxI,OACrBoM,EAAS,CAAA,EAGb,GAAI1Q,QAAQ2D,UAAU7D,KAAK6M,QAAQiC,EAAU,GAAK6B,EAAa3Q,KAAKgN,UAAUxI,SAExEtE,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYE,OAAO,IAEtDD,EAAS,CAAA,GAIXH,EAAWjJ,KAAKsJ,IAAIH,EAAa5O,EAAQqJ,QAAQc,UAAWmC,EAAM,CAAC,EAC/DnO,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUI,OAAO,GAClD3Q,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUM,OAAO,GACpDrM,EAAQ8C,KAAK6G,IAAIsC,EAAa5O,EAAQqJ,QAAQc,UAAW,CAAC,EACrDhM,QAAQ2D,UAAU7D,KAAKgN,UAAUtI,GAAOmM,OAAO,GAC/C3Q,QAAQ2D,UAAU7D,KAAKgN,UAAUtI,GAAOqM,OAAO,IAElDN,EAAWE,EACXA,EAAanJ,KAAK6G,IAAIsC,EAAa5O,EAAQqJ,QAAQe,KAAM,CAAC,IAK5DsE,EAAWjJ,KAAKsJ,IAAIH,EAAa5O,EAAQqJ,QAAQe,KAAMkC,EAAM,CAAC,EAE5D,CAACnO,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYE,OAAO,GACrD,CAAC3Q,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYI,OAAO,GACrD,CAAC7Q,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUI,OAAO,GACnD,CAAC3Q,QAAQ2D,UAAU7D,KAAKgN,UAAUyD,GAAUM,OAAO,GAAG,CAExD,IAAKL,EAAO,GAAIC,EAAaF,GAAYE,EAAatC,EAAKsC,CAAU,GAC/DzQ,QAAQ2D,UAAU7D,KAAKgN,UAAU2D,GAAYE,OAAO,GAAK7Q,KAAKgN,UAAU2D,GAAYI,QAEtFN,CAAQ,IAIRC,EAAK/M,KAAK3D,KAAKgN,UAAU2D,GAAYjH,GAAG,EAExC1J,KAAKgN,UAAU2D,GAAYI,QAAU,CAAA,GAIrCL,EAAKlM,SACPzC,EAAQJ,KAAKsG,MAAM,gBAAkByI,EAAK1P,KAAK,GAAG,CAAC,EACnDgQ,EAAoBjP,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,UAAW,CAAC4N,KAAMA,CAAI,CAAC,EAC5E1Q,KAAKiR,eAAeD,CAAiB,EAEzC,CAEF,OAAOJ,CACT,EAQA7O,EAAQqC,UAAUuJ,WAAa,WAC7B,MAAoB,UAAb3N,KAAKqG,IACd,EAQAtE,EAAQqC,UAAU2J,cAAgB,WAChC,OAA4C,GAArC/N,KAAKkR,MAAMzL,QAAQ,aAAa,CACzC,EAQA1D,EAAQqC,UAAU+M,WAAa,WAC7B,OAAyC,GAAlCnR,KAAKkR,MAAMzL,QAAQ,UAAU,CACtC,EAQA1D,EAAQqC,UAAUgN,WAAa,WAC7B,OAAOpR,KAAKkR,MAAMzL,QAAQ,UAAU,EAAI,GAAkB,WAAbzF,KAAKqG,IACpD,EAQAtE,EAAQqC,UAAUiN,aAAe,SAASC,GACxC,MAAO,CAAA,CACT,EASAvP,EAAQqC,UAAUmN,QAAU,WAC1B,IACIC,EACAC,EACApM,EACAxC,EAJA9C,EAAQC,KAMZ,OAAIA,KAAK0G,MAAQ1G,KAAKgO,YAAYtH,KAEzB3E,EAAQV,GAAGC,KAAK,GAuBzBmQ,GAnBAD,EAAa,SAASC,EAAQpM,GAC5B,IAAIqM,EAAgB,KAcpB,OAbctR,EAAE+E,KAAKE,EAAU,SAASzC,GAClC,OAAOA,EAAE4D,MAAQzG,EAAMyG,IACzB,CAAC,EAEHkL,EAAgBD,EAGhBvR,QAAQG,QAAQgF,EAAU,SAASzC,GAC7B,CAAC8O,GAAiB9O,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,SAC7CkN,EAAgBF,EAAW5O,EAAGA,EAAEyC,QAAQ,EAE5C,CAAC,EAEIqM,CACT,GAGoB,KAAM1R,KAAK6K,SAAS3J,UAAU,EAEhDmE,EADa,OAAXoM,EACSzR,KAAK6K,SAAS3J,WAEduQ,EAAOpM,SAGpBxC,EAAIzC,EAAEqF,QAAQrF,EAAEU,IAAIuE,EAAU,IAAI,EAAGrF,KAAK8C,EAAE,EAErC9C,KAAK2R,MAAM,EAAE1R,KAAK,SAASwC,GAmBV,SAAlBmP,EAA2BlO,GAC7BtD,EAAEC,QAAQqD,EAAQ2B,SAAU,SAASwM,GACnCA,EAAMrL,KAAOqL,EAAMrL,KAAKsL,QAAQC,EAAQhS,EAAMyG,IAAI,EAClDqL,EAAM/O,GAAK+O,EAAMzE,IAAI,EACrBwE,EAAgBC,CAAK,CACvB,CAAC,CACH,CAxBA,IAAaG,EAAUjS,EAAMyG,KAiBzBuL,GAhBJhS,EAAM+K,KAAKrI,CAAI,EAGf4C,EAAS4E,OAAOpH,EAAG,CAAC,EACpBoP,EAAU7R,EAAE+E,KAAKE,EAAU,SAASzC,GAClC,MAAkB,UAAVA,EAAEyD,MAAuD,EAAnCzD,EAAE8D,KAAKwL,cAAcnS,EAAM2G,IAAI,CAC/D,CAAC,EAEC7D,EADEoP,EACE7R,EAAEqF,QAAQrF,EAAEU,IAAIuE,EAAU,IAAI,EAAG4M,EAAQnP,EAAE,EAG3CuC,EAASb,OAEfa,EAAS4E,OAAOpH,EAAG,EAAG9C,CAAK,EAGd,IAAIoS,OAAO,IAAMH,CAAO,GAQrCJ,EAAgB7R,CAAK,CACvB,CAAC,EACH,EAQAgC,EAAQqC,UAAUgO,SAAW,WAC3B,IAAIrS,EAAQC,KACZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,SAAS,EAC9C7C,KAAK,SAASwC,GAIb,OAFIA,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,EACjC,CAAA,CACT,CAAC,CACL,EAQAzK,EAAQqC,UAAUiO,aAAe,WAC/B,MAAoB,UAAbrS,KAAKqG,IACd,EAQAtE,EAAQqC,UAAUkO,aAAe,SAASjM,GACxC,OAAOtE,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,QAAUuD,EAAO,QAAQ,CACnE,EAQAtE,EAAQqC,UAAUmO,OAAS,WACzB,IAAIxS,EAAQC,KACRsP,EAAS,QAAUtP,KAAKqG,KAAK,GAAGmM,WAAW,EAAIxS,KAAKqG,KAAKoM,UAAU,CAAC,EAExE,OAAO1Q,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAIwM,CAAM,EAAErP,KAAK,SAASwC,GAE5D1C,EAAMiN,UAAYjN,EAAMkN,iBAAmB,GAC3ClN,EAAM8M,QAAU,GAChB9M,EAAM+D,YAAc,EAGhB5D,QAAQ2D,UAAU9D,EAAMsF,QAAQ,GAAKtF,EAAMsF,SAASb,QACtDzE,EAAM8K,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,EAGzCrC,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,CAC1C,CAAC,CACH,EAQAzK,EAAQqC,UAAUsO,YAAc,WAC9B,IAAI3S,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,UAAU,EAAE7C,KAAK,WACvDF,EAAM+D,YAAc,EACpB1D,EAAEC,QAAQN,EAAMiN,UAAW,SAASzE,GAClCA,EAAQoK,OAAS,CAAA,CACnB,CAAC,CACH,CAAC,CACH,EAQA5Q,EAAQqC,UAAUwO,UAAY,SAAS/N,GACrC,IAAI9E,EAAQC,KAEZ,MAAIA,CAAAA,KAAK6S,SAAahO,GAAWA,EAAQC,QAGrC5E,QAAQ0M,YAAY5M,KAAKsQ,eAAe,IAC1CtQ,KAAKsQ,gBAAkB,IAClBvO,EAAQE,WAAWU,MAAM3C,KAAK8C,GAAI,QAAQ,EAAE7C,KAAK,SAASwC,GAE/D,OADA1C,EAAM8S,QAAUpQ,EACT1C,EAAM8S,OACf,CAAC,GAPQ9Q,EAAQV,GAAGC,KAAKtB,KAAK6S,OAAO,CAQvC,EAEA9Q,EAAQqC,UAAU0O,gBAAkB,WAClC,OAAO1S,EAAEwD,SAAS5D,KAAKsQ,gBAAiB,CAAC,CAC3C,EAQAvO,EAAQqC,UAAU2O,cAAgB,SAASC,EAAU9B,EAAO+B,GACtDxQ,EAAO,CAACyQ,QAAS9S,EAAEU,IAAIkS,EAAU,KAAK,EAC9B9B,MAAOA,EACP+B,UAAWA,CAAS,EAEhC,OAAOlR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,mBAAoBL,CAAI,EAAExC,KAAK,WACrE,OAAO+S,CACT,CAAC,CACH,EAQAjR,EAAQqC,UAAU+O,gBAAkB,SAASH,GAC3C,IAAIjT,EAAQC,KACR0Q,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAEhC,OAAOjR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,kBAAmB,CAAE4N,KAAMA,CAAK,CAAC,EAAEzQ,KAAK,SAASwC,GAGvF,OAFAV,EAAQJ,KAAKsG,MAAM,8BAAgCC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EACvE,IAAIrG,EAAQK,SAASK,EAAK4F,UAAWtI,EAAM8K,SAAStE,kBAAkB9D,EAAK6F,WAAW,EAAG7F,CAAI,CAE7G,CAAC,CACH,EAQAV,EAAQqC,UAAUgP,qBAAuB,WACvC,IAEA7E,EAAmBnO,EAAEqO,OAAOzO,KAAKgN,UAAW,SAASzE,GAAW,OAAOA,EAAQmG,QAAU,CAAC,EAC1F2E,EAAejT,EAAEU,IAAIyN,EAAkB,KAAK,EAEtB5G,EAAE,oBAAoB,EAE5C,OAAO5F,EAAQE,WAAWqR,SAAStT,KAAK8C,GAAI,eAAgB,CAAC4N,KAAM2C,CAAY,CAAC,CAClF,EAQAtR,EAAQqC,UAAUmP,aAAe,WAC/B,IAEA1O,EAAU,CAAE2O,SAAUxT,KAAK0G,KAAO,MAAO,EAEzC,OAAO3E,EAAQE,WAAWwR,KAAKzT,KAAK8C,GAAI,eAAgB,KAAM+B,CAAO,CACvE,EASA9C,EAAQqC,UAAUsP,QAAU,SAAS7O,GACnC,IAAI9E,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,SAAU+B,CAAO,EACtD5E,KAAK,WAEJ,OADAF,EAAM8K,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,EACpC,CAAA,CACT,CAAC,CACL,EASA/C,EAAQqC,UAAUuP,iBAAmB,SAASjD,GAC5C,IAAI3Q,EAAQC,KAAM4T,EAAa5T,KAAKgN,UAAUxI,OA0B9C,OAvBApE,EAAEyT,aAAa7T,KAAKgN,UAAW,SAASzE,EAAS7D,GAC/C,IAAIoP,EAAgB1T,EAAE2T,UAAUrD,EAAM,SAAShH,GAC7C,OAAOnB,EAAQmB,KAAOA,CACxB,CAAC,EACmB,CAAC,EAAjBoK,GACFpD,EAAKzG,OAAO6J,EAAe,CAAC,EAC5B,OAAO/T,EAAM8M,QAAQtE,EAAQmB,KACzBnB,EAAQmB,KAAO3J,EAAMgP,kBACvB,OAAOhP,EAAMgP,iBACfhP,EAAMiN,UAAU/C,OAAOvF,EAAO,CAAC,EAC3BA,EAAQkP,IACVA,EAAalP,IAGf3E,EAAM8M,QAAQtE,EAAQmB,MAAQgH,EAAKlM,MAEvC,CAAC,EAEGxE,KAAKsN,UACPtN,KAAKgU,sBAAsB,EAItBJ,CACT,EASA7R,EAAQqC,UAAU6P,gBAAkB,SAASjB,EAAUnO,GACrD,IAAkB6L,EAAd3Q,EAAQC,KACRkU,EAAYnS,EAAQsJ,mBA0BxB,OAxBAqF,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAG5B,SAASmB,EAAgBC,EAAOC,GAC9B,IAAIC,EAAc5D,EAAK6D,MAAMH,EAAOC,CAAG,EACnC5R,EAAO,CAAEiO,KAAM4D,CAAY,EAE/B,OADIzP,GAAS3E,QAAQC,OAAOsC,EAAMoC,CAAO,EAClC9C,EAAQE,WAAW8B,KAAKhE,EAAM+C,GAAI,cAAeL,CAAI,EAAExC,KAAK,SAASwC,GAC1E,OAAI4R,EAAM3D,EAAKlM,QACbzE,EAAM4T,iBAAiBW,CAAW,EAC3BH,EAAgBE,EAAK7M,KAAKsJ,IAAIuD,EAAMH,EAAWxD,EAAKlM,MAAM,CAAC,IAI9D/B,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,EACpCtM,QAAQ2D,UAAUpB,EAAKqB,WAAW,IACpC/D,EAAM+D,YAAcrB,EAAKqB,aAEpB/D,EAAM4T,iBAAiBW,CAAW,EAE7C,CAAC,CACH,EAEuB,EAAG9M,KAAKsJ,IAAIoD,EAAWxD,EAAKlM,MAAM,CAAC,EAAEvE,KAAK,SAAS2T,GAExE,OADA7T,EAAMmN,kBAAoB,GACnB0G,CACT,CAAC,CACH,EAQA7R,EAAQqC,UAAUoQ,4BAA8B,SAASxB,GACvD,IACItC,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAC5ByB,EAAuB,QAAbzU,KAAKqG,KAAiB,wBAA0B,qBAE9D,OAAOtE,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI2R,EAAQ,CAAC/D,KAAMA,CAAI,CAAC,CAC9D,EAQA3O,EAAQqC,UAAUsQ,cAAgB,SAAS1B,EAAU2B,GACnD,IAAI5U,EAAQC,KACR0Q,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAEhC,OAAOjR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,eAAgB,CAAC4N,KAAMA,EAAMiE,OAAQA,CAAM,CAAC,EACjF1U,KAAK,SAASwC,GAETA,EAAK+J,QACPzM,EAAM8K,SAASzD,YAAY3E,EAAK+J,MAAM,CAC1C,CAAC,CACL,EAQAzK,EAAQqC,UAAUwQ,cAAgB,SAAS5B,EAAU2B,GACnD,IAAI5U,EAAQC,KAEZ0Q,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAC5B,OAAOjR,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,eAAgB,CAAC4N,KAAMA,EAAMiE,OAAQA,CAAM,CAAC,EACjF1U,KAAK,SAASwC,GAKb,OAJIvC,QAAQ2D,UAAUpB,EAAKqB,WAAW,IACpC/D,EAAM+D,YAAcrB,EAAKqB,aAE3B/D,EAAMmN,kBAAoB,GACnBnN,EAAM4T,iBAAiBjD,CAAI,CACpC,CAAC,CACL,EAQA3O,EAAQqC,UAAUyQ,MAAQ,SAASC,GACjC,IAAI/U,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAI,OAAQ,CAAC2O,OAAQqD,CAAU,CAAC,EAAEC,QAAQ,WAE5E,OADAhV,EAAM8K,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,EACpC,CAAA,CACT,CAAC,CACH,EAQA/C,EAAQqC,UAAUuN,MAAQ,WACxB,IAAI5R,EAAQC,KAEZ,OAAO+B,EAAQE,WAAW+S,KAAKhV,KAAK8C,GAAI9C,KAAKkK,MAAM,CAAC,EAAEjK,KAAK,SAASwC,GAIlE,OAFA1C,EAAMiO,YAAcjO,EAAMmK,MAAM,EAChCnI,EAAQJ,KAAKsG,MAAMC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAC9C3F,CACT,EAAG,SAASwS,GAIV,OAHAlT,EAAQJ,KAAKuT,MAAMhN,KAAKC,UAAU8M,EAASxS,KAAM2F,KAAAA,EAAW,CAAC,CAAC,EAE9DrI,EAAMoV,OAAO,EACNF,EAASxS,IAClB,CAAC,CACH,EAQAV,EAAQqC,UAAUqC,YAAc,SAASD,EAAME,GAC7C,OAAO1G,KAAK6K,SAASpE,YAAYD,EAAME,CAAI,CAC7C,EAOA3E,EAAQqC,UAAU+Q,OAAS,SAAStQ,GAClC,IACIrB,EADAzD,EAAQC,KAEZE,QAAQG,QAAQL,KAAKgO,YAAa,SAAS3D,EAAOC,GAChD,OAAOvK,EAAMuK,EACf,CAAC,EACD9G,EAAU4R,OAAOC,OAAO,GAAItV,EAAM8K,QAAQ,EAC1C3K,QAAQC,OAAOH,KAAMA,KAAKgO,WAAW,EACrChO,KAAKgO,YAAchO,KAAKkK,MAAM,EAC9BlK,KAAKwD,QAAUA,EACXqB,GAAWA,EAAQf,cACrB9D,KAAK8D,YAAce,EAAQf,aAEzBe,GAAWA,EAAQ4J,SACrBzO,KAAKgN,UAAY,GACjBhN,KAAKiN,iBAAmB,GACxB,OAAOjN,KAAKiQ,WAEhB,EAQAlO,EAAQqC,UAAU8F,MAAQ,SAASC,GACjC,IACsB9E,EACZiQ,EAFN5R,EAAU,GAsBd,OAbAxD,QAAQG,QAAQL,KAAM,SAASqK,EAAOC,GACzB,eAAPA,GACO,YAAPA,GACO,WAAPA,GACO,QAAPA,GACO,WAAPA,GACU,KAAVA,EAAI,KACN5G,EAAQ4G,GAAOD,EAEnB,CAAC,EACGF,GAAQnK,KAAKqF,WACf3B,EAAQ2B,UAnBYA,EAmBMrF,KAAKqF,SAlBvBiQ,EAAgB,GACpBlV,EAAEC,QAAQgF,EAAU,SAASzC,GAC3B0S,EAAc3R,KAAKf,EAAEsH,MAAMC,CAAI,CAAC,CAClC,CAAC,EACMmL,IAgBN5R,CACT,EAOA3B,EAAQqC,UAAU4P,sBAAwB,WACxC,IAAIuB,EAAkB,CAAA,EAElBvV,KAAKsN,WACPtN,KAAKiN,iBAAmB7M,EAAEqO,OAAOzO,KAAKgN,UAAW,SAASwI,EAAK3S,GAM7D,OALI2S,EAAIC,MACNF,EAAkBC,EAAIE,UACbF,EAAInJ,MAAQ,IACrBkJ,EAAkB,CAAA,GAEbC,EAAIC,OAA6B,CAAA,IAApBF,CACtB,CAAC,EAEL,EASAxT,EAAQqC,UAAU6G,QAAU,SAASL,GACnC7I,EAAQmJ,WAAWyK,WAAW,mBAAmB,EACjD,IAAI5V,EAAQC,KACRuJ,EAAWxH,EAAQV,GAAGmI,MAAM,EAoIhC,OAlIAxJ,KAAK4V,mBAAqBhL,EAC1B5K,KAAK4V,mBAAmB3V,KAAK,SAASwC,GACpC,IAAI8L,EAAmBnO,EAAEU,IAAIf,EAAMmN,kBAAmB,KAAK,EAC3DnL,EAAQL,SAAS,WACf,IAAIgP,EAAM5D,EAAS+I,EAAeC,EAAWC,EAAiB,CAAA,EAiB9D,IAfI,CAACtT,EAAKiO,MAAQ3Q,EAAMiW,UAAYvT,EAAKiO,KAAKlM,OAAS,KACrDzE,EAAMiW,UAAY,GAChBvT,EAAKyN,YACPnQ,EAAMkQ,WAAaxN,EAAKyN,WAEtBzN,EAAKwT,UACP7V,EAAEyT,aAAapR,EAAKwT,QAAS,SAASvM,EAAK7G,GACrCqT,EAAInW,EAAM8M,QAAQnD,EAAI/C,SAAS,IAC/BuP,EAAI,GAAK,CAACnW,EAAMiN,UAAUkJ,KAE5BzT,EAAKwT,QAAQhM,OAAOpH,EAAG,CAAC,CAC5B,CAAC,EACGJ,EAAKwT,QAAQzR,SACfzE,EAAM4T,iBAAiBlR,EAAKwT,OAAO,EAEnCxT,EAAK0T,QAAS,CAChB,IAAWD,EAAPrT,EAAI,EAWR,GAVAzC,EAAEC,QAAQoC,EAAK0T,QAAS,SAASzM,GAC3BxJ,QAAQ0M,YAAY7M,EAAM8M,QAAQnD,EAAI/C,SAAS,EAAE,IAEnD5G,EAAM8M,QAAQnD,GAAO7G,EACrB9C,EAAMiN,UAAU/C,OAAOpH,EAAG,EAAG,CAAC6G,IAAKA,CAAG,CAAC,EACvCqM,EAAiB,CAAA,EACjBlT,CAAC,GAEL,CAAC,EAEO,EAAJA,EAEF,IAAKqT,EAAIrT,EAAGqT,EAAInW,EAAMiN,UAAUxI,OAAQ0R,CAAC,GACvCJ,EAAY/V,EAAMiN,UAAUkJ,GAC5BnW,EAAM8M,QAAQiJ,EAAUpM,MAAQ7G,CAGtC,CACI3C,QAAQ2D,UAAUpB,EAAKqB,WAAW,IACpC/D,EAAM+D,YAAcrB,EAAKqB,aAGvBrB,EAAKiO,OAEP3O,EAAQJ,KAAKsG,MAAM,cAAgBxF,EAAKiO,KAAKlM,OAAS,WAAW,EAEjEuR,EAAiB,CAAA,EACjBhW,EAAM+K,KAAKrI,CAAI,EAGX1C,EAAMuN,WACRoD,EAAO3Q,EAAM2Q,KAAK,GAClB3Q,EAAM2Q,KAAKzG,OAAO,EAAG,CAAC,GAIxB7J,EAAE+F,OAAOpG,EAAM2Q,KAAM,SAAS0F,EAAMZ,EAAK3S,GACvC,IAAIJ,EACJ,GAAI1C,EAAMuN,SAER,GAAmB,KADnB7K,EAAOrC,EAAEiW,UAAU3F,EAAM8E,CAAG,GACnBC,MAAa,CAEpB,IADA,IAAIa,EAAQ,EACLvW,EAAM2Q,KAAK7N,EAAIyT,IACa,GAA5BvW,EAAM2Q,KAAK7N,EAAIyT,GAAO,IACO,IAA7BvW,EAAM2Q,KAAK7N,EAAIyT,GAAO,IAC3BA,CAAK,GAEP7T,EAAK6T,MAAQA,EACb7T,EAAKiT,UAAY,CAAA,EAC2C,GAAxD3V,EAAMwN,kBAAkB9H,QAAQhD,EAAKiH,IAAI/C,SAAS,CAAC,IACrDlE,EAAKiT,UAAY,CAAA,EAErB,KACS,CAACa,MAAM9T,EAAK4J,KAAK,GAAmB,GAAd5J,EAAK4J,QAClC5J,EAAK+T,aAAe,CAAA,QAItB/T,EAAO,CAACiH,IAAK8L,CAAG,EAYlB,OARAzV,EAAM8M,QAAQpK,EAAKiH,KAAO7G,EAG1BJ,EAAKiM,SAAgD,CAAC,EAAtCH,EAAiB9I,QAAQhD,EAAKiH,GAAG,EAGjD0M,EAAKzS,KAAKlB,CAAI,EAEP2T,CACT,EAAGrW,EAAMiN,SAAS,GAGhBvK,EAAKqK,UAEP+I,EAAgBzV,EAAEqW,UAAUhU,EAAKqK,QAAQ7C,OAAO,EAAG,CAAC,EAAE,GAAI,aAAa,EACvE6C,EAAUrK,EAAKqK,QAGf1M,EAAEC,QAAQyM,EAAS,SAASrK,GAC1B,IAAI+S,EAAMpV,EAAEiW,UAAUR,EAAepT,CAAI,EACrCI,EAAI9C,EAAM8M,QAAQ2I,EAAI9L,IAAI/C,SAAS,GACjC5G,EAAMiN,UAAUnK,aAAcd,EAAQK,WAC1CrC,EAAMiN,UAAUnK,GAAK,IAAId,EAAQK,SAASrC,EAAM8K,SAAS/H,GAAI/C,EAAOA,EAAMiN,UAAUnK,GAAI,CAAA,CAAI,GAE9F9C,EAAMiN,UAAUnK,GAAGiI,KAAK0K,CAAG,CAC7B,CAAC,GAGCO,GAAkBhW,EAAMuN,UAC1BvN,EAAMiU,sBAAsB,EAG9BjS,EAAQJ,KAAKsG,MAAM,WAAalI,EAAM+C,GAAK,QAAQ,EACnD/C,EAAMgN,WAAa,CAAA,EACnBhL,EAAQmJ,WAAWyK,WAAW,eAAe,EAC7CpM,EAASK,QAAQ7J,EAAMiN,SAAS,CAClC,CAAC,CACH,EAAG,SAASvK,GACVV,EAAQJ,KAAKuT,MAAMzS,CAAI,EACvBvC,QAAQC,OAAOJ,EAAO0C,CAAI,EAC1B1C,EAAM2W,QAAU,CAAA,EAChB3W,EAAMgN,WAAa,CAAA,EACnBxD,EAASrC,OAAO,CAClB,CAAC,EAEMqC,EAASQ,OAClB,EAQAhI,EAAQqC,UAAU6M,eAAiB,SAASD,GAC1C,IAAIjR,EAAQC,KAEZgR,EAAkB/Q,KAAK,SAASwC,GAC9BV,EAAQL,SAAS,WACf,IAAIoL,EAASoJ,EACK,EAAdzT,EAAK+B,SAEPsI,EAAU1M,EAAEqW,UAAUhU,EAAK,GAAI,aAAa,EAC5CA,EAAKwH,OAAO,EAAG,CAAC,EAChB7J,EAAEC,QAAQoC,EAAM,SAASkU,GACvBA,EAAiBvW,EAAEiW,UAAUvJ,EAAS6J,CAAc,EACpDT,EAAInW,EAAM8M,QAAQ8J,EAAejN,IAAI/C,SAAS,GAC1CzG,QAAQ2D,UAAUqS,CAAC,IACfnW,EAAMiN,UAAUkJ,aAAcnU,EAAQK,WAC1CrC,EAAMiN,UAAUkJ,GAAK,IAAInU,EAAQK,SAASrC,EAAM8K,SAAS/H,GAAI/C,EAAOA,EAAMiN,UAAUkJ,GAAI,CAAA,CAAI,GAE9FnW,EAAMiN,UAAUkJ,GAAGpL,KAAK6L,CAAc,EAE1C,CAAC,EACG5W,EAAMuN,WACRvN,EAAMiU,sBAAsB,CAGlC,CAAC,CACH,CAAC,CACH,EAOAjS,EAAQqC,UAAUwS,iBAAmB,WACnC,IAAItH,EAAStP,KAAK6W,WAAY,YAAc,cAE5C9U,EAAQE,WAAW8B,KAAK/D,KAAK8C,GAAIwM,CAAM,CACzC,EAQAvN,EAAQqC,UAAU0S,kBAAoB,SAAUC,GAC9C/W,KAAKmN,gBAAkB4J,CACzB,EAQAhV,EAAQqC,UAAU4S,kBAAoB,WACpC,OAAOhX,KAAKmN,eACd,CACD,EAAE,EChyCH,WACE,aAUA,SAASnL,EAAQqG,EAAW3E,EAASuT,EAAmBC,GACtDlX,KAAKqI,UAAYA,EACjBrI,KAAKmX,SAAWzT,EAChB1D,KAAKoX,kBAAoB,CAAA,EACzBpX,KAAKqX,mBAAqB,CAAA,EAC1BrX,KAAKgJ,SAAW,CAAEsO,GAAI,GAAIC,GAAI,GAAIC,IAAK,EAAG,EAC1CxX,KAAK0O,SAAW,CAAA,EAGsB,YAAlC,OAAOuI,EAAkBhX,MAEvBC,CAAAA,QAAQ0M,YAAYsK,CAAI,GAAMA,GAChClX,KAAK8K,KAAKmM,CAAiB,EAE7BjX,KAAK0J,IAAMsC,SAASiL,EAAkBvN,GAAG,EACzC1J,KAAK0O,SAAW,CAAC,CAACuI,EAAkBvI,SACpC1O,KAAKqM,MAAQL,SAASiL,EAAkB5K,KAAK,EAC7CrM,KAAKyV,MAA8C,IAAtCzJ,SAASiL,EAAkBxB,KAAK,EAC7CzV,KAAKkR,MAAQ,GACTlR,KAAKyV,OACPzV,KAAKyX,YAAczL,SAASiL,EAAkBX,KAAK,EACnDtW,KAAK0V,UAA6C,CAAA,IAAhCuB,EAAkBvB,WAE7B,CAACa,MAAMvW,KAAKqM,KAAK,GAAmB,GAAdrM,KAAKqM,QAClCrM,KAAKwW,aAAe,CAAA,IAKtBxW,KAAKiL,QAAQgM,CAAiB,CAElC,CAOAjV,EAAQP,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,mBAAoB,WAAY,cAAe,SAAUJ,EAAIK,EAAUC,EAAMC,EAAU8V,EAAgB7V,EAAUC,GAsB3K,OArBA5B,QAAQC,OAAO6B,EAAS,CACtB2V,OAAQD,EACRrW,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNM,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFC,aAAcL,EACd8V,QAAS1X,QAAQgE,KAAKpC,EAAaA,EAAY+V,MAAM,CACvD,CAAC,EAGG/V,EAAYqB,SAAS2U,qBACvB9V,EAAQ+V,MAAQjW,EAAYqB,SAAS2U,qBAErC9V,EAAQ+V,MAAQ,GAEdjW,EAAYqB,SAAS6U,mCACmC,UAA1DlW,EAAYqB,SAAS6U,oCACrBhW,EAAQiW,2BAA6B,CAAA,GAGhCjW,CACT,GAMA,IACE9B,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAOC,GACLpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3B4J,SAAS,mBAAoB,CAC5BiM,WAAY,EACZC,gBAAiB,EACjBC,QAAS,EACTC,OAAQ,EACRC,WAAY,GACd,CAAC,EACA/V,QAAQ,UAAWP,EAAQP,QAAQ,EAStCO,EAAQuW,WAAa,SAAUC,EAAOC,GACpC,IAAIC,EAAK,IAAIvG,OAAOqG,EAAO,GAAG,EAC5BG,EAAU,GAUZ,OARAvY,EAAEC,QAAQD,EAAEiQ,KAAKrO,EAAQ+V,KAAK,EAAG,SAAUa,GACzC,IAAIC,EAAO7W,EAAQ+V,MAAMa,GACC,CAAC,GAAvBC,EAAK,GAAGC,OAAOJ,CAAE,GACdtY,EAAEwD,SAAS6U,EAAcG,CAAG,GAC/BD,EAAQhV,KAAK,CAAE+C,KAAMkS,EAAKtR,YAAauR,EAAK,GAAIE,MAAOF,EAAK,EAAG,CAAC,CAEtE,CAAC,EAEMF,CACT,EAQA3W,EAAQoC,UAAU0G,KAAO,SAAUrI,GACjC,IAAI1C,EAAQC,KACZE,QAAQC,OAAOH,KAAMyC,CAAI,EACzBzC,KAAKgZ,qBAAqB,EAC1BhZ,KAAKqX,mBAAqB,CAAA,EAC1BjX,EAAEC,QAAQL,KAAKkR,MAAO,SAAU+H,EAAMpW,GACd,KAAlBoW,EAAKC,OAAO,CAAC,GACfnZ,EAAMmR,MAAMjH,OAAOpH,EAAG,EAAG,IAAMoW,CAAI,CAEvC,CAAC,EAEDjZ,KAAK2S,OAASzS,CAAAA,QAAQ2D,UAAU7D,KAAK2S,MAAM,GAAI,CAAC,CAAC3S,KAAK2S,MACxD,EAQA3Q,EAAQoC,UAAUoE,cAAgB,SAAU3D,GAC1C,IAAI9E,EAAQC,KAAM8C,EAAK9C,KAAK8C,GAE5B,SAASqW,IACP,IACA3S,EAAOpG,EAAEU,IAAIf,EAAMoX,SAAS3Q,KAAKiG,MAAM,GAAG,EAAG,SAAUC,GACrD,MAAO,SAAWA,EAAUC,gBAAgB,CAC9C,CAAC,EAED,OADAnG,EAAKyD,OAAO,EAAG,EAAGlK,EAAMsI,SAAS,EAC1B7B,EAAKxF,KAAK,GAAG,CACtB,CAaA,OAXId,QAAQ0M,YAAY5M,KAAK8C,EAAE,GAAK+B,GAAWA,EAAQuU,WACrDpZ,KAAK8C,GAAKqW,EAAU,EAAI,IAAMnZ,KAAK0J,IACnC5G,EAAK9C,KAAK8C,IAER+B,GAAWA,EAAQ4D,SAAWzI,KAAKqZ,UACrCvW,EAAKqW,EAAU,EAAI,IAAMnZ,KAAKqZ,SAG9BvW,EADE+B,GAAWA,EAAQyU,iBAChBtX,EAAQC,WAAWuE,KAAK1D,CAAE,EAG1BA,CACT,EAQAd,EAAQoC,UAAUmV,QAAU,SAAU7P,GACpC,IAA6ChF,EAAzC8U,EAAUxZ,KAAK0J,KAAO,CAAC,EAAI3J,EAAQC,KAEnCwZ,GAAUxN,SAAStC,CAAG,IACxB1J,KAAK0J,IAAMsC,SAAStC,CAAG,EACvB1J,KAAKwI,cAAc,CAAE4Q,QAAS,CAAA,CAAK,CAAC,EACvB,CAAC,EAAVI,GACFA,EAASA,EAAO7S,SAAS,EACrBzG,QAAQ2D,UAAU7D,KAAKmX,SAAStK,QAAQ2M,EAAO,IACjD9U,EAAQ1E,KAAKmX,SAAStK,QAAQ2M,GAC9BxZ,KAAKmX,SAAStK,QAAQnD,GAAOhF,EAC7B,OAAO1E,KAAKmX,SAAStK,QAAQ2M,GAC7BxZ,KAAKmX,SAASnK,UAAUtI,GAAOgF,IAAM1J,KAAK0J,IAG1CtJ,EAAEC,QAAQ,CAAC,OAAQ,KAAM,WAAY,SAAUoZ,GAC7C1Z,EAAMoX,SAASnK,UAAUtI,GAAO+U,GAAQ1Z,EAAMiJ,SAASyQ,EACzD,CAAC,IAKCzZ,KAAKmX,SAASuC,YAAYhO,gBACqB,SAAjD1L,KAAKmX,SAASuC,YAAYhO,eAAerF,MACzCrG,KAAKmX,SAASuC,YAAYhO,eAAeyD,QAAQ,EAIzD,EAQAnN,EAAQoC,UAAU4U,qBAAuB,WACvC,IAAIjZ,EAAQC,KACRM,EAAaF,EAAEU,IAAIf,EAAMoX,SAAStM,SAASvK,WAAY,OAAO,EAGlEF,EAAEC,QAAQ,CAAC,OAAQ,KAAM,KAAM,MAAO,YAAa,SAAUgG,GAC3DjG,EAAEC,QAAQN,EAAMsG,GAAO,SAAU5D,GAC3BA,EAAKiE,MAAQjE,EAAKiE,MAAQjE,EAAK/B,OACjC+B,EAAK9B,KAAO8B,EAAKiE,KAAO,KAAOjE,EAAK/B,MAAQ,IAExC+B,EAAKiE,KAAKlC,OAAS,GAErB/B,EAAKkX,UAAYlX,EAAKiE,KACfjE,EAAKiE,KAAK+F,MAAM,GAAG,EAAEjI,SAE5B/B,EAAKkX,UAAYvZ,EAAEqV,MAAMrV,EAAEwZ,KAAKnX,EAAKiE,KAAK+F,MAAM,KAAK,CAAC,EAAEA,MAAM,IAAI,CAAC,EAAEqF,QAAQ,IAAM,EAAE,IAEhFrP,EAAK/B,QACZ+B,EAAK9B,KAAO,IAAM8B,EAAK/B,MAAQ,IAC/B+B,EAAKkX,UAAYlX,EAAK/B,MAAM+L,MAAM,GAAG,EAAE,IAGzChK,EAAKoX,MAAQ7X,EAAQ4V,QAAQnV,EAAK/B,MAAO,EAAE,EAIF,GAArCN,EAAEqF,QAAQnF,EAAYmC,EAAK/B,KAAK,IAClC+B,EAAKkX,UAAYhS,EAAE,IAAI,EAC3B,CAAC,CACH,CAAC,CACH,EAQA3F,EAAQoC,UAAU0V,iBAAmB,SAAUzL,GAC7C,IAAItO,EAAQC,KAAM+Z,EAAS,GAAIzD,EAAQ,EAAG0D,EAAQ,EAelD,OAZA5Z,EAAEC,QAAQ,CAAC,KAAM,KAAM,OAAQ,SAAUgG,GACvC2T,GAASja,EAAMsG,GAAQtG,EAAMsG,GAAM7B,OAAS,EAC5CpE,EAAEC,QAAQN,EAAMsG,GAAO,SAAU5D,EAAMI,GACjCyT,EAAQjI,GACV0L,EAAOpW,KAAKlB,EAAKkX,SAAS,EAC5BrD,CAAK,EACP,CAAC,CACH,CAAC,EAEWjI,EAAR2L,GACFD,EAAOpW,KAAKgE,EAAE,mBAAqBqS,EAAQ3L,CAAI,CAAC,EAE3C0L,EAAO/Y,KAAK,IAAI,CACzB,EAQAgB,EAAQoC,UAAU6V,cAAgB,SAAU5T,EAAM6T,GAChD,IAKQrK,EALJsK,EAAU,GA4Bd,OA3BIna,KAAKqG,KACHnG,QAAQ2F,SAAS7F,KAAKqG,EAAK,GAM3B8T,GAHEtK,EAAQ7P,KAAKqG,GAAMwJ,MAAMuK,OAAOC,OAAO,IAEzCF,EAAUna,KAAKqG,GAAMoM,UAAU,EAAG5C,EAAMnL,KAAK,GAC3BoN,QAAQ,oBAAqB,IAAI,EAEhDqI,GAAQ3V,SACX2V,EAAUna,KAAKqG,IAEU,EAApBrG,KAAKqG,GAAM7B,SAKhB2V,EAHED,GAEIla,KAAKqG,GAAM,GAAGK,MAAQ1G,KAAKqG,GAAM,GAAG3F,MAChCV,KAAKqG,GAAM,GAAGK,KAAO,KAAO1G,KAAKqG,GAAM,GAAG3F,MAAO,IAFjDV,KAAKqG,GAAM,GAAGK,MAAQ1G,KAAKqG,GAAM,GAAG3F,OAAS,KAYtD4Z,SAASC,UAAUJ,CAAO,CACnC,EAQAnY,EAAQoC,UAAUoW,cAAgB,WAChC,IAAIla,EAAaF,EAAEU,IAAId,KAAKmX,SAAStM,SAASvK,WAAY,OAAO,EAEjEma,EAAkBra,EAAE+F,OAAO,CAAC,KAAM,KAAM,MAAO,YAAa/F,EAAE8D,KAAK,SAAUoS,EAAOjQ,GAClF,IAAIqU,EAAY,EAChB,OAAI1a,KAAKqG,IACPqU,EAAY1a,KAAKqG,GAAM7B,OACvBpE,EAAEC,QAAQL,KAAKqG,GAAO,SAAUsU,GACgB,GAA1Cva,EAAEqF,QAAQnF,EAAYqa,EAAUja,KAAK,GACvCga,CAAS,EAEb,CAAC,EACMpE,EAAQoE,GAGRpE,CAEX,EAAGtW,IAAI,EAfe,CAeG,EAEzB,MAAO,CAACA,KAAK4a,SAA6B,EAAlBH,CAC1B,EAOAzY,EAAQoC,UAAUyW,kBAAoB,WACpC7a,KAAKqX,mBAAqB,CAAA,EAC1B,OAAOrX,KAAK8a,MACd,EAQA9Y,EAAQoC,UAAU2W,SAAW,WAEvB/a,KAAKsX,IAAuB,EAAjBtX,KAAKsX,GAAG9S,QACrBxE,KAAKsX,GAAGjX,QAAQ,SAAUG,EAASqC,EAAGmY,GAChCxa,EAAQE,OAAsC,EAA7BF,EAAQE,MAAM+E,QAAQ,GAAG,IAC5CuV,EAAInY,GAAGnC,MAAQ4Z,SAASC,UAAU/Z,EAAQE,KAAK,EACnD,CAAC,EAECV,KAAKib,MAAiC,EAAzBjb,KAAKib,KAAKxV,QAAQ,GAAG,IACpCzF,KAAKib,KAAOX,SAASC,UAAUva,KAAKib,IAAI,GAE1C,IAAIlb,EAAQC,KACVkb,EAAQ,GAIRlV,EAAS,SAAUmV,GAEjB,IAgCMC,EAjCND,EAAKE,SAAW,uBACC,gCAAbF,EAAK9U,KACPL,EAAO5F,EAAE+E,KAAKgW,EAAKG,QAAS,SAAUC,GACpC,OAAOJ,EAAKK,eAAiBD,EAAcE,WAC7C,CAAC,CAAC,EAGKvb,QAAQwb,QAAQP,EAAKG,OAAO,IAClB,2BAAbH,EAAK9U,MAAgE,IAA3B8U,EAAK,mBAO7B,8BAAbA,EAAK9U,OACR8U,EAAKQ,YACP5b,EAAM4b,UAAY,CAChBC,MAAOT,EAAKU,SACd,EACIV,EAAKU,UACP9b,EAAM4b,UAAUpT,QAAUZ,EAAE,2BAA2B,EAEvD5H,EAAM4b,UAAUpT,QAAUZ,EAAE,+HAA+H,GAE3JwT,EAAKW,iBACP/b,EAAMgc,OAAS,CACbH,MAAOT,EAAKS,MACZI,YAAab,EAAKc,aAAad,EAAKc,aAAazX,OAAS,GAC1D+D,QAAS4S,EAAK5S,OAChB,IAGA6S,EAAUhb,EAAE+E,KAAKgW,EAAKG,QAAS,SAAUY,GAE3C,MAAyB,yBAAlBA,EAAU7V,MAA8D,EAA3B6V,EAAUZ,QAAQ9W,MACxE,CAAC,IAEc,CAACpE,EAAE+E,KAAKgW,EAAKG,QAAS,SAAUY,GAC7C,MAAyB,gCAAlBA,EAAU7V,IACnB,CAAC,EAGCL,EAAOoV,CAAO,EAGdhb,EAAEC,QAAQ8a,EAAKG,QAAS,SAAUY,GAChClW,EAAOkW,CAAS,CAClB,CAAC,IAIChc,QAAQ0M,YAAYuO,EAAKgB,WAAW,IAEtChB,EAAKgB,YAAchB,EAAKG,QACxBvb,EAAMqX,mBAA6D,CAAC,EAAxC+D,EAAKgB,YAAY1W,QAAQ,UAAU,GAEhD,yBAAb0V,EAAK9U,MACP8U,EAAKiB,KAAO,CAAA,EACRrc,EAAMsX,oBAAsBrV,EAAQiW,4BAClC/X,QAAQ0M,YAAYuO,EAAKkB,aAAa,IACxClB,EAAKkB,cAAgBC,SAASC,cAAc,KAAK,EACjDpB,EAAKkB,cAAcG,UAAYrB,EAAKgB,YACpCjc,QAAQG,QAAQ,CAAC,MAAO,OAAQ,UAAW,aAAc,SAAU,SAAUoc,GAK3E,IAJA,IACEjc,EACA6J,EAFEqS,EAAWvB,EAAKkB,cAAcM,iBAAiB,WAAaF,EAAS,GAAG,EAIvE5Z,EAAI,EAAGA,EAAI6Z,EAASlY,OAAQ3B,CAAC,GAEhCwH,GADA7J,EAAUN,QAAQM,QAAQkc,EAAS7Z,EAAE,GACrB4W,KAAK,UAAYgD,CAAM,EACvCjc,EAAQiZ,KAAKgD,EAAQpS,CAAK,EAC1B7J,EAAQoc,WAAW,UAAYH,CAAM,CAEzC,CAAC,EACD1c,EAAMqX,kBAAoB,CAAA,GAE5B+D,EAAKG,QAAUH,EAAKkB,cAAcG,WAGlCrB,EAAKG,QAAUH,EAAKgB,YAEtBjB,EAAMvX,KAAKwX,CAAI,GAEK,yBAAbA,EAAK9U,MACC,0BAAb8U,EAAK9U,MACQ,yBAAb8U,EAAK9U,MAEY,0BAAb8U,EAAK9U,KACP8U,EAAKE,SAAW,uBACI,yBAAbF,EAAK9U,OACZ8U,EAAKE,SAAW,uBAGlBF,EAAK0B,QAAU,CAAA,EACVzH,OAAO0H,OAAO3B,EAAM,yBAAyB,GAAK,GAAKA,EAAK4B,yBAC/D7B,EAAMvX,KAAKwX,CAAI,IAIjBA,EAAKiB,KAAO,CAAA,EACZjB,EAAKG,QAAUH,EAAKgB,YACpBjB,EAAMvX,KAAKwX,CAAI,GAGrB,EAIF,GAAInb,KAAK8a,OAEP,OAAO9a,KAAK8a,OAOd,GALS9a,KAAKkb,OACZlV,EAAOhG,KAAKkb,KAAK,EAIfA,GAASlb,KAAKmX,UAAuD,EAA3CnX,KAAKmX,SAASH,kBAAkB,EAAExS,OAE9D,IADA,IAAI3B,EAAI,EACHA,EAAI,EAAGA,EAAIqY,EAAM1W,OAAQ3B,CAAC,GACzBqY,EAAMrY,IACLqY,EAAMrY,GAAGwD,OACR,yBAA2B6U,EAAMrY,GAAGwD,MACrC,yBAA2B6U,EAAMrY,GAAGwD,QAEvC6U,EAAMrY,GAAGyY,QAAUtb,KAAKgd,qBAAqB9B,EAAMrY,GAAGyY,QAAS,CAAA,CAAK,EAEpEtb,KAAK6Q,QAAU7Q,KAAKid,oBAAoB,EAExCjd,KAAKib,KAAOjb,KAAKkd,iBAAiB,GAQxC,OAFAld,KAAK8a,OAASI,CAGhB,EAQAlZ,EAAQoC,UAAU4Y,qBAAuB,SAAUva,EAAM0a,GACvD,IAKMC,EAUN,OAdIpd,KAAKmX,SAASH,kBAAkB,GACc,EAA3ChX,KAAKmX,SAASH,kBAAkB,EAAExS,QAClC/B,GACA,CAAC,IAAMA,EAAKgD,QAAQ,aAAa,IAClC2X,EAAMd,SAASC,cAAc,KAAK,GAClCC,UAAYW,EAAiB1a,EAAK0a,eAAe,EAAI1a,EACtC,IAAI4a,KAAKD,CAAG,EAClBE,KAAKtd,KAAKmX,SAASH,kBAAkB,CAAC,EACnDvU,EAAO2a,EAAIZ,UACXY,EAAIG,OAAO,GACFJ,IACT1a,EAAOA,EAAK0a,eAAe,GAGtB1a,CACT,EAQAT,EAAQoC,UAAU6Y,oBAAsB,WACtC,OAAOjd,KAAKgd,qBAAqBhd,KAAK6Q,QAAS,CAAA,CAAK,CACtD,EAQA7O,EAAQoC,UAAU8Y,iBAAmB,WAEnC,IADA,IAAIra,EAAI,EACHA,EAAI,EAAGA,EAAI7C,KAAKib,KAAKzW,OAAQ3B,CAAC,GACjC7C,KAAKib,KAAKpY,GAAG2a,gBAAkBxd,KAAKgd,qBAAqBhd,KAAKib,KAAKpY,GAAGlC,KAAM,CAAA,CAAK,EACjFX,KAAKib,KAAKpY,GAAG4a,gBAAkBzd,KAAKgd,qBAAqBhd,KAAKib,KAAKpY,GAAG6D,KAAM,CAAA,CAAK,EAGnF,OAAO1G,KAAKib,IACd,EASAjZ,EAAQoC,UAAUsZ,iBAAmB,WACnC,IAAI3d,EAAQC,KAEZ,OAAOgC,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,MAAM,EAAEvI,KAAK,SAAUwC,GAE3E,OADAvC,QAAQC,OAAOJ,EAAO0C,CAAI,EACnBT,EAAQC,WAAWU,MAAM5C,EAAMyI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,MAAM,EAAExI,KAAK,SAAUwC,GAE7F,IAAIlC,EAAWH,EAAE+E,KAAKpF,EAAMoX,SAAStM,SAASvK,WAAY,SAAUC,GAClE,OAAOkC,EAAKwY,MAA4D,CAAC,IAArDxY,EAAKwY,KAAKrL,YAAY,EAAEnK,QAAQlF,EAASG,KAAK,CACpE,CAAC,EAGGgI,GAFAnI,IACFkC,EAAKwY,KAAO1a,EAASI,MACDqB,EAAQG,aAAagB,SAASwF,sBAAsB5I,EAAMoX,SAAStM,SAAS/H,KASlG,OARI4F,EAAgB5B,WACd4B,EAAgB5B,SAAS8B,aAC3BnG,EAAKoG,KAAO,CAAA,GACVH,EAAgB5B,SAASgC,iBAC3BrG,EAAKsG,QAAU,CAAA,GAEnB/G,EAAQL,KAAKsG,MAAM,cAAgBC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EACrElI,QAAQC,OAAOJ,EAAMiJ,SAAUvG,CAAI,EAC5BA,EAAKkb,IACd,CAAC,CACH,CAAC,CACH,EAOA3b,EAAQoC,UAAUwZ,cAAgB,WAChC,OAAO5b,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,WAAW,CACnE,EASAxG,EAAQoC,UAAUyZ,OAAS,SAAUjF,GACnC,IAAI7Y,EAAQC,KACV8d,EAAOlF,EAAI9G,QAAQ,OAAQ,GAAG,EAChC,OAAO9R,KAAKmX,SAASvE,UAAU,EAAE3S,KAAK,SAAUsP,GAC9C,IAAIzK,EAAS,CAAC1E,EAAE+E,KAAKoK,EAAQ,SAAUwO,GACrC,OAAOA,EAAMC,UAAYF,CAC3B,CAAC,EACD,OAAO/d,EAAMke,gBAAgB,MAAOrF,CAAG,EAAE3Y,KAAK,WACxC6E,GAEF/E,EAAMoX,SAASvE,UAAU,CAAE9N,OAAQ,CAAA,CAAK,CAAC,CAC7C,CAAC,CACH,CAAC,CACH,EASA9C,EAAQoC,UAAU8Z,UAAY,SAAUtF,GACtC,OAAO5Y,KAAKie,gBAAgB,SAAUrF,CAAG,CAC3C,EAUA5W,EAAQoC,UAAU6Z,gBAAkB,SAAUhL,EAAW2F,GACnDnW,EAAO,CACTwQ,UAAWA,EACXC,QAAS,CAAClT,KAAK0J,KACfwH,MAAO0H,EAAI9G,QAAQ,OAAQ,GAAG,CAChC,EAEA,GAAI8G,EACF,OAAO5W,EAAQC,WAAW8B,KAAK/D,KAAKmX,SAAS/J,IAAI,EAAG,mBAAoB3K,CAAI,CAChF,EAQAT,EAAQoC,UAAU+Z,WAAa,WAC7B,IAAIpe,EAAQC,KAEZ,OAAIA,KAAK2S,OACA3Q,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,mBAAmB,EAAEvI,KAAK,WAC9E+B,EAAQN,SAAS,WACf3B,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,CAAC,EAEM9B,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG,iBAAiB,EAAEvI,KAAK,WAC5E+B,EAAQN,SAAS,WACf3B,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,CAAC,CACL,EAUA9B,EAAQoC,UAAUga,YAAc,SAAU5X,EAAM8I,EAAQ7M,GACtD,IAAI1C,EAAQC,KACZgC,EAAQC,WAAW8B,KAAK,CAAC/D,KAAKwI,cAAc,EAAGhC,GAAMxF,KAAK,GAAG,EAAGsO,EAAQ7M,CAAI,EAAExC,KAAK,SAAUwC,GAC3FT,EAAQN,SAAS,WACf3B,EAAMse,QAAQ,CAChB,CAAC,CACH,CAAC,CACH,EAOArc,EAAQoC,UAAUka,SAAW,WAE3B,OADAte,KAAKue,iBAAmB,EACjBvc,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,EAAG,SAAS,CAChE,EAOAxG,EAAQoC,UAAUoa,eAAiB,SAAUlD,GAC3C,IAAIvb,EAAQC,KAEZ,MAAO,CAAC,CAACI,EAAE+E,KAAKmW,GAAWtb,KAAKkb,MAAMI,QAAS,SAAUH,GACvD,OAAIjb,QAAQwb,QAAQP,EAAKG,OAAO,EACvBvb,EAAMye,eAAerD,EAAKG,OAAO,EAEtB,yBAAbH,EAAK9U,MAAgD,0BAAb8U,EAAK9U,IACtD,CAAC,CACH,EAQArE,EAAQoC,UAAUqa,kBAAoB,SAAUjL,GAC9C,IAAI/Q,EAAO,CAAE+Q,SAAYA,CAAS,EAC9BzT,EAAQC,KACZ,OAAOgC,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,mBAAoBhG,CAAI,EAAExC,KAAK,WACpG+B,EAAQN,SAAS,WACf3B,EAAMiJ,SAAS0V,gBAAkBte,EAAEqO,OAAO1O,EAAMiJ,SAAS0V,gBAAiB,SAAUC,GAClF,OAAOA,EAAWnL,UAAYA,CAChC,CAAC,CACH,CAAC,CACH,CAAC,CACH,EAQAxR,EAAQoC,UAAUwa,WAAa,WAC7B,IAAI7e,EAAQC,KACVsP,EAAS,qBAKX,OAHItP,KAAK6e,YACPvP,EAAS,wBAEJtN,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,EAAG8G,CAAM,EAAErP,KAAK,SAAUwC,GAC1ET,EAAQN,SAAS,WACf3B,EAAM8e,UAAY,CAAC9e,EAAM8e,SAC3B,CAAC,CACH,CAAC,CACH,EAQA7c,EAAQoC,UAAU0a,aAAe,WAC/B,IAAI/e,EAAQC,KACVsP,EAAS,sBAQX,OANItP,KAAK0V,YACPpG,EAAS,yBAEXtP,KAAK0V,UAAY,CAAC1V,KAAK0V,UACvB1V,KAAKmX,SAASnD,sBAAsB,EAE7BhS,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,EAAG8G,CAAM,EAAEyP,MAAM,WACjE/e,KAAK0V,UAAY,CAAC1V,KAAK0V,UACvB3V,EAAMoX,SAASnD,sBAAsB,CACvC,CAAC,CACH,EAQAhS,EAAQoC,UAAU2I,WAAa,WAC7B,OAAO/M,KAAKgf,SAAWhd,EAAQ2V,OAAOS,OACxC,EASApW,EAAQoC,UAAUia,QAAU,SAAUxZ,GACpC,IAAI9E,EAAQC,KAEZ,OAAI6E,GAAWA,EAAQoa,UAAYjf,KAAKkf,oBAEjClf,KAAK2S,QACwD,CAAC,EAA7D3Q,EAAQG,aAAagB,SAASgc,8BAEhCpf,EAAMqf,mBAAqBpd,EAAQN,SAAS,WAC1CM,EAAQC,WAAWU,MAAM5C,EAAMyI,cAAc,EAAG,iBAAiB,EAAEvI,KAAK,WACtEF,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,EAA+D,IAA5D9B,EAAQG,aAAagB,SAASgc,2BAAkC,GAEhEnf,OAIPiX,EADEpS,GAAWA,EAAQwa,IACDrd,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc3D,CAAO,EAAG,SAAS,EAE/D7C,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc3D,CAAO,EAAG,MAAM,EAE3E7E,KAAKiL,QAAQgM,CAAiB,EACvC,EAQAjV,EAAQoC,UAAUgF,aAAe,SAAUF,GACzC,IAAIoO,EAAI7U,EAAO,GAAIoN,EAAQ,mBAAmByP,KAAKpW,CAAM,EACrD2G,IAEFyH,EAAKlX,EAAEU,IAAIye,mBAAmB1P,EAAM,EAAE,EAAEpD,MAAM,GAAG,EAAG,SAAU/L,GAC5D,MAAO,IAAMA,EAAMO,KAAK,EAAI,GAC9B,CAAC,EACDwB,EAAO,CAAE6U,GAAIA,CAAG,GAGlBlX,EAAEC,QAAQ,CAAC,UAAW,QAAS,SAAUoJ,GACvC,IAAIiP,EAAK,IAAIvG,OAAO1I,EAAQ,UAAU,EACtCA,EAAkB,QAATA,EAAmB,OAASA,GACrCoG,EAAQ6I,EAAG4G,KAAKpW,CAAM,KAEpBzG,EAAKgH,GAAS8V,mBAAmB1P,EAAM,EAAE,EAC7C,CAAC,EACG,QAAU7N,EAAQG,aAAagB,SAASqc,4BAA8B/c,EAAKkb,MAA2B,EAAnBlb,EAAKkb,KAAKnZ,SAC/F/B,EAAKkb,KAAOlb,EAAKkb,KAAK7L,QAAQ,gBAAiB,OAAO,GAIxD1R,EAAEC,QAAQ,CAAC,KAAM,OAAQ,SAAUoJ,GACjC,IAAIiP,EAAK,IAAIvG,OAAO1I,EAAQ,UAAU,GACtCoG,EAAQ6I,EAAG4G,KAAKpW,CAAM,KAEpBzG,EAAKgH,GAASrJ,EAAEU,IAAIye,mBAAmB1P,EAAM,EAAE,EAAEpD,MAAM,GAAG,EAAG,SAAU/L,GACrE,MAAO,IAAMA,EAAMO,KAAK,EAAI,GAC9B,CAAC,EACL,CAAC,EACIb,EAAEqf,QAAQhd,CAAI,GACjBvC,QAAQC,OAAOH,KAAKgJ,SAAUvG,CAAI,CACtC,EAQAT,EAAQoC,UAAUsb,OAAS,WACzB,OAAO1f,KAAK2f,UAAU,OAAO,CAC/B,EAQA3d,EAAQoC,UAAUwb,UAAY,WAC5B,OAAO5f,KAAK2f,UAAU,UAAU,CAClC,EAQA3d,EAAQoC,UAAUyb,SAAW,WAC3B,OAAO7f,KAAK2f,UAAU,SAAS,CACjC,EAQA3d,EAAQoC,UAAU0b,SAAW,WAC3B,OAAO9f,KAAK2f,UAAU,SAAS,CACjC,EAeA3d,EAAQoC,UAAUub,UAAY,SAAUrQ,GACtC,IAAIvP,EAAQC,KAGZ,OAAOgC,EAAQC,WAAWU,MAAM3C,KAAKwI,cAAc,EAAG8G,CAAM,EAAErP,KAAK,SAAUwC,GAC3E,IAAIiB,EAAS6E,EAKb,OAJAvG,EAAQL,KAAKsG,MAAM,OAASqH,EAAS,KAAOpH,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAC9E1E,EAAU3D,EAAMoX,SAAStM,SAAStE,kBAAkB9D,EAAK6F,WAAW,EACpEC,EAAU,IAAIvG,EAAQS,EAAK4F,UAAW3E,EAASjB,CAAI,EAE5CT,EAAQC,WAAWU,MAAM4F,EAAQC,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,MAAM,EAAExI,KAAK,SAAUwC,GAC/FT,EAAQL,KAAKsG,MAAM,OAASqH,EAAS,KAAOpH,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,EAAI,kBAAoBrI,EAAM2J,GAAG,EAC9G,IAAIhB,EAAkB1G,EAAQG,aAAagB,SAASwF,sBAAsB5I,EAAMoX,SAAStM,SAAS/H,IAuBlG,OAtBI4F,EAAgB5B,WACd4B,EAAgB5B,SAAS8B,aAC3BnG,EAAKoG,KAAO,CAAA,GACVH,EAAgB5B,SAASgC,iBAC3BrG,EAAKsG,QAAU,CAAA,GAEftG,EAAKsd,SASP3D,GADAA,GADAA,GADAA,GADAA,GAAOA,GAFHA,EAAO3Z,EAAKkb,MACJ7L,QAAQ,kBAAmB,EAAE,GAC7BA,QAAQ,kBAAmB,EAAE,GAC7BA,QAAQ,yBAA0B,EAAE,GACpCA,QAAQ,yBAA0B,EAAE,GACpCA,QAAQ,yBAA0B,EAAE,GACpCA,QAAQ,2BAA4B,EAAE,EAClDrP,EAAKkb,KAAOvB,GAEdlc,QAAQC,OAAOoI,EAAQS,SAAUvG,CAAI,EAGrC8F,EAAQyX,OAAS,CAAEzX,QAASxI,EAAOuP,OAAQA,CAAO,EAC3C/G,CACT,CAAC,CACH,CAAC,CACH,EAQAvG,EAAQoC,UAAUuN,MAAQ,WACxB,IAAI5R,EAAQC,KACVyC,EAAOzC,KAAKkK,MAAM,EAIpB,OAFAlI,EAAQL,KAAKsG,MAAM,UAAYC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAE1DpG,EAAQC,WAAW+S,KAAKhV,KAAKwI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAGhG,CAAI,EAAExC,KAAK,SAAUgV,GACzFjT,EAAQL,KAAKsG,MAAM,UAAYC,KAAKC,UAAU8M,EAAU7M,KAAAA,EAAW,CAAC,CAAC,EACrErI,EAAMwZ,QAAQtE,EAASvL,GAAG,EAC1B3J,EAAMse,QAAQ,EACdte,EAAMkJ,MAAQ,CAAA,CAChB,CAAC,CACH,EAQAjH,EAAQoC,UAAUkW,SAAW,SAAU9Z,GACrC,IACIyf,EADK,0BACEX,KAAK9e,CAAO,EACnB0f,EAAO1f,EAIX,OAHIyf,GAAgB,EAAXA,EAAEzb,QAAcyb,EAAE,KACzBC,EAAOD,EAAE,IAEJzf,EAAQsR,QAAQoO,EAAM5F,SAAS6F,QAAQD,CAAI,CAAC,CACrD,EAQAle,EAAQoC,UAAUgc,MAAQ,WACxB,IAAIrgB,EAAQC,KACVyC,EAAOzC,KAAKkK,MAAM,EAsBpB,OApBAlI,EAAQL,KAAKsG,MAAM,UAAYC,KAAKC,UAAU1F,EAAM2F,KAAAA,EAAW,CAAC,CAAC,EAG7D3F,EAAK6U,IAAuB,EAAjB7U,EAAK6U,GAAG9S,QACrB/B,EAAK6U,GAAGjX,QAAQ,SAAUG,EAASqC,EAAGmY,GACpCA,EAAInY,GAAK9C,EAAMua,SAAS9Z,CAAO,CACjC,CAAC,EAECiC,EAAK+U,KAAyB,EAAlB/U,EAAK+U,IAAIhT,QACvB/B,EAAK+U,IAAInX,QAAQ,SAAUG,EAASqC,EAAGmY,GACrCA,EAAInY,GAAK9C,EAAMua,SAAS9Z,CAAO,CACjC,CAAC,EAECiC,EAAK8U,IAAuB,EAAjB9U,EAAK8U,GAAG/S,QACrB/B,EAAK8U,GAAGlX,QAAQ,SAAUG,EAASqC,EAAGmY,GACpCA,EAAInY,GAAK9C,EAAMua,SAAS9Z,CAAO,CACjC,CAAC,EAEHiC,EAAKwY,KAAOlb,EAAMua,SAAS7X,EAAKwY,IAAI,EAE7BjZ,EAAQC,WAAW8B,KAAK/D,KAAKwI,cAAc,CAAEC,QAAS,CAAA,CAAK,CAAC,EAAG,OAAQhG,CAAI,EAAExC,KAAK,SAAUgV,GACjG,MAAuB,WAAnBA,EAASnL,QACP5J,QAAQ2D,UAAU9D,EAAMigB,MAAM,IAC5BjgB,EAAMigB,OAAO1Q,OAAO+Q,WAAW,OAAO,EACxCtgB,EAAMigB,OAAOzX,QAAQ+X,WAAa,CAAA,EACJ,WAAvBvgB,EAAMigB,OAAO1Q,SACpBvP,EAAMigB,OAAOzX,QAAQgY,YAAc,CAAA,IAEhCtL,GAGAjT,EAAQX,GAAG6F,OAAO+N,EAASxS,IAAI,CAE1C,CAAC,CACH,EAQAT,EAAQoC,UAAU6G,QAAU,SAAUgM,GACpC,IAAIlX,EAAQC,KAmCZ,OAhCAA,KAAKgf,QAAUhd,EAAQ2V,OAAOQ,gBAC9BnW,EAAQN,SAAS,WACX3B,EAAMif,SAAWhd,EAAQ2V,OAAOU,SAClCtY,EAAMif,QAAUhd,EAAQ2V,OAAOS,QACnC,EAAGpW,EAAQ2V,OAAOW,UAAU,EAG5BtY,KAAKkf,mBAAqBjI,EAAkBhX,KAAK,SAAUwC,GAiBzD,OAfKA,EAAK+d,OAUAzgB,EAAM4S,SAEd5S,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,IAZsC,CAAC,EAA7D9B,EAAQG,aAAagB,SAASgc,8BAEhCpf,EAAMqf,mBAAqBpd,EAAQN,SAAS,WAC1CM,EAAQC,WAAWU,MAAM5C,EAAMyI,cAAc,EAAG,iBAAiB,EAAEvI,KAAK,WACtEF,EAAM4S,OAAS,CAAA,EACf5S,EAAMoX,SAASrT,WAAW,EAC5B,CAAC,CACH,EAA+D,IAA5D9B,EAAQG,aAAagB,SAASgc,2BAAkC,GAOhEnd,EAAQN,SAAS,WAItB,OAHA,OAAO3B,EAAM+a,OACb/a,EAAMif,QAAUhd,EAAQ2V,OAAOU,OAC/BtY,EAAM+K,KAAKrI,CAAI,EACR1C,CACT,CAAC,CACH,CAAC,EAEMC,KAAKkf,kBACd,EAQAld,EAAQoC,UAAU8F,MAAQ,SAAUrF,GAClC,IAAI0D,EAAU,GACZkY,EAAoB5b,GAAWA,EAAQ4b,kBACvCC,EAASD,EAAoBzgB,KAAOA,KAAKgJ,SAY3C,OAXA9I,QAAQG,QAAQqgB,EAAQ,SAAUrW,EAAOC,GACnClK,EAAEwD,SAAS,CAAC,KAAM,KAAM,OAAQ0G,CAAG,GAAK,CAACmW,EAC3ClY,EAAQ+B,GAAOlK,EAAEU,IAAIuJ,EAAO,SAAUsW,GACpC,OAAOA,EAAKha,SAAS,CACvB,CAAC,GAEa,eAAP2D,GAAkC,KAAVA,EAAI,IAAamW,KAChDlY,EAAQ+B,GAAOD,EAEnB,CAAC,EAEM9B,CACT,EAQAvG,EAAQoC,UAAUwc,gBAAkB,WAClC,IAEAne,EAAO,CAAEiO,KAAM,CAAC1Q,KAAK0J,IAAK,EAC1B7E,EAAU,CAAE2O,SAAUxT,KAAK6Q,QAAU,MAAO,EAE5C,OAAO7O,EAAQC,WAAWqR,SAAStT,KAAKmX,SAASrU,GAAI,eAAgBL,EAAMoC,CAAO,CACpF,EAQA7C,EAAQoC,UAAUkP,SAAW,WAC3B,IAEAzO,EAAU,CAAE2O,SAAUxT,KAAK6Q,QAAU,OAAQxK,KAAM,gBAAiB,EACpE,OAAOrE,EAAQC,WAAWqR,SAAStT,KAAKwI,cAAc,EAAG,SAAUJ,KAAAA,EAAWvD,CAAO,CACvF,EAQA7C,EAAQoC,UAAUyc,2BAA6B,WAC7C,IAEAhc,EAAU,CAAE2O,SAAU7L,EAAE,aAAa,EAAI,IAAM3H,KAAK0J,IAAM,MAAO,EAEjE,OAAO1H,EAAQC,WAAWqR,SAAStT,KAAKwI,cAAc,EAAG,qBAAsB,KAAM3D,CAAO,CAC9F,CAED,EAAE,EC7nCH,WACE,aAMA,SAASic,IACP9gB,KAAK+gB,KAAO,CAAA,EACZ/gB,KAAKuI,QAAU,KACfvI,KAAK0c,SAAW,EAClB,CAOAoE,EAAarf,SAAW,CAAC,YAAa,WAAY,WAAY,YAAa,SAASuf,EAAWtf,EAAUuf,EAAUC,GAQjH,OAPAhhB,QAAQC,OAAO2gB,EAAc,CAC3BE,UAAWA,EACXtf,SAAUA,EACVuf,SAAUA,EACVC,UAAWA,CACb,CAAC,EAEM,IAAIJ,CACb,GAOAA,EAAa1c,UAAU+c,WAAa,SAAS5Y,GAC3CvI,KAAKuI,QAAUA,CACjB,EAOAuY,EAAa1c,UAAUgd,cAAgB,SAAS5gB,GAC9CR,KAAK0c,SAAS/Y,KAAKnD,CAAO,CAC5B,EAOAsgB,EAAa1c,UAAUid,gBAAkB,SAASC,GAChDthB,KAAKqQ,KAAO,CACVyQ,EAAaI,UAAUK,aAAa,CAClCjX,IAAK,OACLhD,YAAaK,EAAE,oBAAoB,EACnC6Z,SAAUthB,QAAQgE,KAAKod,EAAOA,EAAMG,aAAa,CACnD,CAAC,EACDX,EAAaI,UAAUK,aAAa,CAClCjX,IAAK,QACLhD,YAAaK,EAAE,gBAAgB,EAC/B6Z,SAAUthB,QAAQgE,KAAKod,EAAOA,EAAMI,SAAS,CAC/C,CAAC,GAEHthB,EAAEC,QAAQL,KAAKqQ,KAAM,SAAS/F,GAC5BwW,EAAaI,UAAUS,eAAerX,CAAG,CAC3C,CAAC,CACH,EAOAwW,EAAa1c,UAAUwd,YAAc,SAASC,EAAQC,GACpD,IAAI/hB,EAAQC,KACRihB,EAAWH,EAAaG,SACxBc,EAAU7hB,QAAQM,QAAQR,KAAKuI,QAAQwS,SAAS,EAAE+G,GAAWxG,OAAO,EAAEnW,KAAK,KAAK,EAAE,GAAG6c,IAErFC,EAAc,SAAU/G,EAAOgH,GACjC9hB,EAAEC,QAAQ6a,EAAO,SAAUC,GACR,0BAAbA,EAAK9U,KACP6b,EAAOve,KAAKwX,CAAI,EAEc,UAAvB,OAAOA,EAAKG,SACnB2G,EAAY9G,EAAKG,QAAS4G,CAAM,CAEpC,CAAC,CACH,EACIA,EAAS,GAGTpO,GAFJmO,EAAYjiB,KAAKuI,QAAQwS,SAAS,EAAGmH,CAAM,EAEvB9hB,EAAE2T,UAAUmO,EAAQ,SAASrI,GAC/C,OAAyC,GAAlCkI,EAAQtc,QAAQoU,EAAMsI,OAAO,CACtC,CAAC,GAMGC,GAHJliB,QAAQM,QAAQsgB,EAAaE,UAAU,GAAGqB,IAAI,EAAEC,SAAS,2BAA2B,EAGhErB,EAASsB,iBAAiB,EACzCC,SAAS,GAEVC,EAAiBxB,EAASyB,kBAAkB,EAC3CC,SAASd,EAAOe,MAAM,EACtBC,SAAS,GAAG,EACZC,cAAc7B,EAAS8B,UAAUC,IAAI,EAEtCC,EAAS,CACXC,SAAUhjB,QAAQM,QAAQ8b,SAAS+F,IAAI,EACvCc,OAAQ,CACNC,UAAWlB,EAAO1d,OAAQ,EAC1B0d,OAAQA,EACRpO,cAAeA,EACfuP,cAAenB,EAAOpO,EACxB,EACAwP,iBAAkB,CAAA,EAClBC,WAAYC,EACZC,aAAc,aACdC,SAAUtB,EACVW,UAAWN,EACXkB,YAAa9B,EACb+B,WAAY,CAAA,EACZC,YAAa,CAAA,EACbC,SAAU,CACR,qCACA,oFACA,wCACA,+BAAiCnc,EAAE,OAAO,EAAI,IAC9C,iDACA,sCACA,mBACA,kDACA,0FACA,wCACA,+BAAiCA,EAAE,iBAAiB,EAAI,IACxD,sEACA,yCACA,mBACA,WACA,2EACA,gFACA,gEACA,6CACA,qBACA,6EACA,4EACA,mFACA,2CACA,qBACA,WACA,wCACA,kFACA,uGACA,eACA,aACA,uBACA3G,KAAK,EAAE,EACT+iB,UAAW,CAAA,EACXC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,YAAa,CAAA,EACbC,eAAgB,WACdpkB,EAAMghB,KAAO,CAAA,EACb3gB,EAAEC,QAAQygB,EAAaE,UAAU7b,KAAK,kBAAkB,EAAE,GAAGif,uBAAuB,oBAAoB,EAC9F,SAASC,GACP,IAAIC,EAAQD,EAAahf,SAAS,GAClCnF,QAAQM,QAAQ8jB,CAAK,EAAEC,IAAI,OAAQ,WAC7BD,EAAME,aAAeF,EAAMG,eAC7BH,EAAMI,UAAUC,IAAI,UAAU,CAClC,CAAC,EAED7D,EAAapf,SAAS,WACpB4iB,EAAMI,UAAUnH,OAAO,SAAS,CAClC,EAAG,GAAI,CACT,CAAC,CACb,EACAqH,aAAc,WACZ1kB,QAAQM,QAAQsgB,EAAaE,UAAU,GAAGqB,IAAI,EAAEwC,YAAY,2BAA2B,EACvF9kB,EAAMghB,KAAO,CAAA,EAEb3gB,EAAEC,QAAQN,EAAM+kB,QAAS,SAASxa,GAChCwW,EAAaI,UAAU6D,iBAAiBza,CAAG,CAC7C,CAAC,CACH,CACF,EAOA,SAASkZ,EAAgBwB,IAGvBA,EAAW1D,MAAQthB,MAEdilB,MAAQ,WACXD,EAAWC,MAAM,CACnB,EAEAjlB,KAAKklB,YAAc,SAASxgB,GAC1B1E,KAAK8T,cAAgBpP,EACrB1E,KAAKqjB,cAAgBrjB,KAAKkiB,OAAOxd,EACnC,EAEA1E,KAAK0hB,UAAY,WACX1hB,KAAK8T,eAAiB9T,KAAKojB,WAC7BpjB,KAAKklB,YAAYllB,KAAK8T,cAAgB,CAAC,CAC3C,EAEA9T,KAAKyhB,cAAgB,WACM,EAArBzhB,KAAK8T,eACP9T,KAAKklB,YAAYllB,KAAK8T,cAAgB,CAAC,CAC3C,CAEF,CA7BAmN,EAASxN,KAAKwP,CAAM,EAAEhjB,KAAK,SAAS+kB,GAClCjlB,EAAMshB,gBAAgB2D,EAAW1D,KAAK,CACxC,CAAC,EAEDkC,EAAgB2B,QAAU,CAAC,aA2B7B,EAGAjlB,QAAQmC,OAAO,eAAe,EAC3BE,QAAQ,eAAgBue,EAAarf,QAAQ,CAEjD,EAAE,ECjOH,WACE,aAOA,SAAS2jB,EAAe5hB,GACtBxD,KAAK6K,SAAWrH,CAClB,CAOA4hB,EAAe3jB,SAAW,CAAC,KAAM,WAAY,OAAQ,aAAc,aAAc,WAAY,UAAW,UAAW,oBAAqB,SAAUJ,EAAIK,EAAUC,EAAMuJ,EAAYtJ,EAAUC,EAAUE,EAASC,EAASoJ,GAYtN,OAXAlL,QAAQC,OAAOilB,EAAgB,CAC7B/jB,GAAIA,EACJK,SAAUA,EACVC,KAAMA,EACNuJ,WAAYA,EACZjJ,WAAY,IAAIJ,EAASD,EAASM,WAAW,WAAW,EAAI,OAAQN,EAASM,WAAW,CAAC,EACzFE,SAAUJ,EACV0J,eAAgB,KAChBN,QAASA,CACX,CAAC,EAEMga,CACT,GAMA,IACEllB,QAAQmC,OAAO,eAAe,CAIhC,CAFA,MAAMC,GACJpC,QAAQmC,OAAO,gBAAiB,CAAC,cAAc,CACjD,CACAnC,QAAQmC,OAAO,eAAe,EAC3B4J,SAAS,oBAAqB,CAC7BC,UAAW,GACXC,KAAM,GACR,CAAC,EACA5J,QAAQ,iBAAkB6iB,EAAe3jB,QAAQ,EAQpD2jB,EAAe5c,cAAgB,SAASH,GACtC,MAAO,CAACA,EAAW,WAAWrH,KAAK,GAAG,CACxC,EAQAokB,EAAehhB,UAAU0G,KAAO,SAASrI,GACvCzC,KAAK+M,WAAa,CAAA,EAClB/M,KAAKkB,WAAa,GAClBlB,KAAK6M,QAAU,GACf3M,QAAQC,OAAOH,KAAMyC,CAAI,EACzBzC,KAAK8C,GAAK9C,KAAKoN,IAAI,CACrB,EAEAgY,EAAehhB,UAAUihB,aAAe,SAAS5iB,GAC/CzC,KAAKkB,WAAauB,EAElBrC,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCA,EAAQsJ,UAAY,GACpBtJ,EAAQmJ,QAAU,EACpB,CAAC,CACH,EAEAuY,EAAehhB,UAAUkhB,YAAc,SAASzV,EAAO0V,GACrD,IAAIxlB,EAAQC,KACR8Y,EAASsM,EAAe/jB,GAAGC,KAAK,EAEpCtB,KAAK+M,WAAa,CAAA,EAElB3M,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCoV,EAASA,EAAO7Y,KAAK,WACnB,GAAIF,EAAMgN,WAER,OADAqY,EAAezjB,KAAKsG,MAAM,qBAAuBvE,EAAQ8C,IAAI,EACtD9C,EAAQyL,QAAS,CAAC3D,KAAM,OAAQC,IAAK,CAAA,EAAOoE,MAAOA,CAAK,EAAG0V,CAAM,CAE5E,CAAC,CACH,CAAC,EAEDzM,EAAO/D,QAAQ,WACbhV,EAAMgN,WAAa,CAAA,CACrB,CAAC,CACH,EAEAqY,EAAehhB,UAAUohB,WAAa,WACpCJ,EAAezjB,KAAKsG,MAAM,oBAAoB,EAC9CjI,KAAK+M,WAAa,CAAA,CACpB,EAOAqY,EAAehhB,UAAU6J,aAAe,aASxCmX,EAAehhB,UAAUqhB,qBAAuB,WAC9CrlB,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClC,OAAOA,EAAQqL,gBACjB,CAAC,CACH,EAQAqW,EAAehhB,UAAU8K,mBAAqB,WAC5C,OAAOhP,QAAQ2D,UAAUzD,EAAE+E,KAAKnF,KAAKkB,WAAY,SAASwC,GACxD,OAAOxD,QAAQ2D,UAAUH,EAAQqL,gBAAgB,CACnD,CAAC,CAAC,CACJ,EAUAqW,EAAehhB,UAAUyK,kBAAoB,SAASC,EAAWxG,GAC/D,OAAOpI,QAAQ2D,UAAUzD,EAAE+E,KAAKnF,KAAKkB,WAAY,SAASwC,GACxD,OAAOA,EAAQ8C,MAAQ8B,GAAe5E,EAAQqL,kBAAoBD,CACpE,CAAC,CAAC,CACJ,EAQAsW,EAAehhB,UAAUC,UAAY,WACnC,IAAIqhB,EAAM,EASV,OAPKxlB,QAAQ2D,UAAU7D,KAAKkB,UAAU,GAGtCd,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCgiB,GAAOhiB,EAAQsJ,UAAUxI,MAC3B,CAAC,EAEMkhB,CACT,EAQAN,EAAehhB,UAAUK,eAAiB,SAASC,GACjD,IAAI7B,EAAGqT,EAAG3F,EAAG7M,EAAS6E,EAEtB,GAAIrI,QAAQ2D,UAAU7D,KAAKkB,UAAU,GAAc,GAATwD,EAExC,IAAKwR,EADLrT,EAAI,EACQqT,EAAIlW,KAAKkB,WAAWsD,OAAQ0R,CAAC,GAEvC,IADAxS,EAAU1D,KAAKkB,WAAWgV,GACrB3F,EAAI,EAAGA,EAAI7M,EAAQsJ,UAAUxI,OAAQ3B,CAAC,GAAI0N,CAAC,GAC9C,GAAI1N,GAAK6B,IACP6D,EAAU7E,EAAQsJ,UAAUuD,GACxB7M,EAAQ4K,aAAa/F,EAAQmB,GAAG,GAClC,OAAOnB,EAMjB,OAAO,IACT,EAQA6c,EAAehhB,UAAUgJ,IAAM,WAC7B,OAAOgY,EAAe5c,cAAcxI,KAAK6K,SAAS/H,EAAE,CACtD,EAQAsiB,EAAehhB,UAAU6K,sBAAwB,WAC/C,IAAI0W,EAAS,EACTC,EAAkBxlB,EAAE+E,KAAKnF,KAAKkB,WAAY,SAASwC,GACrD,MAAIxD,CAAAA,CAAAA,QAAQ2D,UAAUH,EAAQqL,gBAAgB,IAI5C4W,GAAUjiB,EAAQW,UAAU,EACrB,CAAA,EAEX,CAAC,EACD,OAAOshB,EAASC,EAAgB/Y,QAAQ+Y,EAAgB7W,iBAC1D,EAQAqW,EAAehhB,UAAUmK,iBAAmB,SAAS1J,GAEnD,OAAOzE,EAAEqO,OAAOrO,EAAEylB,UAAU7lB,KAAKkB,WAAY,SAAS4kB,EAAapiB,GAC7DmB,GAAWA,EAAQ2J,cACrB9K,EAAQwJ,kBAAoB9M,EAAEqO,OAAO/K,EAAQsJ,UAAW,SAAUzE,GAAW,OAAOA,EAAQmG,QAAU,CAAC,GACzGoX,EAAYpiB,EAAQZ,IAAMY,EAAQwJ,iBACpC,EAAG,EAAE,EAAG,SAAStK,GACf,OAAmB,EAAZxC,EAAE2lB,KAAKnjB,CAAC,CACjB,CAAC,CACH,EAQAwiB,EAAehhB,UAAUuK,cAAgB,WACvC,OAAOvO,EAAE4lB,IAAI5lB,EAAEqW,UAAUzW,KAAKkB,WAAY,eAAe,CAAC,CAC5D,EAWAkkB,EAAehhB,UAAU2O,cAAgB,SAAS+S,EAAa5U,EAAO+B,GACpE,IAAIxQ,EAAO,CACTyO,MAAOA,EACP+B,UAAWA,CACb,EACIgT,EAAc,GACdC,EAAW,GAWf,OATA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GACxC,IACM4N,EADgB,EAAlBsC,EAASxO,SACPkM,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAChCiT,EAAYtiB,KAAKqP,CAAQ,EACrBjJ,EAAUqb,EAAenjB,WAAW8B,KAAKjB,EAAI,mBAAoB1C,EAAEiV,OAAO5S,EAAM,CAACyQ,QAASxC,CAAI,CAAC,CAAC,EACpGwV,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,EAAEjmB,KAAK,WAC1C,OAAOG,EAAE+lB,QAAQF,CAAW,CAC9B,CAAC,CACH,EASAb,EAAehhB,UAAU6P,gBAAkB,SAAS6R,GAClD,IAKMvd,EACA7E,EANF3D,EAAQC,KAAMkmB,EAAW,GAE7B,OAAI9lB,EAAEsb,QAAQoK,CAAW,GAA4B,IAAvBA,EAAYthB,QACrCshB,EAAY,IAAMA,EAAY,GAAGpiB,SAAW,CAACtD,EAAEsb,QAAQoK,EAAY,GAAGpiB,OAAO,GAE5E6E,EAAUud,EAAY,IACtBpiB,EAAU6E,EAAQ4O,UACPlD,gBAAgB,CAAC1L,EAAQ,EAAEtI,KAAK,SAASyE,GACtD,IAAIihB,EAAS,EAUb,OATAvlB,EAAE+E,KAAKpF,EAAMmB,WAAY,SAASklB,GAChC,OAAIA,EAAetjB,KAAOY,EAAQZ,KAIhC6iB,GAAUS,EAAe/hB,UAAU,EAC5B,CAAA,EAEX,CAAC,EACMshB,EAASjhB,CAClB,CAAC,IAIDtE,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJlD,gBAAgBjB,CAAQ,EAC9CkT,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,EAEzC,EASAd,EAAehhB,UAAUoQ,4BAA8B,SAASsR,GAC9D,IAAII,EAAW,GAUf,OARA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJ3C,4BAA4BxB,CAAQ,EAC1DkT,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,CACvC,EAUAd,EAAehhB,UAAUsQ,cAAgB,SAASoR,EAAanR,GAC7D,IAAIuR,EAAW,GAUf,OARA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJzC,cAAc1B,EAAU2B,CAAM,EACpDuR,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,CACvC,EAUAd,EAAehhB,UAAUwQ,cAAgB,SAASkR,EAAanR,GAC7D,IAAIuR,EAAW,GAUf,OARA9lB,EAAEC,QAAQylB,EAAa,SAAS9S,EAAUlQ,GAClB,EAAlBkQ,EAASxO,SAEPuF,EADUiJ,EAAS,GAAGmE,SACJvC,cAAc5B,EAAU2B,CAAM,EACpDuR,EAASviB,KAAKoG,CAAO,EAEzB,CAAC,EAEMqb,EAAe/jB,GAAGiE,IAAI4gB,CAAQ,CACvC,EAOAd,EAAehhB,UAAUiiB,QAAU,WACjC,MAAO,CAAA,CACT,EAOAjB,EAAehhB,UAAU+Q,OAAS,SAAStQ,GACzCzE,EAAEC,QAAQL,KAAKkB,WAAY,SAASwC,GAClCA,EAAQyR,OAAOtQ,CAAO,CACxB,CAAC,CACH,CAED,EAAE,EC9ZH,WACE,aAMA,SAASyhB,EAAkBC,EAASC,EAAQ9kB,EAAUL,EAAIolB,EAAQC,EAAWC,EAAUC,EAAeC,EAAcC,EAAc5F,EAAW6F,EAAiBC,EAAYC,EAAYC,EAAOC,EAAQrlB,EAAajC,EAASkC,GACzN,IAGIqlB,EAHAC,EAAKrnB,KACLsnB,EAAqBpnB,QAAQM,QAAQ+lB,EAAQjK,QAAQ,EAAEnX,KAAK,OAAO,EAAEsU,KAAK,YAAY,GAAK,OAC3FqL,EAAU,GAGVyC,EAAY,GAyHhB,SAASC,EAAqBC,GAC5B,MAAI1lB,CAAAA,CAAAA,EAAQ6J,cAELyb,EAAG3b,eAAe0G,SAAS,CACpC,CA2FA,SAASsV,EAAT,GACE,OAAIlB,EAAO9iB,SACc,EAAnBikB,UAAUnjB,SACZgiB,EAAO9iB,QAAQkkB,cAHrB,GAIWpB,EAAO9iB,QAAQkkB,eAEjB,IACT,CAEA,SAASC,EAAgBhG,EAAQtZ,GAC/B,IACMuf,EADmB,OAArBJ,EAAe,IACbI,EAAqBzmB,EAAGmI,MAAM,EAClCke,EACEhB,EACG3F,KAAK,CACJtP,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCsB,YAAa9B,EACbmC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACf8D,YAAa,gBACbxE,WAAY,0BACZE,aAAc,SACduE,WAAY,SAAUC,EAAOznB,GAC3B,OAAOsnB,EAAmBle,QAAQpJ,CAAO,CAC3C,EACA2iB,OAAQ,CACN+E,YAAa1B,EACbK,aAAcQ,EAAG7jB,QACjB2kB,aAAc5f,EACd6f,kBAAmB,WACjB,OAAON,EAAmB/d,OAC5B,CACF,CACF,CAAC,EACAgV,MAAM3e,EAAEioB,IAAI,EACZtT,QAAQ,WACP2S,EAAe,IAAI,EACnBL,EAAGiB,WAAW,CAChB,CAAC,CACL,EAEJ,CAsBA,SAASC,EAAa1G,GAChBwF,EAAGmB,mBACLnB,EAAGoB,WAAa,CAAEC,EAAGH,EAAcI,EAAG9G,CAAO,GAG/C,IAAInd,EAAQ2iB,EAAG3b,eAAeuD,sBAAsB,EAkBpD,OAhBI/O,QAAQ2D,UAAUa,CAAK,GACzBA,CAAK,GAC6B,EAA9B2iB,EAAG3b,eAAesK,WACpB4S,EAAelkB,CAAK,IAItBA,EAAQ2iB,EAAG3b,eAAerH,UAAU,EAAI,EACxCgjB,EAAG3b,eAAesK,UAAYqR,EAAG3b,eAAerH,UAAU,GAGhD,CAAC,EAATK,GAAc,CAAC2iB,EAAGmB,kBACpBnB,EAAGwB,cAAcxB,EAAG3b,eAAejH,eAAeC,CAAK,CAAC,EAE1Dmd,EAAOiH,eAAe,EAEfpkB,CACT,CAKA,SAASqkB,EAAiBlH,GACpBwF,EAAGmB,mBACLnB,EAAGoB,WAAa,CAAEC,EAAGK,EAAkBJ,EAAG9G,CAAO,GAGnD,IAAInd,EAAQ2iB,EAAG3b,eAAeuD,sBAAsB,EAkBpD,OAhBI/O,QAAQ2D,UAAUa,CAAK,GACzBA,CAAK,GACD2iB,EAAG3b,eAAesK,UAAYqR,EAAG3b,eAAerH,UAAU,GAC5DukB,EAAelkB,CAAK,GAItBA,EAAQ,EAENA,EAAQ2iB,EAAG3b,eAAerH,UAAU,GAAK,CAACgjB,EAAGmB,iBAC/CnB,EAAGwB,cAAcxB,EAAG3b,eAAejH,eAAeC,CAAK,CAAC,EAExDA,EAAQ,CAAC,EAEXmd,EAAOiH,eAAe,EAEfpkB,CACT,CAKA,SAASkkB,EAAelkB,GACtB,IAAIskB,EAAW1M,SAAS2M,cAAc,+CAA+C,EACjFC,EAAYxkB,EAAQ6iB,GAEpB2B,EAAYF,EAASE,WAAcA,EAAY3B,EAAayB,EAASE,UAAYF,EAASG,eAC5F7M,SAASK,iBAAiB,6BAA6B,EAAE,GAAGyM,SAAS,CACnEC,IAAK9B,EAAY7iB,GAASskB,EAASG,aAAe5B,GAAW,EAC7D+B,SAAU,QACZ,CAAC,CACL,CAEA,SAASC,EAA2B1H,GAClC,IAAInd,EAEA2iB,EAAG3b,eAAewD,mBAAmB,GAE1B,IADbxK,EAAQ6jB,EAAa1G,CAAM,IAEzBwF,EAAGmC,uBAAuB3H,EAAQwF,EAAG3b,eAAesB,UAAUtI,EAAM,CAE1E,CAEA,SAAS+kB,EAA+B5H,GACtC,IAAInd,EAEA2iB,EAAG3b,eAAewD,mBAAmB,GAE1B,IADbxK,EAAQqkB,EAAiBlH,CAAM,IAE7BwF,EAAGmC,uBAAuB3H,EAAQwF,EAAG3b,eAAesB,UAAUtI,EAAM,CAE1E,CA8EA,SAASglB,IACP,OAAI3nB,EAAQ6J,aACHyb,EAAG3b,eAAexK,WAElB,CAACmmB,EAAG3b,eACf,CAIA,SAASie,EAAiBphB,EAAS7D,GACjC,IAAIklB,EAAaC,EAAiBC,EAAYplB,EAC9C2iB,EAAG0C,KAAKC,SAAW3C,EAAG3b,eAAeiD,cAAc,EAC/CpG,IAEU,EAAR7D,IAEFklB,EAAcvC,EAAG3b,eAAesB,UADhC8c,EAAAA,IAGEplB,EAAQ2iB,EAAG3b,eAAesB,UAAUxI,SACtCqlB,EAAkBxC,EAAG3b,eAAesB,UAAUtI,IAC5CklB,EACEA,EAAYjX,QAAUkX,GAAmB,CAACA,EAAgBlX,SAC5DmX,EAAYplB,EACZklB,EAAcC,GAGTA,IACPC,EAAYplB,EACZklB,EAAcC,GAEZD,GACFvC,EAAG3b,eAAesK,UAAY8T,EAC9BrD,EAAOwD,GAAG,+BAAgC,CAAEnb,UAAW8a,EAAYlgB,GAAI,CAAC,GAGxE+c,EAAOwD,GAAG,sBAAsB,EAGtC,CAheA7C,EAAa,CACXvW,QAAS,UACToK,KAAM,OACNiP,KAAM,OACNnE,KAAM,OACNoE,QAAS,gBACX,EAEAnqB,KAAKoqB,QAAU,WA4Cf,IAA0B/Z,EA1CxBkW,EAAQ8D,mBAAqBhD,EAE7BrnB,KAAKsqB,QAAUvoB,EACf/B,KAAKuqB,SAAW3D,EAChB5mB,KAAKwD,QAAUqjB,EACf7mB,KAAK0L,eAAiBob,EACtB9mB,KAAK4nB,cAAgB,KACrB5nB,KAAK+pB,KAAO,CAAEjR,OAAQ,CAAA,EAAOkR,SAAU,CAAE,EACzChqB,KAAKwqB,YAAc,CAAA,EACnBxqB,KAAKwoB,iBAAmB,CAAA,EACxBxoB,KAAKyoB,WAAa,KAEb1mB,EAAQ6J,cACX5L,KAAK0L,eAAekH,UAAU,GA6BRvC,EA3BPyU,GA4BZnhB,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,eAAe,EACtBL,YAAaK,EAAE,QAAQ,EACvB6Z,SAAU6F,EAAGlZ,UACf,CAAC,CAAC,EACFkC,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,gBAAgB,EACvBL,YAAaK,EAAE,qBAAqB,EACpC6Z,SAAU,SAASK,GACQ,OAArBwF,EAAGO,eACLP,EAAGoD,WAAW5I,CAAM,CACxB,CACF,CAAC,CAAC,EACFxR,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,SAAS,EAChBL,YAAaK,EAAE,oCAAoC,EACnD6Z,SAAU6F,EAAGqD,0BACf,CAAC,CAAC,EACFra,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,QACLhD,YAAaK,EAAE,aAAa,EAC5B6Z,SAAU6F,EAAGmC,sBACf,CAAC,CAAC,EACFnZ,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,cACLhD,YAAaK,EAAE,uBAAuB,EACtC6Z,SAAU6F,EAAGmC,sBACf,CAAC,CAAC,EACFnZ,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,KACLhD,YAAaK,EAAE,gBAAgB,EAC/B6Z,SAAU+G,EACVoC,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFta,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,OACLhD,YAAaK,EAAE,oBAAoB,EACnC6Z,SAAUuH,EACV4B,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFta,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,WACLhD,YAAaK,EAAE,4BAA4B,EAC3C6Z,SAAU+H,EACVoB,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFta,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,aACLhD,YAAaK,EAAE,gCAAgC,EAC/C6Z,SAAUiI,EACVkB,eAAgB,CAAC,eACnB,CAAC,CAAC,EACFvqB,EAAEC,QAAQ,CAAC,YAAa,UAAW,SAASuqB,GAC1Cva,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAKsgB,EACLtjB,YAAaK,EAAE,mCAAmC,EAClD6Z,SAAU6F,EAAGwD,6BACf,CAAC,CAAC,CACJ,CAAC,EAGDzqB,EAAEC,QAAQgQ,EAAM,SAAS/F,GACvB4W,EAAUS,eAAerX,CAAG,CAC9B,CAAC,EAxFDpK,QAAQM,QAAQ+lB,CAAO,EAAEuE,GAAG,eAAgBtD,CAAoB,EAChEhB,EAAOuE,IAAI,WAAY,WACrB7qB,QAAQM,QAAQ+lB,CAAO,EAAEyE,IAAI,eAAgBxD,CAAoB,EAEjEpnB,EAAEC,QAAQykB,EAAS,SAASxa,GAC1B4W,EAAU6D,iBAAiBza,CAAG,CAChC,CAAC,CAKH,CAAC,EAGDkc,EAAOyE,OAAO,WAAa,OAAO5D,EAAG3b,eAAe5H,WAAa,EAAG,SAASA,GAC3E,IAAIonB,EAAQ,GACRpnB,IACFonB,GAAS,IAAMpnB,EAAc,MAC/BonB,GAAS7D,EAAG3b,eAAe+B,aAE3B8Y,EAAQjK,SAAS4O,MADjBA,GAAS,MAAQ5D,CAEnB,CAAC,CACH,EA2EAtnB,KAAKmrB,cAAgB,SAASC,GAE5B,OAAOprB,KAAK0L,eAAewD,mBAAmB,GAAK,CAAC,CAACkc,CACvD,EAEAprB,KAAKwL,KAAO,SAAS6f,GACnB,GAAIA,CAAAA,EAIF,OAAOjE,EAAWC,EAAGiD,QAAQ/e,OAAOC,MAHpC6b,EAAG3b,eAAeyD,QAAQ,CAAE3D,KAAM6f,CAAM,CAAC,CAK7C,EAEArrB,KAAKsrB,SAAW,SAASD,GACvB,OAAOtpB,EAAQwJ,OAAOC,MAAQ6f,CAChC,EAEArrB,KAAKurB,UAAY,WACf,OAAOxpB,EAAQwJ,OAAOE,GACxB,EAEAzL,KAAKwrB,QAAU,WACb1pB,EAAY2pB,UAAU,EACtBzrB,KAAK0L,eAAeyD,QAAQ,CAC9B,EAEAnP,KAAKmO,WAAa,SAAS0T,GACzBwF,EAAG0C,KAAKjR,OAAS,CAAA,EACjBoO,EAAM,QAAQ,EACVrF,GACFA,EAAOiH,eAAe,CAC1B,EAEA9oB,KAAK0rB,aAAe,WAEdrE,EAAG7jB,SACL6jB,EAAG7jB,QAAQoB,cAAc,EAAE+mB,QAAQthB,MAAMhK,QAAQ,IAC/CqD,EAAQoT,kBAAkB,EAAE,CAC9B,CAAC,EAEHuQ,EAAG0C,KAAKjR,OAAS,CAAA,EACjBuO,EAAG3b,eAAeyD,QAAQkY,EAAGiD,QAAQ/e,MAAM,EAAEtL,KAAK,WAC5ConB,EAAG3b,eAAeqD,mBACpBsY,EAAG3b,eAAesK,UAAYqR,EAAG3b,eAAemB,QAAQwa,EAAG3b,eAAeqD,kBAE9E,CAAC,CACH,EAEA/O,KAAK4rB,qBAAuB,WAC1B,OAAO9pB,EAAYqB,SAAS0oB,4BAC9B,EAEA7rB,KAAK8rB,YAAc,SAASvjB,EAAS+G,GACnC,IAAIyc,EAAM,CAAC9E,EAAW+E,QAAQ,EACnB,0BACAhsB,KAAKwD,QAAQV,IACpBmpB,EAAMjsB,KAAKwD,QAAQV,GAAK,IAAM0E,KAAK0kB,OAAO,EAAG,GAAI,EACjD3jB,IAEFwjB,EAAIpoB,KAAKojB,EAAgBA,EAAgBxe,EAAQ4O,SAAS3Q,IAAI,CAAC,CAAC,EAChEulB,EAAIpoB,KAAK4E,EAAQmB,GAAG,EACpBuiB,EAAM1jB,EAAQC,cAAc,GAE1B8G,IACF2c,GAAO,IAAM3c,EACbyc,EAAIpoB,KAAK2L,CAAM,GAEjByc,EAAMA,EAAI/qB,KAAK,GAAG,EACJulB,EAAQ9S,KAAKsY,EAAKE,EACL,CAAC,cACA,eACA,YACA,aACA,gBACA,WACA,YACA,iBACAjrB,KAAK,GAAG,CAAC,CACvC,EAEAhB,KAAKsoB,WAAa,WACZ/B,EAAQjK,SAAS+F,KAAKqC,UAAUyH,SAAS,OAAO,GAClD5F,EAAQtB,MAAM,CAClB,EAgDAjlB,KAAKosB,uBAAyB,SAAS7jB,EAAS+G,EAAQ+c,GACtD,MAAA,EAAKpF,EAAWqF,SACmC,SAA9CxqB,EAAYqB,SAASopB,uBAAoCF,CAAAA,IAC5DrsB,KAAK8rB,YAAYvjB,EAAS+G,CAAM,EACzB,GAGX,EAEAtP,KAAKyqB,WAAa,SAAS5I,EAAQwK,GAC5BrsB,KAAKosB,uBAAuB,KAAM,MAAOC,CAAO,GACnDrsB,KAAKwD,QAAQwE,YAAY,EAAE/H,KAAK,SAASsI,GACvCsf,EAAgBhG,EAAQtZ,CAAO,CACjC,CAAC,CAEL,EA8FAvI,KAAK6oB,cAAgB,SAAStgB,IACxBxG,EAAQ6J,cACVyb,EAAGmB,iBAAmB,CAAA,EACtB/B,EAAOwD,GAAG,sCAAuC,CAAEuC,UAAWzF,EAAgBA,EAAgBxe,EAAQ4O,SAAS3Q,IAAI,CAAC,EAAGsI,UAAWvG,EAAQmB,GAAI,CAAC,EAAEzJ,KAAK,YAErJ,EAAE8e,MAAM,IACP0N,QAAQvX,MAAMwX,CAAG,CACnB,CAAC,IASDrF,EAAGmB,iBAAmB,CAAA,EACtB/B,EAAOwD,GAAG,+BAAgC,CAAEuC,UAAWzF,EAAgBA,EAAgBxe,EAAQ4O,SAAS3Q,IAAI,CAAC,EAAGsI,UAAWvG,EAAQmB,GAAI,CAAC,EAAEzJ,KAAK,YAE9I,EAAE8e,MAAM,IACP0N,QAAQvX,MAAMwX,CAAG,CACnB,CAAC,IAbE3X,QAAQ,KACPsS,EAAGmB,iBAAmB,CAAA,EAClBnB,EAAGoB,aACLpB,EAAGoB,WAAWC,EAAErB,EAAGoB,WAAWE,CAAC,EAC/BtB,EAAGoB,WAAa,KAEpB,CAAC,CAgBP,EAEAzoB,KAAKwpB,uBAAyB,SAAS3H,EAAQtZ,GAC7C,IACIuL,EAAe6Y,EAAmB9pB,EADlC8R,EAAS0S,EAAG3b,eAKhB,GAAI,EAFCnD,EAAAA,GACOoM,EAAO3F,gBAAgB,GAEjC,MAAO,CAAA,EAKT,GAHAzG,EAAQmG,SAAW,CAACnG,EAAQmG,SAGxBmT,EAAO+K,UAAqC,EAAzBjY,EAAOhG,cAAc,EAAO,CAIjD,IADAge,GAFA7Y,EAAgBa,EAAO9H,QAAQtE,EAAQmB,MAEH,EACR,GAArBijB,GACA,CAAChY,EAAO3H,UAAU2f,GAAmBje,UAC1Cie,CAAiB,GACnB,GAAIA,EAAoB,EAGtB,IADAA,EAAoB7Y,EAAgB,EAC7B6Y,EAAoBhY,EAAOtQ,UAAU,GACrC,CAACsQ,EAAO3H,UAAU2f,GAAmBje,UAC1Cie,CAAiB,GAErB,GAAyB,GAArBA,GAA0BA,EAAoBhY,EAAOtQ,UAAU,EACjE,IAAKxB,EAAI2E,KAAKsJ,IAAIgD,EAAe6Y,CAAiB,EAC7C9pB,GAAK2E,KAAK6G,IAAIyF,EAAe6Y,CAAiB,EAC9C9pB,CAAC,GACJ8R,EAAO3H,UAAUnK,GAAG6L,SAAW,CAAA,CAErC,CAEAiG,EAAOpG,iBAAiB,CAAEC,YAAa,CAAA,CAAK,CAAC,EAC7C6Y,EAAG0C,KAAKC,SAAW3C,EAAG3b,eAAeiD,cAAc,EACnDkT,EAAOiH,eAAe,EACtBjH,EAAOgL,gBAAgB,CACzB,EA8CA7sB,KAAK6qB,8BAAgC,SAAShJ,GAC5C,IAAItT,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAEjC,OAArB8Y,EAAGO,eAAqD,EAA3BxnB,EAAE2lB,KAAKxX,CAAgB,IACtD8Y,EAAGO,cAAgBT,EAAO2F,QAAQnlB,EAAE,cAAc,EACdA,EAAE,wDAAwD,EAC1D,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EACtD1H,KAAK,WACJ,IAAI+sB,EAAwB3F,EAAG3b,eAAewD,mBAAmB,EACjEmY,EAAG3b,eAAeuI,gBAAgB1F,CAAgB,EAAEtO,KAAK,SAASyE,GAC5D3C,EAAQ6J,aAGNohB,GACFvG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBqD,EAAuBtoB,CAAK,CAEjD,EAAG,SAASuQ,GACVoS,EAAGO,cAAgBT,EAAO2F,QAAQnlB,EAAE,SAAS,EACdA,EAAE,iGAAiG,EACnG,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EAC/C1H,KAAK,WACJonB,EAAG3b,eAAeuI,gBAAgB1F,EAAkB,CAAE0e,aAAc,CAAA,CAAK,CAAC,EACvEhtB,KAAK,SAASyE,GACT3C,EAAQ6J,aAGNohB,GACFvG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBqD,EAAuBtoB,CAAK,CAEjD,CAAC,EACAqQ,QAAQ,WACPsS,EAAGO,cAAgB,IACrB,CAAC,CACL,CAAC,CACL,CAAC,CACH,CAAC,EACA7S,QAAQ,WACPsS,EAAGO,cAAgB,IACrB,CAAC,GAEH/F,EAAOiH,eAAe,CACxB,EAEA9oB,KAAK0qB,2BAA6B,WAChC,IAAIwC,EAAsB7F,EAAG3b,eAAewD,mBAAmB,EAC3DX,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EACzB,IAA7BnO,EAAE2lB,KAAKxX,CAAgB,GAAW2e,IAEpC3e,EAAmB,CAAC8Y,EAAG3b,eAAesD,gBAAgB,IACzB,EAA3B5O,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAe8I,4BAA4BjG,CAAgB,EAAEtO,KAAK,WACnE,IAAIktB,EAAY,IAAM9F,EAAG7jB,QAAQV,GAAK,eACR,QAA1BukB,EAAG3b,eAAerF,OACpB8mB,EAAY,IAAM9F,EAAG7jB,QAAQ4C,kBAAkB,MAAM,EAAEtD,IAEzDukB,EAAG3b,eAAekJ,cAAcrG,EAAkB4e,CAAS,EAAEltB,KAAK,SAASyE,GACrE3C,EAAQ6J,aAGNshB,GACFzG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBuD,EAAqBxoB,CAAK,CAE/C,CAAC,CACH,CAAC,CACL,EAEA1E,KAAKotB,qBAAuB,SAASD,GACnC,IAAI5e,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAegJ,cAAcnG,EAAkB,IAAM4e,CAAS,EAAEltB,KAAK,WACtE0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,yBAA0B0f,EAAG3b,eAAeiD,cAAc,CAAC,CAAC,EAC1E+U,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACL,EAEAxtB,KAAKytB,qBAAuB,SAASN,GACnC,IAAID,EAAsB7F,EAAG3b,eAAewD,mBAAmB,EAC3DX,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EACtD+H,EAAQ+Q,EAAG3b,eAAeiD,cAAc,EACb,EAA3BvO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAekJ,cAAcrG,EAAkB,IAAM4e,CAAS,EAAEltB,KAAK,SAASyE,GAC/EiiB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,wBAAyB2O,CAAK,CAAC,EAC7CoN,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,EAChBzrB,EAAQ6J,aAGNshB,GACFzG,EAAOwD,GAAG,6BAA6B,EAIzCN,EAAiBuD,EAAqBxoB,CAAK,CAE/C,CAAC,CACL,EAEA1E,KAAK0tB,UAAY,WACf,IAAIpX,EAAQ,EACZlW,EAAEC,QAAQqpB,EAAkB,EAAG,SAAS/U,GACtC,IAAI9R,EAAI,EAAG2B,EAASmQ,EAAO3H,UAAUxI,OAErC,IADAmQ,EAAOzH,kBAAoB,GACpBrK,EAAI2B,EAAQ3B,CAAC,GAClB8R,EAAO3H,UAAUnK,GAAG6L,SAAW,CAAC2Y,EAAGmD,YAChC7V,EAAO3H,UAAUnK,GAAG6L,UACrBiG,EAAOzH,kBAAkBvJ,KAAKgR,EAAO3H,UAAUnK,EAAE,EACjDyT,CAAK,EAEX,CAAC,EACD+Q,EAAGmD,YAAc,CAACnD,EAAGmD,YACrBnD,EAAG0C,KAAKC,SAAW1T,CACrB,EAEAtW,KAAK2tB,iBAAmB,WACtBvtB,EAAEC,QAAQqpB,EAAkB,EAAG,SAAS/U,GACtCA,EAAOzH,kBAAoB,GAC3B9M,EAAEC,QAAQsU,EAAO3H,UAAW,SAASzE,GACnCA,EAAQmG,SAAW,CAAA,CACrB,CAAC,CACH,CAAC,EACD2Y,EAAG0C,KAAKC,SAAW,CACrB,EAEAhqB,KAAK4tB,8BAAgC,WACnC,IAAIrf,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeqH,cAAcxE,EAAkB,YAAa,KAAK,EAAEtO,KAAK,SAAS+S,GAClF5S,EAAEC,QAAQ2S,EAAU,SAASzK,GAC3BA,EAAQsW,UAAY,CAAA,CACtB,CAAC,CACH,CAAC,CACL,EAEA7e,KAAK6tB,6BAA+B,WAClC,IAAItf,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeqH,cAAcxE,EAAkB,OAAQ,QAAQ,EAAEtO,KAAK,SAAS+S,GAChF5S,EAAEC,QAAQ2S,EAAU,SAASzK,GACvBA,EAAQoK,QACVpK,EAAQ4O,SAASrT,WAAW,GAC9ByE,EAAQoK,OAAS,CAAA,CACnB,CAAC,CACH,CAAC,CAEL,EAEA3S,KAAK8tB,2BAA6B,WAChC,IAAIvf,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeqH,cAAcxE,EAAkB,OAAQ,KAAK,EAAEtO,KAAK,SAAS+S,GAC7E5S,EAAEC,QAAQ2S,EAAU,SAASzK,GACtBA,EAAQoK,QACXpK,EAAQ4O,SAASrT,WAAW,GAC9ByE,EAAQoK,OAAS,CAAA,CACnB,CAAC,CACH,CAAC,CAEL,EAEA3S,KAAK+tB,wBAA0B,SAASlM,GACtC,IAAI9hB,EAAQC,KACRuO,EAAmB8Y,EAAG3b,eAAe6C,iBAAiB,EAC3B,EAA3BnO,EAAE2lB,KAAKxX,CAAgB,GACzB8Y,EAAG3b,eAAeyH,gBAAgB5E,CAAgB,EAAEtO,KAAK,SAASsI,GAC3DxI,EAAMqsB,uBAAuB7jB,EAAS,MAAM,GAC/CA,EAAQmV,iBAAiB,EAAEzd,KAAK,WAC9B4nB,EAAgBhG,EAAQtZ,CAAO,CACjC,CAAC,CAEL,CAAC,CAEL,CAEF,CAUA,SAASylB,EAA2CC,GASlD,OARAA,EAAU,GAAG1K,WAAWnf,UAAU8pB,YAAc,WAGL,gBAArCluB,KAAKmuB,SAAS1c,OAAO,EAAEgI,KAAK,IAAI,EAClCzZ,KAAKouB,WAAW,EAEhBpuB,KAAKopB,SAAS,CAAC,CACnB,EACO6E,CACT,CA7rBA3H,EAAkBnB,QAAU,CAAC,UAAW,SAAU,WAAY,KAAM,SAAU,YAAa,WAAY,gBAAiB,eAAgB,eAAgB,YAAa,kBAAmB,aAAc,aAAc,UAAW,SAAU,cAAe,UAAW,WA2qBnQjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,oBAAqB+C,CAAiB,EAKpD0H,EAA2C7I,QAAU,CAAC,aAatDjlB,QACGmC,OAAO,mCAAmC,EAC1CgsB,UAAU,oCAAqCL,CAA0C,CAE7F,EAAE,ECzsBH,WACE,aAMA,SAASM,EAAoB9H,EAAQtb,EAAYub,EAAQ8H,EAAc7sB,EAAU6kB,EAASiI,EAASC,EAAUC,EAAYhI,EAAWC,EAAUK,EAAYE,EAAOH,EAAiBI,EAAQvlB,EAAUsf,EAAWrhB,EAASkC,EAASqjB,EAAgBuJ,EAAM7sB,EAAa8kB,EAAe5kB,GACjR,IACIwB,EACAE,EAFA2jB,EAAKrnB,KAGL8kB,EAAU,GAEd0B,EAAOoI,YAAc,WACnBlI,EAAUmI,KAAK,CACjB,EAEA7uB,KAAKoqB,QAAU,WAuCf,IAA0B/Z,EAtCxBrQ,KAAKsqB,QAAUvoB,EACf/B,KAAKuqB,SAAW3D,EAChB5mB,KAAKuI,QAAUvG,EACfhC,KAAK8uB,2BAA6B,CAAA,EAGlC9uB,KAAK+uB,MAAM,EAEX/uB,KAAK8Y,OAAS,CACZkW,WAAY,EACZnf,MAAO,MACP0V,OAAQ,EACV,EACAvlB,KAAK+W,eAAiB,GAEtB/W,KAAKivB,mBAAqBntB,EAAYqB,SAAS+rB,kCAE/CrvB,EAAQkD,mBAAmBwjB,EAAQtjB,kBAAkB,EAqB7BoN,EAnBPyU,EAoBjB1kB,EAAEC,QAAQ,CAAC,YAAa,UAAW,SAASuqB,GAC1Cva,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAKsgB,EACLtjB,YAAaK,EAAE,mCAAmC,EAClD6Z,SAAU,WACJzf,EAAQotB,0BACRptB,EAAQ2J,gBACR3J,EAAQ2J,eAAegC,aACvB,CAAC3L,EAAQ2J,eAAewD,mBAAmB,GACC,IAA5CnN,EAAQ2J,eAAe0jB,eAAe,GACxCrtB,EAAQotB,yBAAyBE,cAActtB,EAAQ2J,cAAc,CACzE,CACF,CAAC,CAAC,EACF2E,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK,UACLhD,YAAaK,EAAE,iBAAiB,EAChC6Z,SAAU,WACT6F,EAAGiI,mBAAmB,CACvB,CACF,CAAC,CAAC,CACJ,CAAC,EAGDlvB,EAAEC,QAAQgQ,EAAM,SAAS/F,GACvB4W,EAAUS,eAAerX,CAAG,CAC9B,CAAC,EA3CDkc,EAAOuE,IAAI,WAAY,WAErB3qB,EAAEC,QAAQykB,EAAS,SAASxa,GAC1B4W,EAAU6D,iBAAiBza,CAAG,CAChC,CAAC,CACH,CAAC,EAEDY,EAAW6f,IAAI,8BAA+B,WAC5C1D,EAAGiI,mBAAmB,CACxB,CAAC,EAEDpkB,EAAW6f,IAAI,+BAAgC,WAC7C1D,EAAG0H,MAAM,CACX,CAAC,CACH,EA+BA/uB,KAAKuvB,mBAAqB,SAASjtB,GACjC+kB,EAAGiD,QAAQze,aAAe,CAAA,EAC1Bwb,EAAGiD,QAAQ1e,aAAe,CAAA,EAE1BpI,EAAU6jB,EAAGkD,SAAS,GACtB7mB,EAAU2jB,EAAGmI,sBACbnI,EAAGvO,OAAOyM,OAAS,GACnB8B,EAAGtQ,eAAiB,GAChBrT,GAAWA,EAAQ8C,OAErB9C,EAAQoT,kBAAkB,EAAE,EAC5BpT,EAAQyL,QAAQ,CACd3D,KAAQ,OACRC,IAAO,CAAA,EACPoE,MAAS,IACX,CAAC,EAAE5P,KAAK,WACNwmB,EAAOwD,GAAG,uBAAwB,CAAE5hB,UAAW7E,EAAQV,GAAI0pB,UAAWzF,EAAgBrjB,EAAQ8C,IAAI,CAAE,CAAC,EACrG6gB,EAAG+C,QAAQ,CACb,CAAC,GAEH9nB,EAAEuqB,gBAAgB,CACpB,EAEA7sB,KAAKyvB,kBAAoB,SAASC,GACpBA,EAASjjB,MAAM,GAAG,EAExBpM,QAAQqP,IACRC,EAAcD,EAAKzO,KAAK,EAAE2O,YAAY,EACrC5P,KAAK+W,eAAenT,SAAS+L,CAAW,GAC3C3P,KAAK+W,eAAepT,KAAKgM,CAAW,CAExC,CAAC,CACH,EAEA3P,KAAK+uB,MAAQ,WACX/uB,KAAK+W,eAAiB,GACtB/W,KAAK2vB,WAAa,CAChB1U,KAAM,GACN3D,GAAI,GACJ6U,SAAU,GACVyD,YAAa,GACb/e,QAAS,GACTwR,KAAM,GACN6H,KAAM,UACN2F,UAAW,IAAIC,KACfC,QAAS,IAAID,KACbtY,IAAK,GACLuO,KAAM,GACNiK,aAAc,IACdC,SAAU,KACVC,aAAc,EACdC,SAAU,EACVC,OAAQ,EACRC,KAAM,CAAEC,WAAY,GAAI5hB,SAAU,EAAG,EACrCwC,MAAO,EACT,CACF,EAEAlR,KAAKuwB,oBAAsB,WAoCzB,GAnCAvwB,KAAK8Y,OAAOyM,OAAS,GACrBvlB,KAAK+W,eAAiB,GAElB/W,KAAK2vB,WAAW1U,MAAsC,EAA9Bjb,KAAK2vB,WAAW1U,KAAKzW,SAC/CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQxwB,KAAK2vB,WAAW1U,IAAI,CAAC,EACzEjb,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAW1U,IAAI,GAGzCjb,KAAK2vB,WAAWrY,IAAkC,EAA5BtX,KAAK2vB,WAAWrY,GAAG9S,QAC3CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,KAAMxwB,KAAK2vB,WAAWrY,EAAE,CAAC,EAGnEtX,KAAK2vB,WAAWnY,KAAoC,EAA7BxX,KAAK2vB,WAAWnY,IAAIhT,QAC7CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,MAAOxwB,KAAK2vB,WAAWnY,GAAG,CAAC,EAGrExX,KAAK2vB,WAAWxD,UAA8C,EAAlCnsB,KAAK2vB,WAAWxD,SAAS3nB,SACvDxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,WAAYxwB,KAAK2vB,WAAWxD,QAAQ,CAAC,EACjFnsB,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAWxD,QAAQ,GAG7CnsB,KAAK2vB,WAAWc,iBAA4D,EAAzCzwB,KAAK2vB,WAAWc,gBAAgBjsB,QACrExE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,eAAgBxwB,KAAK2vB,WAAWc,eAAe,CAAC,EAG1FzwB,KAAK2vB,WAAW9e,SAA4C,EAAjC7Q,KAAK2vB,WAAW9e,QAAQrM,SACrDxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,UAAWxwB,KAAK2vB,WAAW9e,OAAO,CAAC,EAC/E7Q,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAW9e,OAAO,GAG5C7Q,KAAK2vB,WAAWtN,MAAsC,EAA9BriB,KAAK2vB,WAAWtN,KAAK7d,SAC/CxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQxwB,KAAK2vB,WAAWtN,IAAI,CAAC,EACzEriB,KAAKyvB,kBAAkBzvB,KAAK2vB,WAAWtN,IAAI,GAGzCriB,KAAK2vB,WAAWzF,MAAsC,EAA9BlqB,KAAK2vB,WAAWzF,KAAK1lB,OAAY,CAC3D,IACIksB,EADAxG,EAAO,KAEPyG,EAAQ,IAAIb,KACZc,EAAM,IAAId,KAAKa,CAAK,EACxB,OAAQ3wB,KAAK2vB,WAAWzF,MACtB,IAAK,UACH,MACF,IAAK,YACH0G,EAAIC,QAAQD,EAAIE,QAAQ,EAAI,CAAC,EAC7B5G,EAAOlqB,KAAK+wB,WAAWH,CAAG,EAC1B5wB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,aACH0G,EAAIC,QAAQD,EAAIE,QAAQ,EAAI,EAAE,EAC9B5G,EAAOlqB,KAAK+wB,WAAWH,CAAG,EAC1B5wB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,aACH0G,EAAII,SAASJ,EAAIK,SAAS,EAAI,CAAC,EAC/B/G,EAAOlqB,KAAK+wB,WAAWH,CAAG,EAC1B5wB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,SACHA,EAAOlqB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWE,SAAS,EAChD7vB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,GAAG,CAAC,EAC9D,MACF,IAAK,QACHA,EAAOlqB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWE,SAAS,EAChD7vB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQtG,EAAM,IAAI,CAAC,EAC/D,MACF,IAAK,UACHA,EAAOlqB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWE,SAAS,EAChDa,EAAS1wB,KAAK+wB,WAAW/wB,KAAK2vB,WAAWI,OAAO,EAChD/vB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKkxB,0BAA0BhH,EAAMwG,CAAM,CAAC,CAExE,CACF,CAEI1wB,KAAK2vB,WAAW5J,MAA+B,EAAvB/lB,KAAK2vB,WAAW5J,MAC1C/lB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,OAAQxwB,KAAK2vB,WAAW5J,KAAKpf,SAAS,EAAG3G,KAAK2vB,WAAWK,YAAY,CAAC,EAGhHhwB,KAAK2vB,WAAWO,cAClBlwB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,aAAc,IAAK,GAAG,CAAC,EAGjExwB,KAAK2vB,WAAWQ,UAClBnwB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,WAAY,IAAK,GAAG,CAAC,EAG/DxwB,KAAK2vB,WAAWS,QAClBpwB,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKwwB,eAAe,SAAU,IAAK,GAAG,CAAC,EAG7DxwB,KAAK2vB,WAAWze,OAAwC,EAA/BlR,KAAK2vB,WAAWze,MAAM1M,QACjDxE,KAAK8Y,OAAOyM,OAAO5hB,KAAK3D,KAAKmxB,oBAAoB,CAAC,EAGpDnxB,KAAKoxB,qBAAqB,CAC5B,EAEApxB,KAAKqxB,kBAAoB,SAAU5J,GAC7B,IAAMA,EAAM6J,UACdtxB,KAAKuwB,oBAAoB,EACzB7J,EAAUmI,KAAK,EACfxH,EAAGyH,2BAA6B,CAAA,EAEpC,EAEA9uB,KAAKoxB,qBAAuB,WAC1B,IAMMG,EAAMhwB,EACNyE,EAPFjE,EAAQ2J,eAAeqB,WAEzBsa,EAAGmK,eAAehM,WAAW,GAInBjkB,EAAY,GAClByE,EAAS,SAAShD,GAChB5C,EAAEC,QAAQ2C,EAAS,SAASJ,GACrBA,EAAEuO,WAAW,GAChB5P,EAAUoC,KAAKf,CAAC,EACdA,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3BwB,EAAOpD,EAAEyC,QAAQ,CAErB,CAAC,CACH,EAEJgiB,EAAGmK,eAAiB,IAAIpM,EAAeiC,EAAGkD,SAAS,EAAE,EAKhDxoB,EAAQ6J,eACXyb,EAAGmI,sBAAwBztB,EAAQ2J,gBAErC3J,EAAQ2J,eAAiB2b,EAAGmK,eAC5BzvB,EAAQ6J,aAAe,CAAA,EAEnB7J,EAAQ8J,aAAarH,SACvB+sB,EAAOlK,EAAGkD,SAAS,GAAGhkB,kBAAkBxE,EAAQ8J,YAAY,GACvDiL,kBAAkBuQ,EAAGtQ,cAAc,EACxCxV,EAAUoC,KAAK4tB,CAAI,EACflK,EAAGvO,OAAOkW,YAAcuC,EAAKlsB,SAASb,QACxCwB,EAAOurB,EAAKlsB,QAAQ,GAGtB9D,EAAYnB,EAAEqO,OAAO4Y,EAAGkD,SAAS,GAAGhmB,kBAAkB,CAAEe,IAAK,CAAA,CAAK,CAAC,EAAG,SAAS5B,GAC7E,MAAO,CAACA,EAAQyN,WAAW,CAC7B,CAAC,EAGH5P,EAAUlB,QAAQ,KAEjB,EACDgnB,EAAGmK,eAAenM,aAAa9jB,CAAS,EACxC8lB,EAAGmK,eAAelM,YAAY+B,EAAGvO,OAAOjJ,MAAOwX,EAAGvO,OAAOyM,MAAM,EACnC,+BAAxBkB,EAAOgL,SAAS/qB,MAClB+f,EAAOwD,GAAG,8BAA+B,CAAE5hB,UAAWgf,EAAGkD,SAAS,GAAGznB,EAAG,CAAC,EAE/E,EAGA9C,KAAK+wB,WAAa,SAAS7G,GAIzB,OAHWA,EAAKwH,YAAY,EAGd,KAFDxH,EAAK+G,SAAS,EAAI,GAAGtqB,SAAS,EAAEgrB,SAAS,EAAG,GAAG,EAEhC,IADlBzH,EAAK4G,QAAQ,EAAEnqB,SAAS,EAAEgrB,SAAS,EAAG,GAAG,CAErD,EAEA3xB,KAAK4xB,WAAa,WACZ,WAAa5xB,KAAK2vB,WAAWzF,MAC3BlqB,KAAK2vB,WAAWE,UAAY7vB,KAAK2vB,WAAWI,UAC9C/vB,KAAK2vB,WAAWI,QAAU/vB,KAAK2vB,WAAWE,UAGhD,EAEA7vB,KAAKwwB,eAAiB,SAAUqB,EAAaC,EAASC,EAAW,KAC/D,GAAID,EAAQttB,QAAUqtB,EAAYrtB,OAAQ,CACxC,IAAIwtB,EAAI,EAMR,OALIF,EAAQzR,WAAW,GAAG,IAExByR,EAAUA,EAAQrf,UADlBuf,EAAI,CACyB,EAAE/wB,KAAK,GAG9B4wB,GACN,IAAK,OACH,MAAO,CAAEriB,SAAUqiB,EAAapiB,YAAaqiB,EAASG,SAAUD,EAAGD,SAAUA,EAAU9B,SAAUjwB,KAAK2vB,WAAWM,QAAS,EAC5H,IAAK,OACH,MAAO,CAAEzgB,SAAUqiB,EAAapiB,YAAaqiB,EAASG,SAAUD,EAAGD,SAAUA,CAAS,EACxF,QACE,MAAO,CAAEviB,SAAUqiB,EAAapiB,YAAaqiB,EAASG,SAAUD,CAAE,CACtE,CACF,CACF,EAEAhyB,KAAKkxB,0BAA4B,SAAUgB,EAAUxB,GACnD,MAAO,CAAElhB,SAAU,eAAgBC,YAAa,IAAKyiB,SAAUA,EAAUxB,OAAQA,EAAQuB,SAAU,CAAE,CACvG,EAEAjyB,KAAKmxB,oBAAsB,WACzB,MAAO,CAAE3hB,SAAU,QAASC,YAAa,IAAKyB,MAAOmW,EAAGsI,WAAWze,MAAO+gB,SAAU,CAAE,CACxF,EAEAjyB,KAAKmyB,mBAAqB,SAAU3uB,GAClCA,EAAQc,UAAY,CAACd,EAAQc,UACxBtE,KAAKoyB,oBACRpyB,KAAKoyB,kBAAoB5D,EAAQ6D,SAAS,WACxC7uB,EAAQe,kBAAkB,CAAEO,OAAQ,CAAA,EAAMoB,UAAW,CAAA,CAAK,CAAC,CAC7D,EAAG,GAAI,GAETlG,KAAKoyB,kBAAkB,CACzB,EAEApyB,KAAKsyB,UAAY,SAAS9uB,GAkBxB,SAAS+uB,EAA8B/L,EAAQE,EAAW8L,GACxD,IAAInL,EAAKrnB,KAETqnB,EAAGtW,QAAU,CAAA,EACbsW,EAAG5Y,OAAS,CAAE/H,KAAM,EAAG,EACvB2gB,EAAG7jB,QAAU,IAAI3D,EAAQ,CACvBiD,GAAI0vB,EAAW1vB,GACf4D,KAAM8rB,EAAW9rB,IACnB,CAAC,EACD2gB,EAAGpC,MAMH,WACEyB,EAAUmI,KAAK,CACjB,EANAxH,EAAG7jB,QAAQoB,cAAc,CAAEE,OAAQ,CAAA,EAAMQ,IAAK,CAAA,CAAK,CAAC,EAAErF,KAAK,WACzDonB,EAAGtW,QAAU,CAAA,CACf,CAAC,CAKH,CAnCA2V,EAAU3F,KAAK,CACbgH,YAAavkB,EAAQV,GAAK,aAC1BygB,WAAYgP,EACZ9O,aAAc,gBACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfd,OAAQ,CACNqP,WAAYhvB,CACd,CACF,CAAC,EAAEuR,QAAQ,WACPvR,EAAQoB,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,CACxC,CAAC,EAKDytB,EAA8BpN,QAAU,CAAC,SAAU,YAAa,aAoBlE,EAEAnlB,KAAKsvB,mBAAqB,WACnBjI,EAAGyH,6BACNzH,EAAGyH,2BAA6B,CAAA,EAC5B/sB,EAAQ2J,eAAelF,OACzBzE,EAAQ8J,aAAe9J,EAAQ2J,eAAelF,MAG3CioB,EAASzH,EAAW,QAAQ,GAC/B0H,EAAW,MAAM,EAAEzJ,MAAM,EAE3ByB,EAAU3F,KAAK,CACb+C,SAAUxH,SAASmW,eAAe,gBAAgB,EAAEjW,UACpD/K,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCkB,WAAY,WAGVvjB,KAAKoqB,QAAU,WAEbpqB,KAAK0yB,eAAiBrL,EACtBrnB,KAAK0D,QAAU3B,EACf/B,KAAKuI,QAAUvG,CACjB,EAPiBhC,KASN4uB,YAAc,WACvBlI,EAAUmI,KAAK,EACfxH,EAAGyH,2BAA6B,CAAA,CAClC,EAZiB9uB,KAcN8Y,OAAS,WAClB9Y,KAAK0yB,eAAenC,oBAAoB,EACxC7J,EAAUmI,KAAK,EACfxH,EAAGyH,2BAA6B,CAAA,CAClC,CACF,EACArL,aAAc,aACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,CACjB,CAAC,EAEL,EAEAjkB,KAAK2yB,UAAY,SAASC,GACxBzL,EAAO0L,OAAOlrB,EAAE,eAAe,EACjBA,EAAE,mCAAmC,CAAC,EACjD1H,KAAK,SAASyG,GACbksB,EAAansB,YAAYmsB,EAAa9vB,GAAI4D,CAAI,EAC3CzG,KAAK,aAEH,SAASwC,EAAMqH,GAChBqd,EAAO2L,MAAMnrB,EAAE,sDAAuDjB,CAAI,EAC7DiB,EAAElF,EAAKyS,KAAK,CAAC,CAC5B,CAAC,CACL,CAAC,CACL,EAEAlV,KAAK+yB,SAAW,SAASvvB,GAiBvB,SAASwvB,EAA4BxM,EAAQE,EAAWiI,EAAMnrB,GAC5D,IAAI6jB,EAAKrnB,KAETqnB,EAAGxd,MAAQrG,EAAQmG,UACnB0d,EAAG7jB,QAAUA,EACb6jB,EAAG4L,UAAY,GACf5L,EAAGiJ,WAAa,GAChBjJ,EAAG6L,WAKH,SAAoB3nB,GAClB,OAAOojB,EAAKxf,QAAQ5D,EAAQ/H,EAAQmG,SAAS,CAC/C,EANA0d,EAAG8L,WAQH,WACEzM,EAAUmI,KAAK,CACjB,EATAxH,EAAG+L,WAWH,SAAoB9pB,GAClB9F,EAAQwG,gBAAgBV,EAAKI,GAAG,EAAEqV,MAAM,SAAStc,EAAMqH,GACrDqd,EAAO2L,MAAMnrB,EAAE,SAAS,EAAGA,EAAE,qCAAqC,CAAC,CACrE,CAAC,CACH,EAdA0f,EAAGgM,QAgBH,SAAiB5wB,GACXA,GACFe,EAAQ6F,aAAa5G,CAAI,EAAExC,KAAK,WAC9BonB,EAAG4L,UAAY,GACf5L,EAAGiJ,WAAa,EAClB,EAAG,SAASpb,GACViS,EAAO2L,MAAMnrB,EAAE,SAAS,EAAGuN,CAAK,CAClC,CAAC,CAEL,CACF,CApDAwR,EAAU3F,KAAK,CACbgH,YAAavkB,EAAQV,GAAK,cAC1BygB,WAAYyP,EACZvP,aAAc,WACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfd,OAAQ,CACNwL,KAAMA,EACNnrB,QAASA,CACX,CACF,CAAC,EAKDwvB,EAA4B7N,QAAU,CAAC,SAAU,YAAa,OAAQ,UAsCxE,EAEAnlB,KAAKszB,kBAAoB,SAASC,EAAWpG,GAC3C,OAAQA,EAAUrqB,IAAMywB,EAAUzwB,IAAOqqB,EAAU/b,WAAW,CAChE,EAEApR,KAAKwzB,qBAAuB,SAASD,EAAWpG,EAAWpD,GACzD,IAAqBrZ,EAAM+iB,EAAkB1pB,EAAS2pB,EAEtDC,EAAQ,IAAMxG,EAAUrqB,GACxBkQ,EAAWugB,EAAUhlB,iBAAiB,EACd,IAApByE,EAASxO,SACXwO,EAAW,CAACugB,EAAUvkB,gBAAgB,IACxC0B,EAAOtQ,EAAEU,IAAIkS,EAAU,KAAK,EAC5BygB,EAAoBF,EAAUxkB,kBAAgE,GAA5C2B,EAAKjL,QAAQ8tB,EAAUxkB,gBAAgB,EAIvF2kB,EAFU,QAAR3J,GACFhgB,EAAUwpB,EAAU7e,cAAc1B,EAAU2gB,CAAK,EACvChsB,EAAE,yBAA0BqL,EAASxO,MAAM,IAGrDuF,EAAUwpB,EAAU3e,cAAc5B,EAAU2gB,CAAK,EACvChsB,EAAE,wBAAyBqL,EAASxO,MAAM,GAGtDuF,EAAQ9J,KAAK,WACPwzB,GACFhN,EAAOwD,GAAG,sBAAsB,EAClCtD,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAYoG,CAAO,EACnBhQ,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,CAEF,CAnhBAc,EAAoBnJ,QAAU,CAAC,SAAU,aAAc,SAAU,eAAgB,WAAY,UAAW,UAAW,WAAY,aAAc,YAAa,WAAY,aAAc,UAAW,kBAAmB,SAAU,aAAc,YAAa,UAAW,UAAW,iBAAkB,OAAQ,cAAe,gBAAiB,WAqhBvUjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,sBAAuB+K,CAAmB,CAGzD,EAAE,EChiBH,WACE,aAMA,SAASsF,EAAkBrN,EAASC,EAAQnlB,EAAIolB,EAAQgI,EAAU/H,EAAWzF,EAAU+F,EAAYJ,EAAeC,EAAcC,EAAcqB,EAAcjH,EAAW6F,EAAiBE,EAAYnG,EAAcoG,EAAOC,EAAQrlB,EAAa+xB,EAAUC,EAAWj0B,EAASkC,EAASC,EAAS+xB,EAAaC,GACzS,IAAI3M,EAAKrnB,KAA0B8kB,EAAU,GAwG7C,SAAS4C,EAAT,GACE,OAAIlB,EAAO9iB,SACc,EAAnBikB,UAAUnjB,SACZgiB,EAAO9iB,QAAQkkB,cAHrB,GAIWpB,EAAO9iB,QAAQkkB,eAEjB,IACT,CAEA,SAASqM,EAAgBzS,GACvB,OAAO,WAEL,GAAyB,OAArBkG,EAAe,EACjB,OAAOlG,EAAS0S,MAAM7M,EAAIM,SAAS,CACvC,CACF,CA4CA,SAASwM,IACP,IAAazwB,EAAS0wB,EAAQ,GAiB9B,OAhBI7N,EAAQ8N,QAEN,uBAAwB9N,EAAQ8N,QAChC,mBAAoB9N,EAAQ8N,OAAOhK,oBACnC9D,EAAQ8N,OAAOhK,mBAAmB3e,eAAe0B,IAAI,GAAK0Z,EAAa1Z,IAAI,IAE3E1J,EAAU6iB,EAAQ8N,OAAOhK,mBACzB+J,EAAME,YAAc5wB,EAChB,uBAAwB6iB,EAAQ8N,SAChC9N,EAAQ8N,OAAOE,mBAAmBhsB,QAAQmB,KAAOye,EAAaze,MAEhEnB,EAAUge,EAAQ8N,OAAOE,mBACzBH,EAAMI,YAAcjsB,GAIrB6rB,CACT,CAyNA,SAASvM,EAAgBhG,EAAQtZ,GAC/B,IACMuf,EADmB,OAArBJ,EAAe,IACbI,EAAqBzmB,EAAGmI,MAAM,EAClCke,EACEhB,EACG3F,KAAK,CACJtP,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCsB,YAAa9B,EACbmC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACf8D,YAAa,gBACbxE,WAAY,0BACZE,aAAc,SACduE,WAAY,SAAUC,EAAOznB,GAC3B,OAAOsnB,EAAmBle,QAAQpJ,CAAO,CAC3C,EACA2iB,OAAQ,CACN+E,YAAa1B,EACbK,aAAcQ,EAAG7jB,QACjB2kB,aAAc5f,EACd6f,kBAAmB,WACjB,OAAON,EAAmB/d,OAC5B,CACF,CACF,CAAC,EACAgV,MAAM3e,EAAEioB,IAAI,EACZtT,QAAQ,WACP2S,EAAe,IAAI,EACnBL,EAAGiB,WAAW,CAChB,CAAC,CACL,EAEJ,CAyHA,SAASmM,EAAoB5S,EAAQxb,GACnCghB,EAAG9e,QAAQqV,cAAc,EAAE3d,KAAK,SAASwC,GACvC,IAAIiyB,EAAgB,CAClBC,IAAKd,EAASe,iBAAiB,EAC/BvuB,KAAMA,EACNwuB,QAASpyB,EAAKoO,QACdikB,QAASryB,EAAK6Y,OAChB,EACI5O,EAAY,IAAIonB,EAAUY,CAAa,EAGvC3M,EAAc,CAChBd,EAAW/kB,WAAW,WAAW,EACjC,WACA,MAAQmE,EAAKmM,WAAW,EAAI,kBAC5BxR,KAAK,GAAG,EACV,OAAO0lB,EAAU3F,KAAK,CACpBtP,OAAQvR,QAAQM,QAAQ8b,SAAS+F,IAAI,EACrCsB,YAAa9B,EACbmC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACf8D,YAAaA,EACbxE,WAAY,4BACZE,aAAc,SACdN,OAAQ,CACN4R,eAAgBroB,CAClB,CACF,CAAC,CACH,CAAC,CACH,CAnkBA1M,KAAKoqB,QAAU,WACb,IAsHwB/Z,EAtHpB2kB,EAAgB,CAAA,EAGpBzO,EAAQgO,mBAAqBlN,EAG7BvG,EAAaK,WAAWgH,CAAY,EAEpCnoB,KAAKymB,OAASA,EACdzmB,KAAKuqB,SAAW3D,EAChB5mB,KAAKwD,QAAUqjB,EACf7mB,KAAK0D,QAAUojB,EACf9mB,KAAKuI,QAAU4f,EACfnoB,KAAKsqB,QAAUtoB,EACfhC,KAAKqwB,KAAO,CAAEC,WAAY,GAAI5hB,SAAU,EAAG,EAC3C1O,KAAKi1B,UAAY9M,EAAajX,OAAqC,EAA5BiX,EAAajX,MAAM1M,OAC1DxE,KAAKk1B,+BAAiC,CAAC/M,EAAa7Q,IAAM6Q,EAAa7Q,GAAG9S,OAAS,KAAO,CAAC2jB,EAAa5Q,IAAM4Q,EAAa5Q,GAAG/S,OAAS,GACvIxE,KAAKm1B,wBAA0Bn1B,KAAKk1B,8BACpCl1B,KAAKo1B,cAAgB,CAAA,EACrBp1B,KAAKq1B,eAAiB,CAAC,GAmGChlB,EAjGPyU,GAkGZnhB,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,cAAc,EACrBL,YAAaK,EAAE,sBAAsB,EACrC6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKmjB,EAAIA,EAAGiO,KAAK,CAAC,CACtD,CAAC,CAAC,EACFjlB,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,iBAAiB,EACxBL,YAAaK,EAAE,oCAAoC,EACnD6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKmjB,EAAIA,EAAGkO,QAAQ,CAAC,CACzD,CAAC,CAAC,EACFllB,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,gBAAgB,EACvBL,YAAaK,EAAE,0BAA0B,EACzC6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKmjB,EAAIA,EAAGmO,OAAO,CAAC,CACxD,CAAC,CAAC,EACFnlB,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAK3C,EAAE,aAAa,EACpBL,YAAaK,EAAE,SAAS,EACxB6Z,SAAUyS,EAAgB/zB,QAAQgE,KAAKikB,EAAcA,EAAavJ,UAAU,CAAC,CAC/E,CAAC,CAAC,EACFxe,EAAEC,QAAQ,CAAC,YAAa,UAAW,SAASuqB,GAC1Cva,EAAK1M,KAAKud,EAAUK,aAAa,CAC/BjX,IAAKsgB,EACLpJ,SAAUyS,EAAgB,SAASpS,GACE,IAA/BwF,EAAG3jB,QAAQiL,cAAc,GACpB0Y,EAAG9e,QAAQmB,MAAQ2d,EAAGgO,gBAC7BhO,EAAGoO,cAAc,EACnB5T,EAAOiH,eAAe,CACxB,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,EAGD1oB,EAAEC,QAAQgQ,EAAM,SAAS/F,GACvB4W,EAAUS,eAAerX,CAAG,CAC9B,CAAC,EAlID,IACE0qB,EAAgBzO,EAAQ8N,QAAU,uBAAwB9N,EAAQ8N,MAEzD,CAAX,MAAO/xB,IAGH0yB,GAEFxO,EAAOkP,iBAAiB,WAAa,OAAOrO,EAAG9e,QAAQ2I,KAAO,EAAG,SAASykB,EAASC,GACjF,IAAIxB,GACAuB,GAAWC,KACbxB,EAAQD,EAAmB,GACjBK,aACRJ,EAAMI,YAAYlK,QAAQ5oB,SAAS,WACjC0yB,EAAMI,YAAYS,UAAY,CAAA,EAC9Bb,EAAMI,YAAYjsB,QAAQ2I,MAAQykB,CACpC,CAAC,CAGP,CAAC,EAEDnP,EAAOyE,OAAO,WAAa,OAAO5D,EAAG9e,QAAQsW,SAAW,EAAG,SAASA,EAAWgX,GAC7E,IAAIzB,EAAQD,EAAmB,EAC3BC,EAAME,aACRF,EAAME,YAAYhK,QAAQ5oB,SAAS,WACnBtB,EAAE+E,KAAKivB,EAAME,YAAY5oB,eAAesB,UAAW,CAAEtD,IAAK2d,EAAG9e,QAAQmB,GAAI,CAAC,EAChFmV,UAAYA,CACtB,CAAC,CAEL,CAAC,GAKD2H,EAAOkP,iBAAiB,WAAa,OAAOrO,EAAG9e,QAAQ2I,KAAO,EAAG,SAAS4kB,EAAUC,GAClF,IAAIJ,EAAkBtF,GAClByF,GAAYC,KACdJ,EAAUG,GAAY,GACtBF,EAAUG,GAAY,GACtB31B,EAAEC,QAAQs1B,EAAS,SAAS/c,EAAK/V,GAC3B3C,QAAQiJ,SAASyP,CAAG,IACtB+c,EAAQ9yB,GAAK+V,EAAIlS,KACrB,CAAC,EACGivB,EAAQnxB,OAASoxB,EAAQpxB,QAC3B6rB,EAAOjwB,EAAE41B,WAAWL,EAASC,CAAO,EACpCx1B,EAAEC,QAAQgwB,EAAM,SAASzX,GACvByO,EAAG9e,QAAQsV,OAAOjF,CAAG,CACvB,CAAC,GAEM+c,EAAQnxB,OAASoxB,EAAQpxB,SAChC6rB,EAAOjwB,EAAE41B,WAAWJ,EAASD,CAAO,EACpCv1B,EAAEC,QAAQgwB,EAAM,SAASzX,GACvByO,EAAG9e,QAAQ2V,UAAUtF,CAAG,CAC1B,CAAC,GAGP,CAAC,EAGH4N,EAAOuE,IAAI,WAAY,WAErB3qB,EAAEC,QAAQykB,EAAS,SAASxa,GAC1B4W,EAAU6D,iBAAiBza,CAAG,CAChC,CAAC,EAEG+c,EAAG9e,QAAQ6W,oBACbiI,EAAGiD,QAAQ5oB,SAASuC,OAAOojB,EAAG9e,QAAQ6W,kBAAkB,EAE1D,OAAOmH,EAAQgO,kBACjB,CAAC,CAEH,EAsFAv0B,KAAKi2B,SAAW,SAASpU,GACvBA,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EACtB9oB,KAAKi1B,UAAY,CAAA,EACjB/N,EAAM,OAAO,CACf,EAEAlnB,KAAKk2B,yBAA2B,SAASrU,GACvC7hB,KAAKm1B,wBAA0B,CAACn1B,KAAKm1B,wBACrCtT,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,CACxB,EAEA9oB,KAAKm2B,UAAY,SAAStU,GAExB,IADA,IAAIuU,EAAcvU,EAAOe,OACM,YAAxBwT,EAAYC,SACjBD,EAAcA,EAAYE,WAE5BF,EAAY1R,UAAUC,IAAI,YAAY,CACxC,EAEA3kB,KAAKu2B,SAAW,SAAS1U,GAEvB,IADA,IAAIuU,EAAcvU,EAAOe,OACM,YAAxBwT,EAAYC,SACjBD,EAAcA,EAAYE,WAE5BF,EAAY1R,UAAUnH,OAAO,YAAY,EACrCsE,EAAO2U,eAAkD,qBAAjC3U,EAAO2U,cAAcH,SAE/ChP,EAAGoP,MAAMxR,MAAM,CAEnB,EAEAjlB,KAAK02B,gBAAkB,SAAS/b,EAAWkH,GAEzCkS,EAAYvxB,SAAS,EAAE,EAEvB,IAAIm0B,EAAgB9U,EAAOe,OAEvBR,EAAgBnB,EAASsB,iBAAiB,EACzCqU,WAAWD,CAAa,EACxBE,iBACC5V,EAAS6V,UAAUC,YACnB9V,EAAS+V,UAAUC,UACrB,EAEAxU,EAAiBxB,EAASyB,kBAAkB,EAC3CC,SAASgU,CAAa,EACtB9T,SAAS,GAAG,EACZC,cAAc7B,EAAS8B,UAAUC,IAAI,EAEtCC,EAAS,CACXC,SAAUhjB,QAAQM,QAAQ8b,SAAS+F,IAAI,EACvCc,OAAQ,CACNxI,UAAWA,EACXuc,aAAcnD,EAAYoD,cAC1BC,cAAerD,EAAYsD,eAC3B5M,WAAYvqB,QAAQgE,KAAKlE,KAAMA,KAAKyqB,UAAU,CAChD,EACAnH,iBAAkB,CAAA,EAClBC,WAAY+T,EACZ7T,aAAc,YACdC,SAAUtB,EACVW,UAAWN,EACXkB,YAAa9B,EACbkG,YAAa,2BACbhE,UAAW,CAAA,EACXC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,YAAa,CAAA,CACf,EAYA,SAASoT,EAAetS,EAAYyB,EAAQE,GAC1C3mB,KAAKu3B,UAAY,SAAS1V,GACH,IAAjBA,EAAO2V,OACTxS,EAAWC,MAAM,CAErB,EAEAjlB,KAAKy3B,QAAU,SAAS9c,EAAW+c,GACjC,IAAIC,EAAO,IAAI3D,EAAK,CAClBW,IAAK+C,EACLE,KAAMjd,EAAUjU,KAChBmxB,OAAQ,CAAC,CAAExtB,MAAOsQ,EAAUja,KAAM,EACpC,CAAC,EACDi3B,EAAKvqB,IAAI,EAAEnN,KAAK,SAAS6C,GACvB60B,EAAKhmB,MAAM,EAAE1R,KAAK,WAEhB0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,2BAA2B,CAAC,EAC1C+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,CAAC,EACDxI,EAAWC,MAAM,CACnB,CACF,CAnCAhE,EAASxN,KAAKwP,CAAM,EACjBhjB,KAAK,SAAS63B,IACbzQ,EAAGoP,MAAQqB,GAEFC,QAAQxT,IAAI,QAAS,WAC5BuT,EAAS7S,MAAM,CACjB,CAAC,CACH,CAAC,EAEHqS,EAAenS,QAAU,CAAC,aAAc,SAAU,YA4BpB,MAA1BwR,EAAcN,UAChBxU,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EAE1B,EAEA9oB,KAAKg4B,kBAAoB,SAASnW,GAChC,IAAIoW,EACyB,KAAzBpW,EAAOe,OAAOyT,SAAkB,SAAUxU,EAAOe,OAAOsV,aAC1DD,EAAOpW,EAAOe,OAAOsV,WAAWD,KAAK5tB,MAC7B,mBAAmBiV,KAAK2Y,CAAI,KAElC,OAAOpW,EAAOe,OAAOsV,WAAWtV,OAChC5iB,KAAKyqB,WAAW5I,EAAQoW,CAAI,EAGlC,EAEAj4B,KAAKy1B,cAAgB,WACnB,IAAI/xB,EAAS6E,EAAS4vB,EAAOvO,EAAaC,EACtCuO,EAAcjE,EAAmB,EACjCzyB,EAAW1B,KAAKsqB,QAAQ5oB,SAiB5B,SAAS22B,EAAS3zB,GAChB,IAAIolB,EAAYplB,EAGhB,GADA6D,EAAU,KACNrI,QAAQ2D,UAAUs0B,CAAK,EAAG,CAEhB,EAARzzB,IACFolB,EAAAA,EACAF,EAAclmB,EAAQe,eAAeqlB,CAAS,GAE5CplB,EAAQhB,EAAQW,UAAU,IAC5BwlB,EAAkBnmB,EAAQe,eAAeC,CAAK,GAE5CklB,EACEA,EAAYjX,QAAUkX,GAAmB,CAACA,EAAgBlX,SAC5DmX,EAAYplB,EACZklB,EAAcC,GAGTA,IACPC,EAAYplB,EACZklB,EAAcC,GAGhB,IACMD,GAAe6E,EAASzH,EAAW,QAAQ,GACzCjlB,EAAQ6J,aACVusB,EAAMlO,GAAG,sCAAuC,CAACuC,UAAWzF,EAAgB6C,EAAYzS,SAAS3Q,IAAI,EAAGsI,UAAW8a,EAAYlgB,GAAG,CAAC,EAEnIyuB,EAAMlO,GAAG,+BAAgC,CAACnb,UAAW8a,EAAYlgB,GAAG,CAAC,EACvEhI,EAAS,WACHooB,EAAYpmB,EAAQsS,UACtBtS,EAAQsS,UAAY8T,EACbA,EAAYpmB,EAAQ0K,oBAC3B1K,EAAQsS,UAAY8T,GAAapmB,EAAQ0K,kBAAoB1K,EAAQsS,WACzE,CAAC,GAGDmiB,EAAMlO,GAAG,sBAAsB,EAAEhqB,KAAK,WACpCsI,EAAU,KACV,OAAO7E,EAAQqL,gBACjB,CAAC,CAGU,CAAf,MAAOmG,IACT,CACAmS,EAAGiB,WAAW,CAChB,CA3DE6P,EAHEC,EAAY5D,aACd9wB,EAAU00B,EAAY9D,YAAY5oB,eAClCnD,EAAU6vB,EAAY5D,YAAYjsB,QAC1B6vB,EAAY5D,YAAY/N,SAGhC/iB,EAAUojB,EACVve,EAAU4f,EACF1B,GAEN1kB,EAAQ6J,eACVlI,EAAU3B,EAAQ2J,gBAEpB2b,EAAGgO,eAAiB9sB,EAAQmB,IAmD5BhG,EAAQuQ,gBAAgB,CAAC1L,EAAQ,EAAEtI,KAAKo4B,EAAU,SAASpjB,GACzDyS,EACIP,EAAO2F,QAAQnlB,EAAE,SAAS,EACXA,EAAE,8FAA8F,EAChG,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EACjC1H,KAAK,WACJyD,EAAQuQ,gBAAgB,CAAC1L,GAAU,CAAE0kB,aAAc,CAAA,CAAK,CAAC,EACtDhtB,KAAKo4B,CAAQ,EACbtjB,QAAQ,WACP2S,EAAe,IAAI,CACrB,CAAC,CACL,CAAC,EACA3S,QAAQ,WACP2S,EAAe,IAAI,CACrB,CAAC,CACL,CACF,CAAC,CACH,EAoCA1nB,KAAKosB,uBAAyB,SAAS9c,GACrC,MAAK2X,CAAAA,EAAWqF,SACkC,SAA9CxqB,EAAYqB,SAASopB,wBACvBvsB,KAAK8rB,YAAYxc,CAAM,EAChB,CAAA,EAGX,EAEAtP,KAAKilB,MAAQ,WACX,IAAIqT,EAAcv2B,EAAQ6J,aAAe,8BAAgC,uBACzE6a,EAAOwD,GAAGqO,CAAW,EAAEr4B,KAAK,WAC1BonB,EAAG9e,QAAU,KACb,OAAOue,EAAa/X,gBACtB,CAAC,CACH,EAEA/O,KAAKs1B,MAAQ,SAASzT,GACf7hB,KAAKosB,uBAAuB,OAAO,GACtCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQmX,OAAO,CAAC,CAEjD,EAEA1f,KAAKu1B,SAAW,SAAS1T,GAClB7hB,KAAKosB,uBAAuB,UAAU,GACzCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQqX,UAAU,CAAC,CAEpD,EAEA5f,KAAKw1B,QAAU,SAAS3T,GACjB7hB,KAAKosB,uBAAuB,SAAS,GACxCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQsX,SAAS,CAAC,CAEnD,EAEA7f,KAAKu4B,KAAO,SAAS1W,GACd7hB,KAAKosB,uBAAuB,MAAM,GACrCpsB,KAAKuI,QAAQmV,iBAAiB,EAAEzd,KAAK,WACnC4nB,EAAgBhG,EAAQwF,EAAG9e,OAAO,CACpC,CAAC,CAEL,EAEAvI,KAAKw4B,QAAU,SAAS3W,GACjB7hB,KAAKosB,uBAAuB,SAAS,GACxCvE,EAAgBhG,EAAQ7hB,KAAKuI,QAAQuX,SAAS,CAAC,CAEnD,EAEA9f,KAAK8rB,YAAc,SAASxc,GAC1B,IAAIyc,EAAM,CAAC9E,EAAW+E,QAAQ,EACnB,0BACAhsB,KAAKuI,QAAQF,UAEb0e,EAAgBA,EAAgB/mB,KAAKuI,QAAQ4O,SAAS3Q,IAAI,CAAC,EAC3DxG,KAAKuI,QAAQmB,KACnB1I,KAAK,GAAG,EACTirB,EAAMjsB,KAAKuI,QAAQC,cAAc,EACjC8G,IACF2c,GAAO,IAAM3c,EACbyc,GAAO,IAAMzc,GAEDiX,EAAQ9S,KAAKsY,EAAKE,EACL,CAAC,YACA,aACA,cACA,eACA,YACA,aACA,gBACA,WACA,YACA,iBACAjrB,KAAK,GAAG,CAAC,CACvC,EAEAhB,KAAKsoB,WAAa,WACZ/B,EAAQjK,SAAS+F,KAAKqC,UAAUyH,SAAS,OAAO,GAClD5F,EAAQtB,MAAM,CAClB,EAEAjlB,KAAKyqB,WAAa,SAAS5I,EAAQ3Y,GACH,MAA1B2Y,EAAOe,OAAOyT,UAChBxU,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,GAExB9oB,KAAKwD,QAAQwE,YAAY,CAAEkB,OAAQA,CAAO,CAAC,EAAEjJ,KAAK,SAASsI,GACzDsf,EAAgBhG,EAAQtZ,CAAO,CACjC,CAAC,CACH,EAEAvI,KAAKy4B,gBAAkB,SAAS5W,GACzB7hB,KAAKo1B,eAAkBp1B,KAAKuI,QAAQmwB,WAOvC14B,KAAKo1B,cAAgB,CAACp1B,KAAKo1B,cAN3BpzB,EAAQC,WAAW8B,KAAK/D,KAAKuI,QAAQzF,GAAI,YAAY,EAAE7C,KAAK,SAASwC,GACnE4kB,EAAG9e,QAAQmwB,WAAaj2B,EACxB4kB,EAAG+N,cAAgB,CAAA,CACrB,CAAC,CAKL,EAEAp1B,KAAK24B,mBAAqB,SAAU9W,GAClC7hB,KAAK8rB,YAAY,SAAS,CAC5B,EAEA9rB,KAAK44B,MAAQ,SAAS/W,GACpB0E,EAAQqS,MAAM,CAChB,EAEA54B,KAAK64B,eAAiB,SAAShX,GAC7B,OAAO4S,EAAoB5S,EAAQ,aAAa,CAClD,EAEA7hB,KAAK84B,cAAgB,SAASjX,GAC5B,OAAO4S,EAAoB5S,EAAQ,MAAM,CAC3C,CAgCF,CAxkBA+R,EAAkBzO,QAAU,CAAC,UAAW,SAAU,KAAM,SAAU,WAAY,YAAa,WAAY,aAAc,gBAAiB,eAAgB,eAAgB,eAAgB,YAAa,kBAAmB,aAAc,eAAgB,UAAW,SAAU,cAAe,WAAY,YAAa,UAAW,UAAW,UAAW,cAAe,QA0kBjWjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,oBAAqBqQ,CAAiB,CACrD,EAAE,ECnlBH,WACE,aAMA,SAASmF,EAAwBvS,EAAQD,EAASyS,EAAcxK,EAAS9H,EAAWC,EAAUsS,EAAc/Q,EAAarB,EAAcsB,EAAcC,EAAmBrB,EAAiBrlB,EAAUslB,EAAYE,EAAOC,EAAQ4M,EAAaC,EAAMlyB,GAC/O,IAAIulB,EAAKrnB,KAwFT,SAASm0B,IACP,IAAI+E,EAAe9E,EAAQ,GAE3B,IACM7N,EAAQ8N,QACN,uBAAwB9N,EAAQ8N,QAChC,mBAAoB9N,EAAQ8N,OAAOhK,qBACjC9D,EAAQ8N,OAAOhK,mBAAmB3e,eAAe5I,IAAMqlB,EAAahR,SAASrU,IAC/EsxB,EAAM+E,iBAAmB5S,EAAQ8N,OAAOhK,mBACpC,uBAAwB9D,EAAQ8N,QAChC9N,EAAQ8N,OAAOE,mBAAmBhsB,QAAQmB,KAAOye,EAAaze,MAEhE0qB,EAAMgF,iBAAmB7S,EAAQ8N,OAAOE,qBAGnCpM,EAAanI,SACpBkZ,EAAgB/Q,EAAanI,OAAOzX,QAChCge,EAAQ8N,OAAOhK,mBAAmB3e,eAAe0B,IAAI,GAAK8rB,EAAc/hB,SAAS/J,IAAI,KAEvFgnB,EAAMiF,kBAAoB9S,EAAQ8N,OAAOhK,oBAMxC,CAAX,MAAO/nB,IAEP,OAAO8xB,CACT,CAsCA,SAASkF,IACPjS,EAAGkS,SAASxN,IAAM1E,EAAG9e,QAAQC,cAAc,CAACC,QAAS,CAAA,EAAM6Q,iBAAkB,CAAA,CAAI,CAAC,EAAI,OACxF,CAEA,SAASkgB,IAEP,IAAI32B,EAAS42B,EAAUC,EAAQrS,EAAG9e,QAAQS,SAAS0V,gBACnD,GAAIgb,EACF,IAAK72B,EAAI,EAAGA,EAAI62B,EAAMl1B,OAAQ3B,CAAC,GAC7BJ,EAAO,CACLiE,KAAMgzB,EAAM72B,GAAG2Q,SACfnN,KAAMqzB,EAAM72B,GAAG82B,SACf5T,KAAM/Z,SAAS0tB,EAAM72B,GAAGkjB,IAAI,CAC9B,GACA0T,EAAW,IAAIR,EAAaW,SAASvS,EAAGkS,SAAU92B,CAAI,GAC7Co3B,SAAW,IACpBJ,EAASK,WAAa,CAAA,EACtBL,EAASM,UAAY,CAAA,EACrBN,EAASO,UAAYN,EAAM72B,GAAGkpB,IAC9B1E,EAAGkS,SAASU,MAAMt2B,KAAK81B,CAAQ,CAErC,CA8GA,SAASS,IACP7S,EAAG8S,aAAe,CAAC9S,EAAG8S,YACxB,CA7RAn6B,KAAKoqB,QAAU,WACb5D,EAAO8F,QAAUpE,EAAYoE,QAE7BtsB,KAAKwD,QAAUqjB,EACf7mB,KAAKo6B,aAAe,CAAC9iB,GAAI,GAAIC,GAAI,GAAIC,IAAK,EAAE,EAC5CxX,KAAKq6B,SAAW,KAChBr6B,KAAKm6B,aAA8C,KAAA,IAAvBG,OAAOC,aAA+BD,OAAOC,aAAe,oBAAsBD,OAAOC,YAAYl0B,KACjIrG,KAAKw6B,QAAgD,IAArCrS,EAAanf,SAASwO,IAAIhT,OAC1CxE,KAAKy6B,OAA8C,IAApCtS,EAAanf,SAASuO,GAAG/S,OACxCxE,KAAKM,WAAaumB,EAAavmB,WAC/BN,KAAK06B,aAAevS,EAAanf,SAASiS,KAC1Cjb,KAAK26B,mBAAqB,GAC1B36B,KAAKuI,QAAU4f,EACfnoB,KAAK46B,uBAAyB94B,EAAYqB,SAAS03B,mBACnD76B,KAAK86B,UAAY,CAAA,EACjB96B,KAAKk6B,iBAAmBA,EACxBl6B,KAAK+6B,WAAa,CAAA,EAClB/6B,KAAKg7B,OAAS,KAoGd3T,EAAGkS,SAAW,IAAIN,EAAa,CAC7BlN,IAAK1E,EAAG9e,QAAQC,cAAc,CAACC,QAAS,CAAA,EAAM6Q,iBAAkB,CAAA,CAAI,CAAC,EAAI,QACzE2hB,WAAY,CAAA,EACZC,MAAO,cACPC,kBAAmB,CAAA,EAInBC,cAAe,SAASC,EAAMpmB,EAAUnL,EAAQgD,GAC9Cua,EAAG9e,QAAQgR,QAAQtE,EAASvL,GAAG,EAC/B2d,EAAG9e,QAAQ8V,QAAQ,EACnBgd,EAAKrB,UAAY/kB,EAASqmB,oBAAoB,GAAGvP,IACjDsP,EAAKE,KAAK70B,KAAOuO,EAASqmB,oBAAoB,GAAG9nB,QAEnD,EACAgoB,aAAc,SAASH,EAAMpmB,EAAUnL,EAAQgD,GAG7Cua,EAAG9e,QAAQkW,kBAAkB4c,EAAKE,KAAK70B,IAAI,EAC3C1G,KAAKy7B,gBAAgBJ,CAAI,CAC3B,EACAK,YAAa,SAASL,EAAMpmB,EAAUnL,EAAQgD,GAC5C6Z,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,yCAA4C0zB,EAAKE,KAAK70B,IAAI,EAChE,KAAOuO,EAAS1M,QAASZ,EAAEsN,EAAS1M,OAAO,EAAI,GAAG,EAC1Dmb,SAASsD,EAAWuG,aAAa,EACjCje,OAAO3H,EAAE,IAAI,CAAC,EACd6lB,UAAU,CAAA,CAAK,CAAC,EACrBxtB,KAAKy7B,gBAAgBJ,CAAI,CAE3B,CACF,CAAC,EA/HGv5B,EAAYqB,SAASw4B,mBAEvB37B,KAAKq6B,SAAW34B,EAAS1B,KAAK47B,eAAsD,IAAtC95B,EAAYqB,SAASw4B,iBAAsB,EAAE,GAG7F37B,KAAK67B,WAAa/5B,EAAYqB,SAAS24B,WACvC97B,KAAK+7B,SAAW,CAAEC,SAAUl6B,EAAYqB,SAAS84B,YAAa,EAE9Dj8B,KAAKk8B,YAAcp6B,EAAYqB,SAASqc,2BAExCxf,KAAKm8B,mBAAqBr6B,EAAYqB,SAASi5B,2BAC/Cp8B,KAAKq8B,eAAiBv6B,EAAYqB,SAASm5B,uBACvCt8B,KAAKuI,QAAQyX,QAAwC,WAA9BhgB,KAAKuI,QAAQyX,OAAO1Q,SAE7CtP,KAAKq8B,eAAiB,SAIxB7V,EAAOuE,IAAI,WAAY,WAAa1D,EAAGkS,SAASgD,QAAQ,CAAG,CAAC,EAE7B,SAA3BvD,EAAawD,WACfrU,EAAazI,OAAO,EAAEzf,KAAK,SAAS6V,GAClCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCoM,EAAGoT,OAAU,CAAC3kB,EAAU9M,SAASuO,IAAuC,IAAjCzB,EAAU9M,SAASuO,GAAG/S,OAC7D6iB,EAAGmT,QAAW,CAAC1kB,EAAU9M,SAASwO,KAAyC,IAAlC1B,EAAU9M,SAASwO,IAAIhT,OAChE80B,EAAoB,CACtB,CAAC,EAEiC,YAA3BN,EAAawD,WACpBrU,EAAavI,UAAU,EAAE3f,KAAK,SAAS6V,GACrCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCoM,EAAGoT,OAAU,CAAC3kB,EAAU9M,SAASuO,IAAuC,IAAjCzB,EAAU9M,SAASuO,GAAG/S,OAC7D6iB,EAAGmT,QAAW,CAAC1kB,EAAU9M,SAASwO,KAAyC,IAAlC1B,EAAU9M,SAASwO,IAAIhT,OAChE80B,EAAoB,CACtB,CAAC,EAEiC,WAA3BN,EAAawD,WACpBrU,EAAatI,SAAS,EAAE5f,KAAK,SAAS6V,GACpCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCqe,EAAoB,EACpBE,EAAgB,CAClB,CAAC,EAEiC,WAA3BR,EAAawD,WACpBrU,EAAarI,SAAS,EAAE7f,KAAK,SAAS6V,GACpCuR,EAAG9e,QAAUuN,EACbuR,EAAGqT,aAAe5kB,EAAU9M,SAASiS,KACrCqe,EAAoB,EACpBE,EAAgB,CAClB,CAAC,EAEMt5B,QAAQ2D,UAAUskB,CAAY,IACrCnoB,KAAKuI,QAAU4f,EACfmR,EAAoB,EACpBE,EAAgB,EAEpB,EA8FAx5B,KAAKy8B,iBAAmB,SAAUpB,EAAMv4B,GACtC,IAAI/C,EAAQC,KAWRQ,GAVA66B,EAAKqB,YACPrV,EAAGkS,SAASoD,WAAWtB,CAAI,GAE3BhU,EAAG9e,QAAQkW,kBAAkB4c,EAAKE,KAAK70B,IAAI,EAAEzG,KAAK,WAChDF,EAAMiV,KAAK,CAAC4nB,MAAO,CAAA,CAAK,CAAC,CAC3B,CAAC,EACDvB,EAAK9d,OAAO,GAIAgJ,EAAQjK,SAASmW,eAAe3vB,CAAE,GAC5CtC,GACFN,QAAQM,QAAQA,CAAO,EAAEq8B,KAAK,QAAS,IAAI,CAC/C,EAEA78B,KAAKiE,OAAS,WACRjE,KAAKq6B,UACP34B,EAASuC,OAAOjE,KAAKq6B,QAAQ,EAE3Br6B,KAAKuI,QAAQU,OAASjJ,KAAKuI,QAAQmW,iBACrC1e,KAAKuI,QAAQ4O,SAASlD,gBAAgB,CAACjU,KAAKuI,QAAQ,EAEtDme,EAAUmI,KAAK,CACjB,EAGA7uB,KAAK88B,aAAe,SAAUjb,GAC5B,GAAsB,IAAlBA,EAAOyP,QAGT,OAFAzP,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EACf,CAAA,EAEa,KAAlBjH,EAAOyP,SAAgC,KAAdzP,EAAOvX,MAClCuX,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,GAClBtoB,EAAU+lB,EAAQjK,SAASmW,eAAe5Q,EAAOe,OAAO9f,EAAE,GACtDuH,MAAQ7J,EAAQ6J,MAAQ,IAEpC,EAEArK,KAAKgV,KAAO,SAAUnQ,GACpB,IAAIuvB,EAAQD,EAAmB,EAC/Bn0B,KAAKuI,QAAQoJ,MAAM,EAAE1R,KAAK,WACxBonB,EAAG9e,QAAQmwB,WAAa,KACpBtE,EAAM+E,kBAGR/E,EAAM+E,iBAAiBztB,eAAeyD,QAAQ,EAAElP,KAAK,WAC/Cm0B,EAAMgF,kBAERhF,EAAMgF,iBAAiB3S,OAAOwD,GAAG,+BAAgC,CAAEnb,UAAWuY,EAAG9e,QAAQmB,IAAK5E,OAAQ,CAAA,CAAK,CAAC,CAEhH,CAAC,EAEED,GAAWA,CAAAA,EAAQ+3B,OACtBjW,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,2BAA2B,CAAC,EAC1C+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CAExB,CAAC,CACH,EAEAxtB,KAAK+8B,KAAO,WACN/8B,KAAKg7B,QAAUh7B,KAAKg7B,OAAOtuB,WAC7B1M,KAAKg7B,OAAOtuB,UAAUswB,eAAe,CAAA,CAAI,EAE3Ch9B,KAAK86B,UAAY,UACb96B,KAAKq6B,UACP34B,EAASuC,OAAOjE,KAAKq6B,QAAQ,EAE/Br6B,KAAKuI,QAAQ6X,MAAM,EAAEngB,KAAK,SAASwC,GACjC,IAAI2xB,EAAQD,EAAmB,EAC/B9M,EAAGyT,UAAY,OACX1G,EAAM+E,kBAGR/E,EAAM+E,iBAAiBztB,eAAeyD,QAAQ,EAAElP,KAAK,WAC/Cm0B,EAAMgF,kBAERhF,EAAMgF,iBAAiBnU,MAAM,CAEjC,CAAC,EAECmP,EAAMiF,mBAGRjF,EAAMiF,kBAAkB3tB,eAAeyD,QAAQ,EAEjDwX,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,0BAA0B,CAAC,EACzC+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,EAGpB9rB,EAASglB,EAAUmI,KAAM,GAAI,CAC/B,EAAG,SAAS5Z,GACVvT,EAAS,WACP2lB,EAAGyT,UAAY,QACfzT,EAAG4V,aAAehoB,EAASxS,KAAMwS,EAASxS,KAAK8F,QAAU0M,EAASioB,UACpE,CAAC,CACH,CAAC,CACH,EAMAl9B,KAAKm9B,cAAgB,SAAU5xB,GAC7B,OAAOwoB,EAAYqJ,WAAW7xB,EAAQ,GAAI,CAAC8xB,SAAU,KAAK,CAAC,EAAEp9B,KAAK,SAASq9B,GAGzE,IAAIC,EAAgB,GAOpB,OANAn9B,EAAEC,QAAQD,EAAEqW,UAAU6mB,EAAO,SAAS,EAAG,SAASE,GAChDp9B,EAAEC,QAAQm9B,EAAW,SAAS7F,GAC5B4F,EAAc55B,KAAKg0B,CAAI,CACzB,CAAC,CACH,CAAC,EAEMv3B,EAAEq9B,OAAOF,EAAe,SAAS5F,GACtC,OAAOA,EAAK+F,WAAa,IAAM/F,EAAKgG,QAAU,IAAMhG,EAAKiG,aAC3D,CAAC,CACH,CAAC,CACH,EAEA59B,KAAK69B,aAAe,SAAUC,EAASzS,GACrC,IAAgB1Q,EAAWojB,EAAMl7B,EAAGsX,EAEpC6jB,EAAah+B,KAAKuI,QAAQS,SAASqiB,GAEnC,GAAInrB,QAAQ2F,SAASi4B,CAAO,EAAG,CAM7B,IADA3jB,EAAU,GACLtX,EAAI,EAAGA,EAAIi7B,EAAQt5B,OAAQ3B,CAAC,IACA,GAA1Bi7B,EAAQG,WAAWp7B,CAAC,GACK,IAAzBi7B,EAAQG,WAAWp7B,CAAC,GACK,IAAzBi7B,EAAQG,WAAWp7B,CAAC,GACK,IAAzBi7B,EAAQG,WAAWp7B,CAAC,IACrBsX,EAAQ+jB,aAAa,GACrBF,EAAWv4B,QAAQ0U,CAAO,EAAI,GAChC6jB,EAAWr6B,KAAKwW,CAAO,EACvBA,EAAU,IAGVA,GAAW2jB,EAAQ5kB,OAAOrW,CAAC,EAM/B,OAHIsX,GAAW6jB,EAAWv4B,QAAQ0U,CAAO,EAAI,GAC3C6jB,EAAWr6B,KAAKwW,CAAO,EAElB,IACT,CAkCA,OAhCI2jB,EAAQK,QAAQ,CAACC,WAAY,CAAA,CAAI,CAAC,EAEhCl+B,QAAQ2D,UAAUi6B,EAAQO,IAAI,GAAKP,EAAQO,KAAK75B,OAClDpE,EAAEC,QAAQy9B,EAAQO,KAAM,SAASC,GAC3BA,EAAI59B,MAAM8D,QAAUw5B,EAAWv4B,QAAQ64B,EAAIC,aAAa,CAAC,EAAI,GAC/DP,EAAWr6B,KAAK26B,EAAIC,aAAa,CAAC,CACtC,CAAC,GAGDR,EAAO/J,EAAKhvB,MAAM84B,EAAQU,UAAWV,EAAQW,MAAM,GAC9CrxB,IAAI,EAAEnN,KAAK,SAASy+B,GACvBt+B,EAAEC,QAAQ09B,EAAKM,KAAM,SAASC,GACxBA,EAAI59B,MAAM8D,QAAUw5B,EAAWv4B,QAAQ64B,EAAIC,aAAa,CAAC,EAAI,GAC/DP,EAAWr6B,KAAK26B,EAAIC,aAAa,CAAC,CACtC,CAAC,CACH,CAAC,EAGIT,EAAQa,SAAS,CAACP,WAAY,CAAA,CAAI,CAAC,GAC1CzjB,EAAY,CACVhU,SAAU,WAAc,OAAOm3B,EAAQS,aAAa,CAAG,EACvDK,aAAc,CAAA,EACdC,QAAS,EACX,EACAf,EAAQgB,SAAS,EAAE7+B,KAAK,SAAU4+B,GAChClkB,EAAUkkB,QAAUA,CACtB,CAAC,GAGDlkB,EAAYmjB,EAAQS,aAAa,EAG/B5jB,GAGK,IACX,EAEA3a,KAAK++B,gBAAkB,SAAUx+B,GAC/B,IAAwBy+B,EAAMC,EAAMC,EAwD1BC,EA5BNv+B,EA1BJ,GAAIL,GAAYA,EAASI,KACvBX,KAAKuI,QAAQS,SAASiS,KAAO1a,EAASI,UACnC,GAAIJ,GAAYA,EAASiE,OAC5B,OAKA06B,EAHsB,QAApBl/B,KAAKk8B,aACPkD,EAAK,SACLJ,EAAO,yBACC,WAGRA,EADAI,EAAK,KAEG,KAKRH,EAD6B,SAA3Bj/B,KAAKm8B,mBACA,EAEA,GAEJ9U,EAAGpe,MAAM,GAAwD,IAAnDnH,EAAYqB,SAASk8B,2BAClC,CAAChY,EAAGpe,MAAM,GAA4D,IAAvDnH,EAAYqB,SAASm8B,+BAAuCjY,EAAG9e,SAAW8e,EAAG9e,QAAQyX,QAAUqH,EAAG9e,QAAQyX,OAAO1Q,QAAuC,YAA7B+X,EAAG9e,QAAQyX,OAAO1Q,QAC5J,CAAC+X,EAAGpe,MAAM,GAA0D,IAArDnH,EAAYqB,SAASo8B,6BAAqClY,EAAG9e,SAAW8e,EAAG9e,QAAQyX,QAAUqH,EAAG9e,QAAQyX,OAAO1Q,QAAuC,UAA7B+X,EAAG9e,QAAQyX,OAAO1Q,UAG5J1O,EADEL,GAAYA,EAASK,UACXw+B,EAAGI,OAAOP,CAAI,EAAI,KAAOC,EAAQE,EAAK7+B,EAASK,UAE/C,GAuBV,CArBeR,EAAE+E,KAAKnF,KAAKM,WAAY,SAAUm/B,EAAiB/6B,GAEpE,GAAI+6B,EAAgB7+B,UAClB,IACE,IAAI8+B,EAAmB,IAAIvtB,OAAO,IAAM6sB,EAAO,KAAOC,EAAO,MAAQC,EAAQF,EAC3ES,EAAgB7+B,UAAUkR,QAAQ,4BAA6B,MAAM,CAAC,EACxE,GAAyD,GAArDuV,EAAG9e,QAAQS,SAAS2U,KAAK7E,OAAO4mB,CAAgB,EAElD,OADArY,EAAG9e,QAAQS,SAAS2U,KAAO0J,EAAG9e,QAAQS,SAAS2U,KAAK7L,QAAQ4tB,EAAkB9+B,CAAS,EAChF,CAAA,CAOX,CALE,MAAOsU,GAIP,OADAmS,EAAG9e,QAAQS,SAAS2U,MAAQ/c,EACrB,CAAA,CACT,CAGF,MAAO,CAAA,CACT,CAAC,IAE2C,EAAnBA,EAAU4D,SAE5BxE,KAAKiJ,MAAM,GAA4B,SAAvBjJ,KAAKq8B,gBAAwD,SAA3Br8B,KAAKm8B,mBAW1Dn8B,KAAKuI,QAAQS,SAAS2U,MAAQ/c,GAV1Bu+B,EAAqBn/B,KAAKuI,QAAQS,SAAS2U,KAAK7E,OAAO,IAAI3G,OAAO6sB,EAAO,UAAYA,EAAO,KAAOC,EAAO,+BAA+B,CAAC,EAE5Ij/B,KAAKuI,QAAQS,SAAS2U,KADE,GAAtBwhB,EAEAn/B,KAAKuI,QAAQS,SAAS2U,KAAKpJ,MAAM,EAAG4qB,CAAkB,EACtDv+B,EACAZ,KAAKuI,QAAQS,SAAS2U,KAAKpJ,MAAM4qB,CAAkB,EAExBv+B,EAAYZ,KAAKuI,QAAQS,SAAS2U,MAOzE,EAEA3d,KAAK2/B,eAAiB,SAAUnnB,GAC9B,IAAIonB,EAAIpnB,GAAgB,GACxB,OAAOpY,EAAEqO,OAAOoY,EAAavmB,WAAY,SAASC,GAChD,OAA+D,GAAxDA,EAASI,KAAKiP,YAAY,EAAEnK,QAAQm6B,EAAEhwB,YAAY,CAAC,CAC5D,CAAC,CACH,EAEA5P,KAAK6/B,YAAc,SAAS/B,EAASzS,GACnC,IAAmBnV,EACnB8nB,EAAah+B,KAAKuI,QAAQS,SAASqiB,GACnCxoB,EAAIm7B,EAAWv4B,QAAQq4B,CAAO,EAE9B,IADAE,EAAW/zB,OAAOpH,EAAG,CAAC,EACjBqT,EAAI,EAAGA,EAAI4nB,EAAQe,QAAQr6B,OAAQ0R,CAAC,GAAI,CAC3C,IAAIyE,EAAYmjB,EAAQe,QAAQ3oB,GAAGqoB,aAAa,EAC5CP,EAAWv4B,QAAQkV,CAAS,EAAI,GAClCqjB,EAAW/zB,OAAOpH,EAAIqT,EAAG,EAAG4nB,EAAQe,QAAQ3oB,GAAGqoB,aAAa,CAAC,CACjE,CACF,EAGAv+B,KAAK47B,eAAiB,WACpBvU,EAAG9e,QAAQoJ,MAAM,EACb7P,EAAYqB,SAASw4B,mBACvBtU,EAAGgT,SAAW34B,EAAS2lB,EAAGuU,eAAsD,IAAtC95B,EAAYqB,SAASw4B,iBAAsB,EAAE,EAC3F,EAEA37B,KAAKiJ,MAAQ,WACX,OAAqC,KAAA,IAAvBjJ,KAAKuI,QAAQyX,MAC7B,EAEAhgB,KAAK8/B,YAAc,SAAUje,GAC3B,IAAIke,EAAWle,EAAOe,OAWlB5iB,KAAK+6B,aACP3S,EAAkB,EAAEnoB,KAAK,SAASO,GAChC,IAVEw/B,EAUE1S,EAAcptB,QAAQM,QAAQu/B,CAAQ,EAAEE,IAAI,EAC5CC,EAAe,UAAUC,KAAK7S,CAAW,EACzC8S,EAAkB,EAIG,SAArB/Y,EAAGgV,gBACL0D,EAASM,WAAW,CAAC,EACrB7/B,EAAQ2E,KAAK,mBAAmB,EAAE,GAAG+jB,UAAY,IAI7CgX,GAEa,CAAC,GADhBI,EAAWhT,EAAYiT,YAAY,KAAK,KAEtCH,EAAmB9S,EAAY9oB,OAAS87B,GAE5CE,EAAgBlT,EAAY9oB,OAAS47B,EA3BrCJ,EADqBra,EA6BqB6a,EA3BpB,CAAC,GAFPP,EA6Ba3S,GA3BzB7nB,QAAQ,MAAM,IAEpBu6B,IADAS,EAAUR,EAAInuB,QAAQ,QAAS,IAAI,EAAEyC,MAAM,EAAGoR,CAAM,EAAE9V,MAAM,KAAK,GAC1C4wB,EAAQj8B,OAAS,EAAI,GAyB1Cg8B,EAvBGR,EAwBCE,IACFM,GAAiB,GACnBT,EAASM,WAAWG,CAAa,EAErC,CAAC,EAEDxgC,KAAK+6B,WAAa,CAAA,EAEtB,EAEA/6B,KAAK0gC,YAAc,SAAUC,GACtB3gC,KAAKiJ,MAAM,IACdjJ,KAAKg7B,OAAS2F,EACdvY,EAAkB,EAAEnoB,KAAK,WACvB0gC,EAAQzZ,MAAM,CAChB,CAAC,EAEL,EAEAlnB,KAAK4gC,YAAc,SAAU5F,GACvBh7B,KAAK+6B,aACP3S,EAAkB,EAAEnoB,KAAK,SAASO,GAChC,IAIIqgC,EAJAC,EAAmC,SAArBzZ,EAAGgV,eACjB3tB,EAAWssB,EAAO+F,aAAa,EAC/BC,EAAkBtyB,EAASuyB,UAAU,EACrC57B,EAAW21B,EAAO1e,SAAS4kB,QAAQ,EAAEC,YAAY,EAGrD,GAAIL,EACFD,EAAOx7B,EAAS+7B,QAAQ,CAAC,OAKzB,IADAP,EAAOx7B,EAAS+7B,QAAQ/7B,EAASiR,MAAM,EAAI,CAAC,IAC/B,CACX,IAAI+qB,EAAIR,EAAKS,YAAY,EACzB,GAAU,OAAND,EACF,MAEF,GAAI,qBAAqBlB,KAAKoB,UAAUF,EAAEG,QAAQ,CAAC,CAAC,EAAG,CACrDX,EAAOQ,EAAEC,YAAY,EAAEA,YAAY,EACnC,KACF,CACAT,EAAOQ,CACT,CAEF3yB,EAAS+yB,cAAcZ,CAAI,EAGvBC,GACFpyB,EAASgzB,eAAe,GAC1BV,EAAkBtyB,EAASuyB,UAAU,GACrB,GAAGU,SAAS,CAAA,CAAI,EAChCjzB,EAASkzB,aAAaZ,CAAe,EAChCF,GACHpyB,EAASgzB,eAAe,CAC5B,CAAC,EAED1hC,KAAK+6B,WAAa,CAAA,EAEtB,CACF,CAGA,SAAS8G,EAA2Brb,EAAQG,GAC1CH,EAAOsb,WAAa,WAClBnb,EAASkI,KAAK,CAChB,CACF,CArkBAkK,EAAwB5T,QAAU,CAAC,SAAU,UAAW,eAAgB,UAAW,YAAa,WAAY,eAAgB,cAAe,eAAgB,eAAgB,oBAAqB,kBAAmB,WAAY,aAAc,UAAW,SAAU,cAAe,OAAQ,eAgkBzR0c,EAA2B1c,QAAU,CAAC,SAAU,YAOhDjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,6BAA8Bse,CAA0B,EACnEte,WAAW,0BAA2BwV,CAAuB,CAEjE,EAAE,ECllBH,WAkBE,SAASgJ,EAAoB5T,EAAUI,EAAc9H,EAAQgI,EAAUC,EAAY1H,EAAYjlB,EAASglB,GACtG,IAAkBxlB,EAAY,GAG9BvB,KAAKgiC,UAAY,WACfhiC,KAAKiiC,aAAe7hC,EAAE+E,KAAKgpB,EAAShpB,KAAK,KAAK,EAAG,SAAS+8B,GACxD,OAAOA,EAAIxd,UAAUyH,SAAS,UAAU,CAC1C,CAAC,CACH,EAIAnsB,KAAKmiC,qBAAuB,SAAUC,GACpC7gC,EAAUoC,KAAKy+B,CAAiB,CAClC,EAIApiC,KAAKiO,aAAe,SAAUm0B,GAC5BrgC,EAAQotB,yBAA2BiT,EACJ,OAA3BrgC,EAAQ2J,iBACN22B,EAAsBjiC,EAAE+E,KAAK5D,EAAW,SAAS+gC,GACnD,OAAOA,EAAK5+B,QAAQZ,IAAMf,EAAQ2J,eAAe5I,EACnD,CAAC,IAECu/B,EAAoBE,eAAe,EAGlC9T,EAASzH,EAAW,QAAQ,GAC/B0H,EAAW,MAAM,EAAEzJ,MAAM,CAC7B,CAEF,CAjCA8c,EAAoB5c,QAAU,CAAC,WAAY,eAAgB,SAAU,WAAY,aAAc,aAAc,UAAW,mBAmCxHjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,sBAAuBwe,CAAmB,EACrDS,UAAU,mBAjDb,WACE,MAAO,CACLC,SAAU,IACVxa,MAAO,GACP1E,WAAY,qBACd,CACF,CA2CiD,CAClD,EAAE,ECxDH,WAEE,aAwBA,SAASmf,EAAiBlc,EAAQmI,GAChC,IAAItH,EAAKrnB,KAETwmB,EAAOmc,mBAAqB,CAAA,EAC5Bnc,EAAOoc,YAAc,GACrBpc,EAAO8J,WAAa,GAEpB9J,EAAO0M,WAAa,SAAS3nB,GAC3B,OAAOojB,EAAKxf,QAAQ5D,CAAM,CAC5B,EAEAib,EAAOqc,gBAAkB,SAASvzB,GAChC,IAAI7M,EAEU,YAAV6M,IACF7M,EAAO,CACLqgC,eAAgB,CAAA,EAChBF,YAAapc,EAAOoc,YAAYG,OAClC,GAGFvc,EAAOwc,OAAOz6B,QAAQ6V,YAAYiJ,EAAG4b,iBAAkB3zB,EAAQ7M,CAAI,CACrE,CACF,CAxBAigC,EAAiBvd,QAAU,CAAC,SAAU,QA0BtCjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,mBAAoBmf,CAAgB,EAC/CF,UAAU,SA5Cb,WACE,MAAO,CACLC,SAAU,IACVS,KAIF,SAAcjb,EAAOkb,EAAUzJ,EAAO4I,GACpCA,EAAKW,iBAAmBvJ,EAAM0J,UAChC,EALE7f,WAAY,kBACd,CAKF,CAkC6B,CAC9B,EAAE,ECvDH,WAsDE,SAAS8f,EAA4B7c,EAAQtb,EAAYijB,EAAU1H,EAAQ/kB,EAAUilB,EAAU1F,EAAUwN,EAAUC,EAAY1H,EAAYG,EAAQplB,EAASglB,EAAiBR,EAAS1mB,GACpL,IAAIyhB,EAAQthB,KAGZA,KAAKoqB,QAAU,WACbpqB,KAAKmuB,SAAWA,EAChBnuB,KAAKsjC,SAAW,CAAA,EAChBtjC,KAAKujC,kBAAkBpB,qBAAqBniC,IAAI,CAClD,EAGAA,KAAKgiC,UAAY,WACfhiC,KAAKwjC,kBAAoBrV,EAAShpB,KAAK,KAAK,EAAE,GAC9CnF,KAAKyjC,iBAAmBtV,EAAShpB,KAAK,GAAG,EAAE,GAC3CnF,KAAK0jC,eAAiBvV,EAAShpB,KAAK,oBAAoB,EAAE,GAC1DnF,KAAK2jC,aAAexV,EAAShpB,KAAK,OAAO,EAAE,GAC3CnF,KAAK4jC,kBAAoBxjC,EAAEwZ,KAAKuU,EAAShpB,KAAK,SAAS,CAAC,EAGzB,OAA3BpD,EAAQ2J,gBAA2B3J,EAAQ2J,eAAe5I,IAAM9C,KAAK0D,QAAQZ,IAC/E9C,KAAKujC,kBAAkBt1B,aAAajO,IAAI,CAE5C,EAEAA,KAAK6jC,WAAa,WAChB,MAAO,kBAAoB7jC,KAAK0D,QAAQ2I,KAC1C,EAGArM,KAAKiO,aAAe,SAAS4T,GACvB7hB,KAAKsjC,UAAYtjC,KAAK0D,SAAW3B,EAAQ2J,gBAAkB1L,KAAK0D,QAAQyN,WAAW,IAGvFnR,KAAK0D,QAAQoT,kBAAkB,EAAE,EAE7B/U,EAAQ2J,iBACN3J,EAAQ6J,cACV7J,EAAQ6J,aAAe,CAAA,EACvB7J,EAAQ8J,aAAe,CAAA,EACvBX,EAAWyK,WAAW,8BAA8B,EAChD5T,EAAQ2J,eAAexK,YAAyD,EAA3Ca,EAAQ2J,eAAexK,WAAWsD,QACzEzC,EAAQ2J,eAAeyJ,OAAO,CAAE1G,OAAQ,CAAA,EAAM3K,YAAa/B,EAAQ2J,eAAexK,WAAW,GAAG4C,WAAY,CAAC,GAG/G/B,EAAQ2J,eAAeyJ,OAAO,CAAE1G,OAAQ,CAAA,EAAM3K,YAAa/B,EAAQ2J,eAAe5H,WAAY,CAAC,GAInG9D,KAAKujC,kBAAkBt1B,aAAajO,IAAI,EACpC6hB,IACF4E,EAAOwD,GAAG,uBAAwB,CAChC5hB,UAAWrI,KAAK0D,QAAQmH,SAAS/H,GACjC0pB,UAAWzF,EAAgBA,EAAgB/mB,KAAK0D,QAAQ8C,IAAI,CAAC,CAC/D,CAAC,EACDqb,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,GAE1B,EAGA9oB,KAAKuiC,eAAiB,WACpBpU,EAAS,GAAGzJ,UAAUnH,OAAO,OAAO,CACtC,EAGAvd,KAAK8jC,WAAa,SAASjiB,GACzBA,EAAOgL,gBAAgB,EACvBhL,EAAOiH,eAAe,EAClB9oB,KAAK0D,QAAQgK,cACf1N,KAAKsjC,SAAW,CAAA,EAChBtjC,KAAK2jC,aAAat5B,MAAQrK,KAAK0D,QAAQgD,KACvC1G,KAAKyjC,iBAAiB/e,UAAUC,IAAI,SAAS,EAC7C3kB,KAAK0jC,eAAehf,UAAUnH,OAAO,SAAS,EAC1CsE,EAAOkiB,UAAoC,YAAxBliB,EAAOkiB,SAAS19B,KACrC3E,EAAS,WACP4f,EAAMqiB,aAAaK,OAAO,EAC1B1iB,EAAMqiB,aAAazc,MAAM,CAC3B,EAAG,GAAG,GAGNlnB,KAAK2jC,aAAaK,OAAO,EACzBhkC,KAAK2jC,aAAazc,MAAM,IAGxBlnB,KAAKy2B,OACPz2B,KAAKy2B,MAAMxR,MAAM,CAErB,EAGAjlB,KAAKikC,WAAa,SAASpiB,GACrB7hB,KAAK2jC,aAAaO,WAGtBlkC,KAAK0D,QAAQgD,KAAO1G,KAAK2jC,aAAat5B,MACtCrK,KAAK2jC,aAAaO,SAAW,CAAA,EAC7BlkC,KAAK0D,QAAQ6N,QAAQ,EAClBtR,KAAK,SAASwC,GACb6e,EAAMgiB,SAAW,CAAA,EACjBhiB,EAAMoiB,eAAehf,UAAUC,IAAI,SAAS,EAC5CrD,EAAMmiB,iBAAiB/e,UAAUnH,OAAO,SAAS,CACnD,CAAC,EACAxI,QAAQ,WACPuM,EAAMqiB,aAAaO,SAAW,CAAA,CAChC,CAAC,EACL,EAGAlkC,KAAKmkC,cAAgB,WACnBnkC,KAAKsjC,SAAW,CAAA,EAChBtjC,KAAKyjC,iBAAiB/e,UAAUnH,OAAO,SAAS,EAChDvd,KAAK0jC,eAAehf,UAAUC,IAAI,SAAS,EAC3C3kB,KAAK2jC,aAAat5B,MAAQrK,KAAK0D,QAAQgD,IACzC,EAGA1G,KAAKqvB,cAAgB,WACnBlI,EAAO2F,QAAQnlB,EAAE,SAAS,EACXA,EAAE,yDAAyD,EAC3D,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EAC/B1H,KAAK,WACJqhB,EAAM5d,QAAQgQ,QAAQ,EACnBzT,KAAK,WACJwmB,EAAOwD,GAAG,oBAAoB,CAChC,EAAG,SAAShV,GACVkS,EAAO2F,QAAQnlB,EAAE,SAAS,EACXA,EAAE,8FAA8F,EAChG,CAAEolB,GAAIplB,EAAE,QAAQ,CAAE,CAAC,EAC/B1H,KAAK,WACJqhB,EAAM5d,QAAQgQ,QAAQ,CAAEuZ,aAAc,CAAA,CAAK,CAAC,EACzChtB,KAAK,WACJwmB,EAAOwD,GAAG,oBAAoB,CAChC,EAAG,SAAShV,GACVkS,EAAO2L,MAAMnrB,EAAE,sDAAuD2Z,EAAM5d,QAAQgD,IAAI,EAC3EiB,EAAEsN,EAASC,KAAK,CAAC,CAChC,CAAC,CACL,CAAC,CACL,CAAC,CACL,CAAC,CACL,EAGAlV,KAAKokC,SAAW,SAASviB,GACvB,IAAIO,EAAgBnB,EAASsB,iBAAiB,EACzCqU,WAAW52B,KAAK4jC,iBAAiB,EACjC/M,iBACC5V,EAAS6V,UAAUC,YACnB9V,EAAS+V,UAAUC,UACrB,EAEAxU,EAAiBxB,EAASyB,kBAAkB,EAC3CC,SAAS3iB,KAAK4jC,iBAAiB,EAC/B/gB,SAAS,GAAG,EACZC,cAAc7B,EAAS8B,UAAUC,IAAI,EAEtCC,EAAS,CACXC,SAAUhjB,QAAQM,QAAQ8b,SAAS+F,IAAI,EACvCc,OAAQ,CACNkhB,SAAUrkC,KACV2U,OAAQ3U,KAAK0D,QACbogC,WAAY5jC,QAAQgE,KAAKlE,KAAMA,KAAK8jC,UAAU,EAC9CzU,cAAenvB,QAAQgE,KAAKlE,KAAMA,KAAKqvB,aAAa,CACtD,EACA/L,iBAAkB,CAAA,EAClBC,WAAY+T,EACZ7T,aAAc,YACdC,SAAUtB,EACVW,UAAWN,EACXkB,YAAa9B,EACbkG,YAAa,oBACbhE,UAAW,CAAA,EACXC,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfC,YAAa,CAAA,CACf,EAYA,SAASoT,EAAetS,EAAYyB,EAAQC,EAAWiI,GACrD,IAAI2V,EAAYtkC,KAEhBA,KAAKukC,eAAiB,WACpBvkC,KAAK2U,OAAOjC,YAAY,CAC1B,EAEA1S,KAAK2yB,UAAY,WACfxL,EAAO0L,OAAOlrB,EAAE,eAAe,EACjBA,EAAE,mCAAmC,CAAC,EACjD1H,KAAK,SAASyG,GACb49B,EAAU3vB,OAAOlO,YAAY69B,EAAU3vB,OAAO7R,GAAI4D,CAAI,EACnDzG,KAAK,aAEH,SAASwC,EAAMqH,GAChBqd,EAAO2L,MAAMnrB,EAAE,sDAAuDjB,CAAI,EAC7DiB,EAAElF,EAAKyS,KAAK,CAAC,CAC5B,CAAC,CACL,CAAC,CACL,EAEAlV,KAAKwkC,cAAgB,WACnBxkC,KAAK2U,OAAOvC,SAAS,EAAEnS,KAAK,WAC1B0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAY3lB,EAAE,kBAAkB,CAAC,EACjC+b,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,EAEAxtB,KAAKykC,gBAAkB,WACrB,OAAOzkC,KAAK0kC,YAAY/8B,EAAE,qBAAqB,CAAC,CAClD,EAEA3H,KAAK2kC,iBAAmB,WACtB,OAAO3kC,KAAK0kC,YAAY/8B,EAAE,eAAe,CAAC,CAC5C,EAEA3H,KAAK0kC,YAAc,SAASE,GAC1B5kC,KAAK2U,OAAOpC,OAAO,EAAEtS,KAAK,WACxB0mB,EAAS5F,KACP4F,EAAS0G,OAAO,EACbC,YAAYsX,CAAU,EACtBlhB,SAASsD,EAAWuG,aAAa,EACjCC,UAAU,GAAI,CAAC,CACtB,CAAC,CACH,EAEAxtB,KAAKsvB,mBAAqB,WACxBvtB,EAAQ8J,aAAe7L,KAAK2U,OAAOnO,KAE9BioB,EAASzH,EAAW,QAAQ,GAC/B0H,EAAW,MAAM,EAAEzJ,MAAM,EAE3B/Z,EAAWyK,WAAW,6BAA6B,CACrD,EAEA3V,KAAK6kC,MAAQ,WACX,IAAIC,EAAY5kC,QAAQgE,KAAKlE,KAAK2U,OAAO+E,YAAYzX,WACxBjC,KAAK2U,OAAO+E,YAAYzX,WAAW6iC,SAAS,EAEzE9kC,KAAK2U,OAAOtH,KAAK03B,OAAO,EAAE9kC,KAAK,WAE7BymB,EAAU3F,KAAK,CACbgH,YAAa+c,EAAUR,EAAU3vB,OAAO7R,EAAE,EAAE9B,KAAK,GAAG,EAAI,gBACxDuiB,WAAY,gBACZE,aAAc,MACdO,oBAAqB,CAAA,EACrBC,cAAe,CAAA,EACfd,OAAQ,CACN6hB,aAAcV,EAAU3vB,OAAOtH,KAAKxD,MACpC8kB,KAAMA,EACNha,OAAQ2vB,EAAU3vB,MACpB,CACF,CAAC,CACH,CAAC,CACH,EAEA3U,KAAKilC,YAAc,SAAS5+B,GAC1BrG,KAAK2U,OAAOrC,aAAajM,CAAI,EAAEpG,KAAK,WAClCqkC,EAAU3vB,OAAO9J,SAASjG,cAAc,CAACE,OAAQ,CAAA,CAAI,CAAC,CACxD,CAAC,CACH,EAEA9E,KAAKklC,WAAa,SAAS1+B,GACzB,IAGA2+B,EAAe,SAAS1zB,GACtB,GAAIA,EAAAA,EAAOpM,UAAqC,EAAzBoM,EAAOpM,SAASb,QAcrC,OAAQiN,EAAOjL,MAAQA,EAbvB,IAAK,IAAI3D,EAAI,EAA4BA,EAAI4O,EAAOpM,SAASb,OAAQ3B,CAAC,GAAI,CACxE,IAAID,EAAI6O,EAAOpM,SAASxC,GACxB,GAAID,EAAEyC,UAAgC,EAApBzC,EAAEyC,SAASb,QAC3B,GAAI2gC,EAAaviC,CAAC,EAChB,MAAO,CAAA,CACT,MAEG,GAAIA,EAAE4D,MAAQA,EACjB,MAAO,CAAA,CAEX,CAKJ,EAEA,OAAO2+B,EAAanlC,KAAK2U,MAAM,CACjC,EAEA3U,KAAKolC,WAAa,SAAS5+B,GACzBxG,KAAK2U,OAAOE,MAAMrO,CAAI,EACtBwe,EAAWC,MAAM,CACnB,CAEF,CA9HAhE,EAASxN,KAAKwP,CAAM,EACjBhjB,KAAK,SAAS63B,IACbxW,EAAMmV,MAAQqB,GAELC,QAAQxT,IAAI,QAAS,WAC5BuT,EAAS7S,MAAM,CACjB,CAAC,CACH,CAAC,EAEHqS,EAAenS,QAAU,CAAC,aAAc,SAAU,YAAa,OAwHjE,CACF,CAnTAke,EAA4Ble,QAAU,CAAC,SAAU,aAAc,WAAY,SAAU,WAAY,WAAY,WAAY,WAAY,aAAc,aAAc,SAAU,UAAW,kBAAmB,UAAW,WAsTpNjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,8BAA+B8f,CAA2B,EACrEb,UAAU,oBAxWb,WACE,MAAO,CACLC,SAAU,IACV4C,QAAS,CACP9B,kBAAmB,oBACrB,EACAtb,MAAO,GACP3E,iBAAkB,CAChB5f,QAAS,YACX,EACAogB,SAAU,CACR,kCACA,wCACA,qCACA,kDACA,gCAAkCnc,EAAE,UAAU,EAAI,IAClD,sDACA,oEACA,4GACA,qBACA,WACA,4BACA,4CACA,8CACA,8GACA,sHACA,6CACA,gDACA,wDACA,SACA,iDACA,8CACA,0BAA4BA,EAAE,mCAAmC,EAAI,IACrE,gDACA,iDACA,kDACA,0BACA,mGAAqGA,EAAE,SAAS,EAAI,yBACpH3G,KAAK,EAAE,EACTuiB,WAAY,8BACZE,aAAc,OAChB,CACF,CA8TmD,CACpD,EAAE,EC/WH,WAuBE,SAAS6hB,EAA4B9e,EAAQ2H,EAAUzsB,EAAUK,GAC/D,IAAIuf,EAAQthB,KACRulC,EAAiB,EAErBvlC,KAAKoqB,QAAU,WACb,IAAIob,EAAe,CAAC,MAAO,SAAU,YAAa,QAAS,WAKxB,UAFnCxlC,KAAKylC,eAAiB1jC,GAEV2J,eAAerF,MAAkD,aAA/BtE,EAAQ2J,eAAerF,MACnEm/B,EAAa7hC,KAAK,SAAS,EAE7B6iB,EAAOyE,OACL,WACE,OAAO3J,EAAM/Y,QAAS,CAAEnI,EAAEqK,KAAK6W,EAAM/Y,QAASi9B,CAAY,GAAM,IAClE,EACA,SAASE,EAAOC,GACVrkB,EAAM/Y,SAER+Y,EAAMskB,SAAS,CAEnB,EACA,CAAA,CACF,CACF,EAGA5lC,KAAK4lC,SAAW,WACV5lC,KAAKuI,QAAQwI,QACfod,EAAS7L,SAAS,aAAa,GAGjC6L,EAAStJ,YAAY,aAAa,EAE9B7kB,KAAKuI,QAAQoK,OACfwb,EAAStJ,YAAY,QAAQ,EAE7BsJ,EAAS7L,SAAS,QAAQ,EAExBvgB,EAAQ2J,eAAemD,kBAAkB7O,KAAKuI,QAAQmB,IAAK1J,KAAKuI,QAAQ4O,SAAS3Q,IAAI,EACvF2nB,EAAS7L,SAAS,2CAA2C,EAE7D6L,EAAStJ,YAAY,2CAA2C,EACpE,EAGA7kB,KAAK6lC,cAAgB,SAAUrlC,EAASslC,GAClCA,EACFtlC,EAAQkkB,UAAUnH,OAAO,SAAS,EAElC/c,EAAQkkB,UAAUC,IAAI,SAAS,CACnC,EAgBA6B,EAAOuE,IAAI,gBAAiB,WAN1BrpB,EAAS,WACHysB,EAAS1c,OAAO,EAAE,IAAM0c,EAAS1c,OAAO,EAAE,GAAGs0B,eAAiB5X,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,gBACnG5X,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,cAAc7c,UAAYqc,EACjE,EAAG,CAAC,CAKN,CAAC,EAED/e,EAAOuE,IAAI,oBAAqB,WAf1BoD,EAAS1c,OAAO,EAAE,IAAM0c,EAAS1c,OAAO,EAAE,GAAGs0B,eAAiB5X,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,gBACnGR,EAAiBpX,EAAS1c,OAAO,EAAE,GAAGs0B,cAAcA,cAAc7c,UAgBtE,CAAC,CAEH,CA7EAoc,EAA4BngB,QAAU,CAAC,SAAU,WAAY,WAAY,WAgFzEjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,8BAA+B+hB,CAA2B,EACrE9C,UAAU,oBAjGb,WACE,MAAO,CACLC,SAAU,IACVxa,MAAO,GACP3E,iBAAkB,CAChB/a,QAAS,YACX,EACAgb,WAAY,6BACd,CACF,CAwFmD,CACpD,EAAE,EC1GH,WA2DE,SAASyiB,EAAgCxf,EAAQ2H,EAAU8X,EAAQxf,EAAQ+H,EAAS7H,EAAU5kB,EAASC,EAAS+kB,EAAiBjlB,GAC/H,IAAIwf,EAAQthB,KAEZA,KAAKgiC,UAAY,WACf,IAAIkE,EAAmBC,EAAcC,EACjCC,EAA0BR,EAE9B7lC,KAAKsmC,iBAAmB9f,EAAO8f,iBAE/BD,EAA2BrmC,KAAKsmC,iBAAiBV,SACjDC,EAAgB7lC,KAAKsmC,iBAAiBT,cAEtCzlC,EAAEC,QAAQ8tB,EAAShpB,KAAK,KAAK,EAAG,SAAS+8B,GACnCA,EAAIxd,UAAUyH,SAAS,iBAAiB,EAC1C+Z,EAAoBhmC,QAAQM,QAAQ0hC,CAAG,EAChCA,EAAIxd,UAAUyH,SAAS,eAAe,IAC7Cia,EAAkBlmC,QAAQM,QAAQ0hC,CAAG,EACzC,CAAC,EAEDiE,EAAeD,EAAkB/gC,KAAK,QAAQ,EAAE,GAChDnF,KAAKmmC,aAAeA,EACpBA,EAAejmC,QAAQM,QAAQ2lC,CAAY,EAC3CnmC,KAAKumC,kBAAoBJ,EAAahhC,KAAK,SAAS,EAAE,GACtDnF,KAAKwmC,mBAAqBL,EAAahhC,KAAK,MAAM,EAAE,GACpDnF,KAAKymC,oBAAsBP,EAAkB/gC,KAAK,SAAS,EAAE,GAEzDpD,EAAQ6J,eAEV5L,KAAK0mC,mBAAqBR,EAAkB/gC,KAAK,MAAM,EAAE,GACzDnF,KAAK0mC,mBAAmBhiB,UAAUnH,OAAO,SAAS,GAGpDvd,KAAK2mC,cAAgBT,EAAkB/gC,KAAK,MAAM,EAAE,GAEpD/E,EAAEC,QAAQ6lC,EAAkB/gC,KAAK,KAAK,EAAG,SAAS+8B,GAC5CA,EAAIxd,UAAUyH,SAAS,iBAAiB,EAC1C7K,EAAMslB,eAAiB1E,EAChBA,EAAIxd,UAAUyH,SAAS,cAAc,EAC5C7K,EAAMulB,YAAc3E,EACbA,EAAIxd,UAAUyH,SAAS,cAAc,IAC5C7K,EAAMwlB,YAAc5E,EACxB,CAAC,EAED9hC,EAAEC,QAAQ+lC,EAAgBjhC,KAAK,SAAS,EAAG,SAAS+8B,GAC3B,QAAnBA,EAAI5U,YACNhM,EAAMylB,gBAAkB7E,EACE,SAAnBA,EAAI5U,YACXhM,EAAM0lB,kBAAoB9E,EACA,WAAnBA,EAAI5U,YACXhM,EAAM2lB,mBAAqB/E,EACD,eAAnBA,EAAI5U,cACXhM,EAAM4lB,sBAAwBhF,EAClC,CAAC,EAKDliC,KAAKsmC,iBAAiBV,SAAW,WAC/B,IAAI/iC,EAGJ,GAFAye,EAAM/Y,QAAU+Y,EAAMglB,iBAAiB/9B,QAEnC,CAAC+Y,EAAM/Y,QAAQwI,QAAS,CAE1B,IAAIo2B,EAAWhZ,EAAS,GAAGlF,cAAc,4BAA4B,EACjEme,EAAYlnC,QAAQM,QAAQ2mC,CAAQ,EACpCE,EAAe7Y,EAAQ8Y,aAAaH,EAASxqB,iBAAiB,kBAAkB,CAAC,EAIrF,IAHAvc,EAAEC,QAAQgnC,EAAc,SAASE,GAC/BJ,EAASK,YAAYD,CAAW,CAClC,CAAC,EACI1kC,EAAI,EAAGA,EAAIye,EAAM/Y,QAAQ2I,MAAM1M,QAAU3B,EAAI,EAAGA,CAAC,GAAI,CACxD,IAEM0kC,EAFF3uB,EAAM0I,EAAM/Y,QAAQ2I,MAAMrO,GAC1Bye,EAAMgJ,QAAQvS,MAAMa,MAClB2uB,EAAcrnC,QAAQM,QAAQ,qCAAqC,GAC3DinC,IAAI,mBAAoBnmB,EAAMgJ,QAAQvS,MAAMa,GAAK,EAAE,EAC/DwuB,EAAUM,OAAOH,CAAW,EAEhC,CAGIjmB,EAAMolB,qBACRplB,EAAMolB,mBAAmBlqB,UAAY8E,EAAM/Y,QAAQ4O,SAAS1J,cAG9D6T,EAAMqmB,+BAA+B,EAGjCrmB,EAAM/Y,QAAQ80B,UAAY/b,EAAM/Y,QAAQ80B,SAAShxB,MAAQ,GAC3DiV,EAAMmlB,oBAAoB/hB,UAAUnH,OAAO,SAAS,EAChD+D,EAAM/Y,QAAQ80B,SAAShxB,MAAQ,EACjCiV,EAAMmlB,oBAAoB/hB,UAAUC,IAAI,SAAS,EAEjDrD,EAAMmlB,oBAAoB/hB,UAAUnH,OAAO,SAAS,GAGtD+D,EAAMmlB,oBAAoB/hB,UAAUC,IAAI,SAAS,EAG/CrD,EAAM/Y,QAAQkN,OAChB6L,EAAM6kB,aAAazhB,UAAUnH,OAAO,SAAS,EAC7C+D,EAAMklB,mBAAmBhqB,UAAY8E,EAAM/Y,QAAQkP,YAC/C6J,EAAM/Y,QAAQmN,WAChB4L,EAAMilB,kBAAkB7hB,UAAUnH,OAAO,mBAAmB,GAG9D+D,EAAM6kB,aAAazhB,UAAUC,IAAI,SAAS,EAI5CrD,EAAMulB,YAAYrqB,UAAY8E,EAAM/Y,QAAQwd,KAG5CzE,EAAMwlB,YAAYtqB,UAAY8E,EAAM/Y,QAAQq/B,aAE5C/B,EAAcvkB,EAAMylB,gBACNzlB,EAAM/Y,QAAQsW,SAAS,EACrCgnB,EAAcvkB,EAAM0lB,kBACN1lB,EAAM/Y,QAAQ+X,UAAU,EACtCulB,EAAcvkB,EAAM2lB,mBACN3lB,EAAM/Y,QAAQgY,WAAW,EACvCslB,EAAcvkB,EAAM4lB,sBACN5lB,EAAM/Y,QAAQs/B,aAAa,CAC3C,CAGA3nC,QAAQgE,KAAKod,EAAMglB,iBAAkBD,CAAwB,EAAE,CACjE,EAEArmC,KAAKsqB,QAAUtoB,EACfhC,KAAKylC,eAAiB1jC,CACxB,EAEA/B,KAAK2nC,+BAAiC,WAChCrmB,GAASA,EAAM/Y,SAAW,CAAC+Y,EAAM/Y,QAAQwI,UAE3CuQ,EAAMslB,eAAepqB,UAAY8E,EAAM/Y,QAAQ0U,oBAAoB,EAG/DqE,EAAMmkB,eAAe/5B,eAAeY,cAAgBgV,EAAMmkB,eAAe/5B,eAAea,eAC1F+U,EAAMqlB,cAAcnqB,UAAY8E,EAAM/Y,QAAQyU,qBAAqBsE,EAAM/Y,QAAQ0R,cAAc,KAAMnY,EAAYqB,SAAS2kC,wBAAwB,EAAG,CAAA,CAAI,EAEzJxmB,EAAMqlB,cAAcnqB,UAAY8E,EAAM/Y,QAAQyU,qBAAqBsE,EAAM/Y,QAAQ0R,cAAc,OAAQnY,EAAYqB,SAAS2kC,wBAAwB,EAAG,CAAA,CAAI,EAEjK,EAEA9nC,KAAK+nC,SAAW,WACdzmB,EAAMqmB,+BAA+B,CACvC,EAEA3nC,KAAK8e,aAAe,WACd9e,KAAKuI,QAAQmN,UACf1V,KAAKumC,kBAAkB7hB,UAAUC,IAAI,mBAAmB,EAExD3kB,KAAKumC,kBAAkB7hB,UAAUnH,OAAO,mBAAmB,EAC7Dvd,KAAKuI,QAAQuW,aAAa,CAC5B,CAEF,CA7JAknB,EAAgC7gB,QAAU,CAAC,SAAU,WAAY,SAAU,SAAU,UAAW,WAAY,UAAW,UAAW,kBAAmB,eAgKrJjlB,QACGmC,OAAO,eAAe,EACtBkhB,WAAW,kCAAmCyiB,CAA+B,EAC7ExD,UAAU,wBArNb,WACE,MAAO,CACLC,SAAU,IACV4C,QAAS,sBACTpd,MAAO,GACPnE,SAAU,CACR,gCACA,gCACA,YACA,6EACA,iDACA,wDACA,aACA,0DACA,WACA,6BACA,6EACA,gEACA,0DACA,kIACA,qHACA,mBACA,WACA,SACA,8BACA,yDACA,6CACA,+CACA,mDACA,SACA,0CACA,0CACA,gDACA,+HACA,UACA9iB,KAAK,EAAE,EACTkiC,KAKF,SAAkBjb,EAAOznB,EAASk5B,EAAO4M,GACvCre,EAAMqe,iBAAmBA,CAC3B,EANE/iB,WAAY,kCACZE,aAAc,OAChB,CAMF,CAwK2D,CAC5D,EAAE,EC9NH,WAEE,aAmDA,SAASukB,EAA0B7Z,EAAUrN,GAC3C,IAAIQ,EAAQthB,KAEZA,KAAKgiC,UAAY,WACflhB,EAAaM,cAAc+M,CAAQ,EACnCA,EAASrD,GAAG,QAAS9qB,KAAKioC,SAAS,CACrC,EAEAjoC,KAAKioC,UAAY,SAASpmB,GACK,OAAzBA,EAAOe,OAAOyT,SAChBvV,EAAac,YAAYC,EAAQP,EAAMQ,SAAS,CACpD,CACF,CAbAkmB,EAA0B7iB,QAAU,CAAC,WAAY,gBAejDjlB,QACGmC,OAAO,eAAe,EACtBmgC,UAAU,kBApDb,WACE,MAAO,CACLC,SAAU,IACVnf,iBAAkB,CAChBxB,UAAW,kBACb,EACAyB,WAAYykB,CACd,CAuBF,CAsB+C,CAChD,EAAE"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Mailer/MailboxController.js b/UI/WebServerResources/js/Mailer/MailboxController.js index 333357d72..4f397f420 100644 --- a/UI/WebServerResources/js/Mailer/MailboxController.js +++ b/UI/WebServerResources/js/Mailer/MailboxController.js @@ -210,9 +210,7 @@ } url = url.join('/'); popupWindow = $window.open(url, wId, - ["width=680", - "height=520", - "resizable=1", + ["resizable=1", "scrollbars=1", "toolbar=0", "location=0", diff --git a/UI/WebServerResources/js/Main.js b/UI/WebServerResources/js/Main.js index 0d5557b23..1dbb6c69e 100644 --- a/UI/WebServerResources/js/Main.js +++ b/UI/WebServerResources/js/Main.js @@ -1,2 +1,2 @@ -!function(){"use strict";angular.module("SOGo.MainUI",["SOGo.Common","SOGo.Authentication"]);function e(e,o,s,r,a,n,i,t){var d=this;this.$onInit=function(){this.creds={username:o.cookieUsername,password:null,domain:null,rememberLogin:angular.isDefined(o.cookieUsername)&&0{e.parentElement.classList.add("md-input-has-value")})},100)},this.login=function(){return d.loginState="authenticating",n.login(d.creds).then(function(e){e.totpmissingkey?(d.loginState="totpcode",i("totpcode")):e.totpdisabled?(d.loginState="totpdisabled",d.cn=e.cn,d.url=e.url):(d.loginState="logged",d.cn=e.cn,d.url=e.url,s(function(){d.continueLogin()},1e3))},function(e){var o,s;d.loginState="error",e.error?d.errorMessage=e.error:0{d.retrievePasswordRecoveryEnabled(),this.passwordRecovery.passwordRecoveryLinkTimer=null},2e3)},this.retrievePasswordRecoveryEnabled=function(){(this.creds.username||this.creds.domain)&&n.passwordRecoveryEnabled(this.creds.username,this.creds.domain).then(function(e){d.passwordRecovery.passwordRecoveryMailDomain=e,d.passwordRecovery.passwordRecoveryEnabled=!0},function(){d.passwordRecovery.passwordRecoveryEnabled=!1})},this.changePasswordVisibility=function(){this.passwords.visible=!this.passwords.visible;var e=document.getElementById("passwordField");this.passwords.visible?(e.type="text",document.getElementById("password-visibility-icon").innerHTML="visibility_off"):(e.type="password",document.getElementById("password-visibility-icon").innerHTML="visibility")}}e.$inject=["$scope","$window","$timeout","Dialog","$mdDialog","Authentication","sgFocus","sgRippleClick"],angular.module("SOGo.MainUI").controller("LoginController",e)}(); +!function(){"use strict";angular.module("SOGo.MainUI",["SOGo.Common","SOGo.Authentication"]);function e(e,o,s,r,a,n,i,t){var d=this;this.$onInit=function(){this.creds={username:o.cookieUsername,password:null,domain:null,rememberLogin:angular.isDefined(o.cookieUsername)&&0{e.parentElement.classList.add("md-input-has-value")})},100)},this.login=function(){return d.loginState="authenticating",n.login(d.creds).then(function(e){e.totpmissingkey?(d.loginState="totpcode",i("totpcode")):e.totpdisabled?(d.loginState="totpdisabled",d.cn=e.cn,d.url=e.url):(d.loginState="logged",d.cn=e.cn,d.url=e.url,s(function(){d.continueLogin()},1e3))},function(e){var o,s;d.loginState="error",e.error?d.errorMessage=e.error:0{d.retrievePasswordRecoveryEnabled(),this.passwordRecovery.passwordRecoveryLinkTimer=null},2e3)},this.retrievePasswordRecoveryEnabled=function(){(this.creds.username||this.creds.domain)&&n.passwordRecoveryEnabled(this.creds.username,this.creds.domain).then(function(e){d.passwordRecovery.passwordRecoveryMailDomain=e,d.passwordRecovery.passwordRecoveryEnabled=!0},function(){d.passwordRecovery.passwordRecoveryEnabled=!1})},this.changePasswordVisibility=function(){this.passwords.visible=!this.passwords.visible;var e=document.getElementById("passwordField");this.passwords.visible?(e.type="text",document.getElementById("password-visibility-icon").innerHTML="visibility_off"):(e.type="password",document.getElementById("password-visibility-icon").innerHTML="visibility")}}e.$inject=["$scope","$window","$timeout","Dialog","$mdDialog","Authentication","sgFocus","sgRippleClick"],angular.module("SOGo.MainUI").controller("LoginController",e)}(); //# sourceMappingURL=Main.js.map \ No newline at end of file diff --git a/UI/WebServerResources/js/Main.js.map b/UI/WebServerResources/js/Main.js.map index a7c77ef4c..f7cc3f4f5 100644 --- a/UI/WebServerResources/js/Main.js.map +++ b/UI/WebServerResources/js/Main.js.map @@ -1 +1 @@ -{"version":3,"file":"Main.js","sources":["Main/Main.app.js"],"names":["angular","module","LoginController","$scope","$window","$timeout","Dialog","$mdDialog","Authentication","focus","rippleDo","vm","this","$onInit","creds","username","cookieUsername","password","domain","rememberLogin","isDefined","length","test","location","search","language","loginState","verificationCodePattern","passwords","newPassword","newPasswordConfirmation","oldPassword","visible","passwordRecovery","passwordRecoveryEnabled","passwordRecoveryQuestionKey","passwordRecoveryQuestion","passwordRecoveryMode","passwordRecoveryQuestionAnswer","passwordRecoveryToken","passwordRecoveryLinkTimer","passwordRecoverySecondaryEmailText","passwordRecoveryMailDomain","showLoader","showLogin","queryString","window","let","token","URLSearchParams","get","pathname","indexOf","tokenArray","replace","split","info","JSON","parse","atob","retrievePasswordRecoveryEnabled","document","querySelectorAll","forEach","el","parentElement","classList","add","login","then","data","totpmissingkey","totpdisabled","cn","url","continueLogin","msg","value","string","error","errorMessage","grace","l","expire","Math","round","passwordexpired","restoreLogin","passwordRecoveryInfo","verificationCode","passwordRecoveryAbort","href","reload","showAbout","$event","AboutDialogController","closeDialog","hide","show","targetEvent","templateUrl","controller","controllerAs","$inject","changeLanguage","ApplicationBaseURL","hello","form","canChangePassword","$setValidity","isInPasswordRecoveryMode","changePassword","mode","secretQuestionLabel","secretQuestion","obfuscatedRecoveryEmail","passwordRecoveryEmail","passwordRecoveryCheck","usernameChanged","clearTimeout","setTimeout","mailDomain","changePasswordVisibility","field","getElementById","type","innerHTML"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"Main.js","sources":["Main/Main.app.js"],"names":["angular","module","LoginController","$scope","$window","$timeout","Dialog","$mdDialog","Authentication","focus","rippleDo","vm","this","$onInit","creds","username","cookieUsername","password","domain","rememberLogin","isDefined","length","loginHint","test","location","search","language","loginState","verificationCodePattern","passwords","newPassword","newPasswordConfirmation","oldPassword","visible","passwordRecovery","passwordRecoveryEnabled","passwordRecoveryQuestionKey","passwordRecoveryQuestion","passwordRecoveryMode","passwordRecoveryQuestionAnswer","passwordRecoveryToken","passwordRecoveryLinkTimer","passwordRecoverySecondaryEmailText","passwordRecoveryMailDomain","showLoader","showLogin","queryString","window","let","token","URLSearchParams","get","pathname","indexOf","tokenArray","replace","split","info","JSON","parse","atob","retrievePasswordRecoveryEnabled","document","querySelectorAll","forEach","el","parentElement","classList","add","login","then","data","totpmissingkey","totpdisabled","cn","url","continueLogin","msg","value","string","error","errorMessage","grace","l","expire","Math","round","passwordexpired","loginName","restoreLogin","passwordRecoveryInfo","verificationCode","passwordRecoveryAbort","href","reload","showAbout","$event","AboutDialogController","closeDialog","hide","show","targetEvent","templateUrl","controller","controllerAs","$inject","changeLanguage","ApplicationBaseURL","hello","form","canChangePassword","$setValidity","isInPasswordRecoveryMode","changePassword","mode","secretQuestionLabel","secretQuestion","obfuscatedRecoveryEmail","passwordRecoveryEmail","passwordRecoveryCheck","usernameChanged","clearTimeout","setTimeout","mailDomain","changePasswordVisibility","field","getElementById","type","innerHTML"],"mappings":"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"} \ No newline at end of file diff --git a/UI/WebServerResources/js/Main/Main.app.js b/UI/WebServerResources/js/Main/Main.app.js index 9f0fcf59d..18c7f2af2 100644 --- a/UI/WebServerResources/js/Main/Main.app.js +++ b/UI/WebServerResources/js/Main/Main.app.js @@ -20,6 +20,8 @@ domain: null, rememberLogin: angular.isDefined($window.cookieUsername) && $window.cookieUsername.length > 0 }; + if($window.loginHint) + this.creds.username = $window.loginHint; // Send selected language only if user has changed it if (/\blanguage=/.test($window.location.search)) this.creds.language = $window.language; @@ -157,6 +159,64 @@ return false; }; + this.loginName = function() { + vm.loginState = 'authenticating'; + Authentication.loginName(vm.creds) + .then(function(data) { + vm.loginState = 'logged'; + vm.cn = data.cn; + vm.url = data.url; + + // Let the user see the succesfull message before reloading the page + $timeout(function() { + vm.continueLogin(); + }, 1000); + }, function(msg) { + vm.loginState = 'error'; + + if (msg.error) { + vm.errorMessage = msg.error; + } + else if (msg.grace > 0) { + // Password is expired, grace logins limit is not yet reached + vm.loginState = 'passwordwillexpire'; + vm.cn = msg.cn; + vm.url = msg.url; + vm.errorMessage = l('You have %{0} logins remaining before your account is locked. Please change your password in the preference dialog.', msg.grace); + } + else if (msg.expire > 0) { + // Password will soon expire + var value, string; + if (msg.expire > 86400) { + value = Math.round(msg.expire/86400); + string = l("days"); + } + else if (msg.expire > 3600) { + value = Math.round(msg.expire/3600); + string = l("hours"); + } + else if (msg.expire > 60) { + value = Math.round(msg.expire/60); + string = l("minutes"); + } + else { + value = msg.expire; + string = l("seconds"); + } + vm.loginState = 'passwordwillexpire'; + vm.cn = msg.cn; + vm.url = msg.url; + vm.errorMessage = l('Your password is going to expire in %{0} %{1}.', value, string); + } + else if (msg.passwordexpired) { + vm.loginState = 'passwordchange'; + vm.url = msg.url; + } + + }); + return false; + }; + this.restoreLogin = function() { vm.showLogin = false; if ('SecretQuestion' === vm.passwordRecovery.passwordRecoveryMode) {