Add chainIds to revealed accounts in memberhsip requests

This commit does a few things:

- Adds a migration that adds chainids to communities_request_to_join_revealed_addresses
- Removes RevealedAddress in favor of RevealedAccount which is now a struct that contains the revealed address, as well as the signature and a list of chain IDs on which to check for user funds
- Changes the logic of sending requests to join a community, such that after creating address signatures, the user node will also check which of the addresses has funds on which networks for the community's token permissions, and add the chainds to the RevealedAccount
- Updates checkPermissionToJoin() such that only relevant chainids are used when checking user's funds. Chain IDs are retrieved from RevealedAccounts and matched against token permission criteria chain IDs
This commit is contained in:
Pascal Precht 2023-06-06 20:33:09 +02:00 committed by Follow the white rabbit
parent 511faad0ec
commit 1a2ca21070
17 changed files with 1037 additions and 724 deletions

2
go.mod
View File

@ -64,7 +64,7 @@ require (
go.uber.org/zap v1.24.0
golang.org/x/crypto v0.7.0
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb
google.golang.org/protobuf v1.30.1-0.20230508203708-b8fc77060104
google.golang.org/protobuf v1.30.1-0.20230508203708-b8fc77060104 // indirect
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
gopkg.in/go-playground/validator.v9 v9.31.0
gopkg.in/natefinch/lumberjack.v2 v2.0.0

View File

@ -468,8 +468,8 @@ type CommunityChanges struct {
CategoriesAdded map[string]*protobuf.CommunityCategory `json:"categoriesAdded"`
CategoriesModified map[string]*protobuf.CommunityCategory `json:"categoriesModified"`
MemberWalletsRemoved []string `json:"memberWalletsRemoved"`
MemberWalletsAdded map[string][]string `json:"memberWalletsAdded"`
MemberWalletsRemoved []string `json:"memberWalletsRemoved"`
MemberWalletsAdded map[string][]*protobuf.RevealedAccount `json:"memberWalletsAdded"`
// ShouldMemberJoin indicates whether the user should join this community
// automatically
@ -1829,7 +1829,7 @@ func (o *Community) AllowsAllMembersToPinMessage() bool {
return o.config.CommunityDescription.AdminSettings != nil && o.config.CommunityDescription.AdminSettings.PinMessageAllMembersEnabled
}
func (o *Community) AddMemberWallet(memberID string, addresses []string) (*CommunityChanges, error) {
func (o *Community) AddMemberRevealedAccounts(memberID string, accounts []*protobuf.RevealedAccount) (*CommunityChanges, error) {
o.mutex.Lock()
defer o.mutex.Unlock()
@ -1841,11 +1841,11 @@ func (o *Community) AddMemberWallet(memberID string, addresses []string) (*Commu
return nil, ErrMemberNotFound
}
o.config.CommunityDescription.Members[memberID].WalletAccounts = addresses
o.config.CommunityDescription.Members[memberID].RevealedAccounts = accounts
o.increaseClock()
changes := o.emptyCommunityChanges()
changes.MemberWalletsAdded[memberID] = o.config.CommunityDescription.Members[memberID].WalletAccounts
changes.MemberWalletsAdded[memberID] = o.config.CommunityDescription.Members[memberID].RevealedAccounts
return changes, nil
}
@ -1881,7 +1881,7 @@ func emptyCommunityChanges() *CommunityChanges {
CategoriesModified: make(map[string]*protobuf.CommunityCategory),
MemberWalletsRemoved: []string{},
MemberWalletsAdded: make(map[string][]string),
MemberWalletsAdded: make(map[string][]*protobuf.RevealedAccount),
}
}

View File

@ -39,6 +39,7 @@ import (
"github.com/status-im/status-go/protocol/protobuf"
"github.com/status-im/status-go/protocol/requests"
"github.com/status-im/status-go/protocol/transport"
walletcommon "github.com/status-im/status-go/services/wallet/common"
"github.com/status-im/status-go/services/wallet/thirdparty/opensea"
"github.com/status-im/status-go/services/wallet/token"
"github.com/status-im/status-go/signal"
@ -127,7 +128,8 @@ type managerOptions struct {
}
type TokenManager interface {
GetBalancesByChain(ctx context.Context, accounts, tokens []gethcommon.Address) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error)
GetBalancesByChain(ctx context.Context, accounts, tokens []gethcommon.Address, chainIDs []uint64) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error)
GetAllChainIDs() ([]uint64, error)
}
type DefaultTokenManager struct {
@ -138,7 +140,9 @@ func NewDefaultTokenManager(tm *token.Manager) *DefaultTokenManager {
return &DefaultTokenManager{tokenManager: tm}
}
func (m *DefaultTokenManager) GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error) {
type BalancesByChain = map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big
func (m *DefaultTokenManager) GetAllChainIDs() ([]uint64, error) {
networks, err := m.tokenManager.RPCClient.NetworkManager.Get(false)
if err != nil {
return nil, err
@ -148,7 +152,10 @@ func (m *DefaultTokenManager) GetBalancesByChain(ctx context.Context, accounts,
for _, network := range networks {
chainIDs = append(chainIDs, network.ChainID)
}
return chainIDs, nil
}
func (m *DefaultTokenManager) GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (BalancesByChain, error) {
clients, err := m.tokenManager.RPCClient.EthClients(chainIDs)
if err != nil {
return nil, err
@ -652,12 +659,9 @@ func (m *Manager) checkMemberPermissions(communityID types.HexBytes) error {
continue
}
walletAddresses := make([]gethcommon.Address, 0)
for _, walletAddress := range member.WalletAccounts {
walletAddresses = append(walletAddresses, gethcommon.HexToAddress(walletAddress))
}
accountsAndChainIDs := revealedAccountsToAccountsAndChainIDsCombination(member.RevealedAccounts)
permissionResponse, err := m.checkPermissionToJoin(becomeMemberPermissions, walletAddresses, true)
permissionResponse, err := m.checkPermissionToJoin(becomeMemberPermissions, accountsAndChainIDs, true)
if err != nil {
return err
}
@ -1313,7 +1317,13 @@ func (m *Manager) CheckPermissionToJoin(id []byte, addresses []gethcommon.Addres
becomeMemberPermissions := community.TokenPermissionsByType(protobuf.CommunityTokenPermission_BECOME_MEMBER)
hasPermission, err := m.checkPermissionToJoin(becomeMemberPermissions, addresses, false)
allChainIDs, err := m.tokenManager.GetAllChainIDs()
if err != nil {
return nil, err
}
accountsAndChainIDs := combineAddressesAndChainIDs(addresses, allChainIDs)
hasPermission, err := m.checkPermissionToJoin(becomeMemberPermissions, accountsAndChainIDs, false)
if err != nil {
return nil, err
}
@ -1333,20 +1343,17 @@ func (m *Manager) AcceptRequestToJoin(request *requests.AcceptRequestToJoinCommu
}
becomeMemberPermissions := community.TokenPermissionsByType(protobuf.CommunityTokenPermission_BECOME_MEMBER)
addressesToAdd := make([]string, 0)
revealedAccounts := make([]*protobuf.RevealedAccount, 0)
if len(becomeMemberPermissions) > 0 {
revealedAddresses, err := m.persistence.GetRequestToJoinRevealedAddresses(dbRequest.ID)
revealedAccounts, err = m.persistence.GetRequestToJoinRevealedAddresses(dbRequest.ID)
if err != nil {
return nil, err
}
walletAddresses := make([]gethcommon.Address, 0)
for _, walletAddress := range revealedAddresses {
walletAddresses = append(walletAddresses, gethcommon.HexToAddress(walletAddress))
}
accountsAndChainIDs := revealedAccountsToAccountsAndChainIDsCombination(revealedAccounts)
permissionResponse, err := m.checkPermissionToJoin(becomeMemberPermissions, walletAddresses, true)
permissionResponse, err := m.checkPermissionToJoin(becomeMemberPermissions, accountsAndChainIDs, true)
if err != nil {
return nil, err
}
@ -1355,8 +1362,6 @@ func (m *Manager) AcceptRequestToJoin(request *requests.AcceptRequestToJoinCommu
if !hasPermission {
return community, ErrNoPermissionToJoin
}
addressesToAdd = append(addressesToAdd, revealedAddresses...)
}
pk, err := common.HexToPubkey(dbRequest.PublicKey)
@ -1369,7 +1374,7 @@ func (m *Manager) AcceptRequestToJoin(request *requests.AcceptRequestToJoinCommu
return nil, err
}
_, err = community.AddMemberWallet(dbRequest.PublicKey, addressesToAdd)
_, err = community.AddMemberRevealedAccounts(dbRequest.PublicKey, revealedAccounts)
if err != nil {
return nil, err
}
@ -1479,12 +1484,12 @@ func (m *Manager) HandleCommunityRequestToJoin(signer *ecdsa.PublicKey, request
}
requestToJoin := &RequestToJoin{
PublicKey: common.PubkeyToHex(signer),
Clock: request.Clock,
ENSName: request.EnsName,
CommunityID: request.CommunityId,
State: RequestToJoinStatePending,
RevealedAddresses: request.RevealedAddresses,
PublicKey: common.PubkeyToHex(signer),
Clock: request.Clock,
ENSName: request.EnsName,
CommunityID: request.CommunityId,
State: RequestToJoinStatePending,
RevealedAccounts: request.RevealedAccounts,
}
requestToJoin.CalculateID()
@ -1511,7 +1516,7 @@ func (m *Manager) HandleCommunityRequestToJoin(signer *ecdsa.PublicKey, request
if len(becomeMemberPermissions) > 0 {
// we have token permissions but requester hasn't revealed
// any addresses
if len(request.RevealedAddresses) == 0 {
if len(request.RevealedAccounts) == 0 {
err = m.markRequestToJoinAsCanceled(signer, community)
if err != nil {
return nil, err
@ -1521,17 +1526,17 @@ func (m *Manager) HandleCommunityRequestToJoin(signer *ecdsa.PublicKey, request
}
// verify if revealed addresses indeed belong to requester
for address, signature := range request.RevealedAddresses {
for _, revealedAccount := range request.RevealedAccounts {
recoverParams := account.RecoverParams{
Message: types.EncodeHex(crypto.Keccak256(crypto.CompressPubkey(signer), community.ID(), requestToJoin.ID)),
Signature: types.EncodeHex(signature),
Signature: types.EncodeHex(revealedAccount.Signature),
}
recovered, err := m.accountsManager.Recover(recoverParams)
if err != nil {
return nil, err
}
if recovered.Hex() != address {
if recovered.Hex() != revealedAccount.Address {
// if ownership of only one wallet address cannot be verified,
// we mark the request as cancelled and stop
err = m.markRequestToJoinAsCanceled(signer, community)
@ -1543,14 +1548,11 @@ func (m *Manager) HandleCommunityRequestToJoin(signer *ecdsa.PublicKey, request
}
}
accountsAndChainIDs := revealedAccountsToAccountsAndChainIDsCombination(request.RevealedAccounts)
// provided wallet addresses seem to be legit, so let's check
// if the necessary token permission funds exist
verifiedAddresses := make([]gethcommon.Address, 0)
for walletAddress := range request.RevealedAddresses {
verifiedAddresses = append(verifiedAddresses, gethcommon.HexToAddress(walletAddress))
}
permissionResponse, err := m.checkPermissionToJoin(becomeMemberPermissions, verifiedAddresses, true)
permissionResponse, err := m.checkPermissionToJoin(becomeMemberPermissions, accountsAndChainIDs, true)
if err != nil {
return nil, err
}
@ -1585,58 +1587,124 @@ func (m *Manager) HandleCommunityRequestToJoin(signer *ecdsa.PublicKey, request
}
type CheckPermissionToJoinResponse struct {
Satisfied bool `json:"satisfied"`
Permissions map[string]*CheckPermissionToJoinResult `json:"permissions"`
Satisfied bool `json:"satisfied"`
Permissions map[string]*CheckPermissionToJoinResult `json:"permissions"`
ValidCombinations []*AccountChainIDsCombination `json:"validCombinations"`
}
type CheckPermissionToJoinResult struct {
Criteria []bool `json:"criteria"`
}
type AccountChainIDsCombination struct {
Address gethcommon.Address `json:"address"`
ChainIDs []uint64 `json:"chainIds"`
}
func (c *CheckPermissionToJoinResponse) calculateSatisfied() {
if len(c.Permissions) == 0 {
c.Satisfied = true
return
}
c.Satisfied = false
for _, p := range c.Permissions {
c.Satisfied = true
satisfied := true
for _, criteria := range p.Criteria {
if !criteria {
c.Satisfied = false
satisfied = false
break
}
}
if satisfied {
c.Satisfied = true
}
}
}
func calculateChainIDsSet(accountsAndChainIDs []*AccountChainIDsCombination, requirementsChainIDs map[uint64]bool) []uint64 {
revealedAccountsChainIDs := make([]uint64, 0)
revealedAccountsChainIDsMap := make(map[uint64]bool)
// we want all chainIDs provided by revealed addresses that also exist
// in the token requirements
for _, accountAndChainIDs := range accountsAndChainIDs {
for _, chainID := range accountAndChainIDs.ChainIDs {
if requirementsChainIDs[chainID] && !revealedAccountsChainIDsMap[chainID] {
revealedAccountsChainIDsMap[chainID] = true
revealedAccountsChainIDs = append(revealedAccountsChainIDs, chainID)
}
}
}
return revealedAccountsChainIDs
}
// checkPermissionToJoin will retrieve balances and check whether the user has
// permission to join the community, if shortcircuit is true, it will stop as soon
// as we know the answer
func (m *Manager) checkPermissionToJoin(permissions []*protobuf.CommunityTokenPermission, walletAddresses []gethcommon.Address, shortcircuit bool) (*CheckPermissionToJoinResponse, error) {
func (m *Manager) checkPermissionToJoin(permissions []*protobuf.CommunityTokenPermission, accountsAndChainIDs []*AccountChainIDsCombination, shortcircuit bool) (*CheckPermissionToJoinResponse, error) {
response := &CheckPermissionToJoinResponse{
Permissions: make(map[string]*CheckPermissionToJoinResult),
Satisfied: false,
Permissions: make(map[string]*CheckPermissionToJoinResult),
ValidCombinations: make([]*AccountChainIDsCombination, 0),
}
erc20TokenRequirements, erc721TokenRequirements := extractTokenRequirements(permissions)
erc20TokenRequirements, erc721TokenRequirements, _ := ExtractTokenCriteria(permissions)
// find owned ERC721 tokens required by community's permissions
ownedERC721Tokens, err := m.getOwnedERC721Tokens(walletAddresses, erc721TokenRequirements)
if err != nil {
return response, err
erc20ChainIDsMap := make(map[uint64]bool)
erc721ChainIDsMap := make(map[uint64]bool)
erc20TokenAddresses := make([]gethcommon.Address, 0)
accounts := make([]gethcommon.Address, 0)
for _, accountAndChainIDs := range accountsAndChainIDs {
accounts = append(accounts, accountAndChainIDs.Address)
}
// find owned ERC20 token balances required by community's permissions
ownedERC20Tokens, err := m.getAccumulatedTokenBalances(walletAddresses, erc20TokenRequirements)
if err != nil {
return response, err
// figure out chain IDs we're interested in
for chainID, tokens := range erc20TokenRequirements {
erc20ChainIDsMap[chainID] = true
for contractAddress := range tokens {
erc20TokenAddresses = append(erc20TokenAddresses, gethcommon.HexToAddress(contractAddress))
}
}
ownedENSNames, err := m.getOwnedENS(walletAddresses)
if err != nil {
return response, err
for chainID := range erc721TokenRequirements {
erc721ChainIDsMap[chainID] = true
}
chainIDsForERC20 := calculateChainIDsSet(accountsAndChainIDs, erc20ChainIDsMap)
chainIDsForERC721 := calculateChainIDsSet(accountsAndChainIDs, erc721ChainIDsMap)
// if there are no chain IDs that match token criteria chain IDs
// we aren't able to check balances on selected networks
if len(erc20ChainIDsMap) > 0 && len(chainIDsForERC20) == 0 {
return nil, errors.New("no chain IDs found to check token funds on")
}
ownedERC20TokenBalances := make(map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, 0)
if len(chainIDsForERC20) > 0 {
// this only returns balances for the networks we're actually interested in
balances, err := m.tokenManager.GetBalancesByChain(context.Background(), accounts, erc20TokenAddresses, chainIDsForERC20)
if err != nil {
return nil, err
}
ownedERC20TokenBalances = balances
}
ownedERC721Tokens := make(CollectiblesByChain)
if len(chainIDsForERC721) > 0 {
collectibles, err := m.GetOwnedERC721Tokens(accounts, erc721TokenRequirements, chainIDsForERC721)
if err != nil {
return nil, err
}
ownedERC721Tokens = collectibles
}
accountsChainIDsCombinations := make(map[gethcommon.Address]map[uint64]bool)
for _, tokenPermission := range permissions {
permissionRequirementsMet := true
@ -1649,63 +1717,131 @@ func (m *Manager) checkPermissionToJoin(permissions []*protobuf.CommunityTokenPe
tokenRequirementMet := false
// check NFTs
if tokenRequirement.Type == protobuf.CommunityTokenType_ERC721 {
if len(ownedERC721Tokens) == 0 {
response.Permissions[tokenPermission.Id].Criteria = append(response.Permissions[tokenPermission.Id].Criteria, false)
continue
}
contractAddressesLoop:
chainIDLoopERC721:
for chainID, address := range tokenRequirement.ContractAddresses {
addr := strings.ToLower(address)
if _, exists := ownedERC721Tokens[chainID][addr]; !exists {
response.Permissions[tokenPermission.Id].Criteria = append(response.Permissions[tokenPermission.Id].Criteria, false)
continue
if _, exists := ownedERC721Tokens[chainID]; !exists || len(ownedERC721Tokens[chainID]) == 0 {
continue chainIDLoopERC721
}
if len(tokenRequirement.TokenIds) == 0 {
// no NFT with specific tokenId needs to be owned,
tokenRequirementMet = true
break contractAddressesLoop
}
for account := range ownedERC721Tokens[chainID] {
if _, exists := ownedERC721Tokens[chainID][account]; !exists {
continue
}
tokenIDsLoop:
for _, tokenID := range tokenRequirement.TokenIds {
tokenIDBigInt := new(big.Int).SetUint64(tokenID)
for _, asset := range ownedERC721Tokens[chainID][addr] {
if asset.TokenID.Cmp(tokenIDBigInt) == 0 {
if _, exists := ownedERC721Tokens[chainID][account][strings.ToLower(address)]; exists {
if _, exists := accountsChainIDsCombinations[account]; !exists {
accountsChainIDsCombinations[account] = make(map[uint64]bool)
}
if len(tokenRequirement.TokenIds) == 0 {
// no specific tokenId of this collection is needed
tokenRequirementMet = true
break tokenIDsLoop
accountsChainIDsCombinations[account][chainID] = true
break chainIDLoopERC721
}
tokenIDsLoop:
for _, tokenID := range tokenRequirement.TokenIds {
tokenIDBigInt := new(big.Int).SetUint64(tokenID)
for _, asset := range ownedERC721Tokens[chainID][account][strings.ToLower(address)] {
if asset.TokenID.Cmp(tokenIDBigInt) == 0 {
tokenRequirementMet = true
accountsChainIDsCombinations[account][chainID] = true
break tokenIDsLoop
}
}
}
}
}
}
} else if tokenRequirement.Type == protobuf.CommunityTokenType_ERC20 {
if len(ownedERC20Tokens) == 0 {
if len(ownedERC20TokenBalances) == 0 {
response.Permissions[tokenPermission.Id].Criteria = append(response.Permissions[tokenPermission.Id].Criteria, false)
continue
}
amount, _ := strconv.ParseFloat(tokenRequirement.Amount, 32)
if ownedERC20Tokens[tokenRequirement.Symbol].Cmp(big.NewFloat(amount)) != -1 {
tokenRequirementMet = true
}
} else if tokenRequirement.Type == protobuf.CommunityTokenType_ENS {
if len(ownedENSNames) == 0 {
response.Permissions[tokenPermission.Id].Criteria = append(response.Permissions[tokenPermission.Id].Criteria, false)
continue
}
if !strings.HasPrefix(tokenRequirement.EnsPattern, "*.") {
for _, ownedENS := range ownedENSNames {
if ownedENS == tokenRequirement.EnsPattern {
accumulatedBalance := new(big.Float)
chainIDLoopERC20:
for chainID, address := range tokenRequirement.ContractAddresses {
if _, exists := ownedERC20TokenBalances[chainID]; !exists || len(ownedERC20TokenBalances[chainID]) == 0 {
continue chainIDLoopERC20
}
contractAddress := gethcommon.HexToAddress(address)
for account := range ownedERC20TokenBalances[chainID] {
if _, exists := ownedERC20TokenBalances[chainID][account][contractAddress]; !exists {
continue
}
value := ownedERC20TokenBalances[chainID][account][contractAddress]
accountChainBalance := new(big.Float).Quo(
new(big.Float).SetInt(value.ToInt()),
big.NewFloat(math.Pow(10, float64(tokenRequirement.Decimals))),
)
if _, exists := accountsChainIDsCombinations[account]; !exists {
accountsChainIDsCombinations[account] = make(map[uint64]bool)
}
if accountChainBalance.Cmp(big.NewFloat(0)) > 0 {
// account has balance > 0 on this chain for this token, so let's add it the chain IDs
accountsChainIDsCombinations[account][chainID] = true
}
// check if adding current chain account balance to accumulated balance
// satisfies required amount
prevBalance := accumulatedBalance
accumulatedBalance.Add(prevBalance, accountChainBalance)
requiredAmount, err := strconv.ParseFloat(tokenRequirement.Amount, 32)
if err != nil {
return nil, err
}
if accumulatedBalance.Cmp(big.NewFloat(requiredAmount)) != -1 {
tokenRequirementMet = true
if shortcircuit {
break chainIDLoopERC20
}
}
}
} else {
parentName := tokenRequirement.EnsPattern[2:]
for _, ownedENS := range ownedENSNames {
if strings.HasSuffix(ownedENS, parentName) {
tokenRequirementMet = true
}
} else if tokenRequirement.Type == protobuf.CommunityTokenType_ENS {
for _, account := range accounts {
ownedENSNames, err := m.getOwnedENS([]gethcommon.Address{account})
if err != nil {
return nil, err
}
if _, exists := accountsChainIDsCombinations[account]; !exists {
accountsChainIDsCombinations[account] = make(map[uint64]bool)
}
if !strings.HasPrefix(tokenRequirement.EnsPattern, "*.") {
for _, ownedENS := range ownedENSNames {
if ownedENS == tokenRequirement.EnsPattern {
tokenRequirementMet = true
accountsChainIDsCombinations[account][walletcommon.EthereumMainnet] = true
}
}
} else {
parentName := tokenRequirement.EnsPattern[2:]
for _, ownedENS := range ownedENSNames {
if strings.HasSuffix(ownedENS, parentName) {
tokenRequirementMet = true
accountsChainIDsCombinations[account][walletcommon.EthereumMainnet] = true
}
}
}
}
@ -1723,55 +1859,45 @@ func (m *Manager) checkPermissionToJoin(permissions []*protobuf.CommunityTokenPe
}
}
// attach valid account and chainID combinations to response
for account, chainIDs := range accountsChainIDsCombinations {
combination := &AccountChainIDsCombination{
Address: account,
}
for chainID := range chainIDs {
combination.ChainIDs = append(combination.ChainIDs, chainID)
}
response.ValidCombinations = append(response.ValidCombinations, combination)
}
response.calculateSatisfied()
return response, nil
}
func extractTokenRequirements(permissions []*protobuf.CommunityTokenPermission) (map[uint64]map[string]*protobuf.TokenCriteria, map[uint64]map[string]*protobuf.TokenCriteria) {
erc20TokenRequirementsByChain := make(map[uint64]map[string]*protobuf.TokenCriteria)
erc721TokenRequirementsByChain := make(map[uint64]map[string]*protobuf.TokenCriteria)
for _, tokenPermission := range permissions {
for _, tokenRequirement := range tokenPermission.TokenCriteria {
isERC721 := tokenRequirement.Type == protobuf.CommunityTokenType_ERC721
isERC20 := tokenRequirement.Type == protobuf.CommunityTokenType_ERC20
for chainID, contractAddress := range tokenRequirement.ContractAddresses {
type CollectiblesByChain = map[uint64]map[gethcommon.Address]map[string][]opensea.Asset
_, existsERC721 := erc721TokenRequirementsByChain[chainID]
if isERC721 && !existsERC721 {
erc721TokenRequirementsByChain[chainID] = make(map[string]*protobuf.TokenCriteria)
}
_, existsERC20 := erc20TokenRequirementsByChain[chainID]
if isERC20 && !existsERC20 {
erc20TokenRequirementsByChain[chainID] = make(map[string]*protobuf.TokenCriteria)
}
_, existsERC721 = erc721TokenRequirementsByChain[chainID][contractAddress]
if isERC721 && !existsERC721 {
erc721TokenRequirementsByChain[chainID][strings.ToLower(contractAddress)] = tokenRequirement
}
_, existsERC20 = erc20TokenRequirementsByChain[chainID][contractAddress]
if isERC20 && !existsERC20 {
erc20TokenRequirementsByChain[chainID][strings.ToLower(contractAddress)] = tokenRequirement
}
}
}
}
return erc20TokenRequirementsByChain, erc721TokenRequirementsByChain
}
func (m *Manager) getOwnedERC721Tokens(walletAddresses []gethcommon.Address, tokenRequirements map[uint64]map[string]*protobuf.TokenCriteria) (map[uint64]map[string][]opensea.Asset, error) {
func (m *Manager) GetOwnedERC721Tokens(walletAddresses []gethcommon.Address, tokenRequirements map[uint64]map[string]*protobuf.TokenCriteria, chainIDs []uint64) (CollectiblesByChain, error) {
if m.walletConfig == nil || m.walletConfig.OpenseaAPIKey == "" {
return nil, errors.New("no opensea client")
}
ownedERC721Tokens := make(map[uint64]map[string][]opensea.Asset)
ownedERC721Tokens := make(map[uint64]map[gethcommon.Address]map[string][]opensea.Asset)
for chainID, erc721Tokens := range tokenRequirements {
skipChain := true
for _, cID := range chainIDs {
if chainID == cID {
skipChain = false
}
}
if skipChain {
continue
}
client, err := m.openseaClientBuilder.NewOpenseaClient(chainID, m.walletConfig.OpenseaAPIKey, nil)
if err != nil {
return nil, err
@ -1783,7 +1909,7 @@ func (m *Manager) getOwnedERC721Tokens(walletAddresses []gethcommon.Address, tok
}
if _, exists := ownedERC721Tokens[chainID]; !exists {
ownedERC721Tokens[chainID] = make(map[string][]opensea.Asset)
ownedERC721Tokens[chainID] = make(map[gethcommon.Address]map[string][]opensea.Asset)
}
for _, owner := range walletAddresses {
@ -1793,52 +1919,25 @@ func (m *Manager) getOwnedERC721Tokens(walletAddresses []gethcommon.Address, tok
return nil, err
}
if len(assets.Assets) == 0 {
continue
}
if _, exists := ownedERC721Tokens[chainID][owner]; !exists {
ownedERC721Tokens[chainID][owner] = make(map[string][]opensea.Asset, 0)
}
for _, asset := range assets.Assets {
if _, exists := ownedERC721Tokens[chainID][asset.Contract.Address]; !exists {
ownedERC721Tokens[chainID][asset.Contract.Address] = make([]opensea.Asset, 0)
if _, exists := ownedERC721Tokens[chainID][owner][asset.Contract.Address]; !exists {
ownedERC721Tokens[chainID][owner][asset.Contract.Address] = make([]opensea.Asset, 0)
}
ownedERC721Tokens[chainID][asset.Contract.Address] = append(ownedERC721Tokens[chainID][asset.Contract.Address], asset)
ownedERC721Tokens[chainID][owner][asset.Contract.Address] = append(ownedERC721Tokens[chainID][owner][asset.Contract.Address], asset)
}
}
}
return ownedERC721Tokens, nil
}
func (m *Manager) getAccumulatedTokenBalances(accounts []gethcommon.Address, tokenRequirements map[uint64]map[string]*protobuf.TokenCriteria) (map[string]*big.Float, error) {
tokenAddresses := make([]gethcommon.Address, 0)
for _, tokens := range tokenRequirements {
for contractAddress := range tokens {
tokenAddresses = append(tokenAddresses, gethcommon.HexToAddress(contractAddress))
}
}
balancesByChain, err := m.tokenManager.GetBalancesByChain(context.Background(), accounts, tokenAddresses)
if err != nil {
return nil, err
}
accumulatedBalances := make(map[string]*big.Float)
for chainID, accounts := range balancesByChain {
for _, contracts := range accounts {
for contract, value := range contracts {
if token, exists := tokenRequirements[chainID][strings.ToLower(contract.Hex())]; exists {
if _, exists := accumulatedBalances[token.Symbol]; !exists {
accumulatedBalances[token.Symbol] = new(big.Float)
}
balance := new(big.Float).Quo(
new(big.Float).SetInt(value.ToInt()),
big.NewFloat(math.Pow(10, float64(token.Decimals))),
)
prevBalance := accumulatedBalances[token.Symbol]
accumulatedBalances[token.Symbol].Add(prevBalance, balance)
}
}
}
}
return accumulatedBalances, nil
}
func (m *Manager) getOwnedENS(addresses []gethcommon.Address) ([]string, error) {
ownedENS := make([]string, 0)
if m.ensVerifier == nil {
@ -2279,13 +2378,13 @@ func (m *Manager) RequestToJoin(requester *ecdsa.PublicKey, request *requests.Re
clock := uint64(time.Now().Unix())
requestToJoin := &RequestToJoin{
PublicKey: common.PubkeyToHex(requester),
Clock: clock,
ENSName: request.ENSName,
CommunityID: request.CommunityID,
State: RequestToJoinStatePending,
Our: true,
RevealedAddresses: make(map[string][]byte),
PublicKey: common.PubkeyToHex(requester),
Clock: clock,
ENSName: request.ENSName,
CommunityID: request.CommunityID,
State: RequestToJoinStatePending,
Our: true,
RevealedAccounts: make([]*protobuf.RevealedAccount, 0),
}
requestToJoin.CalculateID()
@ -3502,3 +3601,25 @@ func (m *Manager) UpdateCommunity(c *Community) error {
m.publish(&Subscription{Community: c})
return nil
}
func combineAddressesAndChainIDs(addresses []gethcommon.Address, chainIDs []uint64) []*AccountChainIDsCombination {
combinations := make([]*AccountChainIDsCombination, 0)
for _, address := range addresses {
combinations = append(combinations, &AccountChainIDsCombination{
Address: address,
ChainIDs: chainIDs,
})
}
return combinations
}
func revealedAccountsToAccountsAndChainIDsCombination(revealedAccounts []*protobuf.RevealedAccount) []*AccountChainIDsCombination {
accountsAndChainIDs := make([]*AccountChainIDsCombination, 0)
for _, revealedAccount := range revealedAccounts {
accountsAndChainIDs = append(accountsAndChainIDs, &AccountChainIDsCombination{
Address: gethcommon.HexToAddress(revealedAccount.Address),
ChainIDs: revealedAccount.ChainIds,
})
}
return accountsAndChainIDs
}

View File

@ -102,7 +102,11 @@ func (m *testTokenManager) setResponse(chainID uint64, walletAddress, tokenAddre
}
func (m *testTokenManager) GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error) {
func (m *testTokenManager) GetAllChainIDs() ([]uint64, error) {
return []uint64{5}, nil
}
func (m *testTokenManager) GetBalancesByChain(ctx context.Context, accounts, tokenAddresses []gethcommon.Address, chainIDs []uint64) (map[uint64]map[gethcommon.Address]map[gethcommon.Address]*hexutil.Big, error) {
return m.response, nil
}
@ -154,18 +158,22 @@ func (s *ManagerSuite) TestRetrieveTokens() {
},
}
wallets := []gethcommon.Address{gethcommon.HexToAddress("0xD6b912e09E797D291E8D0eA3D3D17F8000e01c32")}
accountChainIDsCombination := []*AccountChainIDsCombination{
&AccountChainIDsCombination{
Address: gethcommon.HexToAddress("0xD6b912e09E797D291E8D0eA3D3D17F8000e01c32"),
ChainIDs: []uint64{chainID},
},
}
// Set response to exactly the right one
tm.setResponse(chainID, wallets[0], gethcommon.HexToAddress(contractAddresses[chainID]), int64(1*math.Pow(10, float64(decimals))))
resp, err := m.checkPermissionToJoin(permissions, wallets, false)
tm.setResponse(chainID, accountChainIDsCombination[0].Address, gethcommon.HexToAddress(contractAddresses[chainID]), int64(1*math.Pow(10, float64(decimals))))
resp, err := m.checkPermissionToJoin(permissions, accountChainIDsCombination, false)
s.Require().NoError(err)
s.Require().NotNil(resp)
s.Require().True(resp.Satisfied)
// Set response to 0
tm.setResponse(chainID, wallets[0], gethcommon.HexToAddress(contractAddresses[chainID]), 0)
resp, err = m.checkPermissionToJoin(permissions, wallets, false)
tm.setResponse(chainID, accountChainIDsCombination[0].Address, gethcommon.HexToAddress(contractAddresses[chainID]), 0)
resp, err = m.checkPermissionToJoin(permissions, accountChainIDsCombination, false)
s.Require().NoError(err)
s.Require().NotNil(resp)
s.Require().False(resp.Satisfied)

View File

@ -6,6 +6,8 @@ import (
"database/sql"
"errors"
"fmt"
"strconv"
"strings"
"github.com/golang/protobuf/proto"
"go.uber.org/zap"
@ -336,16 +338,23 @@ func (p *Persistence) SaveRequestToJoinRevealedAddresses(request *RequestToJoin)
_ = tx.Rollback()
}()
query := `INSERT OR REPLACE INTO communities_requests_to_join_revealed_addresses (request_id, address) VALUES (?, ?)`
query := `INSERT OR REPLACE INTO communities_requests_to_join_revealed_addresses (request_id, address, chain_ids) VALUES (?, ?, ?)`
stmt, err := tx.Prepare(query)
if err != nil {
return
}
defer stmt.Close()
for address := range request.RevealedAddresses {
for _, account := range request.RevealedAccounts {
var chainIDs []string
for _, ID := range account.ChainIds {
chainIDs = append(chainIDs, strconv.Itoa(int(ID)))
}
_, err = stmt.Exec(
request.ID,
address,
account.Address,
strings.Join(chainIDs, ","),
)
if err != nil {
return
@ -354,9 +363,9 @@ func (p *Persistence) SaveRequestToJoinRevealedAddresses(request *RequestToJoin)
return
}
func (p *Persistence) GetRequestToJoinRevealedAddresses(requestID []byte) ([]string, error) {
revealedAddresses := make([]string, 0)
rows, err := p.db.Query(`SELECT address FROM communities_requests_to_join_revealed_addresses WHERE request_id = ?`, requestID)
func (p *Persistence) GetRequestToJoinRevealedAddresses(requestID []byte) ([]*protobuf.RevealedAccount, error) {
revealedAccounts := make([]*protobuf.RevealedAccount, 0)
rows, err := p.db.Query(`SELECT address, chain_ids FROM communities_requests_to_join_revealed_addresses WHERE request_id = ?`, requestID)
if err != nil {
return nil, err
}
@ -364,13 +373,30 @@ func (p *Persistence) GetRequestToJoinRevealedAddresses(requestID []byte) ([]str
for rows.Next() {
address := ""
err := rows.Scan(&address)
chainIDsStr := ""
err := rows.Scan(&address, &chainIDsStr)
if err != nil {
return nil, err
}
revealedAddresses = append(revealedAddresses, address)
chainIDs := make([]uint64, 0)
for _, chainIDstr := range strings.Split(chainIDsStr, ",") {
if chainIDstr != "" {
chainID, err := strconv.Atoi(chainIDstr)
if err != nil {
return nil, err
}
chainIDs = append(chainIDs, uint64(chainID))
}
}
revealedAccount := &protobuf.RevealedAccount{
Address: address,
ChainIds: chainIDs,
}
revealedAccounts = append(revealedAccounts, revealedAccount)
}
return revealedAddresses, nil
return revealedAccounts, nil
}
func (p *Persistence) SaveRequestToLeave(request *RequestToLeave) error {

View File

@ -19,16 +19,16 @@ const (
)
type RequestToJoin struct {
ID types.HexBytes `json:"id"`
PublicKey string `json:"publicKey"`
Clock uint64 `json:"clock"`
ENSName string `json:"ensName,omitempty"`
ChatID string `json:"chatId"`
CommunityID types.HexBytes `json:"communityId"`
State RequestToJoinState `json:"state"`
Our bool `json:"our"`
RevealedAddresses map[string][]byte `json:"revealedAddresses,omitempty"`
Deleted bool `json:"deleted"`
ID types.HexBytes `json:"id"`
PublicKey string `json:"publicKey"`
Clock uint64 `json:"clock"`
ENSName string `json:"ensName,omitempty"`
ChatID string `json:"chatId"`
CommunityID types.HexBytes `json:"communityId"`
State RequestToJoinState `json:"state"`
Our bool `json:"our"`
Deleted bool `json:"deleted"`
RevealedAccounts []*protobuf.RevealedAccount `json:"revealedAccounts,omitempty"`
}
func (r *RequestToJoin) CalculateID() {
@ -37,14 +37,14 @@ func (r *RequestToJoin) CalculateID() {
func (r *RequestToJoin) ToSyncProtobuf() *protobuf.SyncCommunityRequestsToJoin {
return &protobuf.SyncCommunityRequestsToJoin{
Id: r.ID,
PublicKey: r.PublicKey,
Clock: r.Clock,
EnsName: r.ENSName,
ChatId: r.ChatID,
CommunityId: r.CommunityID,
State: uint64(r.State),
RevealedAddresses: r.RevealedAddresses,
Id: r.ID,
PublicKey: r.PublicKey,
Clock: r.Clock,
EnsName: r.ENSName,
ChatId: r.ChatID,
CommunityId: r.CommunityID,
State: uint64(r.State),
RevealedAccounts: r.RevealedAccounts,
}
}
@ -56,7 +56,7 @@ func (r *RequestToJoin) InitFromSyncProtobuf(proto *protobuf.SyncCommunityReques
r.ChatID = proto.ChatId
r.CommunityID = proto.CommunityId
r.State = RequestToJoinState(proto.State)
r.RevealedAddresses = proto.RevealedAddresses
r.RevealedAccounts = proto.RevealedAccounts
}
func (r *RequestToJoin) Empty() bool {

View File

@ -2,12 +2,58 @@ package communities
import (
"fmt"
"strings"
"github.com/status-im/status-go/eth-node/crypto"
"github.com/status-im/status-go/eth-node/types"
"github.com/status-im/status-go/protocol/protobuf"
)
func CalculateRequestID(publicKey string, communityID types.HexBytes) types.HexBytes {
idString := fmt.Sprintf("%s-%s", publicKey, communityID)
return crypto.Keccak256([]byte(idString))
}
func ExtractTokenCriteria(permissions []*protobuf.CommunityTokenPermission) (erc20TokenCriteria map[uint64]map[string]*protobuf.TokenCriteria, erc721TokenCriteria map[uint64]map[string]*protobuf.TokenCriteria, ensTokenCriteria []string) {
erc20TokenCriteria = make(map[uint64]map[string]*protobuf.TokenCriteria)
erc721TokenCriteria = make(map[uint64]map[string]*protobuf.TokenCriteria)
ensTokenCriteria = make([]string, 0)
for _, tokenPermission := range permissions {
for _, tokenRequirement := range tokenPermission.TokenCriteria {
isERC721 := tokenRequirement.Type == protobuf.CommunityTokenType_ERC721
isERC20 := tokenRequirement.Type == protobuf.CommunityTokenType_ERC20
isENS := tokenRequirement.Type == protobuf.CommunityTokenType_ENS
for chainID, contractAddress := range tokenRequirement.ContractAddresses {
_, existsERC721 := erc721TokenCriteria[chainID]
if isERC721 && !existsERC721 {
erc721TokenCriteria[chainID] = make(map[string]*protobuf.TokenCriteria)
}
_, existsERC20 := erc20TokenCriteria[chainID]
if isERC20 && !existsERC20 {
erc20TokenCriteria[chainID] = make(map[string]*protobuf.TokenCriteria)
}
_, existsERC721 = erc721TokenCriteria[chainID][contractAddress]
if isERC721 && !existsERC721 {
erc721TokenCriteria[chainID][strings.ToLower(contractAddress)] = tokenRequirement
}
_, existsERC20 = erc20TokenCriteria[chainID][contractAddress]
if isERC20 && !existsERC20 {
erc20TokenCriteria[chainID][strings.ToLower(contractAddress)] = tokenRequirement
}
if isENS {
ensTokenCriteria = append(ensTokenCriteria, tokenRequirement.EnsPattern)
}
}
}
}
return
}

View File

@ -3443,11 +3443,11 @@ func (s *MessengerCommunitiesSuite) TestCommunityBanUserRequesToJoin() {
s.Require().NoError(err)
requestToJoinProto := &protobuf.CommunityRequestToJoin{
Clock: rtj.Clock,
EnsName: rtj.ENSName,
DisplayName: displayName,
CommunityId: community.ID(),
RevealedAddresses: make(map[string][]byte),
Clock: rtj.Clock,
EnsName: rtj.ENSName,
DisplayName: displayName,
CommunityId: community.ID(),
RevealedAccounts: make([]*protobuf.RevealedAccount, 0),
}
s.Require().NoError(err)

View File

@ -14,6 +14,7 @@ import (
"golang.org/x/time/rate"
gethcommon "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil"
"github.com/ethereum/go-ethereum/ethclient"
@ -24,7 +25,6 @@ import (
"github.com/meirf/gopart"
gethcommon "github.com/ethereum/go-ethereum/common"
"github.com/status-im/status-go/account"
"github.com/status-im/status-go/eth-node/crypto"
"github.com/status-im/status-go/eth-node/types"
@ -606,20 +606,25 @@ func (m *Messenger) RequestToJoinCommunity(request *requests.RequestToJoinCommun
}
requestToJoinProto := &protobuf.CommunityRequestToJoin{
Clock: requestToJoin.Clock,
EnsName: requestToJoin.ENSName,
DisplayName: displayName,
CommunityId: community.ID(),
RevealedAddresses: make(map[string][]byte),
Clock: requestToJoin.Clock,
EnsName: requestToJoin.ENSName,
DisplayName: displayName,
CommunityId: community.ID(),
RevealedAccounts: make([]*protobuf.RevealedAccount, 0),
}
// find wallet accounts and attach wallet addresses and
// signatures to request
if request.Password != "" {
walletAccounts, err := m.settings.GetAccounts()
if err != nil {
return nil, err
}
revealedAccounts := make(map[gethcommon.Address]*protobuf.RevealedAccount)
revealedAddresses := make([]gethcommon.Address, 0)
for _, walletAccount := range walletAccounts {
if !walletAccount.Chat && walletAccount.Type != accounts.AccountTypeWatch {
verifiedAccount, err := m.accountsManager.GetVerifiedWalletAccount(m.settings, walletAccount.Address.Hex(), request.Password)
@ -637,9 +642,29 @@ func (m *Messenger) RequestToJoinCommunity(request *requests.RequestToJoinCommun
if err != nil {
return nil, err
}
requestToJoinProto.RevealedAddresses[verifiedAccount.Address.Hex()] = signatureBytes
revealedAddress := gethcommon.HexToAddress(verifiedAccount.Address.Hex())
revealedAddresses = append(revealedAddresses, revealedAddress)
revealedAccounts[revealedAddress] = &protobuf.RevealedAccount{
Address: verifiedAccount.Address.Hex(),
Signature: signatureBytes,
ChainIds: make([]uint64, 0),
}
}
}
response, err := m.communitiesManager.CheckPermissionToJoin(community.ID(), revealedAddresses)
if err != nil {
return nil, err
}
for _, accountAndChainIDs := range response.ValidCombinations {
revealedAccounts[accountAndChainIDs.Address].ChainIds = accountAndChainIDs.ChainIDs
}
for _, revealedAccount := range revealedAccounts {
requestToJoinProto.RevealedAccounts = append(requestToJoinProto.RevealedAccounts, revealedAccount)
}
}
payload, err := proto.Marshal(requestToJoinProto)

View File

@ -91,6 +91,7 @@
// 1684174617_add_url_previews_to_user_messages.up.sql (58B)
// 1684175608_add_token_balances.up.sql (467B)
// 1684979808_sync_activity_center_notifications.up.sql (169B)
// 1685964183_add_chainids_to_revealed_addresses.up.sql (88B)
// README.md (554B)
// doc.go (850B)
@ -176,7 +177,7 @@ func _000001_initDownDbSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "000001_init.down.db.sql", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5e, 0xbb, 0x3f, 0x1, 0x75, 0x19, 0x70, 0x86, 0xa7, 0x34, 0x40, 0x17, 0x34, 0x3e, 0x18, 0x51, 0x79, 0xd4, 0x22, 0xad, 0x8f, 0x80, 0xcc, 0xa6, 0xcc, 0x6, 0x2b, 0x62, 0x2, 0x47, 0xba, 0xf9}}
return a, nil
}
@ -196,7 +197,7 @@ func _000001_initUpDbSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "000001_init.up.db.sql", size: 2719, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x60, 0xdc, 0xeb, 0xe, 0xc2, 0x4f, 0x75, 0xa, 0xf6, 0x3e, 0xc7, 0xc4, 0x4, 0xe2, 0xe1, 0xa4, 0x73, 0x2f, 0x4a, 0xad, 0x1a, 0x0, 0xc3, 0x93, 0x9d, 0x77, 0x3e, 0x31, 0x91, 0x77, 0x2e, 0xc8}}
return a, nil
}
@ -216,7 +217,7 @@ func _000002_add_last_ens_clock_valueUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "000002_add_last_ens_clock_value.up.sql", size: 77, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4d, 0x3, 0x8f, 0xd5, 0x85, 0x83, 0x47, 0xbe, 0xf9, 0x82, 0x7e, 0x81, 0xa4, 0xbd, 0xaa, 0xd5, 0x98, 0x18, 0x5, 0x2d, 0x82, 0x42, 0x3b, 0x3, 0x50, 0xc3, 0x1e, 0x84, 0x35, 0xf, 0xb6, 0x2b}}
return a, nil
}
@ -236,7 +237,7 @@ func _1586358095_add_replaceUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1586358095_add_replace.up.sql", size: 224, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd2, 0xb3, 0xa9, 0xc7, 0x7f, 0x9d, 0x8f, 0x43, 0x8c, 0x9e, 0x58, 0x8d, 0x44, 0xbc, 0xfa, 0x6b, 0x5f, 0x3f, 0x5a, 0xbe, 0xe8, 0xb1, 0x16, 0xf, 0x91, 0x2a, 0xa0, 0x71, 0xbb, 0x8d, 0x6b, 0xcb}}
return a, nil
}
@ -256,7 +257,7 @@ func _1588665364_add_image_dataUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1588665364_add_image_data.up.sql", size: 186, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd6, 0xc6, 0x35, 0xb4, 0x4c, 0x39, 0x96, 0x29, 0x30, 0xda, 0xf4, 0x8f, 0xcb, 0xf1, 0x9f, 0x84, 0xdc, 0x88, 0xd4, 0xd5, 0xbc, 0xb6, 0x5b, 0x46, 0x78, 0x67, 0x76, 0x1a, 0x5, 0x36, 0xdc, 0xe5}}
return a, nil
}
@ -276,7 +277,7 @@ func _1589365189_add_pow_targetUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1589365189_add_pow_target.up.sql", size: 66, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x4e, 0x3a, 0xe2, 0x2e, 0x7d, 0xaf, 0xbb, 0xcc, 0x21, 0xa1, 0x7a, 0x41, 0x9a, 0xd0, 0xbb, 0xa9, 0xc8, 0x35, 0xf9, 0x32, 0x34, 0x46, 0x44, 0x9a, 0x86, 0x40, 0x7c, 0xb9, 0x23, 0xc7, 0x3, 0x3f}}
return a, nil
}
@ -296,7 +297,7 @@ func _1591277220_add_index_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1591277220_add_index_messages.up.sql", size: 240, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9c, 0xfe, 0xbe, 0xd5, 0xb8, 0x8f, 0xdd, 0xef, 0xbb, 0xa8, 0xad, 0x7f, 0xed, 0x5b, 0x5b, 0x2f, 0xe6, 0x82, 0x27, 0x78, 0x1f, 0xb9, 0x57, 0xdc, 0x8, 0xc2, 0xb2, 0xa9, 0x9a, 0x4, 0xe1, 0x7a}}
return a, nil
}
@ -316,7 +317,7 @@ func _1593087212_add_mute_chat_and_raw_message_fieldsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1593087212_add_mute_chat_and_raw_message_fields.up.sql", size: 215, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x73, 0x99, 0x61, 0xd1, 0xaa, 0xb4, 0xbf, 0xaf, 0xd7, 0x20, 0x17, 0x40, 0xf9, 0x2, 0xfb, 0xcc, 0x40, 0x2a, 0xd, 0x86, 0x36, 0x30, 0x88, 0x89, 0x25, 0x80, 0x42, 0xb0, 0x5b, 0xe9, 0x73, 0x78}}
return a, nil
}
@ -336,7 +337,7 @@ func _1595862781_add_audio_dataUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1595862781_add_audio_data.up.sql", size: 246, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xae, 0xd2, 0xee, 0x55, 0xfb, 0x36, 0xa4, 0x92, 0x66, 0xe, 0x81, 0x62, 0x1e, 0x7a, 0x69, 0xa, 0xd5, 0x4b, 0xa5, 0x6a, 0x8d, 0x1d, 0xce, 0xf3, 0x3e, 0xc0, 0x5f, 0x9c, 0x66, 0x1b, 0xb4, 0xed}}
return a, nil
}
@ -356,7 +357,7 @@ func _1595865249_create_emoji_reactions_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1595865249_create_emoji_reactions_table.up.sql", size: 300, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3e, 0xc5, 0x43, 0x5c, 0x3d, 0x53, 0x43, 0x2c, 0x1a, 0xa5, 0xb6, 0xbf, 0x7, 0x4, 0x5a, 0x3e, 0x40, 0x8b, 0xa4, 0x57, 0x12, 0x58, 0xbc, 0x42, 0xe2, 0xc3, 0xde, 0x76, 0x98, 0x80, 0xe2, 0xbe}}
return a, nil
}
@ -376,7 +377,7 @@ func _1596805115_create_group_chat_invitations_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1596805115_create_group_chat_invitations_table.up.sql", size: 231, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6d, 0xb1, 0x14, 0x6d, 0x54, 0x28, 0x67, 0xc3, 0x23, 0x6a, 0xfc, 0x80, 0xdf, 0x9e, 0x4c, 0x35, 0x36, 0xf, 0xf8, 0xf3, 0x5f, 0xae, 0xad, 0xb, 0xc1, 0x51, 0x8e, 0x17, 0x7, 0xe5, 0x7f, 0x91}}
return a, nil
}
@ -396,7 +397,7 @@ func _1597322655_add_invitation_admin_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1597322655_add_invitation_admin_chat_field.up.sql", size: 54, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa9, 0x7a, 0xa0, 0xf2, 0xdb, 0x13, 0x91, 0x91, 0xa8, 0x34, 0x1a, 0xa1, 0x49, 0x68, 0xd5, 0xae, 0x2c, 0xd8, 0xd5, 0xea, 0x8f, 0x8c, 0xc7, 0x2, 0x4e, 0x58, 0x2c, 0x3a, 0x14, 0xd4, 0x4f, 0x2c}}
return a, nil
}
@ -416,7 +417,7 @@ func _1597757544_add_nicknameUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1597757544_add_nickname.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf4, 0xa2, 0x64, 0x50, 0xc5, 0x4, 0xb9, 0x8b, 0xd1, 0x18, 0x9b, 0xc3, 0x91, 0x36, 0x2a, 0x1f, 0xc3, 0x6c, 0x2d, 0x92, 0xf8, 0x5e, 0xff, 0xb1, 0x59, 0x61, 0x2, 0x1c, 0xe1, 0x85, 0x90, 0xa4}}
return a, nil
}
@ -436,7 +437,7 @@ func _1598955122_add_mentionsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1598955122_add_mentions.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8d, 0x22, 0x17, 0x92, 0xd2, 0x11, 0x4e, 0x7, 0x93, 0x9a, 0x55, 0xfd, 0xb, 0x97, 0xc4, 0x63, 0x6a, 0x81, 0x97, 0xcd, 0xb2, 0xf8, 0x4b, 0x5f, 0x3c, 0xfa, 0x3a, 0x38, 0x53, 0x10, 0xed, 0x9d}}
return a, nil
}
@ -456,7 +457,7 @@ func _1599641390_add_emoji_reactions_indexUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1599641390_add_emoji_reactions_index.up.sql", size: 126, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf9, 0xd8, 0xdc, 0xa7, 0xb, 0x92, 0x7a, 0x61, 0x37, 0x24, 0x1c, 0x77, 0x5e, 0xe, 0x7e, 0xfc, 0x9f, 0x98, 0x7b, 0x65, 0xe7, 0xf9, 0x71, 0x57, 0x89, 0x2d, 0x90, 0x1b, 0xf6, 0x5e, 0x37, 0xe8}}
return a, nil
}
@ -476,7 +477,7 @@ func _1599720851_add_seen_index_remove_long_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1599720851_add_seen_index_remove_long_messages.up.sql", size: 150, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x24, 0x1c, 0xc4, 0x78, 0x91, 0xc7, 0xeb, 0xfe, 0xc8, 0xa0, 0xd8, 0x13, 0x27, 0x97, 0xc8, 0x96, 0x56, 0x97, 0x33, 0x2c, 0x1e, 0x16, 0x8a, 0xd3, 0x49, 0x99, 0x3, 0xe9, 0xbb, 0xc4, 0x5, 0x3c}}
return a, nil
}
@ -496,7 +497,7 @@ func _1603198582_add_profile_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1603198582_add_profile_chat_field.up.sql", size: 45, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xaa, 0xca, 0xe, 0x46, 0xa0, 0x9, 0x9d, 0x47, 0x57, 0xe9, 0xfb, 0x17, 0xeb, 0x9c, 0xf6, 0xb8, 0x1d, 0xe9, 0xd, 0x0, 0xd5, 0xe5, 0xd8, 0x9e, 0x60, 0xa, 0xbf, 0x32, 0x2c, 0x52, 0x7f, 0x6a}}
return a, nil
}
@ -516,7 +517,7 @@ func _1603816533_add_linksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1603816533_add_links.up.sql", size: 48, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0x24, 0xd6, 0x1d, 0xa, 0x83, 0x1e, 0x4d, 0xf, 0xae, 0x4d, 0x8c, 0x51, 0x32, 0xa8, 0x37, 0xb0, 0x14, 0xfb, 0x32, 0x34, 0xc8, 0xc, 0x4e, 0x5b, 0xc5, 0x15, 0x65, 0x73, 0x0, 0x0, 0x1d}}
return a, nil
}
@ -536,7 +537,7 @@ func _1603888149_create_chat_identity_last_published_tableUpSql() (*asset, error
return nil, err
}
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1603888149_create_chat_identity_last_published_table.up.sql", size: 407, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7f, 0x9, 0xf, 0xfb, 0xdb, 0x3c, 0x86, 0x70, 0x82, 0xda, 0x10, 0x25, 0xe2, 0x4e, 0x40, 0x45, 0xab, 0x8b, 0x1c, 0x91, 0x7c, 0xf1, 0x70, 0x2e, 0x81, 0xf3, 0x71, 0x45, 0xda, 0xe2, 0xa4, 0x57}}
return a, nil
}
@ -556,7 +557,7 @@ func _1605075346_add_communitiesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1605075346_add_communities.up.sql", size: 6971, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1f, 0x64, 0xea, 0xb4, 0xae, 0x9e, 0xdb, 0x9, 0x58, 0xb6, 0x5c, 0x7a, 0x50, 0xc5, 0xfe, 0x93, 0x5d, 0x36, 0x85, 0x5d, 0x6a, 0xba, 0xc9, 0x7e, 0x84, 0xd7, 0xbf, 0x2a, 0x53, 0xf3, 0x97, 0xf1}}
return a, nil
}
@ -576,7 +577,7 @@ func _1610117927_add_message_cacheUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1610117927_add_message_cache.up.sql", size: 142, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xf1, 0xf0, 0x82, 0x79, 0x28, 0x19, 0xc2, 0x39, 0x6a, 0xa5, 0x96, 0x59, 0x23, 0xa0, 0xed, 0x60, 0x58, 0x86, 0x9, 0xb9, 0xad, 0xfb, 0xa, 0xe3, 0x47, 0x6e, 0xa1, 0x18, 0xe8, 0x39, 0x2c}}
return a, nil
}
@ -596,7 +597,7 @@ func _1610959908_add_dont_wrap_to_raw_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1610959908_add_dont_wrap_to_raw_messages.up.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x71, 0x2, 0x9a, 0xca, 0xd4, 0x38, 0x44, 0x30, 0x2b, 0xa8, 0x27, 0x32, 0x63, 0x53, 0x22, 0x60, 0x59, 0x84, 0x23, 0x96, 0x77, 0xf0, 0x56, 0xd7, 0x94, 0xe0, 0x95, 0x28, 0x6, 0x1d, 0x4e, 0xb1}}
return a, nil
}
@ -616,7 +617,7 @@ func _1610960912_add_send_on_personal_topicUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "1610960912_add_send_on_personal_topic.up.sql", size: 82, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x77, 0xac, 0x2f, 0xc4, 0xd, 0xa7, 0x1b, 0x37, 0x30, 0xc2, 0x68, 0xee, 0xde, 0x54, 0x5e, 0xbf, 0x3f, 0xa0, 0xd6, 0xc6, 0x9f, 0xd4, 0x34, 0x12, 0x76, 0x1e, 0x66, 0x4a, 0xfc, 0xf, 0xee, 0xc9}}
return a, nil
}
@ -636,7 +637,7 @@ func _1612870480_add_datasync_idUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1612870480_add_datasync_id.up.sql", size: 111, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0x9a, 0xbc, 0xfa, 0xaa, 0x8c, 0x9c, 0x37, 0x67, 0x15, 0x9c, 0x7e, 0x78, 0x75, 0x66, 0x82, 0x18, 0x72, 0x10, 0xbc, 0xd4, 0xab, 0x44, 0xfe, 0x57, 0x85, 0x6d, 0x19, 0xf5, 0x96, 0x8a, 0xbe}}
return a, nil
}
@ -656,7 +657,7 @@ func _1614152139_add_communities_request_to_joinUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1614152139_add_communities_request_to_join.up.sql", size: 831, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x11, 0x3, 0x26, 0xf9, 0x29, 0x50, 0x4f, 0xcd, 0x46, 0xe5, 0xb1, 0x6b, 0xb9, 0x2, 0x40, 0xb1, 0xdf, 0x4a, 0x4c, 0x7a, 0xda, 0x3, 0x35, 0xcd, 0x2d, 0xcc, 0x80, 0x7d, 0x57, 0x5f, 0x3, 0x5c}}
return a, nil
}
@ -676,7 +677,7 @@ func _1615374373_add_confirmationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1615374373_add_confirmations.up.sql", size: 227, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdd, 0xa6, 0x65, 0xc5, 0x1d, 0xb2, 0x77, 0x36, 0xe3, 0x79, 0xda, 0xe8, 0x7a, 0xa4, 0xdf, 0x45, 0xae, 0xd8, 0xb4, 0xba, 0x90, 0xfd, 0x74, 0x71, 0x14, 0x75, 0x73, 0x72, 0xb9, 0x9e, 0x1, 0x81}}
return a, nil
}
@ -696,7 +697,7 @@ func _1617694931_add_notification_centerUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1617694931_add_notification_center.up.sql", size: 572, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0x45, 0xc6, 0xc9, 0x73, 0xbb, 0x1f, 0xda, 0xa3, 0x4d, 0x19, 0x98, 0x85, 0x2d, 0xca, 0xda, 0xcc, 0x3b, 0x32, 0xff, 0xc7, 0x7b, 0xe3, 0x9f, 0x9b, 0x2a, 0x93, 0xf5, 0xdf, 0x65, 0x38, 0x91}}
return a, nil
}
@ -716,7 +717,7 @@ func _1618923660_create_pin_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1618923660_create_pin_messages.up.sql", size: 265, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x61, 0x44, 0x3a, 0xbe, 0x30, 0xd2, 0x7e, 0xc0, 0xe2, 0x8e, 0x65, 0x53, 0x54, 0xbb, 0x7a, 0x1c, 0xb3, 0x5d, 0xd2, 0xa6, 0xa9, 0x28, 0xb7, 0xa4, 0x5f, 0x8b, 0x9, 0x5f, 0x17, 0xc1, 0x85, 0x21}}
return a, nil
}
@ -736,7 +737,7 @@ func _1619094007_add_joined_chat_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1619094007_add_joined_chat_field.up.sql", size: 101, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfa, 0x30, 0x81, 0x3a, 0x2f, 0x9f, 0xb3, 0x0, 0x55, 0x8e, 0x1d, 0xa8, 0xb0, 0x68, 0xf0, 0x40, 0x1a, 0x6c, 0xaa, 0xfc, 0x33, 0xd1, 0xd1, 0x55, 0x3f, 0xf2, 0xbd, 0x54, 0xa1, 0x2b, 0x40, 0x95}}
return a, nil
}
@ -756,7 +757,7 @@ func _1619099821_add_last_synced_fieldUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1619099821_add_last_synced_field.up.sql", size: 226, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf, 0x52, 0x22, 0xe, 0x2f, 0xd7, 0x93, 0x5f, 0x42, 0xc2, 0x93, 0x4, 0x35, 0x6f, 0xc9, 0x19, 0xed, 0x6b, 0x52, 0x6f, 0xae, 0x99, 0xe2, 0x68, 0x3d, 0x4f, 0x40, 0xe, 0xe1, 0xa, 0x47, 0x21}}
return a, nil
}
@ -776,7 +777,7 @@ func _1621933219_add_mentionedUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1621933219_add_mentioned.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x76, 0x8a, 0xc9, 0x7, 0x8f, 0xa5, 0xcb, 0x12, 0x21, 0x4e, 0xfe, 0x96, 0x77, 0xcf, 0x7f, 0x76, 0x75, 0x36, 0x2c, 0xf8, 0x1d, 0x13, 0xcb, 0xcd, 0x6e, 0x70, 0xbf, 0xf5, 0x93, 0x67, 0xd1}}
return a, nil
}
@ -796,7 +797,7 @@ func _1622010048_add_unviewed_mentions_countUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1622010048_add_unviewed_mentions_count.up.sql", size: 114, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7c, 0x16, 0x85, 0xa6, 0x5b, 0xe1, 0x66, 0xb9, 0x84, 0xbe, 0x7f, 0xa, 0x77, 0x23, 0xb9, 0xef, 0x8e, 0x2, 0x8, 0xfc, 0x61, 0xb2, 0x43, 0xa9, 0x63, 0xae, 0xb4, 0xdf, 0x30, 0xb1, 0x61, 0x4b}}
return a, nil
}
@ -816,7 +817,7 @@ func _1622061278_add_message_activity_center_notification_fieldUpSql() (*asset,
return nil, err
}
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1622061278_add_message_activity_center_notification_field.up.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8, 0xc, 0xa6, 0x1f, 0xa5, 0xc6, 0x7c, 0x6f, 0xab, 0x2c, 0x2d, 0xb5, 0xa4, 0xdd, 0xc1, 0xd6, 0x44, 0x83, 0xf9, 0xb1, 0xa5, 0xce, 0x34, 0x3d, 0x2, 0xa9, 0x35, 0xcf, 0xc6, 0xb2, 0x43, 0x37}}
return a, nil
}
@ -836,7 +837,7 @@ func _1622464518_set_synced_to_fromUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1622464518_set_synced_to_from.up.sql", size: 105, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x33, 0x3e, 0x2b, 0xa, 0x1e, 0xc7, 0x6d, 0x6f, 0xd1, 0x1d, 0xe8, 0x4b, 0xdd, 0x92, 0x76, 0xea, 0xf2, 0x3e, 0x15, 0x85, 0xc4, 0xc3, 0x31, 0xf1, 0xc0, 0xa2, 0xd7, 0x47, 0xde, 0x4e, 0xfd, 0xc6}}
return a, nil
}
@ -856,7 +857,7 @@ func _1622464519_add_chat_descriptionUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1622464519_add_chat_description.up.sql", size: 93, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0x2e, 0x89, 0x31, 0xec, 0xef, 0xeb, 0x43, 0xf5, 0x96, 0x6d, 0xce, 0x91, 0x8a, 0x37, 0x2a, 0x11, 0x7a, 0x3f, 0xd9, 0x10, 0xbb, 0xa1, 0xbc, 0x7, 0xe0, 0x3b, 0xa5, 0xf4, 0xa6, 0xf4, 0xa1}}
return a, nil
}
@ -876,7 +877,7 @@ func _1622622253_add_pinned_by_to_pin_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1622622253_add_pinned_by_to_pin_messages.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9b, 0x94, 0xa3, 0x45, 0x91, 0x1e, 0x66, 0xd1, 0x96, 0x5a, 0xaf, 0xfa, 0x29, 0x39, 0xa8, 0x3a, 0x97, 0x4c, 0x65, 0x6, 0x96, 0x90, 0x4c, 0xfe, 0xce, 0x7d, 0x5d, 0xd4, 0xb3, 0x8, 0x6d, 0x5f}}
return a, nil
}
@ -896,7 +897,7 @@ func _1623938329_add_author_activity_center_notification_fieldUpSql() (*asset, e
return nil, err
}
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1623938329_add_author_activity_center_notification_field.up.sql", size: 66, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x36, 0xe6, 0xa7, 0xd5, 0x26, 0xff, 0xab, 0x92, 0x88, 0xf0, 0xd3, 0x34, 0xd9, 0x2f, 0xe7, 0x18, 0x1a, 0x40, 0xf9, 0xbe, 0x8e, 0xfc, 0xd0, 0x4f, 0x1f, 0x4a, 0xb9, 0x83, 0x3f, 0xa9, 0xde, 0xb}}
return a, nil
}
@ -916,7 +917,7 @@ func _1623938330_add_edit_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1623938330_add_edit_messages.up.sql", size: 369, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xd2, 0xce, 0xe, 0x5c, 0x19, 0xbe, 0x5e, 0x29, 0xbe, 0x9b, 0x31, 0x53, 0x76, 0xb2, 0xc8, 0x56, 0xf0, 0x82, 0xfe, 0x7d, 0x6c, 0xe8, 0x5c, 0xe9, 0x7a, 0x5d, 0x5, 0xc4, 0x92, 0x38, 0xe3}}
return a, nil
}
@ -936,7 +937,7 @@ func _1624978434_add_muted_communityUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1624978434_add_muted_community.up.sql", size: 82, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6, 0xdc, 0x6e, 0x6f, 0x97, 0xc7, 0x3d, 0x50, 0xab, 0x80, 0x87, 0x44, 0x43, 0x38, 0xe6, 0xc5, 0xc1, 0x91, 0x26, 0xf, 0x16, 0xe, 0xd9, 0x32, 0x37, 0x25, 0x96, 0x25, 0x6, 0xc8, 0xb5, 0x4a}}
return a, nil
}
@ -956,7 +957,7 @@ func _1625018910_add_repply_message_activity_center_notification_fieldUpSql() (*
return nil, err
}
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1625018910_add_repply_message_activity_center_notification_field.up.sql", size: 86, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf2, 0x52, 0x12, 0x40, 0xd8, 0x6f, 0x71, 0x97, 0x46, 0x39, 0xaa, 0x74, 0x41, 0xcd, 0x45, 0x4c, 0xe8, 0xd9, 0xe2, 0x56, 0x8e, 0x78, 0x18, 0x62, 0xf6, 0xa8, 0x36, 0xe9, 0x9a, 0x1f, 0xc, 0xb1}}
return a, nil
}
@ -976,7 +977,7 @@ func _1625762506_add_deleted_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1625762506_add_deleted_messages.up.sql", size: 357, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x61, 0x42, 0xb6, 0x8c, 0x7f, 0x2d, 0xec, 0xa9, 0x6d, 0x3d, 0x0, 0xa3, 0x32, 0xd8, 0x4a, 0x38, 0x5c, 0x97, 0xfc, 0x68, 0xde, 0xa9, 0xb7, 0xd8, 0xde, 0xb, 0x29, 0x93, 0xdc, 0x81, 0xf8}}
return a, nil
}
@ -996,7 +997,7 @@ func _1627388946_add_communities_synced_atUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1627388946_add_communities_synced_at.up.sql", size: 87, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc1, 0xbd, 0x9b, 0x6a, 0xc9, 0x1a, 0x7a, 0x34, 0xcf, 0x5f, 0x80, 0x9e, 0x8c, 0x1c, 0xc0, 0xec, 0x4e, 0x78, 0xb0, 0x2d, 0x15, 0x77, 0x38, 0x4a, 0x6a, 0x5, 0x84, 0xf5, 0x8d, 0x8b, 0xbe, 0x9}}
return a, nil
}
@ -1016,7 +1017,7 @@ func _1628280060_createUsermessagesIndexSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1628280060_create-usermessages-index.sql", size: 80, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x10, 0x6f, 0x70, 0x47, 0x40, 0xab, 0xa8, 0x60, 0xe0, 0xf9, 0x8, 0x7e, 0x19, 0x9d, 0xba, 0x33, 0x16, 0xfc, 0x3c, 0xdc, 0xa8, 0xa6, 0x53, 0x61, 0x39, 0x82, 0x91, 0xcf, 0x69, 0xd8, 0xf2, 0xcf}}
return a, nil
}
@ -1036,7 +1037,7 @@ func _1632303896_modify_contacts_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1632303896_modify_contacts_table.up.sql", size: 1574, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x1e, 0x6c, 0x3c, 0xd, 0xd7, 0x7d, 0xbb, 0x19, 0xbc, 0xe4, 0x7, 0xfd, 0xf8, 0x66, 0x6d, 0x78, 0xf6, 0x4, 0xe6, 0x51, 0xe4, 0xe6, 0xdc, 0xe, 0x5a, 0x2e, 0xac, 0xe6, 0xe7, 0x24, 0x69}}
return a, nil
}
@ -1056,7 +1057,7 @@ func _1633349838_add_emoji_column_in_chatsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1633349838_add_emoji_column_in_chats.up.sql", size: 52, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xcb, 0x33, 0xcb, 0x3b, 0xa9, 0x99, 0x77, 0x6a, 0xea, 0xc4, 0x39, 0xd7, 0xa1, 0x49, 0xa7, 0xdf, 0xff, 0x72, 0xda, 0x34, 0x21, 0x67, 0x66, 0xca, 0x65, 0x46, 0x1, 0xa6, 0x4e, 0xf9, 0x38, 0x86}}
return a, nil
}
@ -1076,7 +1077,7 @@ func _1634831235_add_highlight_column_in_chatsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1634831235_add_highlight_column_in_chats.up.sql", size: 62, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xaa, 0x63, 0x5c, 0x73, 0x19, 0x83, 0xbd, 0x35, 0x80, 0x9f, 0x66, 0xec, 0x4c, 0xbc, 0x9d, 0x2d, 0x52, 0x91, 0x6d, 0xb3, 0x2b, 0x87, 0xde, 0x24, 0x46, 0x5c, 0xd, 0xfd, 0x78, 0xf5, 0xe3, 0xe9}}
return a, nil
}
@ -1096,7 +1097,7 @@ func _1634896007_add_last_updated_locally_and_removedUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1634896007_add_last_updated_locally_and_removed.up.sql", size: 131, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2e, 0xa8, 0x34, 0xe2, 0xc0, 0x62, 0xc8, 0xd6, 0x5a, 0x87, 0xe3, 0x70, 0xe1, 0xc4, 0x16, 0x9c, 0x60, 0x2e, 0x98, 0xf0, 0x91, 0x84, 0xbe, 0xe0, 0xdf, 0x3e, 0x4d, 0x24, 0xc4, 0x6c, 0x40, 0x17}}
return a, nil
}
@ -1116,7 +1117,7 @@ func _1635840039_add_clock_read_at_column_in_chatsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1635840039_add_clock_read_at_column_in_chats.up.sql", size: 245, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x6c, 0xba, 0x3f, 0xba, 0x1a, 0x71, 0xa8, 0x9, 0x19, 0xbe, 0x1e, 0x38, 0x50, 0x30, 0x3a, 0x52, 0x15, 0x29, 0xee, 0x49, 0x19, 0x6f, 0x53, 0xc2, 0xc6, 0x6c, 0xd9, 0x80, 0x7e, 0xb9, 0x58, 0x7a}}
return a, nil
}
@ -1136,7 +1137,7 @@ func _1637852321_add_received_invitation_admin_column_in_chatsUpSql() (*asset, e
return nil, err
}
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0644), modTime: time.Unix(1645666387, 0)}
info := bindataFileInfo{name: "1637852321_add_received_invitation_admin_column_in_chats.up.sql", size: 72, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x70, 0x8b, 0x92, 0x56, 0x83, 0x70, 0x7f, 0x6, 0xb2, 0xd, 0x1c, 0x2f, 0xcc, 0x93, 0xc3, 0x85, 0x8c, 0xc2, 0x38, 0x94, 0x7e, 0x88, 0x3f, 0x39, 0x34, 0xf8, 0x90, 0xcf, 0x83, 0x68, 0x3d, 0xe5}}
return a, nil
}
@ -1156,7 +1157,7 @@ func _1645034601_display_nameUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1645034601_display_name.up.sql", size: 110, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0xfc, 0xda, 0x70, 0x53, 0x19, 0x90, 0x20, 0x4, 0x1c, 0x99, 0x42, 0x53, 0x1a, 0xd6, 0xb8, 0xbb, 0x8a, 0xe8, 0xbe, 0xcc, 0xb7, 0xc, 0x7f, 0x73, 0x50, 0x18, 0xf1, 0x8b, 0x18, 0x54, 0x64}}
return a, nil
}
@ -1176,7 +1177,7 @@ func _1645034602_add_mutual_contact_requestUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1645034602_add_mutual_contact_request.up.sql", size: 454, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1a, 0xe0, 0x5d, 0x68, 0xb8, 0x50, 0xa4, 0xbb, 0x3e, 0x4f, 0x2, 0x87, 0xad, 0x87, 0x6e, 0x38, 0xdf, 0xc8, 0x4c, 0xe2, 0x5f, 0xd1, 0x6, 0xdc, 0xe7, 0xbd, 0x4a, 0x9c, 0xf3, 0x91, 0xa1, 0x51}}
return a, nil
}
@ -1196,7 +1197,7 @@ func _1650373957_add_contact_request_stateUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1650373957_add_contact_request_state.up.sql", size: 59, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5e, 0xc1, 0x3f, 0x29, 0xe, 0x19, 0x86, 0x1a, 0x4c, 0x6c, 0x2a, 0x90, 0x9d, 0xdf, 0xb1, 0xb, 0x72, 0x25, 0xcd, 0x6c, 0x5f, 0xd, 0x51, 0x9e, 0x85, 0xc0, 0x9, 0xb7, 0xbc, 0x87, 0x23, 0xec}}
return a, nil
}
@ -1216,7 +1217,7 @@ func _1656958989_contact_verificationUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1656958989_contact_verification.up.sql", size: 624, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3a, 0x3f, 0x28, 0x38, 0x33, 0xdb, 0xe9, 0x4d, 0xc0, 0x54, 0x8c, 0x2a, 0x73, 0xc4, 0xdd, 0x5c, 0xc5, 0x1a, 0x93, 0x4b, 0x6, 0x13, 0xbe, 0x42, 0xd2, 0x7f, 0xd4, 0xc, 0xc5, 0x4e, 0x6d, 0xce}}
return a, nil
}
@ -1236,7 +1237,7 @@ func _1658236268_add_discord_message_authors_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1658236268_add_discord_message_authors_table.up.sql", size: 191, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3d, 0xb7, 0xdb, 0x79, 0x1, 0x15, 0xe7, 0x76, 0x5d, 0x22, 0x54, 0x82, 0x9a, 0xbe, 0x24, 0xc1, 0x82, 0xcf, 0x67, 0x91, 0x53, 0xcc, 0xac, 0x74, 0x18, 0x61, 0x69, 0x68, 0x19, 0xca, 0x2b, 0xa8}}
return a, nil
}
@ -1256,7 +1257,7 @@ func _1659619997_add_discord_messages_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1659619997_add_discord_messages_table.up.sql", size: 371, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xde, 0x12, 0x9c, 0x96, 0xe2, 0x42, 0x3f, 0x94, 0x62, 0xc2, 0x76, 0xab, 0x3b, 0x4c, 0x85, 0x36, 0x48, 0xcc, 0x73, 0x60, 0x93, 0x5a, 0xd6, 0x7, 0xd6, 0x0, 0xee, 0x1b, 0x1e, 0x34, 0x58, 0x99}}
return a, nil
}
@ -1276,7 +1277,7 @@ func _1660226788_create_chat_identity_social_linksUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1660226788_create_chat_identity_social_links.up.sql", size: 318, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3c, 0x76, 0x40, 0xe9, 0x85, 0xc4, 0x38, 0xf8, 0xe5, 0x5d, 0xe8, 0x13, 0x46, 0x1b, 0xc, 0x1, 0xe9, 0x2f, 0x74, 0xd1, 0x79, 0x59, 0xa4, 0xdb, 0x4a, 0x4a, 0xf4, 0x98, 0x58, 0x3c, 0x57, 0xd3}}
return a, nil
}
@ -1296,7 +1297,7 @@ func _1660226789_add_walletconnectsessions_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1660226789_add_walletconnectsessions_table.up.sql", size: 215, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf8, 0x5c, 0x72, 0x2, 0xed, 0x36, 0x19, 0x91, 0x4d, 0x1a, 0xc1, 0xab, 0x84, 0xfa, 0x41, 0xb1, 0x46, 0xa5, 0xdb, 0x3f, 0x76, 0x47, 0xd3, 0x75, 0x3c, 0x6a, 0x8e, 0x78, 0xe6, 0x41, 0xdc, 0x7f}}
return a, nil
}
@ -1316,7 +1317,7 @@ func _1661242854_add_communities_requests_to_leaveUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1661242854_add_communities_requests_to_leave.up.sql", size: 204, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x49, 0x2e, 0x7d, 0x14, 0xef, 0x6e, 0x95, 0x4b, 0x6, 0x70, 0x2e, 0xd1, 0xf6, 0x59, 0xf9, 0xe, 0x56, 0xa, 0x9c, 0x80, 0x18, 0xca, 0xb9, 0x49, 0x19, 0xf, 0x89, 0x94, 0x36, 0x6d, 0x93, 0x9a}}
return a, nil
}
@ -1336,7 +1337,7 @@ func _1662044232_add_chat_imageUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1662044232_add_chat_image.up.sql", size: 49, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x74, 0xdf, 0x50, 0x79, 0x73, 0x9e, 0xd0, 0xff, 0xa4, 0xd3, 0x87, 0xc3, 0x48, 0x31, 0x6c, 0xdf, 0xa6, 0x20, 0x85, 0xe6, 0x4e, 0x19, 0x9d, 0xef, 0xcc, 0x84, 0x2b, 0x5d, 0x44, 0x34, 0x6}}
return a, nil
}
@ -1356,7 +1357,7 @@ func _1662106895_add_chat_first_message_timestampUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1662106895_add_chat_first_message_timestamp.up.sql", size: 113, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8b, 0x55, 0x74, 0xfa, 0xf5, 0x51, 0x85, 0x19, 0xfd, 0xfb, 0x6, 0x79, 0x4d, 0x1d, 0xd, 0x3, 0x46, 0x66, 0x34, 0x1e, 0xce, 0x91, 0x21, 0x29, 0xf6, 0x71, 0xe7, 0x31, 0x39, 0x8f, 0x9d, 0x5}}
return a, nil
}
@ -1376,7 +1377,7 @@ func _1662723928_add_discord_author_image_fieldsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1662723928_add_discord_author_image_fields.up.sql", size: 75, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1e, 0x5b, 0x48, 0x57, 0x98, 0x55, 0x9a, 0xf1, 0x75, 0xf7, 0xb5, 0x41, 0x5e, 0x96, 0xc5, 0xce, 0xfc, 0x30, 0x5c, 0x15, 0x35, 0x9e, 0x4e, 0x4a, 0x3b, 0x38, 0x42, 0xc4, 0x27, 0x3c, 0x87, 0xbf}}
return a, nil
}
@ -1396,7 +1397,7 @@ func _1664195977_add_deleted_for_mesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1664195977_add_deleted_for_mes.up.sql", size: 352, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7d, 0x9d, 0x13, 0x9, 0xaa, 0x44, 0x14, 0x93, 0xe2, 0xf5, 0x53, 0xb7, 0x79, 0xa8, 0x18, 0xf0, 0x6c, 0xa4, 0x9c, 0x73, 0xc1, 0xaa, 0xc5, 0x2e, 0xc5, 0x41, 0xd7, 0x24, 0xb0, 0xd7, 0xb8, 0xdf}}
return a, nil
}
@ -1416,7 +1417,7 @@ func _1664367420_add_discord_attachments_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1664367420_add_discord_attachments_table.up.sql", size: 350, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x48, 0xe1, 0xb6, 0x4f, 0x6f, 0x92, 0x0, 0xb4, 0xf, 0x55, 0x12, 0x1c, 0x98, 0x6d, 0xbc, 0x1e, 0xfd, 0xae, 0x1c, 0xce, 0xd1, 0x3d, 0x2, 0x21, 0x2e, 0xc0, 0x13, 0xa, 0xb2, 0xec, 0x81, 0x13}}
return a, nil
}
@ -1436,7 +1437,7 @@ func _1665079662_add_spectated_column_in_communitiesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1665079662_add_spectated_column_in_communities.up.sql", size: 86, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0x5d, 0xfe, 0xe2, 0xbe, 0xdf, 0xba, 0x45, 0xe9, 0xfc, 0xa7, 0x5f, 0xda, 0x19, 0xdb, 0x40, 0x96, 0x59, 0x78, 0xa, 0xd7, 0x4a, 0xca, 0x1a, 0x93, 0xfb, 0xae, 0x6d, 0x74, 0x7, 0x36, 0xdd}}
return a, nil
}
@ -1456,7 +1457,7 @@ func _1665479047_add_community_id_in_notificationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1665479047_add_community_id_in_notifications.up.sql", size: 169, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd9, 0x8f, 0x8b, 0x1c, 0xaa, 0x6a, 0x56, 0xd6, 0xa5, 0x88, 0x57, 0x13, 0x8f, 0xea, 0xb9, 0x23, 0x82, 0x50, 0xb7, 0x65, 0x1f, 0xab, 0xfa, 0x23, 0x6f, 0x0, 0x7, 0xb6, 0x6e, 0xb5, 0x85, 0x44}}
return a, nil
}
@ -1476,7 +1477,7 @@ func _1665484435_add_encrypted_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1665484435_add_encrypted_messages.up.sql", size: 402, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0x5c, 0x1e, 0x1c, 0x7f, 0xae, 0x5f, 0xeb, 0x3c, 0x6c, 0xcd, 0xc2, 0x99, 0x48, 0x5c, 0x83, 0xa0, 0xa2, 0x97, 0x5, 0x39, 0x82, 0x71, 0x90, 0x47, 0x21, 0x84, 0x29, 0x19, 0xa4, 0x7a, 0x90}}
return a, nil
}
@ -1496,7 +1497,7 @@ func _1665560200_add_contact_verification_individualUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1665560200_add_contact_verification_individual.up.sql", size: 509, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc5, 0xbb, 0x61, 0xfd, 0xbf, 0x33, 0x1d, 0x4e, 0x5f, 0xbd, 0x86, 0x42, 0xb0, 0x6c, 0xf7, 0x39, 0x19, 0x6e, 0x72, 0x35, 0xfd, 0x1b, 0xd6, 0xbd, 0xf6, 0x81, 0x21, 0xc4, 0xaa, 0x6, 0x62, 0x40}}
return a, nil
}
@ -1516,7 +1517,7 @@ func _1670921937_add_album_idUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1670921937_add_album_id.up.sql", size: 55, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xae, 0x83, 0x58, 0xb7, 0x77, 0x5, 0xca, 0xe3, 0xda, 0x32, 0x8f, 0x7b, 0xa4, 0x2f, 0x4c, 0xaf, 0x5f, 0xfa, 0x94, 0x36, 0xe4, 0xf9, 0x7, 0xc6, 0xd6, 0xb7, 0x90, 0xf3, 0xe5, 0xb5, 0x3}}
return a, nil
}
@ -1536,7 +1537,7 @@ func _1673373000_add_repliedUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1673373000_add_replied.up.sql", size: 67, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd5, 0x1c, 0xae, 0xf2, 0xf, 0xb4, 0xc2, 0xba, 0x3c, 0xfe, 0x7b, 0xb0, 0xf, 0xf, 0xd5, 0xbc, 0xe2, 0xa7, 0xad, 0x50, 0xd9, 0x5a, 0xe8, 0x96, 0x22, 0x65, 0x89, 0xcf, 0x4a, 0x9a, 0x1b, 0x94}}
return a, nil
}
@ -1556,7 +1557,7 @@ func _1673428910_add_image_width_heightUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0644), modTime: time.Unix(1675323803, 0)}
info := bindataFileInfo{name: "1673428910_add_image_width_height.up.sql", size: 117, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x74, 0xda, 0x93, 0x2a, 0x9b, 0x6b, 0xb7, 0x96, 0xcd, 0xac, 0xf, 0xaf, 0x54, 0x89, 0x9e, 0x91, 0x5b, 0xd0, 0x4a, 0xa, 0x8d, 0x9e, 0x80, 0x66, 0x26, 0x9e, 0xb5, 0xa9, 0x8, 0xec, 0x2d, 0x6c}}
return a, nil
}
@ -1576,7 +1577,7 @@ func _1674210659_add_contact_request_local_clockUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1674210659_add_contact_request_local_clock.up.sql", size: 691, mode: os.FileMode(0644), modTime: time.Unix(1675323904, 0)}
info := bindataFileInfo{name: "1674210659_add_contact_request_local_clock.up.sql", size: 691, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x92, 0x72, 0x39, 0xfe, 0x72, 0x98, 0xfc, 0x91, 0x20, 0x10, 0xe8, 0xf5, 0xac, 0x79, 0xa8, 0x1c, 0xca, 0x7b, 0x35, 0xa, 0xc1, 0x56, 0x49, 0x9a, 0xfc, 0xbd, 0x64, 0x9d, 0xdf, 0xd2, 0x60, 0x70}}
return a, nil
}
@ -1596,7 +1597,7 @@ func _1675212323_add_deleted_byUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1675212323_add_deleted_by.up.sql", size: 57, mode: os.FileMode(0644), modTime: time.Unix(1675323904, 0)}
info := bindataFileInfo{name: "1675212323_add_deleted_by.up.sql", size: 57, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x85, 0x37, 0x29, 0x2f, 0xd, 0x5a, 0xb6, 0xdb, 0xa7, 0x8, 0x86, 0xfc, 0x7a, 0x70, 0xd8, 0x4d, 0xe6, 0xf0, 0x57, 0xe7, 0xd1, 0x95, 0xd5, 0x4, 0x40, 0x2f, 0x7a, 0x5, 0x4f, 0xc2, 0x97, 0xbc}}
return a, nil
}
@ -1616,7 +1617,7 @@ func _1675247084_add_activity_center_statesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1675247084_add_activity_center_states.up.sql", size: 136, mode: os.FileMode(0644), modTime: time.Unix(1677122376, 0)}
info := bindataFileInfo{name: "1675247084_add_activity_center_states.up.sql", size: 136, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xba, 0x90, 0x7d, 0x55, 0xc7, 0x40, 0x29, 0x26, 0x97, 0x45, 0x5c, 0xdf, 0xba, 0x61, 0xb, 0xfc, 0x3d, 0x7a, 0x6c, 0x42, 0xe4, 0x95, 0x78, 0xb0, 0xc5, 0x1f, 0x73, 0xe9, 0x33, 0x51, 0xc8, 0x81}}
return a, nil
}
@ -1636,7 +1637,7 @@ func _1675272329_fix_protocol_migrationUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1675272329_fix_protocol_migration.up.sql", size: 183, mode: os.FileMode(0644), modTime: time.Unix(1675323904, 0)}
info := bindataFileInfo{name: "1675272329_fix_protocol_migration.up.sql", size: 183, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb6, 0xe0, 0x11, 0x4c, 0x66, 0x55, 0x72, 0xd3, 0xe6, 0x98, 0xa4, 0xe7, 0x44, 0xf9, 0x3b, 0x3a, 0x3f, 0xd9, 0x91, 0x1e, 0x4f, 0xfc, 0x56, 0x63, 0xe5, 0xa4, 0x83, 0xfc, 0x7c, 0xcf, 0x18, 0x99}}
return a, nil
}
@ -1656,7 +1657,7 @@ func _1676998418_fix_activity_center_migrationUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1676998418_fix_activity_center_migration.up.sql", size: 178, mode: os.FileMode(0644), modTime: time.Unix(1677468108, 0)}
info := bindataFileInfo{name: "1676998418_fix_activity_center_migration.up.sql", size: 178, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8a, 0xdc, 0x64, 0xb1, 0x47, 0x67, 0xda, 0x2c, 0x26, 0x29, 0x6b, 0x6f, 0xb, 0xfa, 0x45, 0xf3, 0xad, 0x8b, 0x1a, 0x5f, 0x1c, 0xed, 0xd7, 0xea, 0x54, 0xf5, 0x3f, 0xb8, 0xf6, 0xf9, 0x44, 0x53}}
return a, nil
}
@ -1676,7 +1677,7 @@ func _1677278861_add_deleted_column_to_activity_center_notifications_tableUpSql(
return nil, err
}
info := bindataFileInfo{name: "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql", size: 381, mode: os.FileMode(0644), modTime: time.Unix(1677468108, 0)}
info := bindataFileInfo{name: "1677278861_add_deleted_column_to_activity_center_notifications_table.up.sql", size: 381, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x38, 0x3a, 0x95, 0xaf, 0x81, 0xb0, 0x85, 0x8d, 0x73, 0xda, 0x7b, 0x2a, 0x35, 0xa6, 0xaa, 0xcc, 0x4c, 0x35, 0xa3, 0xa8, 0xbd, 0xd1, 0x37, 0xe8, 0x5d, 0x83, 0xa4, 0x33, 0x1f, 0x10, 0xe4, 0xe6}}
return a, nil
}
@ -1696,7 +1697,7 @@ func _1677486338_add_community_tokens_tableUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1677486338_add_community_tokens_table.up.sql", size: 527, mode: os.FileMode(0644), modTime: time.Unix(1677564198, 0)}
info := bindataFileInfo{name: "1677486338_add_community_tokens_table.up.sql", size: 527, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xfb, 0x7b, 0x3d, 0x7e, 0x79, 0xc4, 0x3a, 0xf1, 0xda, 0x4b, 0xc6, 0xd1, 0xd, 0xfb, 0xb2, 0xb9, 0x7f, 0x81, 0x29, 0xab, 0xd8, 0x1, 0x20, 0xd7, 0xe1, 0xaf, 0x3e, 0x67, 0x1b, 0xdb, 0xf9, 0xd5}}
return a, nil
}
@ -1716,7 +1717,7 @@ func _1678292329_add_collapsed_categoriesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1678292329_add_collapsed_categories.up.sql", size: 170, mode: os.FileMode(0644), modTime: time.Unix(1679051421, 0)}
info := bindataFileInfo{name: "1678292329_add_collapsed_categories.up.sql", size: 170, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x46, 0x63, 0x86, 0xd5, 0x7, 0xe2, 0x25, 0x15, 0x1b, 0xfe, 0xf3, 0xe, 0x50, 0x48, 0x11, 0x3c, 0x7c, 0xc6, 0xe5, 0xab, 0x8d, 0x1f, 0xe8, 0x3c, 0xcb, 0xf0, 0x8d, 0xa7, 0x49, 0x4c, 0x16, 0x4f}}
return a, nil
}
@ -1736,7 +1737,7 @@ func _1678800760_add_index_to_raw_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1678800760_add_index_to_raw_messages.up.sql", size: 88, mode: os.FileMode(0644), modTime: time.Unix(1679302848, 0)}
info := bindataFileInfo{name: "1678800760_add_index_to_raw_messages.up.sql", size: 88, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9d, 0xd9, 0x8d, 0x22, 0x46, 0xae, 0x7b, 0x53, 0x3e, 0x51, 0x39, 0xad, 0xad, 0x38, 0x50, 0x6, 0xfa, 0xb9, 0xc4, 0x9f, 0x8d, 0xd2, 0x67, 0x0, 0xef, 0x58, 0x13, 0xab, 0x6a, 0x67, 0xf3, 0x7e}}
return a, nil
}
@ -1756,7 +1757,7 @@ func _1678877478_add_communities_requests_to_join_revealed_addresses_tableUpSql(
return nil, err
}
info := bindataFileInfo{name: "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql", size: 168, mode: os.FileMode(0644), modTime: time.Unix(1679652393, 0)}
info := bindataFileInfo{name: "1678877478_add_communities_requests_to_join_revealed_addresses_table.up.sql", size: 168, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x82, 0x1, 0xb4, 0xb2, 0x94, 0x25, 0xd5, 0x2e, 0x45, 0xc3, 0xb1, 0x2c, 0xeb, 0x1a, 0x52, 0xe0, 0x4b, 0x9b, 0x46, 0xf4, 0xc, 0xac, 0x1, 0x1e, 0x90, 0xbc, 0x64, 0x38, 0x10, 0xf1, 0xaf, 0xac}}
return a, nil
}
@ -1776,7 +1777,7 @@ func _1679326850_add_community_token_ownersUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1679326850_add_community_token_owners.up.sql", size: 206, mode: os.FileMode(0644), modTime: time.Unix(1680000580, 0)}
info := bindataFileInfo{name: "1679326850_add_community_token_owners.up.sql", size: 206, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe9, 0xe6, 0x25, 0x67, 0xd1, 0xd6, 0x54, 0x88, 0xb1, 0x80, 0x1e, 0x2d, 0x9c, 0xfa, 0x1c, 0xc7, 0x63, 0x6e, 0xf9, 0x66, 0xb1, 0x68, 0xc6, 0xf8, 0x51, 0xb6, 0xd5, 0x4e, 0x93, 0x39, 0x5e, 0xc0}}
return a, nil
}
@ -1796,7 +1797,7 @@ func _1680011500_add_album_images_countUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1680011500_add_album_images_count.up.sql", size: 71, mode: os.FileMode(0644), modTime: time.Unix(1680260624, 0)}
info := bindataFileInfo{name: "1680011500_add_album_images_count.up.sql", size: 71, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2e, 0x55, 0x99, 0x31, 0xcc, 0x80, 0x78, 0xc3, 0x51, 0x13, 0x63, 0x6f, 0x1a, 0xfd, 0x53, 0xd2, 0xf4, 0x13, 0x4b, 0xb2, 0x4f, 0x99, 0xb8, 0x7b, 0x7, 0x99, 0xb6, 0xab, 0x88, 0x2e, 0x7, 0x8}}
return a, nil
}
@ -1816,7 +1817,7 @@ func _1680114896_add_index_on_album_idUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1680114896_add_index_on_album_id.up.sql", size: 83, mode: os.FileMode(0644), modTime: time.Unix(1680260624, 0)}
info := bindataFileInfo{name: "1680114896_add_index_on_album_id.up.sql", size: 83, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb3, 0x7e, 0xd5, 0xcd, 0x2d, 0xab, 0xd4, 0x32, 0x26, 0x50, 0x3a, 0x5b, 0x8e, 0x1c, 0xcc, 0x35, 0xf8, 0xa1, 0x2a, 0xc1, 0x23, 0xf6, 0x90, 0xfe, 0x84, 0x3, 0xde, 0x5a, 0xee, 0xc6, 0xfc, 0x2a}}
return a, nil
}
@ -1836,7 +1837,7 @@ func _1681655289_add_mute_tillUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1681655289_add_mute_till.up.sql", size: 51, mode: os.FileMode(0644), modTime: time.Unix(1681955252, 0)}
info := bindataFileInfo{name: "1681655289_add_mute_till.up.sql", size: 51, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd1, 0xbe, 0xce, 0xb8, 0xe1, 0x30, 0xe7, 0xa7, 0xe0, 0x7d, 0x97, 0xf4, 0x26, 0xb8, 0x57, 0x1d, 0x2a, 0xed, 0x18, 0xf2, 0xa, 0xe3, 0x77, 0x29, 0x18, 0x55, 0x9, 0x74, 0x2c, 0x24, 0x5a, 0x19}}
return a, nil
}
@ -1856,7 +1857,7 @@ func _1681934966_add_index_response_toUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1681934966_add_index_response_to.up.sql", size: 70, mode: os.FileMode(0644), modTime: time.Unix(1682560340, 0)}
info := bindataFileInfo{name: "1681934966_add_index_response_to.up.sql", size: 70, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x3b, 0xed, 0xa6, 0x7e, 0x51, 0xf2, 0xa1, 0x3c, 0x78, 0x9a, 0xa7, 0x7a, 0x51, 0x25, 0x7d, 0xdd, 0x4b, 0xf3, 0x45, 0xeb, 0x3f, 0xad, 0x23, 0x3e, 0xac, 0x16, 0x28, 0x62, 0x7, 0x8c, 0xe0, 0xa0}}
return a, nil
}
@ -1876,7 +1877,7 @@ func _1682528339_add_index_user_messages_unseenUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1682528339_add_index_user_messages_unseen.up.sql", size: 104, mode: os.FileMode(0644), modTime: time.Unix(1683172161, 0)}
info := bindataFileInfo{name: "1682528339_add_index_user_messages_unseen.up.sql", size: 104, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x35, 0xfa, 0x98, 0xdd, 0x74, 0x5e, 0x21, 0x1f, 0xf2, 0x56, 0x17, 0x96, 0xfe, 0xbb, 0x44, 0x4c, 0xa1, 0xd8, 0x9f, 0x2e, 0x6, 0x2f, 0xd8, 0x23, 0xec, 0x94, 0x8c, 0x53, 0xf3, 0xf0, 0x40, 0xe7}}
return a, nil
}
@ -1896,7 +1897,7 @@ func _1683707289_recreate_deleted_for_mesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1683707289_recreate_deleted_for_mes.up.sql", size: 408, mode: os.FileMode(0644), modTime: time.Unix(1683811675, 0)}
info := bindataFileInfo{name: "1683707289_recreate_deleted_for_mes.up.sql", size: 408, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x5b, 0x9d, 0xd6, 0x45, 0x41, 0x29, 0x44, 0xf6, 0x14, 0x38, 0xeb, 0xdf, 0x6b, 0x5d, 0x9c, 0x45, 0x4b, 0xc3, 0xa8, 0xbd, 0x38, 0x14, 0xd9, 0x73, 0xf1, 0x51, 0xbb, 0x9f, 0x14, 0x36, 0xf2, 0x11}}
return a, nil
}
@ -1916,7 +1917,7 @@ func _1683725607_mark_discord_messages_as_seenUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1683725607_mark_discord_messages_as_seen.up.sql", size: 108, mode: os.FileMode(0644), modTime: time.Unix(1683810836, 0)}
info := bindataFileInfo{name: "1683725607_mark_discord_messages_as_seen.up.sql", size: 108, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd7, 0x2a, 0xc3, 0x43, 0xea, 0x5e, 0x3, 0x2e, 0xce, 0x79, 0xea, 0xa5, 0x67, 0x61, 0x8c, 0xe4, 0xb9, 0xb7, 0x4d, 0xd5, 0xd5, 0xb0, 0x35, 0xc8, 0x2b, 0xa0, 0x3f, 0xd8, 0xde, 0xea, 0x4e, 0x16}}
return a, nil
}
@ -1936,7 +1937,7 @@ func _1684174617_add_url_previews_to_user_messagesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1684174617_add_url_previews_to_user_messages.up.sql", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1684505071, 0)}
info := bindataFileInfo{name: "1684174617_add_url_previews_to_user_messages.up.sql", size: 58, mode: os.FileMode(0664), modTime: time.Unix(1685964136, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xdc, 0xb0, 0x72, 0xe3, 0xe4, 0xa9, 0x63, 0x82, 0xea, 0x52, 0x70, 0xb6, 0xa0, 0x73, 0x55, 0x7a, 0x78, 0xa8, 0xd2, 0xb0, 0xf4, 0x78, 0x8a, 0xd, 0x5a, 0xa2, 0x9d, 0x92, 0xdc, 0xce, 0x1c, 0x71}}
return a, nil
}
@ -1956,7 +1957,7 @@ func _1684175608_add_token_balancesUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1684175608_add_token_balances.up.sql", size: 467, mode: os.FileMode(0644), modTime: time.Unix(1684755650, 0)}
info := bindataFileInfo{name: "1684175608_add_token_balances.up.sql", size: 467, mode: os.FileMode(0664), modTime: time.Unix(1685964136, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1b, 0x4e, 0xe0, 0x48, 0x34, 0x1, 0x4d, 0x88, 0x11, 0x54, 0x20, 0x52, 0x5c, 0x57, 0x14, 0xa9, 0xa9, 0x36, 0xa4, 0x28, 0x59, 0x48, 0xa8, 0xa, 0x76, 0xec, 0x37, 0xee, 0x9e, 0xd2, 0x20, 0xaa}}
return a, nil
}
@ -1976,11 +1977,31 @@ func _1684979808_sync_activity_center_notificationsUpSql() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "1684979808_sync_activity_center_notifications.up.sql", size: 169, mode: os.FileMode(0644), modTime: time.Unix(1686047555, 0)}
info := bindataFileInfo{name: "1684979808_sync_activity_center_notifications.up.sql", size: 169, mode: os.FileMode(0664), modTime: time.Unix(1686553047, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xd8, 0xf5, 0xf7, 0x94, 0xa9, 0xa1, 0x60, 0x26, 0x9d, 0xca, 0x31, 0xf, 0x14, 0xd, 0x70, 0xf8, 0xab, 0x40, 0x29, 0x73, 0x61, 0xbd, 0x1b, 0xb6, 0xc4, 0x31, 0x77, 0x9e, 0x32, 0xa8, 0xce, 0x6d}}
return a, nil
}
var __1685964183_add_chainids_to_revealed_addressesUpSql = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x04\xc0\x41\x0a\x42\x21\x10\x06\xe0\xfd\x3b\xc5\xdc\xa3\x95\xf5\xdc\x59\x41\x4c\xd0\x6e\x10\xe7\x87\x26\x52\xc9\xd1\xce\xff\xbe\x90\x38\x3e\x88\xc3\x39\x45\x2a\xbd\xd6\xd5\x6c\x1a\x5c\x06\x7e\x0b\x3e\x5d\x66\x97\x4f\xb7\x26\x03\x7f\xe4\x2f\x54\xb2\xea\x80\x3b\x9c\xc2\xbe\xd3\xe5\x9e\x9e\xd7\x1b\x95\x77\xb6\x26\xa6\x4e\x1c\x5f\x7c\xda\xb6\x23\x00\x00\xff\xff\x9e\xc9\xd7\x81\x58\x00\x00\x00")
func _1685964183_add_chainids_to_revealed_addressesUpSqlBytes() ([]byte, error) {
return bindataRead(
__1685964183_add_chainids_to_revealed_addressesUpSql,
"1685964183_add_chainids_to_revealed_addresses.up.sql",
)
}
func _1685964183_add_chainids_to_revealed_addressesUpSql() (*asset, error) {
bytes, err := _1685964183_add_chainids_to_revealed_addressesUpSqlBytes()
if err != nil {
return nil, err
}
info := bindataFileInfo{name: "1685964183_add_chainids_to_revealed_addresses.up.sql", size: 88, mode: os.FileMode(0664), modTime: time.Unix(1686553047, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc, 0xb5, 0xa8, 0xd7, 0xad, 0x9c, 0x54, 0xa5, 0xe9, 0xdb, 0x42, 0x2d, 0xd0, 0xd7, 0x22, 0x1, 0x93, 0xf3, 0x4f, 0x53, 0xf7, 0x1e, 0xbe, 0x4b, 0xac, 0xc7, 0x63, 0x15, 0xdf, 0xe0, 0x6, 0xf8}}
return a, nil
}
var _readmeMd = []byte("\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\x54\x91\xc1\xce\xd3\x30\x10\x84\xef\x7e\x8a\x91\x7a\x01\xa9\x2a\x8f\xc0\x0d\x71\x82\x03\x48\x1c\xc9\x36\x9e\x36\x96\x1c\x6f\xf0\xae\x93\xe6\xed\x91\xa3\xc2\xdf\xff\x66\xed\xd8\x33\xdf\x78\x4f\xa7\x13\xbe\xea\x06\x57\x6c\x35\x39\x31\xa7\x7b\x15\x4f\x5a\xec\x73\x08\xbf\x08\x2d\x79\x7f\x4a\x43\x5b\x86\x17\xfd\x8c\x21\xea\x56\x5e\x47\x90\x4a\x14\x75\x48\xde\x64\x37\x2c\x6a\x96\xae\x99\x48\x05\xf6\x27\x77\x13\xad\x08\xae\x8a\x51\xe7\x25\xf3\xf1\xa9\x9f\xf9\x58\x58\x2c\xad\xbc\xe0\x8b\x56\xf0\x21\x5d\xeb\x4c\x95\xb3\xae\x84\x60\xd4\xdc\xe6\x82\x5d\x1b\x36\x6d\x39\x62\x92\xf5\xb8\x11\xdb\x92\xd3\x28\xce\xe0\x13\xe1\x72\xcd\x3c\x63\xd4\x65\x87\xae\xac\xe8\xc3\x28\x2e\x67\x44\x66\x3a\x21\x25\xa2\x72\xac\x14\x67\xbc\x84\x9f\x53\x32\x8c\x52\x70\x25\x56\xd6\xfd\x8d\x05\x37\xad\x30\x9d\x9f\xa6\x86\x0f\xcd\x58\x7f\xcf\x34\x93\x3b\xed\x90\x9f\xa4\x1f\xcf\x30\x85\x4d\x07\x58\xaf\x7f\x25\xc4\x9d\xf3\x72\x64\x84\xd0\x7f\xf9\x9b\x3a\x2d\x84\xef\x85\x48\x66\x8d\xd8\x88\x9b\x8c\x8c\x98\x5b\xf6\x74\x14\x4e\x33\x0d\xc9\xe0\x93\x38\xda\x12\xc5\x69\xbd\xe4\xf0\x2e\x7a\x78\x07\x1c\xfe\x13\x9f\x91\x29\x31\x95\x7b\x7f\x62\x59\x37\xb4\xe5\x5e\x25\xfe\x33\xee\xd5\x53\x71\xd6\xda\x3a\xd8\xcb\xde\x2e\xf8\xa1\x90\x55\x53\x0c\xc7\xaa\x0d\xe9\x76\x14\x29\x1c\x7b\x68\xdd\x2f\xe1\x6f\x00\x00\x00\xff\xff\x3c\x0a\xc2\xfe\x2a\x02\x00\x00")
func readmeMdBytes() ([]byte, error) {
@ -1996,7 +2017,7 @@ func readmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "README.md", size: 554, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x1c, 0x6e, 0xfb, 0xcc, 0x81, 0x94, 0x4d, 0x8c, 0xa0, 0x3b, 0x5, 0xb0, 0x18, 0xd6, 0xbb, 0xb3, 0x79, 0xc8, 0x8f, 0xff, 0xc1, 0x10, 0xf9, 0xf, 0x20, 0x1b, 0x4a, 0x74, 0x96, 0x42, 0xd7, 0xa8}}
return a, nil
}
@ -2016,7 +2037,7 @@ func docGo() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0644), modTime: time.Unix(1645429416, 0)}
info := bindataFileInfo{name: "doc.go", size: 850, mode: os.FileMode(0664), modTime: time.Unix(1685952633, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xa0, 0xcc, 0x41, 0xe1, 0x61, 0x12, 0x97, 0xe, 0x36, 0x8c, 0xa7, 0x9e, 0xe0, 0x6e, 0x59, 0x9e, 0xee, 0xd5, 0x4a, 0xcf, 0x1e, 0x60, 0xd6, 0xc3, 0x3a, 0xc9, 0x6c, 0xf2, 0x86, 0x5a, 0xb4, 0x1e}}
return a, nil
}
@ -2294,6 +2315,8 @@ var _bindata = map[string]func() (*asset, error){
"1684979808_sync_activity_center_notifications.up.sql": _1684979808_sync_activity_center_notificationsUpSql,
"1685964183_add_chainids_to_revealed_addresses.up.sql": _1685964183_add_chainids_to_revealed_addressesUpSql,
"README.md": readmeMd,
"doc.go": docGo,
@ -2431,6 +2454,7 @@ var _bintree = &bintree{nil, map[string]*bintree{
"1684174617_add_url_previews_to_user_messages.up.sql": &bintree{_1684174617_add_url_previews_to_user_messagesUpSql, map[string]*bintree{}},
"1684175608_add_token_balances.up.sql": &bintree{_1684175608_add_token_balancesUpSql, map[string]*bintree{}},
"1684979808_sync_activity_center_notifications.up.sql": &bintree{_1684979808_sync_activity_center_notificationsUpSql, map[string]*bintree{}},
"1685964183_add_chainids_to_revealed_addresses.up.sql": &bintree{_1685964183_add_chainids_to_revealed_addressesUpSql, map[string]*bintree{}},
"README.md": &bintree{readmeMd, map[string]*bintree{}},
"doc.go": &bintree{docGo, map[string]*bintree{}},
}}

View File

@ -0,0 +1,2 @@
ALTER TABLE communities_requests_to_join_revealed_addresses ADD COLUMN chain_ids TEXT;

View File

@ -175,7 +175,7 @@ func (m *Grant) GetClock() uint64 {
type CommunityMember struct {
Roles []CommunityMember_Roles `protobuf:"varint,1,rep,packed,name=roles,proto3,enum=protobuf.CommunityMember_Roles" json:"roles,omitempty"`
WalletAccounts []string `protobuf:"bytes,2,rep,name=wallet_accounts,json=walletAccounts,proto3" json:"wallet_accounts,omitempty"`
RevealedAccounts []*RevealedAccount `protobuf:"bytes,2,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
@ -213,9 +213,9 @@ func (m *CommunityMember) GetRoles() []CommunityMember_Roles {
return nil
}
func (m *CommunityMember) GetWalletAccounts() []string {
func (m *CommunityMember) GetRevealedAccounts() []*RevealedAccount {
if m != nil {
return m.WalletAccounts
return m.RevealedAccounts
}
return nil
}
@ -908,23 +908,78 @@ func (m *CommunityInvitation) GetPublicKey() []byte {
return nil
}
type RevealedAccount struct {
Address string `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"`
Signature []byte `protobuf:"bytes,2,opt,name=signature,proto3" json:"signature,omitempty"`
ChainIds []uint64 `protobuf:"varint,3,rep,packed,name=chain_ids,json=chainIds,proto3" json:"chain_ids,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *RevealedAccount) Reset() { *m = RevealedAccount{} }
func (m *RevealedAccount) String() string { return proto.CompactTextString(m) }
func (*RevealedAccount) ProtoMessage() {}
func (*RevealedAccount) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{11}
}
func (m *RevealedAccount) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_RevealedAccount.Unmarshal(m, b)
}
func (m *RevealedAccount) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_RevealedAccount.Marshal(b, m, deterministic)
}
func (m *RevealedAccount) XXX_Merge(src proto.Message) {
xxx_messageInfo_RevealedAccount.Merge(m, src)
}
func (m *RevealedAccount) XXX_Size() int {
return xxx_messageInfo_RevealedAccount.Size(m)
}
func (m *RevealedAccount) XXX_DiscardUnknown() {
xxx_messageInfo_RevealedAccount.DiscardUnknown(m)
}
var xxx_messageInfo_RevealedAccount proto.InternalMessageInfo
func (m *RevealedAccount) GetAddress() string {
if m != nil {
return m.Address
}
return ""
}
func (m *RevealedAccount) GetSignature() []byte {
if m != nil {
return m.Signature
}
return nil
}
func (m *RevealedAccount) GetChainIds() []uint64 {
if m != nil {
return m.ChainIds
}
return nil
}
type CommunityRequestToJoin struct {
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
EnsName string `protobuf:"bytes,2,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
CommunityId []byte `protobuf:"bytes,4,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
RevealedAddresses map[string][]byte `protobuf:"bytes,6,rep,name=revealed_addresses,json=revealedAddresses,proto3" json:"revealed_addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Clock uint64 `protobuf:"varint,1,opt,name=clock,proto3" json:"clock,omitempty"`
EnsName string `protobuf:"bytes,2,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
ChatId string `protobuf:"bytes,3,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
CommunityId []byte `protobuf:"bytes,4,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
DisplayName string `protobuf:"bytes,5,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
RevealedAccounts []*RevealedAccount `protobuf:"bytes,6,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *CommunityRequestToJoin) Reset() { *m = CommunityRequestToJoin{} }
func (m *CommunityRequestToJoin) String() string { return proto.CompactTextString(m) }
func (*CommunityRequestToJoin) ProtoMessage() {}
func (*CommunityRequestToJoin) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{11}
return fileDescriptor_f937943d74c1cd8b, []int{12}
}
func (m *CommunityRequestToJoin) XXX_Unmarshal(b []byte) error {
@ -980,9 +1035,9 @@ func (m *CommunityRequestToJoin) GetDisplayName() string {
return ""
}
func (m *CommunityRequestToJoin) GetRevealedAddresses() map[string][]byte {
func (m *CommunityRequestToJoin) GetRevealedAccounts() []*RevealedAccount {
if m != nil {
return m.RevealedAddresses
return m.RevealedAccounts
}
return nil
}
@ -1002,7 +1057,7 @@ func (m *CommunityCancelRequestToJoin) Reset() { *m = CommunityCancelReq
func (m *CommunityCancelRequestToJoin) String() string { return proto.CompactTextString(m) }
func (*CommunityCancelRequestToJoin) ProtoMessage() {}
func (*CommunityCancelRequestToJoin) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{12}
return fileDescriptor_f937943d74c1cd8b, []int{13}
}
func (m *CommunityCancelRequestToJoin) XXX_Unmarshal(b []byte) error {
@ -1074,7 +1129,7 @@ func (m *CommunityRequestToJoinResponse) Reset() { *m = CommunityRequest
func (m *CommunityRequestToJoinResponse) String() string { return proto.CompactTextString(m) }
func (*CommunityRequestToJoinResponse) ProtoMessage() {}
func (*CommunityRequestToJoinResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{13}
return fileDescriptor_f937943d74c1cd8b, []int{14}
}
func (m *CommunityRequestToJoinResponse) XXX_Unmarshal(b []byte) error {
@ -1149,7 +1204,7 @@ func (m *CommunityRequestToLeave) Reset() { *m = CommunityRequestToLeave
func (m *CommunityRequestToLeave) String() string { return proto.CompactTextString(m) }
func (*CommunityRequestToLeave) ProtoMessage() {}
func (*CommunityRequestToLeave) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{14}
return fileDescriptor_f937943d74c1cd8b, []int{15}
}
func (m *CommunityRequestToLeave) XXX_Unmarshal(b []byte) error {
@ -1196,7 +1251,7 @@ func (m *CommunityMessageArchiveMagnetlink) Reset() { *m = CommunityMess
func (m *CommunityMessageArchiveMagnetlink) String() string { return proto.CompactTextString(m) }
func (*CommunityMessageArchiveMagnetlink) ProtoMessage() {}
func (*CommunityMessageArchiveMagnetlink) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{15}
return fileDescriptor_f937943d74c1cd8b, []int{16}
}
func (m *CommunityMessageArchiveMagnetlink) XXX_Unmarshal(b []byte) error {
@ -1248,7 +1303,7 @@ func (m *WakuMessage) Reset() { *m = WakuMessage{} }
func (m *WakuMessage) String() string { return proto.CompactTextString(m) }
func (*WakuMessage) ProtoMessage() {}
func (*WakuMessage) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{16}
return fileDescriptor_f937943d74c1cd8b, []int{17}
}
func (m *WakuMessage) XXX_Unmarshal(b []byte) error {
@ -1332,7 +1387,7 @@ func (m *WakuMessageArchiveMetadata) Reset() { *m = WakuMessageArchiveMe
func (m *WakuMessageArchiveMetadata) String() string { return proto.CompactTextString(m) }
func (*WakuMessageArchiveMetadata) ProtoMessage() {}
func (*WakuMessageArchiveMetadata) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{17}
return fileDescriptor_f937943d74c1cd8b, []int{18}
}
func (m *WakuMessageArchiveMetadata) XXX_Unmarshal(b []byte) error {
@ -1394,7 +1449,7 @@ func (m *WakuMessageArchive) Reset() { *m = WakuMessageArchive{} }
func (m *WakuMessageArchive) String() string { return proto.CompactTextString(m) }
func (*WakuMessageArchive) ProtoMessage() {}
func (*WakuMessageArchive) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{18}
return fileDescriptor_f937943d74c1cd8b, []int{19}
}
func (m *WakuMessageArchive) XXX_Unmarshal(b []byte) error {
@ -1451,7 +1506,7 @@ func (m *WakuMessageArchiveIndexMetadata) Reset() { *m = WakuMessageArch
func (m *WakuMessageArchiveIndexMetadata) String() string { return proto.CompactTextString(m) }
func (*WakuMessageArchiveIndexMetadata) ProtoMessage() {}
func (*WakuMessageArchiveIndexMetadata) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{19}
return fileDescriptor_f937943d74c1cd8b, []int{20}
}
func (m *WakuMessageArchiveIndexMetadata) XXX_Unmarshal(b []byte) error {
@ -1518,7 +1573,7 @@ func (m *WakuMessageArchiveIndex) Reset() { *m = WakuMessageArchiveIndex
func (m *WakuMessageArchiveIndex) String() string { return proto.CompactTextString(m) }
func (*WakuMessageArchiveIndex) ProtoMessage() {}
func (*WakuMessageArchiveIndex) Descriptor() ([]byte, []int) {
return fileDescriptor_f937943d74c1cd8b, []int{20}
return fileDescriptor_f937943d74c1cd8b, []int{21}
}
func (m *WakuMessageArchiveIndex) XXX_Unmarshal(b []byte) error {
@ -1568,8 +1623,8 @@ func init() {
proto.RegisterMapType((map[string]*CommunityMember)(nil), "protobuf.CommunityChat.MembersEntry")
proto.RegisterType((*CommunityCategory)(nil), "protobuf.CommunityCategory")
proto.RegisterType((*CommunityInvitation)(nil), "protobuf.CommunityInvitation")
proto.RegisterType((*RevealedAccount)(nil), "protobuf.RevealedAccount")
proto.RegisterType((*CommunityRequestToJoin)(nil), "protobuf.CommunityRequestToJoin")
proto.RegisterMapType((map[string][]byte)(nil), "protobuf.CommunityRequestToJoin.RevealedAddressesEntry")
proto.RegisterType((*CommunityCancelRequestToJoin)(nil), "protobuf.CommunityCancelRequestToJoin")
proto.RegisterType((*CommunityRequestToJoinResponse)(nil), "protobuf.CommunityRequestToJoinResponse")
proto.RegisterType((*CommunityRequestToLeave)(nil), "protobuf.CommunityRequestToLeave")
@ -1587,126 +1642,127 @@ func init() {
}
var fileDescriptor_f937943d74c1cd8b = []byte{
// 1927 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x5f, 0x6f, 0x23, 0x49,
0x11, 0xdf, 0xf1, 0x9f, 0xc4, 0x2e, 0xff, 0x89, 0xd3, 0xbb, 0x49, 0x26, 0xd9, 0xdd, 0x4b, 0x76,
0x00, 0x5d, 0x4e, 0x08, 0xef, 0x9d, 0x0f, 0xc4, 0xea, 0x0e, 0xee, 0xce, 0x9b, 0x58, 0x8b, 0xd9,
0xd8, 0xce, 0x75, 0x1c, 0x8e, 0x3b, 0x01, 0xa3, 0xce, 0x4c, 0xc7, 0x69, 0x65, 0x3c, 0x63, 0xa6,
0xdb, 0x01, 0xf3, 0xc0, 0x13, 0x1f, 0x82, 0x77, 0x5e, 0x11, 0x5f, 0x81, 0x07, 0x5e, 0x11, 0x8f,
0x48, 0xbc, 0xf1, 0x84, 0xf8, 0x04, 0x3c, 0xa3, 0xee, 0x9e, 0x19, 0xcf, 0x38, 0x76, 0xb2, 0x68,
0x41, 0xe2, 0xc9, 0x53, 0xd5, 0x55, 0xd5, 0xd5, 0x55, 0xbf, 0xae, 0xae, 0x32, 0x6c, 0x3a, 0xc1,
0x78, 0x3c, 0xf5, 0x99, 0x60, 0x94, 0x37, 0x27, 0x61, 0x20, 0x02, 0x54, 0x52, 0x3f, 0x17, 0xd3,
0xcb, 0xbd, 0x87, 0xce, 0x15, 0x11, 0x36, 0x73, 0xa9, 0x2f, 0x98, 0x98, 0xe9, 0xe5, 0xbd, 0x0a,
0xf5, 0xa7, 0xe3, 0x48, 0xd6, 0xba, 0x81, 0xe2, 0xab, 0x90, 0xf8, 0x02, 0x3d, 0x83, 0x6a, 0x6c,
0x69, 0x66, 0x33, 0xd7, 0x34, 0x0e, 0x8c, 0xc3, 0x2a, 0xae, 0x24, 0xbc, 0xae, 0x8b, 0x1e, 0x43,
0x79, 0x4c, 0xc7, 0x17, 0x34, 0x94, 0xeb, 0x39, 0xb5, 0x5e, 0xd2, 0x8c, 0xae, 0x8b, 0x76, 0x60,
0x3d, 0xda, 0xcc, 0xcc, 0x1f, 0x18, 0x87, 0x65, 0xbc, 0x26, 0xc9, 0xae, 0x8b, 0x1e, 0x41, 0xd1,
0xf1, 0x02, 0xe7, 0xda, 0x2c, 0x1c, 0x18, 0x87, 0x05, 0xac, 0x09, 0xeb, 0xcf, 0x06, 0x6c, 0x1c,
0xc5, 0xb6, 0x7b, 0xca, 0x08, 0xfa, 0x0e, 0x14, 0xc3, 0xc0, 0xa3, 0xdc, 0x34, 0x0e, 0xf2, 0x87,
0xf5, 0xd6, 0x7e, 0x33, 0x3e, 0x47, 0x73, 0x41, 0xb2, 0x89, 0xa5, 0x18, 0xd6, 0xd2, 0xe8, 0x5d,
0xd8, 0xf8, 0x05, 0xf1, 0x3c, 0x2a, 0x6c, 0xe2, 0x38, 0xc1, 0xd4, 0x17, 0xdc, 0xcc, 0x1d, 0xe4,
0x0f, 0xcb, 0xb8, 0xae, 0xd9, 0xed, 0x88, 0x6b, 0x7d, 0x09, 0x45, 0xa5, 0x88, 0x1a, 0x50, 0x3d,
0xef, 0xbf, 0xee, 0x0f, 0xbe, 0xe8, 0xdb, 0x78, 0x70, 0xd2, 0x69, 0x3c, 0x40, 0x55, 0x28, 0xc9,
0x2f, 0xbb, 0x7d, 0x72, 0xd2, 0x30, 0xd0, 0x16, 0x6c, 0x2a, 0xaa, 0xd7, 0xee, 0xb7, 0x5f, 0x75,
0xec, 0xf3, 0xb3, 0x0e, 0x3e, 0x6b, 0xe4, 0xd0, 0x2e, 0x6c, 0x69, 0xf6, 0xe0, 0xb8, 0x83, 0xdb,
0xc3, 0x8e, 0x7d, 0x34, 0xe8, 0x0f, 0x3b, 0xfd, 0x61, 0x23, 0x6f, 0xfd, 0x23, 0x07, 0xdb, 0x89,
0x93, 0xc3, 0xe0, 0x9a, 0xfa, 0x3d, 0x2a, 0x88, 0x4b, 0x04, 0x41, 0x97, 0x80, 0x9c, 0xc0, 0x17,
0x21, 0x71, 0x84, 0x4d, 0x5c, 0x37, 0xa4, 0x9c, 0x47, 0x47, 0xac, 0xb4, 0xbe, 0xbb, 0xe4, 0x88,
0x19, 0xed, 0xe6, 0x51, 0xa4, 0xda, 0x8e, 0x35, 0x3b, 0xbe, 0x08, 0x67, 0x78, 0xd3, 0x59, 0xe4,
0xa3, 0x03, 0xa8, 0xb8, 0x94, 0x3b, 0x21, 0x9b, 0x08, 0x16, 0xf8, 0x2a, 0x3f, 0x65, 0x9c, 0x66,
0xc9, 0x4c, 0xb0, 0x31, 0x19, 0xd1, 0x28, 0x41, 0x9a, 0x40, 0x1f, 0x41, 0x59, 0xc8, 0x2d, 0x87,
0xb3, 0x09, 0x55, 0x39, 0xaa, 0xb7, 0x9e, 0xac, 0x72, 0x4b, 0xca, 0xe0, 0xb9, 0x38, 0xda, 0x86,
0x35, 0x3e, 0x1b, 0x5f, 0x04, 0x9e, 0x59, 0xd4, 0x39, 0xd7, 0x14, 0x42, 0x50, 0xf0, 0xc9, 0x98,
0x9a, 0x6b, 0x8a, 0xab, 0xbe, 0xf7, 0x8e, 0x65, 0x84, 0x96, 0x1d, 0x06, 0x35, 0x20, 0x7f, 0x4d,
0x67, 0x0a, 0x71, 0x05, 0x2c, 0x3f, 0xa5, 0xa7, 0x37, 0xc4, 0x9b, 0xd2, 0xe8, 0x14, 0x9a, 0xf8,
0x28, 0xf7, 0xc2, 0xb0, 0xfe, 0x6e, 0xc0, 0xa3, 0xc4, 0xa7, 0x53, 0x1a, 0x8e, 0x19, 0xe7, 0x2c,
0xf0, 0x39, 0xda, 0x85, 0x12, 0xf5, 0xb9, 0x1d, 0xf8, 0x9e, 0xb6, 0x54, 0xc2, 0xeb, 0xd4, 0xe7,
0x03, 0xdf, 0x9b, 0x21, 0x13, 0xd6, 0x27, 0x21, 0xbb, 0x21, 0x42, 0xdb, 0x2b, 0xe1, 0x98, 0x44,
0xdf, 0x87, 0x35, 0xe2, 0x38, 0x94, 0x73, 0x15, 0x92, 0x7a, 0xeb, 0x1b, 0x4b, 0x0e, 0x9e, 0xda,
0xa4, 0xd9, 0x56, 0xc2, 0x38, 0x52, 0xb2, 0x86, 0xb0, 0xa6, 0x39, 0x08, 0x41, 0x3d, 0x46, 0x54,
0xfb, 0xe8, 0xa8, 0x73, 0x76, 0xd6, 0x78, 0x80, 0x36, 0xa1, 0xd6, 0x1f, 0xd8, 0xbd, 0x4e, 0xef,
0x65, 0x07, 0x9f, 0xfd, 0xa0, 0x7b, 0xda, 0x30, 0xd0, 0x43, 0xd8, 0xe8, 0xf6, 0x7f, 0xd4, 0x1d,
0xb6, 0x87, 0xdd, 0x41, 0xdf, 0x1e, 0xf4, 0x4f, 0xbe, 0x6c, 0xe4, 0x50, 0x1d, 0x60, 0xd0, 0xb7,
0x71, 0xe7, 0xf3, 0xf3, 0xce, 0x99, 0xc4, 0xd2, 0x6f, 0xf2, 0x50, 0x53, 0xd1, 0x3e, 0x0a, 0x99,
0xa0, 0x21, 0x23, 0xe8, 0xa7, 0x77, 0x40, 0xa8, 0x39, 0x77, 0x39, 0xa3, 0xf4, 0x1f, 0x20, 0xe7,
0x7d, 0x28, 0x08, 0x99, 0xfc, 0xdc, 0x1b, 0x24, 0x5f, 0x49, 0xa6, 0xf2, 0x9e, 0x5f, 0x9a, 0xf7,
0xc2, 0x3c, 0xef, 0x52, 0x96, 0x8c, 0xe5, 0x05, 0x8c, 0x31, 0xa2, 0x29, 0x59, 0x4d, 0x14, 0x90,
0x6c, 0xe6, 0x72, 0x73, 0xed, 0x20, 0x7f, 0x58, 0xc0, 0x25, 0xc5, 0xe8, 0xba, 0x1c, 0xed, 0x43,
0x45, 0x66, 0x73, 0x42, 0x84, 0xa0, 0xa1, 0x6f, 0xae, 0x2b, 0x4d, 0xa0, 0x3e, 0x3f, 0xd5, 0x1c,
0xb4, 0x07, 0x25, 0x97, 0x3a, 0x6c, 0x4c, 0x3c, 0x6e, 0x96, 0x14, 0x70, 0x12, 0xfa, 0xbf, 0x84,
0xb4, 0xdf, 0xe7, 0xc0, 0xcc, 0x06, 0x60, 0x8e, 0x04, 0x54, 0x87, 0x5c, 0x54, 0x23, 0xcb, 0x38,
0xc7, 0x5c, 0xf4, 0x71, 0x26, 0x84, 0xef, 0xae, 0x0a, 0xe1, 0xdc, 0x42, 0x33, 0x15, 0xcd, 0x4f,
0xa0, 0xae, 0x23, 0xe1, 0x44, 0xb9, 0x33, 0xf3, 0x2a, 0xb5, 0x3b, 0x2b, 0x52, 0x8b, 0x6b, 0x22,
0x03, 0x8f, 0x5d, 0x28, 0x45, 0xa5, 0x97, 0x9b, 0x05, 0x55, 0xf9, 0xd6, 0x75, 0xed, 0xe5, 0xe8,
0x29, 0x00, 0xe3, 0x76, 0x8c, 0xfe, 0xa2, 0x42, 0x7f, 0x99, 0xf1, 0x53, 0xcd, 0xb0, 0xba, 0x50,
0x50, 0xf7, 0xf8, 0x09, 0x98, 0x31, 0x7c, 0x87, 0x83, 0xd7, 0x9d, 0xbe, 0x7d, 0xda, 0xc1, 0xbd,
0xee, 0xd9, 0x59, 0x77, 0xd0, 0x6f, 0x3c, 0x90, 0xe5, 0xf2, 0x65, 0xe7, 0x68, 0xd0, 0xeb, 0xd8,
0xed, 0xe3, 0x5e, 0xb7, 0xdf, 0x30, 0x24, 0xb4, 0x23, 0x8e, 0x86, 0x77, 0x23, 0x67, 0xfd, 0xab,
0x9c, 0xba, 0x98, 0xc7, 0xd9, 0xaa, 0xa3, 0xeb, 0xbf, 0x91, 0xaa, 0xff, 0xa8, 0x03, 0xeb, 0xfa,
0xe9, 0xd0, 0xc5, 0xba, 0xd2, 0xfa, 0xe6, 0x92, 0x98, 0xa5, 0xcc, 0x34, 0x75, 0xe5, 0x8f, 0x40,
0x1c, 0xeb, 0xa2, 0xcf, 0xa0, 0x32, 0x99, 0xdf, 0x4f, 0x85, 0xc6, 0x4a, 0xeb, 0x9d, 0xbb, 0x6f,
0x31, 0x4e, 0xab, 0xa0, 0x16, 0x94, 0xe2, 0xf7, 0x51, 0xc5, 0xa7, 0xd2, 0xda, 0x4e, 0xa9, 0xab,
0x30, 0xea, 0x55, 0x9c, 0xc8, 0xa1, 0x4f, 0xa1, 0x28, 0x03, 0xac, 0x61, 0x5b, 0x69, 0xbd, 0x77,
0x8f, 0xeb, 0xd2, 0x4a, 0xe4, 0xb8, 0xd6, 0x93, 0x19, 0xbb, 0x20, 0xbe, 0xed, 0x31, 0x2e, 0xcc,
0x75, 0x9d, 0xb1, 0x0b, 0xe2, 0x9f, 0x30, 0x2e, 0x50, 0x1f, 0xc0, 0x21, 0x82, 0x8e, 0x82, 0x90,
0x51, 0x09, 0xed, 0x85, 0x3b, 0xbe, 0x7c, 0x83, 0x44, 0x41, 0xef, 0x92, 0xb2, 0x80, 0x5e, 0x80,
0x49, 0x42, 0xe7, 0x8a, 0xdd, 0x50, 0x7b, 0x4c, 0x46, 0x3e, 0x15, 0x1e, 0xf3, 0xaf, 0x6d, 0x9d,
0x91, 0xb2, 0xca, 0xc8, 0x76, 0xb4, 0xde, 0x4b, 0x96, 0x8f, 0x54, 0x8a, 0x5e, 0x41, 0x9d, 0xb8,
0x63, 0xe6, 0xdb, 0x9c, 0x0a, 0xc1, 0xfc, 0x11, 0x37, 0x41, 0xc5, 0xe7, 0x60, 0x89, 0x37, 0x6d,
0x29, 0x78, 0x16, 0xc9, 0xe1, 0x1a, 0x49, 0x93, 0xe8, 0x6b, 0x50, 0x63, 0xbe, 0x08, 0x03, 0x7b,
0x4c, 0x39, 0x97, 0xef, 0x4f, 0x45, 0xdd, 0x9b, 0xaa, 0x62, 0xf6, 0x34, 0x4f, 0x0a, 0x05, 0xd3,
0xb4, 0x50, 0x55, 0x0b, 0x29, 0x66, 0x2c, 0xf4, 0x04, 0xca, 0xd4, 0x77, 0xc2, 0xd9, 0x44, 0x50,
0xd7, 0xac, 0x69, 0x34, 0x27, 0x0c, 0x59, 0x7d, 0x04, 0x19, 0x71, 0xb3, 0xae, 0x22, 0xaa, 0xbe,
0x11, 0x81, 0x4d, 0x7d, 0xb7, 0xd2, 0x30, 0xd9, 0x50, 0x51, 0xfd, 0xf6, 0x3d, 0x51, 0x5d, 0xb8,
0xb1, 0x51, 0x6c, 0x1b, 0x62, 0x81, 0x8d, 0x7e, 0x02, 0xbb, 0xf3, 0xce, 0x49, 0xad, 0x72, 0x7b,
0x1c, 0xbd, 0xdf, 0x66, 0x43, 0x6d, 0x75, 0x70, 0xdf, 0x3b, 0x8f, 0x77, 0x9c, 0x0c, 0x9f, 0x27,
0xed, 0xc3, 0xfb, 0xf0, 0x88, 0x38, 0x42, 0xa5, 0x4f, 0x63, 0xde, 0x56, 0xdd, 0x8c, 0xb9, 0xa9,
0x72, 0x87, 0xf4, 0x5a, 0x74, 0x39, 0x8e, 0xe4, 0xca, 0xde, 0x39, 0x54, 0xd3, 0x97, 0x25, 0x5d,
0xf4, 0xca, 0xba, 0xe8, 0x3d, 0x4f, 0x17, 0xbd, 0x4a, 0x6b, 0x77, 0x65, 0xa3, 0x95, 0xaa, 0x87,
0x7b, 0x9f, 0x03, 0xcc, 0x81, 0xbc, 0xc4, 0xe8, 0xb7, 0xb2, 0x46, 0x77, 0x96, 0x18, 0x95, 0xfa,
0x69, 0x93, 0x5f, 0xc1, 0xc6, 0x02, 0x74, 0x97, 0xd8, 0xfd, 0x20, 0x6b, 0xf7, 0xf1, 0x32, 0xbb,
0xda, 0xc8, 0x2c, 0x6d, 0x7b, 0x04, 0x5b, 0x4b, 0x13, 0xb8, 0x64, 0x87, 0x17, 0xd9, 0x1d, 0xac,
0xfb, 0xab, 0x77, 0xfa, 0x9d, 0xf8, 0x59, 0xaa, 0xf3, 0xcb, 0x5c, 0x03, 0x74, 0x0c, 0xfb, 0x13,
0xe6, 0xc7, 0x80, 0xb6, 0x89, 0xe7, 0x25, 0x39, 0xa4, 0x3e, 0xb9, 0xf0, 0xa8, 0x1b, 0x75, 0x2a,
0x8f, 0x27, 0xcc, 0x8f, 0x20, 0xde, 0xf6, 0xbc, 0x24, 0x79, 0x4a, 0xc4, 0xfa, 0x5b, 0x0e, 0x6a,
0x99, 0x08, 0xa2, 0x4f, 0xe6, 0xb5, 0x53, 0xf7, 0x00, 0x5f, 0x5f, 0x11, 0xeb, 0x37, 0x2b, 0x9a,
0xb9, 0xb7, 0x2b, 0x9a, 0xf9, 0x37, 0x2c, 0x9a, 0xfb, 0x50, 0x89, 0xca, 0x92, 0x9a, 0x2f, 0x74,
0x8b, 0x10, 0x57, 0x2a, 0x39, 0x5e, 0xec, 0x41, 0x69, 0x12, 0x70, 0xa6, 0xba, 0x57, 0x59, 0x89,
0x8b, 0x38, 0xa1, 0xff, 0x47, 0x98, 0xb6, 0x5c, 0xd8, 0xbc, 0x05, 0xa2, 0x45, 0x47, 0x8d, 0x5b,
0x8e, 0xc6, 0x5d, 0x4e, 0x2e, 0xd5, 0xe5, 0xa4, 0x9d, 0xcf, 0x67, 0x9d, 0xb7, 0x7e, 0x6b, 0xc0,
0xc3, 0x64, 0x9b, 0xae, 0x7f, 0xc3, 0x04, 0x51, 0x2f, 0xe3, 0x87, 0xb0, 0x35, 0x2f, 0x1c, 0xe9,
0xde, 0x5d, 0xcf, 0x5e, 0x8f, 0x9c, 0x15, 0xcf, 0xe9, 0x48, 0x0e, 0x6c, 0xd1, 0x00, 0xa6, 0x89,
0xd5, 0xd3, 0xd7, 0x53, 0x80, 0xc9, 0xf4, 0xc2, 0x63, 0x8e, 0x2d, 0xe3, 0x55, 0x50, 0x3a, 0x65,
0xcd, 0x79, 0x4d, 0x67, 0xd6, 0x5f, 0xd3, 0x73, 0x0b, 0xa6, 0x3f, 0x9f, 0x52, 0x2e, 0x86, 0xc1,
0x0f, 0x03, 0xb6, 0xea, 0xdd, 0x8e, 0xda, 0xec, 0xd4, 0xf9, 0x65, 0x9b, 0xdd, 0x97, 0x21, 0x58,
0xe9, 0xc3, 0xe2, 0x68, 0x59, 0xb8, 0x3d, 0x5a, 0x3e, 0x83, 0xaa, 0xcb, 0xf8, 0xc4, 0x23, 0x33,
0x6d, 0xba, 0x18, 0x4d, 0x2f, 0x9a, 0xa7, 0xcc, 0x5f, 0x02, 0x0a, 0xe9, 0x0d, 0x25, 0x1e, 0x75,
0x53, 0x4d, 0xf0, 0xda, 0xca, 0x39, 0x2a, 0x73, 0x9a, 0x26, 0x8e, 0x54, 0x17, 0xbb, 0xe1, 0x70,
0x91, 0x2f, 0xbb, 0xc7, 0xe5, 0xc2, 0x4b, 0x40, 0x97, 0xe9, 0x1e, 0xab, 0x69, 0x64, 0xfd, 0xc1,
0x80, 0x27, 0x29, 0x68, 0xf9, 0x0e, 0xf5, 0xfe, 0xaf, 0xc3, 0x6b, 0xfd, 0xd3, 0x80, 0x77, 0x96,
0xc7, 0x0e, 0x53, 0x3e, 0x09, 0x7c, 0x4e, 0x57, 0xb8, 0xfc, 0x3d, 0x28, 0x27, 0x5b, 0xdd, 0x51,
0x4b, 0x52, 0x18, 0xc6, 0x73, 0x05, 0x79, 0x6f, 0xe4, 0x30, 0xa5, 0x1e, 0xf4, 0xbc, 0x2a, 0x86,
0x09, 0x3d, 0x87, 0x7a, 0x21, 0x0d, 0xf5, 0xc5, 0xe3, 0x16, 0x6f, 0x1f, 0xf7, 0x29, 0x80, 0xee,
0x75, 0xec, 0x69, 0xc8, 0xa2, 0x21, 0xb4, 0xac, 0x39, 0xe7, 0x21, 0xb3, 0x30, 0xec, 0xdc, 0x3e,
0xe9, 0x09, 0x25, 0x37, 0xab, 0x8e, 0xb8, 0xb8, 0x65, 0xee, 0xd6, 0x96, 0xd6, 0x8f, 0xe1, 0x59,
0xaa, 0xce, 0xe8, 0x52, 0xbe, 0xd8, 0x56, 0xad, 0xb0, 0x9e, 0xf5, 0x36, 0xb7, 0xe8, 0xed, 0x1f,
0x0d, 0xa8, 0x7c, 0x41, 0xae, 0xa7, 0x71, 0x0f, 0xd4, 0x80, 0x3c, 0x67, 0xa3, 0xa8, 0x46, 0xc8,
0x4f, 0xd9, 0x15, 0x09, 0x36, 0xa6, 0x5c, 0x90, 0xf1, 0x44, 0xe9, 0x17, 0xf0, 0x9c, 0x21, 0x37,
0x15, 0xc1, 0x84, 0x39, 0x2a, 0xbc, 0x55, 0xac, 0x09, 0x35, 0x13, 0x93, 0x99, 0x17, 0x90, 0x18,
0x2f, 0x31, 0xa9, 0x57, 0x5c, 0x97, 0xf9, 0xa3, 0x28, 0xb4, 0x31, 0x29, 0xeb, 0xde, 0x15, 0xe1,
0x57, 0x2a, 0xa0, 0x55, 0xac, 0xbe, 0x91, 0x05, 0x55, 0x71, 0xc5, 0x42, 0xf7, 0x94, 0x84, 0x32,
0x0e, 0xd1, 0xa4, 0x96, 0xe1, 0x59, 0xbf, 0x86, 0xbd, 0xd4, 0x01, 0xe2, 0xb0, 0xc4, 0x0d, 0x8e,
0x09, 0xeb, 0x37, 0x34, 0xe4, 0x71, 0xdd, 0xab, 0xe1, 0x98, 0x94, 0xfb, 0x5d, 0x86, 0xc1, 0x38,
0x3a, 0x92, 0xfa, 0x96, 0x83, 0x97, 0x08, 0xd4, 0x51, 0x0a, 0x38, 0x27, 0x02, 0xb9, 0xbf, 0x1c,
0x68, 0xa9, 0x2f, 0x86, 0xea, 0x90, 0x72, 0xfe, 0xa9, 0xe2, 0x0c, 0xcf, 0xfa, 0x9d, 0x01, 0xe8,
0xb6, 0x03, 0x77, 0x6c, 0xfc, 0x19, 0x94, 0x92, 0x06, 0x4e, 0x23, 0x3a, 0xf5, 0xc2, 0xae, 0x3e,
0x0a, 0x4e, 0xb4, 0xd0, 0x07, 0xd2, 0x82, 0x92, 0xe1, 0xd1, 0x30, 0xb7, 0xb5, 0xd4, 0x02, 0x4e,
0xc4, 0xac, 0x3f, 0x19, 0xb0, 0x7f, 0xdb, 0x76, 0xd7, 0x77, 0xe9, 0x2f, 0xdf, 0x20, 0x56, 0x6f,
0xef, 0xf2, 0x36, 0xac, 0x05, 0x97, 0x97, 0x9c, 0x8a, 0x28, 0xba, 0x11, 0x25, 0xb3, 0xc0, 0xd9,
0xaf, 0x68, 0xf4, 0xf7, 0x9d, 0xfa, 0x5e, 0xc4, 0x48, 0x21, 0xc1, 0x88, 0xf5, 0x17, 0x03, 0x76,
0x56, 0x9c, 0x02, 0xbd, 0x86, 0x52, 0x34, 0x6a, 0xc4, 0x8d, 0xcb, 0xf3, 0xbb, 0x7c, 0x54, 0x4a,
0xcd, 0x88, 0x88, 0xea, 0x75, 0x62, 0x60, 0xef, 0x12, 0x6a, 0x99, 0xa5, 0x25, 0xd5, 0xf9, 0xd3,
0x6c, 0x4b, 0xf0, 0xde, 0xbd, 0x9b, 0x25, 0x51, 0x99, 0x17, 0xf2, 0x97, 0xb5, 0xaf, 0x2a, 0xcd,
0xe7, 0x1f, 0xc7, 0x9a, 0x17, 0x6b, 0xea, 0xeb, 0xc3, 0x7f, 0x07, 0x00, 0x00, 0xff, 0xff, 0x50,
0x24, 0xc4, 0xac, 0x77, 0x15, 0x00, 0x00,
// 1948 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x73, 0x23, 0x47,
0x15, 0xcf, 0xe8, 0x8f, 0x2d, 0x3d, 0x49, 0x5e, 0xb9, 0x77, 0x6d, 0x8f, 0xbd, 0xbb, 0xb1, 0x76,
0x80, 0xc2, 0x29, 0x0a, 0x6d, 0xe2, 0x40, 0xb1, 0x95, 0x40, 0x12, 0xad, 0x2d, 0x16, 0xb1, 0x96,
0xe4, 0xb4, 0x65, 0x42, 0x52, 0xc0, 0x54, 0x7b, 0xa6, 0x2d, 0x77, 0x59, 0x9a, 0x11, 0xd3, 0x2d,
0x17, 0xe2, 0xc0, 0x89, 0x0f, 0xc1, 0x9d, 0x2b, 0xc5, 0x57, 0xe0, 0xc0, 0x9d, 0x3b, 0x37, 0x4e,
0x14, 0x55, 0x5c, 0x38, 0x71, 0xa6, 0xfa, 0xcf, 0x8c, 0x66, 0x64, 0xc9, 0xde, 0x54, 0xa0, 0x8a,
0x93, 0xe6, 0xbd, 0x7e, 0xfd, 0x5e, 0xbf, 0xf7, 0x7e, 0xfd, 0xfa, 0x3d, 0xc1, 0xa6, 0x17, 0x8e,
0xc7, 0xd3, 0x80, 0x09, 0x46, 0x79, 0x73, 0x12, 0x85, 0x22, 0x44, 0x25, 0xf5, 0x73, 0x31, 0xbd,
0xdc, 0x7b, 0xe8, 0x5d, 0x11, 0xe1, 0x32, 0x9f, 0x06, 0x82, 0x89, 0x99, 0x5e, 0xde, 0xab, 0xd0,
0x60, 0x3a, 0x36, 0xb2, 0xce, 0x0d, 0x14, 0x5f, 0x45, 0x24, 0x10, 0xe8, 0x19, 0x54, 0x63, 0x4d,
0x33, 0x97, 0xf9, 0xb6, 0xd5, 0xb0, 0x0e, 0xaa, 0xb8, 0x92, 0xf0, 0x3a, 0x3e, 0x7a, 0x0c, 0xe5,
0x31, 0x1d, 0x5f, 0xd0, 0x48, 0xae, 0xe7, 0xd4, 0x7a, 0x49, 0x33, 0x3a, 0x3e, 0xda, 0x81, 0x75,
0x63, 0xcc, 0xce, 0x37, 0xac, 0x83, 0x32, 0x5e, 0x93, 0x64, 0xc7, 0x47, 0x8f, 0xa0, 0xe8, 0x8d,
0x42, 0xef, 0xda, 0x2e, 0x34, 0xac, 0x83, 0x02, 0xd6, 0x84, 0xf3, 0x4f, 0x0b, 0x1e, 0x1c, 0xc5,
0xba, 0xbb, 0x4a, 0x09, 0xfa, 0x2e, 0x14, 0xa3, 0x70, 0x44, 0xb9, 0x6d, 0x35, 0xf2, 0x07, 0x1b,
0x87, 0xfb, 0xcd, 0xd8, 0x8f, 0xe6, 0x82, 0x64, 0x13, 0x4b, 0x31, 0xac, 0xa5, 0xd1, 0x0f, 0x61,
0x33, 0xa2, 0x37, 0x94, 0x8c, 0xa8, 0xef, 0x12, 0xcf, 0x0b, 0xa7, 0x81, 0xe0, 0x76, 0xae, 0x91,
0x3f, 0xa8, 0x1c, 0xee, 0xce, 0x55, 0x60, 0x23, 0xd2, 0xd2, 0x12, 0xb8, 0x1e, 0x65, 0x19, 0xdc,
0xf9, 0x1c, 0x8a, 0x4a, 0x2f, 0xaa, 0x43, 0xf5, 0xbc, 0xf7, 0xba, 0xd7, 0xff, 0xac, 0xe7, 0xe2,
0xfe, 0x49, 0xbb, 0xfe, 0x16, 0xaa, 0x42, 0x49, 0x7e, 0xb9, 0xad, 0x93, 0x93, 0xba, 0x85, 0xb6,
0x60, 0x53, 0x51, 0xdd, 0x56, 0xaf, 0xf5, 0xaa, 0xed, 0x9e, 0x9f, 0xb5, 0xf1, 0x59, 0x3d, 0x87,
0x76, 0x61, 0x4b, 0xb3, 0xfb, 0xc7, 0x6d, 0xdc, 0x1a, 0xb4, 0xdd, 0xa3, 0x7e, 0x6f, 0xd0, 0xee,
0x0d, 0xea, 0x79, 0xe7, 0xef, 0x39, 0xd8, 0x4e, 0x7c, 0x18, 0x84, 0xd7, 0x34, 0xe8, 0x52, 0x41,
0x7c, 0x22, 0x08, 0xba, 0x04, 0xe4, 0x85, 0x81, 0x88, 0x88, 0x27, 0x5c, 0xe2, 0xfb, 0x11, 0xe5,
0xdc, 0x44, 0xa0, 0x72, 0xf8, 0xbd, 0x25, 0x11, 0xc8, 0xec, 0x6e, 0x1e, 0x99, 0xad, 0xad, 0x78,
0x67, 0x3b, 0x10, 0xd1, 0x0c, 0x6f, 0x7a, 0x8b, 0x7c, 0xd4, 0x80, 0x8a, 0x4f, 0xb9, 0x17, 0xb1,
0x89, 0x60, 0x61, 0xa0, 0xd2, 0x57, 0xc6, 0x69, 0x96, 0x4c, 0x14, 0x1b, 0x93, 0x21, 0x35, 0xf9,
0xd3, 0x04, 0xfa, 0x00, 0xca, 0x42, 0x9a, 0x1c, 0xcc, 0x26, 0x54, 0xa5, 0x70, 0xe3, 0xf0, 0xc9,
0xaa, 0x63, 0x49, 0x19, 0x3c, 0x17, 0x47, 0xdb, 0xb0, 0xc6, 0x67, 0xe3, 0x8b, 0x70, 0x64, 0x17,
0x35, 0x24, 0x34, 0x85, 0x10, 0x14, 0x02, 0x32, 0xa6, 0xf6, 0x9a, 0xe2, 0xaa, 0xef, 0xbd, 0x63,
0x19, 0xa1, 0x65, 0xce, 0xa0, 0x3a, 0xe4, 0xaf, 0xe9, 0x4c, 0x01, 0xb2, 0x80, 0xe5, 0xa7, 0x3c,
0xe9, 0x0d, 0x19, 0x4d, 0xa9, 0xf1, 0x42, 0x13, 0x1f, 0xe4, 0x5e, 0x58, 0xce, 0xdf, 0x2c, 0x78,
0x94, 0x9c, 0xe9, 0x94, 0x46, 0x63, 0xc6, 0x39, 0x0b, 0x03, 0x8e, 0x76, 0xa1, 0x44, 0x03, 0xee,
0x86, 0xc1, 0x48, 0x6b, 0x2a, 0xe1, 0x75, 0x1a, 0xf0, 0x7e, 0x30, 0x9a, 0x21, 0x1b, 0xd6, 0x27,
0x11, 0xbb, 0x21, 0x42, 0xeb, 0x2b, 0xe1, 0x98, 0x44, 0x3f, 0x80, 0x35, 0xe2, 0x79, 0x94, 0x73,
0x15, 0x92, 0x8d, 0xc3, 0x6f, 0x2c, 0x71, 0x3c, 0x65, 0xa4, 0xd9, 0x52, 0xc2, 0xd8, 0x6c, 0x72,
0x06, 0xb0, 0xa6, 0x39, 0x08, 0xc1, 0x46, 0x8c, 0xa8, 0xd6, 0xd1, 0x51, 0xfb, 0xec, 0xac, 0xfe,
0x16, 0xda, 0x84, 0x5a, 0xaf, 0xef, 0x76, 0xdb, 0xdd, 0x97, 0x6d, 0x7c, 0xf6, 0xa3, 0xce, 0x69,
0xdd, 0x42, 0x0f, 0xe1, 0x41, 0xa7, 0xf7, 0x93, 0xce, 0xa0, 0x35, 0xe8, 0xf4, 0x7b, 0x6e, 0xbf,
0x77, 0xf2, 0x79, 0x3d, 0x87, 0x36, 0x00, 0xfa, 0x3d, 0x17, 0xb7, 0x3f, 0x3d, 0x6f, 0x9f, 0x49,
0x2c, 0xfd, 0x36, 0x0f, 0x35, 0x15, 0xed, 0xa3, 0x88, 0x09, 0x1a, 0x31, 0x82, 0x7e, 0x7e, 0x07,
0x84, 0x9a, 0xf3, 0x23, 0x67, 0x36, 0x7d, 0x09, 0xe4, 0xbc, 0x0b, 0x05, 0x21, 0x93, 0x9f, 0x7b,
0x83, 0xe4, 0x2b, 0xc9, 0x54, 0xde, 0xf3, 0x4b, 0xf3, 0x5e, 0x98, 0xe7, 0x5d, 0xca, 0x92, 0xb1,
0xbc, 0x80, 0x31, 0x46, 0x34, 0x25, 0x8b, 0x8d, 0x02, 0x92, 0xcb, 0x7c, 0x6e, 0xaf, 0x35, 0xf2,
0x07, 0x05, 0x5c, 0x52, 0x8c, 0x8e, 0xcf, 0xd1, 0x3e, 0x54, 0x64, 0x36, 0x27, 0x44, 0x08, 0x1a,
0x05, 0xf6, 0xba, 0xda, 0x09, 0x34, 0xe0, 0xa7, 0x9a, 0x83, 0xf6, 0xa0, 0xe4, 0x53, 0x8f, 0x8d,
0xc9, 0x88, 0xdb, 0x25, 0x05, 0x9c, 0x84, 0xfe, 0x2f, 0x21, 0xed, 0x0f, 0x39, 0xb0, 0xb3, 0x01,
0x98, 0x23, 0x01, 0x6d, 0x40, 0xce, 0x94, 0xd0, 0x32, 0xce, 0x31, 0x1f, 0x7d, 0x98, 0x09, 0xe1,
0x37, 0x57, 0x85, 0x70, 0xae, 0xa1, 0x99, 0x8a, 0xe6, 0x47, 0xb0, 0xa1, 0x23, 0xe1, 0x99, 0xdc,
0xd9, 0x79, 0x95, 0xda, 0x9d, 0x15, 0xa9, 0xc5, 0x35, 0x91, 0x81, 0xc7, 0x2e, 0x94, 0x4c, 0x65,
0xe6, 0x76, 0xa1, 0x91, 0x3f, 0x28, 0xe3, 0x75, 0x5d, 0x9a, 0x39, 0x7a, 0x0a, 0xc0, 0xb8, 0x1b,
0xa3, 0xbf, 0xa8, 0xd0, 0x5f, 0x66, 0xfc, 0x54, 0x33, 0x9c, 0x0e, 0x14, 0xd4, 0x3d, 0x7e, 0x02,
0x76, 0x0c, 0xdf, 0x41, 0xff, 0x75, 0xbb, 0xe7, 0x9e, 0xb6, 0x71, 0xb7, 0x73, 0x76, 0xd6, 0xe9,
0xf7, 0xea, 0x6f, 0xc9, 0x72, 0xf9, 0xb2, 0x7d, 0xd4, 0xef, 0xb6, 0xdd, 0xd6, 0x71, 0xb7, 0xd3,
0xab, 0x5b, 0x12, 0xda, 0x86, 0xa3, 0xe1, 0x5d, 0xcf, 0x39, 0xff, 0x2e, 0xa7, 0x2e, 0xe6, 0x71,
0xb6, 0xea, 0xe8, 0xe7, 0xc1, 0x4a, 0x3d, 0x0f, 0xa8, 0x0d, 0xeb, 0xfa, 0x65, 0x89, 0x2b, 0xf9,
0xb7, 0x96, 0xc4, 0x2c, 0xa5, 0xa6, 0xa9, 0x1f, 0x06, 0x03, 0xe2, 0x78, 0x2f, 0xfa, 0x04, 0x2a,
0x93, 0xf9, 0xfd, 0x54, 0x68, 0xac, 0x1c, 0xbe, 0x7d, 0xf7, 0x2d, 0xc6, 0xe9, 0x2d, 0xe8, 0x10,
0x4a, 0xf1, 0xf3, 0xa9, 0xe2, 0x53, 0x39, 0xdc, 0x4e, 0x6d, 0x57, 0x61, 0xd4, 0xab, 0x38, 0x91,
0x43, 0x1f, 0x43, 0x51, 0x06, 0x58, 0xc3, 0xb6, 0x72, 0xf8, 0xce, 0x3d, 0x47, 0x97, 0x5a, 0xcc,
0xc1, 0xf5, 0x3e, 0x99, 0xb1, 0x0b, 0x12, 0xb8, 0x23, 0xc6, 0x85, 0xbd, 0xae, 0x33, 0x76, 0x41,
0x82, 0x13, 0xc6, 0x05, 0xea, 0x01, 0x78, 0x44, 0xd0, 0x61, 0x18, 0x31, 0x2a, 0xa1, 0xbd, 0x70,
0xc7, 0x97, 0x1b, 0x48, 0x36, 0x68, 0x2b, 0x29, 0x0d, 0xe8, 0x05, 0xd8, 0x24, 0xf2, 0xae, 0xd8,
0x0d, 0x75, 0xc7, 0x64, 0x18, 0x50, 0x31, 0x62, 0xc1, 0xb5, 0xab, 0x33, 0x52, 0x56, 0x19, 0xd9,
0x36, 0xeb, 0xdd, 0x64, 0xf9, 0x48, 0xa5, 0xe8, 0x15, 0x6c, 0x10, 0x7f, 0xcc, 0x02, 0x97, 0x53,
0x21, 0x58, 0x30, 0xe4, 0x36, 0xa8, 0xf8, 0x34, 0x96, 0x9c, 0xa6, 0x25, 0x05, 0xcf, 0x8c, 0x1c,
0xae, 0x91, 0x34, 0x89, 0xbe, 0x06, 0x35, 0x16, 0x88, 0x28, 0x74, 0xc7, 0x94, 0x73, 0xf9, 0xfe,
0x54, 0xd4, 0xbd, 0xa9, 0x2a, 0x66, 0x57, 0xf3, 0xa4, 0x50, 0x38, 0x4d, 0x0b, 0x55, 0xb5, 0x90,
0x62, 0xc6, 0x42, 0x4f, 0xa0, 0x4c, 0x03, 0x2f, 0x9a, 0x4d, 0x04, 0xf5, 0xed, 0x9a, 0x46, 0x73,
0xc2, 0x90, 0xd5, 0x47, 0x90, 0x21, 0xb7, 0x37, 0x54, 0x44, 0xd5, 0x37, 0x22, 0xb0, 0xa9, 0xef,
0x56, 0x1a, 0x26, 0x0f, 0x54, 0x54, 0xbf, 0x73, 0x4f, 0x54, 0x17, 0x6e, 0xac, 0x89, 0x6d, 0x5d,
0x2c, 0xb0, 0xd1, 0xcf, 0x60, 0x77, 0xde, 0x58, 0xa9, 0x55, 0xee, 0x8e, 0xcd, 0xfb, 0x6d, 0xd7,
0x95, 0xa9, 0xc6, 0x7d, 0xef, 0x3c, 0xde, 0xf1, 0x32, 0x7c, 0x9e, 0xb4, 0x0f, 0xef, 0xc2, 0x23,
0xe2, 0x09, 0x95, 0x3e, 0x8d, 0x79, 0x57, 0x75, 0x33, 0xf6, 0xa6, 0xca, 0x1d, 0xd2, 0x6b, 0xe6,
0x72, 0x1c, 0xc9, 0x95, 0xbd, 0x73, 0xa8, 0xa6, 0x2f, 0x4b, 0xba, 0xe8, 0x95, 0x75, 0xd1, 0x7b,
0x9e, 0x2e, 0x7a, 0x99, 0x26, 0x6a, 0xa1, 0x0f, 0x4b, 0xd5, 0xc3, 0xbd, 0x4f, 0x01, 0xe6, 0x40,
0x5e, 0xa2, 0xf4, 0xdb, 0x59, 0xa5, 0x3b, 0x4b, 0x94, 0xca, 0xfd, 0x69, 0x95, 0x5f, 0xc0, 0x83,
0x05, 0xe8, 0x2e, 0xd1, 0xfb, 0x5e, 0x56, 0xef, 0xe3, 0x65, 0x7a, 0xb5, 0x92, 0x59, 0x5a, 0xf7,
0x10, 0xb6, 0x96, 0x26, 0x70, 0x89, 0x85, 0x17, 0x59, 0x0b, 0xce, 0xfd, 0xd5, 0x3b, 0xfd, 0x4e,
0xfc, 0x22, 0xd5, 0xf9, 0x65, 0xae, 0x01, 0x3a, 0x86, 0xfd, 0x09, 0x0b, 0x62, 0x40, 0xbb, 0x64,
0x34, 0x4a, 0x72, 0x48, 0x03, 0x72, 0x31, 0xa2, 0xbe, 0xe9, 0x54, 0x1e, 0x4f, 0x58, 0x60, 0x20,
0xde, 0x1a, 0x8d, 0x92, 0xe4, 0x29, 0x11, 0xe7, 0xaf, 0x39, 0xa8, 0x65, 0x22, 0x88, 0x3e, 0x9a,
0xd7, 0x4e, 0xdd, 0x03, 0x7c, 0x7d, 0x45, 0xac, 0xdf, 0xac, 0x68, 0xe6, 0xbe, 0x5a, 0xd1, 0xcc,
0xbf, 0x61, 0xd1, 0xdc, 0x87, 0x8a, 0x29, 0x4b, 0x6a, 0xfc, 0xd0, 0x2d, 0x42, 0x5c, 0xa9, 0xe4,
0xf4, 0xb1, 0x07, 0xa5, 0x49, 0xc8, 0x99, 0xea, 0x5e, 0x65, 0x25, 0x2e, 0xe2, 0x84, 0xfe, 0x1f,
0x61, 0xda, 0xf1, 0x61, 0xf3, 0x16, 0x88, 0x16, 0x0f, 0x6a, 0xdd, 0x3a, 0x68, 0xdc, 0xe5, 0xe4,
0x52, 0x5d, 0x4e, 0xfa, 0xf0, 0xf9, 0xec, 0xe1, 0x9d, 0xdf, 0x59, 0xf0, 0x30, 0x31, 0xd3, 0x09,
0x6e, 0x98, 0x20, 0xea, 0x65, 0x7c, 0x1f, 0xb6, 0xe6, 0x85, 0x23, 0xdd, 0xbb, 0xeb, 0xd1, 0xec,
0x91, 0xb7, 0xe2, 0x39, 0x1d, 0xca, 0x79, 0xce, 0xcc, 0x67, 0x9a, 0x58, 0x3d, 0x9c, 0x3d, 0x05,
0x98, 0x4c, 0x2f, 0x46, 0xcc, 0x73, 0x65, 0xbc, 0x0a, 0x6a, 0x4f, 0x59, 0x73, 0x5e, 0xd3, 0x99,
0x73, 0x09, 0x0f, 0x16, 0xe6, 0x26, 0xd9, 0x2d, 0x9b, 0x1e, 0xd3, 0xb8, 0x1e, 0x93, 0xb2, 0xfa,
0x72, 0x36, 0x0c, 0x88, 0x98, 0x46, 0xd4, 0x98, 0x9f, 0x33, 0x64, 0x3f, 0xe7, 0x5d, 0x11, 0xa6,
0xfb, 0xb9, 0xbc, 0xee, 0xe7, 0x14, 0xa3, 0xe3, 0x73, 0xe7, 0x5f, 0x56, 0xea, 0x96, 0x60, 0xfa,
0xcb, 0x29, 0xe5, 0x62, 0x10, 0xfe, 0x38, 0x64, 0xab, 0xfa, 0x03, 0xd3, 0xce, 0xa7, 0xe2, 0x2c,
0xdb, 0xf9, 0x9e, 0x0c, 0xf5, 0x4a, 0x5f, 0x17, 0x27, 0xdc, 0xc2, 0xed, 0x09, 0xf7, 0x19, 0x54,
0x7d, 0xc6, 0x27, 0x23, 0x32, 0xd3, 0xaa, 0x8b, 0x66, 0x4a, 0xd2, 0x3c, 0xa5, 0x7e, 0xe9, 0xb4,
0xb9, 0xf6, 0xe5, 0xa7, 0xcd, 0x3f, 0x5a, 0xf0, 0x24, 0x05, 0xae, 0xc0, 0xa3, 0xa3, 0xff, 0x6b,
0xc7, 0x9d, 0x7f, 0x58, 0xf0, 0xf6, 0xf2, 0x1c, 0x61, 0xca, 0x27, 0x61, 0xc0, 0xe9, 0x8a, 0x23,
0x7f, 0x1f, 0xca, 0x89, 0xa9, 0x3b, 0xaa, 0x49, 0x0a, 0xc5, 0x78, 0xbe, 0x41, 0xde, 0x1c, 0x39,
0x4e, 0xa9, 0x27, 0x3d, 0xaf, 0xca, 0x61, 0x42, 0xcf, 0xc1, 0x5e, 0x48, 0x83, 0x7d, 0xd1, 0xdd,
0xe2, 0x6d, 0x77, 0x9f, 0x02, 0xe8, 0x6e, 0xc7, 0x9d, 0x46, 0xcc, 0x8c, 0xa1, 0x65, 0xcd, 0x39,
0x8f, 0x98, 0x83, 0x61, 0xe7, 0xb6, 0xa7, 0x27, 0x94, 0xdc, 0xac, 0x72, 0x71, 0xd1, 0x64, 0xee,
0x96, 0x49, 0xe7, 0xa7, 0xf0, 0x2c, 0x55, 0x69, 0x74, 0x31, 0x5f, 0x6c, 0xac, 0x56, 0x68, 0xcf,
0x9e, 0x36, 0xb7, 0x78, 0xda, 0x3f, 0x59, 0x50, 0xf9, 0x8c, 0x5c, 0x4f, 0xe3, 0x2e, 0xa8, 0x0e,
0x79, 0xce, 0x86, 0xa6, 0x4a, 0xc8, 0x4f, 0x79, 0x33, 0x05, 0x1b, 0x53, 0x2e, 0xc8, 0x78, 0xa2,
0xf6, 0x17, 0xf0, 0x9c, 0x21, 0x8d, 0x8a, 0x70, 0xc2, 0x3c, 0x15, 0xde, 0x2a, 0xd6, 0x84, 0x9a,
0x8a, 0xc9, 0x6c, 0x14, 0x92, 0x18, 0x2f, 0x31, 0xa9, 0x57, 0x7c, 0x9f, 0x05, 0x43, 0x13, 0xda,
0x98, 0x94, 0x95, 0xef, 0x8a, 0xf0, 0x2b, 0x15, 0xd0, 0x2a, 0x56, 0xdf, 0xc8, 0x81, 0xaa, 0xb8,
0x62, 0x91, 0x7f, 0x4a, 0x22, 0x19, 0x07, 0x33, 0xab, 0x65, 0x78, 0xce, 0x6f, 0x60, 0x2f, 0xe5,
0x40, 0x1c, 0x96, 0xb8, 0xc5, 0xb1, 0x61, 0xfd, 0x86, 0x46, 0x3c, 0xae, 0x7c, 0x35, 0x1c, 0x93,
0xd2, 0xde, 0x65, 0x14, 0x8e, 0x8d, 0x4b, 0xea, 0x5b, 0x8e, 0x5e, 0x22, 0x54, 0xae, 0x14, 0x70,
0x4e, 0x84, 0xd2, 0xbe, 0x1c, 0x69, 0x69, 0x20, 0x06, 0xca, 0x49, 0x39, 0x01, 0x55, 0x71, 0x86,
0xe7, 0xfc, 0xde, 0x02, 0x74, 0xfb, 0x00, 0x77, 0x18, 0xfe, 0x04, 0x4a, 0x49, 0x0b, 0xa7, 0x11,
0x9d, 0x7a, 0x63, 0x57, 0xbb, 0x82, 0x93, 0x5d, 0xe8, 0x3d, 0xa9, 0x41, 0xc9, 0x70, 0x33, 0xce,
0x6d, 0x2d, 0xd5, 0x80, 0x13, 0x31, 0xe7, 0xcf, 0x16, 0xec, 0xdf, 0xd6, 0xdd, 0x09, 0x7c, 0xfa,
0xab, 0x37, 0x88, 0xd5, 0x57, 0x3f, 0xf2, 0x36, 0xac, 0x85, 0x97, 0x97, 0x9c, 0x0a, 0x13, 0x5d,
0x43, 0xc9, 0x2c, 0x70, 0xf6, 0x6b, 0x6a, 0xfe, 0xdf, 0x53, 0xdf, 0x8b, 0x18, 0x29, 0x24, 0x18,
0x71, 0xfe, 0x62, 0xc1, 0xce, 0x0a, 0x2f, 0xd0, 0x6b, 0x28, 0x99, 0x61, 0x23, 0x6e, 0x5d, 0x9e,
0xdf, 0x75, 0x46, 0xb5, 0xa9, 0x69, 0x08, 0xd3, 0xc5, 0x24, 0x0a, 0xf6, 0x2e, 0xa1, 0x96, 0x59,
0x5a, 0xd2, 0x14, 0x7c, 0x9c, 0x6d, 0x0a, 0xde, 0xb9, 0xd7, 0x58, 0x12, 0x95, 0x79, 0x93, 0xf0,
0xb2, 0xf6, 0x45, 0xa5, 0xf9, 0xfc, 0xc3, 0x78, 0xe7, 0xc5, 0x9a, 0xfa, 0x7a, 0xff, 0x3f, 0x01,
0x00, 0x00, 0xff, 0xff, 0xa3, 0xdc, 0xeb, 0x96, 0x98, 0x15, 0x00, 0x00,
}

View File

@ -21,7 +21,7 @@ message CommunityMember {
ROLE_MODERATE_CONTENT = 3;
}
repeated Roles roles = 1;
repeated string wallet_accounts = 2;
repeated RevealedAccount revealed_accounts = 2;
}
message CommunityTokenMetadata {
@ -117,13 +117,19 @@ message CommunityInvitation {
bytes public_key = 4;
}
message RevealedAccount {
string address = 1;
bytes signature = 2;
repeated uint64 chain_ids = 3;
}
message CommunityRequestToJoin {
uint64 clock = 1;
string ens_name = 2;
string chat_id = 3;
bytes community_id = 4;
string display_name = 5;
map<string, bytes> revealed_addresses = 6;
repeated RevealedAccount revealed_accounts = 6;
}
message CommunityCancelRequestToJoin {

View File

@ -1448,17 +1448,17 @@ func (m *SyncCommunity) GetEncryptionKeys() []byte {
}
type SyncCommunityRequestsToJoin struct {
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
Clock uint64 `protobuf:"varint,3,opt,name=clock,proto3" json:"clock,omitempty"`
EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
ChatId string `protobuf:"bytes,5,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
CommunityId []byte `protobuf:"bytes,6,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
State uint64 `protobuf:"varint,7,opt,name=state,proto3" json:"state,omitempty"`
RevealedAddresses map[string][]byte `protobuf:"bytes,8,rep,name=revealed_addresses,json=revealedAddresses,proto3" json:"revealed_addresses,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
Id []byte `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
PublicKey string `protobuf:"bytes,2,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
Clock uint64 `protobuf:"varint,3,opt,name=clock,proto3" json:"clock,omitempty"`
EnsName string `protobuf:"bytes,4,opt,name=ens_name,json=ensName,proto3" json:"ens_name,omitempty"`
ChatId string `protobuf:"bytes,5,opt,name=chat_id,json=chatId,proto3" json:"chat_id,omitempty"`
CommunityId []byte `protobuf:"bytes,6,opt,name=community_id,json=communityId,proto3" json:"community_id,omitempty"`
State uint64 `protobuf:"varint,7,opt,name=state,proto3" json:"state,omitempty"`
RevealedAccounts []*RevealedAccount `protobuf:"bytes,8,rep,name=revealed_accounts,json=revealedAccounts,proto3" json:"revealed_accounts,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *SyncCommunityRequestsToJoin) Reset() { *m = SyncCommunityRequestsToJoin{} }
@ -1535,9 +1535,9 @@ func (m *SyncCommunityRequestsToJoin) GetState() uint64 {
return 0
}
func (m *SyncCommunityRequestsToJoin) GetRevealedAddresses() map[string][]byte {
func (m *SyncCommunityRequestsToJoin) GetRevealedAccounts() []*RevealedAccount {
if m != nil {
return m.RevealedAddresses
return m.RevealedAccounts
}
return nil
}
@ -3419,7 +3419,6 @@ func init() {
proto.RegisterType((*SyncInstallationPublicChat)(nil), "protobuf.SyncInstallationPublicChat")
proto.RegisterType((*SyncCommunity)(nil), "protobuf.SyncCommunity")
proto.RegisterType((*SyncCommunityRequestsToJoin)(nil), "protobuf.SyncCommunityRequestsToJoin")
proto.RegisterMapType((map[string][]byte)(nil), "protobuf.SyncCommunityRequestsToJoin.RevealedAddressesEntry")
proto.RegisterType((*SyncInstallation)(nil), "protobuf.SyncInstallation")
proto.RegisterType((*SyncChatRemoved)(nil), "protobuf.SyncChatRemoved")
proto.RegisterType((*SyncChatMessagesRead)(nil), "protobuf.SyncChatMessagesRead")
@ -3455,226 +3454,225 @@ func init() {
}
var fileDescriptor_d61ab7221f0b5518 = []byte{
// 3535 bytes of a gzipped FileDescriptorProto
// 3506 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x3a, 0x4d, 0x73, 0x23, 0x49,
0x56, 0x53, 0x92, 0xac, 0x8f, 0x27, 0x59, 0x2e, 0x67, 0x7b, 0xba, 0xd5, 0xee, 0x9e, 0xed, 0xee,
0x9a, 0x9d, 0xd8, 0x86, 0x18, 0x3c, 0xd0, 0x03, 0xec, 0xee, 0x7c, 0xc4, 0xa0, 0x96, 0x34, 0xd3,
0x1e, 0x77, 0xcb, 0x26, 0x6d, 0xcf, 0xb0, 0x04, 0x11, 0x45, 0x76, 0x55, 0xb6, 0x55, 0xeb, 0x52,
0x95, 0xa8, 0x4c, 0xd9, 0x68, 0x0f, 0x04, 0x6c, 0x04, 0x67, 0x08, 0x2e, 0xcc, 0x71, 0xce, 0x04,
0x27, 0x22, 0x38, 0x10, 0xc1, 0x81, 0x13, 0xc1, 0x9d, 0x23, 0xfc, 0x02, 0x82, 0x0b, 0x37, 0x8e,
0x44, 0xbe, 0xcc, 0xfa, 0xd2, 0x47, 0x63, 0x07, 0x27, 0x4e, 0xce, 0xf7, 0xf2, 0xe5, 0xcb, 0x57,
0xf9, 0xbe, 0x9f, 0x0c, 0xdb, 0x33, 0x16, 0x24, 0x41, 0x74, 0x71, 0x30, 0x4b, 0x62, 0x19, 0x93,
0x26, 0xfe, 0x79, 0x3d, 0x7f, 0xb3, 0x7f, 0xc7, 0x9b, 0x30, 0xe9, 0x06, 0x3e, 0x8f, 0x64, 0x20,
0x17, 0x7a, 0x7b, 0xff, 0x8e, 0x58, 0x44, 0x9e, 0x2b, 0xb8, 0x94, 0x41, 0x74, 0x21, 0x0c, 0xd2,
0x61, 0xb3, 0x59, 0x18, 0x78, 0x4c, 0x06, 0x71, 0xe4, 0x4e, 0xb9, 0x64, 0x3e, 0x93, 0xcc, 0x9d,
0x72, 0x21, 0xd8, 0x05, 0xd7, 0x34, 0x0e, 0x83, 0x07, 0x5f, 0x72, 0xe9, 0x4d, 0x82, 0xe8, 0xe2,
0x39, 0xf3, 0x2e, 0xb9, 0x7f, 0x3e, 0x1b, 0x32, 0xc9, 0x86, 0x5c, 0xb2, 0x20, 0x14, 0xe4, 0x11,
0xb4, 0xf1, 0x50, 0x34, 0x9f, 0xbe, 0xe6, 0x49, 0xcf, 0x7a, 0x6c, 0x3d, 0xdd, 0xa6, 0xa0, 0x50,
0x63, 0xc4, 0x90, 0x27, 0xd0, 0x91, 0xb1, 0x64, 0x61, 0x4a, 0x51, 0x41, 0x8a, 0x36, 0xe2, 0x34,
0x89, 0xf3, 0x97, 0x0d, 0xa8, 0x2b, 0xde, 0xf3, 0x19, 0xd9, 0x83, 0x2d, 0x2f, 0x8c, 0xbd, 0x4b,
0x64, 0x54, 0xa3, 0x1a, 0x20, 0x5d, 0xa8, 0x04, 0x3e, 0x9e, 0x6c, 0xd1, 0x4a, 0xe0, 0x93, 0x2f,
0xa0, 0xe9, 0xc5, 0x91, 0x64, 0x9e, 0x14, 0xbd, 0xea, 0xe3, 0xea, 0xd3, 0xf6, 0xb3, 0xf7, 0x0f,
0xd2, 0xcf, 0x3f, 0x38, 0x5d, 0x44, 0xde, 0x61, 0x24, 0x24, 0x0b, 0x43, 0xfc, 0xb0, 0x81, 0xa6,
0xfc, 0xe6, 0x19, 0xcd, 0x0e, 0x91, 0x9f, 0x42, 0xdb, 0x8b, 0xa7, 0xd3, 0x79, 0x14, 0xc8, 0x80,
0x8b, 0x5e, 0x0d, 0x79, 0xdc, 0x2b, 0xf3, 0x18, 0x18, 0x82, 0x05, 0x2d, 0xd2, 0x92, 0x63, 0xd8,
0x49, 0xd9, 0x98, 0x37, 0xe8, 0x6d, 0x3d, 0xb6, 0x9e, 0xb6, 0x9f, 0x7d, 0x90, 0x1f, 0x7f, 0xcb,
0x83, 0xd1, 0xe5, 0xd3, 0xe4, 0x1c, 0x48, 0x81, 0x7f, 0xca, 0xb3, 0x7e, 0x1b, 0x9e, 0x6b, 0x18,
0x90, 0x8f, 0xa1, 0x31, 0x4b, 0xe2, 0x37, 0x41, 0xc8, 0x7b, 0x0d, 0xe4, 0x75, 0x3f, 0xe7, 0x95,
0xf2, 0x38, 0xd1, 0x04, 0x34, 0xa5, 0x24, 0xaf, 0xa0, 0x6b, 0x96, 0xa9, 0x1c, 0xcd, 0xdb, 0xc8,
0xb1, 0x74, 0x98, 0x7c, 0x04, 0x0d, 0x63, 0x71, 0xbd, 0x16, 0xf2, 0x79, 0xb7, 0xfc, 0xc4, 0xa7,
0x7a, 0x93, 0xa6, 0x54, 0xea, 0x71, 0x53, 0x13, 0x4d, 0x05, 0x80, 0x5b, 0x3d, 0xee, 0xd2, 0x69,
0xf2, 0x29, 0xb4, 0xdf, 0xcc, 0xc3, 0xf0, 0x88, 0x2f, 0x94, 0xb7, 0xf4, 0xda, 0xcb, 0x2f, 0xa1,
0xa4, 0x30, 0x9b, 0x5f, 0xce, 0xc3, 0x90, 0x16, 0xa9, 0x95, 0x66, 0x0a, 0x60, 0x2a, 0x50, 0xe7,
0x56, 0x9a, 0x59, 0x65, 0x40, 0xfa, 0x60, 0x5f, 0x33, 0xe9, 0x4d, 0x8e, 0xa3, 0x70, 0xd1, 0xf7,
0xbc, 0x78, 0x1e, 0xc9, 0xde, 0xf6, 0xba, 0xe7, 0x31, 0x9b, 0x74, 0x85, 0x9c, 0xb8, 0x70, 0x6f,
0x19, 0x97, 0x8a, 0xd7, 0xbd, 0x8d, 0x78, 0x9b, 0xb8, 0x38, 0xff, 0x59, 0x83, 0xce, 0xab, 0x79,
0x28, 0x83, 0xf4, 0x46, 0x02, 0xb5, 0x88, 0x4d, 0x39, 0xfa, 0x65, 0x8b, 0xe2, 0x9a, 0x3c, 0x84,
0x96, 0x0c, 0xa6, 0x5c, 0x48, 0x36, 0x9d, 0xa1, 0x77, 0x56, 0x69, 0x8e, 0x50, 0xbb, 0x3a, 0x06,
0x79, 0x71, 0xd4, 0xab, 0xe2, 0xb1, 0x1c, 0x41, 0xbe, 0x00, 0xf0, 0xe2, 0x30, 0x4e, 0xdc, 0x09,
0x13, 0x13, 0xe3, 0x80, 0x8f, 0x73, 0xa1, 0x8b, 0x77, 0x1f, 0x0c, 0x14, 0xe1, 0x0b, 0x26, 0x26,
0xb4, 0xe5, 0xa5, 0x4b, 0x72, 0x5f, 0xc5, 0x00, 0xc5, 0x20, 0xf0, 0xd1, 0x01, 0xab, 0xb4, 0x81,
0xf0, 0xa1, 0x4f, 0x7e, 0x04, 0x3b, 0x97, 0x7c, 0xe1, 0xb1, 0xc4, 0x77, 0x4d, 0x8c, 0x44, 0x77,
0x6a, 0xd1, 0xae, 0x41, 0x9f, 0x68, 0x2c, 0xb9, 0x07, 0x8d, 0x4b, 0xbe, 0x70, 0xe7, 0x81, 0x8f,
0x3e, 0xd2, 0xa2, 0xf5, 0x4b, 0xbe, 0x38, 0x0f, 0x7c, 0xf2, 0x19, 0xd4, 0x83, 0x29, 0xbb, 0xe0,
0xca, 0xfe, 0x95, 0x64, 0x3f, 0xdc, 0x20, 0xd9, 0xa1, 0x09, 0xb2, 0x87, 0x8a, 0x98, 0x9a, 0x33,
0xe4, 0x23, 0xb8, 0xe3, 0xcd, 0x85, 0x8c, 0xa7, 0xc1, 0x2f, 0x74, 0x68, 0x45, 0xc1, 0xd0, 0x05,
0x5a, 0x94, 0x94, 0xb6, 0xf0, 0xd3, 0xf6, 0x9f, 0x40, 0x2b, 0xfb, 0x46, 0x15, 0x02, 0x83, 0xc8,
0xe7, 0x7f, 0xdc, 0xb3, 0x1e, 0x57, 0x9f, 0x56, 0xa9, 0x06, 0xf6, 0xff, 0xcd, 0x82, 0xed, 0xd2,
0x6d, 0x45, 0xe1, 0xad, 0x92, 0xf0, 0xa9, 0xaa, 0x2a, 0x05, 0x55, 0xf5, 0xa0, 0x31, 0x63, 0x8b,
0x30, 0x66, 0x3e, 0xaa, 0xa2, 0x43, 0x53, 0x50, 0x5d, 0x77, 0x1d, 0xf8, 0x52, 0xe9, 0x40, 0x3d,
0xa2, 0x06, 0xc8, 0x5d, 0xa8, 0x4f, 0x78, 0x70, 0x31, 0x91, 0xe6, 0x6d, 0x0d, 0x44, 0xf6, 0xa1,
0xa9, 0x1c, 0x5c, 0x04, 0xbf, 0xe0, 0xf8, 0xa6, 0x55, 0x9a, 0xc1, 0xe4, 0x7d, 0xd8, 0x4e, 0x70,
0xe5, 0x4a, 0x96, 0x5c, 0x70, 0x89, 0x6f, 0x5a, 0xa5, 0x1d, 0x8d, 0x3c, 0x43, 0x5c, 0x1e, 0xe0,
0x9b, 0x85, 0x00, 0xef, 0xfc, 0xab, 0x05, 0x77, 0x5e, 0xc6, 0x1e, 0x0b, 0x8d, 0x66, 0x4e, 0x8c,
0x70, 0xbf, 0x05, 0xb5, 0x4b, 0xbe, 0x10, 0xf8, 0x14, 0xed, 0x67, 0x4f, 0x72, 0x2d, 0xac, 0x21,
0x3e, 0x38, 0xe2, 0x0b, 0x8a, 0xe4, 0xe4, 0x13, 0xe8, 0x4c, 0x95, 0x9a, 0x98, 0xf1, 0xae, 0x0a,
0xfa, 0xc4, 0xdd, 0xf5, 0x4a, 0xa4, 0x25, 0x5a, 0xf5, 0x85, 0x33, 0x26, 0xc4, 0x75, 0x9c, 0xf8,
0xc6, 0x6a, 0x33, 0x78, 0xff, 0xd7, 0xa0, 0x7a, 0xc4, 0x17, 0x6b, 0x7d, 0x81, 0x40, 0x4d, 0x25,
0x3d, 0xbc, 0xaa, 0x43, 0x71, 0xed, 0xfc, 0x83, 0x05, 0xef, 0x96, 0x04, 0xe5, 0x3c, 0x79, 0xc1,
0xc3, 0x30, 0x56, 0x16, 0x6a, 0x2c, 0xd3, 0xbd, 0xe2, 0x89, 0x08, 0xe2, 0x08, 0x99, 0x6d, 0xd1,
0xae, 0x41, 0x7f, 0xa3, 0xb1, 0x4a, 0xc9, 0x33, 0xce, 0xd1, 0xc8, 0x35, 0xe7, 0xba, 0x02, 0x0f,
0x7d, 0xcc, 0xbb, 0xfc, 0x2a, 0xf0, 0xb8, 0x8b, 0xa2, 0x68, 0x49, 0x41, 0xa3, 0xc6, 0x4a, 0xa0,
0x9c, 0x40, 0x2e, 0x66, 0x1c, 0xb5, 0x9b, 0x11, 0x9c, 0x2d, 0x66, 0xe8, 0xbd, 0x22, 0xb8, 0x88,
0x98, 0x9c, 0x27, 0x1c, 0xb5, 0xdc, 0xa1, 0x39, 0xc2, 0xf9, 0xde, 0x02, 0x5b, 0x89, 0x5d, 0xcc,
0xa4, 0x1b, 0xb2, 0xf3, 0x8f, 0x60, 0x27, 0x28, 0x50, 0xb9, 0x59, 0xaa, 0xee, 0x16, 0xd1, 0x25,
0x99, 0x51, 0xa4, 0xea, 0x8a, 0x48, 0xe9, 0xc3, 0xd6, 0xca, 0x96, 0x9b, 0x3e, 0xd1, 0x16, 0x96,
0x0e, 0x29, 0xe8, 0xfc, 0x87, 0x05, 0xf7, 0x36, 0x24, 0xfb, 0x1b, 0xd6, 0x11, 0xef, 0xc3, 0xb6,
0xc9, 0x58, 0x2e, 0xba, 0xae, 0x11, 0xa9, 0x63, 0x90, 0xda, 0xcf, 0xee, 0x43, 0x93, 0x47, 0xc2,
0x2d, 0x08, 0xd6, 0xe0, 0x91, 0xc0, 0x37, 0x7e, 0x02, 0x9d, 0x90, 0x09, 0xe9, 0xce, 0x67, 0x3e,
0x93, 0x5c, 0xc7, 0xa1, 0x1a, 0x6d, 0x2b, 0xdc, 0xb9, 0x46, 0xa9, 0x6f, 0x16, 0x0b, 0x21, 0xf9,
0xd4, 0x95, 0xec, 0x42, 0xa5, 0xf5, 0xaa, 0xfa, 0x66, 0x8d, 0x3a, 0x63, 0x17, 0x82, 0x7c, 0x00,
0xdd, 0x50, 0xd9, 0x88, 0x1b, 0x05, 0xde, 0x25, 0x5e, 0xa2, 0x43, 0xd1, 0x36, 0x62, 0xc7, 0x06,
0xe9, 0xfc, 0x59, 0x1d, 0xee, 0x6f, 0xac, 0x6c, 0xc8, 0xaf, 0xc3, 0x5e, 0x51, 0x10, 0x17, 0xcf,
0x86, 0x0b, 0xf3, 0xf5, 0xa4, 0x20, 0xd0, 0x4b, 0xbd, 0xf3, 0xff, 0xf8, 0x29, 0x94, 0x6e, 0x99,
0xef, 0x73, 0x1f, 0x03, 0x6a, 0x93, 0x6a, 0x40, 0xd9, 0xc9, 0x6b, 0xa5, 0x64, 0xee, 0x63, 0xc9,
0xd0, 0xa4, 0x29, 0xa8, 0xe8, 0xa7, 0x73, 0x25, 0x53, 0x5b, 0xd3, 0x23, 0xa0, 0xe8, 0x13, 0x3e,
0x8d, 0xaf, 0xb8, 0x8f, 0x19, 0xbd, 0x49, 0x53, 0x90, 0x3c, 0x86, 0xce, 0x84, 0x09, 0x17, 0xd9,
0xba, 0x73, 0x81, 0xb9, 0xb9, 0x49, 0x61, 0xc2, 0x44, 0x5f, 0xa1, 0xce, 0x31, 0xc0, 0x5f, 0xf1,
0x24, 0x78, 0x93, 0x96, 0xce, 0x42, 0x32, 0x39, 0xd7, 0xa9, 0xb7, 0x4a, 0x49, 0x71, 0xeb, 0x14,
0x77, 0xb0, 0x08, 0x4e, 0xe6, 0x42, 0xa6, 0x94, 0x3b, 0x48, 0xd9, 0x46, 0x9c, 0x21, 0xf9, 0x1c,
0x1e, 0x98, 0xca, 0xd0, 0x4d, 0xf8, 0x1f, 0xcd, 0xb9, 0x90, 0x5a, 0x8b, 0x78, 0x84, 0xf7, 0x6c,
0x3c, 0xd1, 0x33, 0x24, 0x54, 0x53, 0xa0, 0x32, 0xd5, 0x79, 0xbe, 0xf9, 0xb8, 0x76, 0x83, 0xdd,
0x8d, 0xc7, 0x07, 0xe8, 0x19, 0x5f, 0xc0, 0xc3, 0xe5, 0xe3, 0xea, 0x39, 0x24, 0x37, 0xd7, 0x13,
0x3c, 0x7f, 0xbf, 0x7c, 0x9e, 0x22, 0x85, 0xbe, 0x7f, 0x33, 0x03, 0x2d, 0xc0, 0x9d, 0xcd, 0x0c,
0xb4, 0x04, 0x4f, 0xa0, 0xe3, 0x07, 0x62, 0x16, 0xb2, 0x85, 0xb6, 0xaf, 0x3d, 0x54, 0x7d, 0xdb,
0xe0, 0x94, 0x8d, 0x39, 0xd7, 0xab, 0xfe, 0x9e, 0x96, 0x27, 0xeb, 0xfd, 0x7d, 0xc5, 0xa8, 0x2b,
0x6b, 0x8c, 0x7a, 0xd9, 0x72, 0xab, 0x2b, 0x96, 0xeb, 0x3c, 0x87, 0xfd, 0xe5, 0x8b, 0x4f, 0xe6,
0xaf, 0xc3, 0xc0, 0x1b, 0x4c, 0xd8, 0x0d, 0x63, 0x8d, 0xf3, 0xf7, 0x55, 0xd8, 0x2e, 0xb5, 0x15,
0xff, 0xeb, 0xb9, 0x0e, 0x3a, 0xe6, 0x23, 0x68, 0xcf, 0x92, 0xe0, 0x8a, 0x49, 0xee, 0x5e, 0xf2,
0x85, 0xc9, 0xde, 0x60, 0x50, 0x2a, 0x1b, 0x3d, 0x56, 0x51, 0x55, 0x78, 0x49, 0x30, 0x53, 0x72,
0xa1, 0x5f, 0x76, 0x68, 0x11, 0xa5, 0x92, 0xf9, 0xcf, 0xe3, 0x20, 0x32, 0x5e, 0xd9, 0xa4, 0x06,
0x52, 0xa9, 0x4e, 0xdb, 0x2a, 0xf7, 0x31, 0x99, 0x37, 0x69, 0x06, 0xe7, 0x4e, 0xd3, 0x28, 0x3a,
0xcd, 0x31, 0xd8, 0x46, 0xbb, 0xc2, 0x95, 0xb1, 0xab, 0xf8, 0x98, 0x0a, 0xe9, 0x83, 0x4d, 0xcd,
0x93, 0x21, 0x3f, 0x8b, 0xbf, 0x8e, 0x83, 0x88, 0x76, 0x93, 0x12, 0x4c, 0x3e, 0x85, 0x66, 0x5a,
0xb2, 0x9b, 0x16, 0xe1, 0xd1, 0x06, 0x46, 0xa6, 0x57, 0x10, 0x34, 0x3b, 0xa0, 0x32, 0x18, 0x8f,
0xbc, 0x64, 0x31, 0x93, 0x99, 0xd3, 0xe7, 0x08, 0xcc, 0x6f, 0x33, 0xee, 0x49, 0x96, 0xbb, 0x7e,
0x8e, 0x50, 0x49, 0xcb, 0x90, 0x2a, 0x07, 0xc6, 0x22, 0xa3, 0x83, 0x2f, 0xd7, 0xcd, 0xd1, 0x47,
0x7c, 0x21, 0x9c, 0x5f, 0x56, 0xe1, 0xc1, 0x5b, 0xbe, 0xc8, 0xe8, 0xcb, 0xca, 0xf4, 0xf5, 0x1e,
0xc0, 0x0c, 0x6d, 0x03, 0xd5, 0xa5, 0xf5, 0xdf, 0xd2, 0x18, 0xa5, 0xad, 0x4c, 0xe9, 0xd5, 0xa2,
0xd2, 0xdf, 0x12, 0x58, 0xef, 0x41, 0xc3, 0xf4, 0xf3, 0xa8, 0xbd, 0x16, 0xad, 0x2b, 0xf0, 0xd0,
0x57, 0x76, 0x9b, 0xb6, 0x7d, 0x0b, 0xb5, 0x5b, 0xd7, 0x8a, 0xcf, 0x70, 0x87, 0xa8, 0x44, 0xed,
0xbe, 0x0d, 0x7d, 0x19, 0x02, 0xe4, 0x12, 0x48, 0xc2, 0xaf, 0x38, 0x0b, 0xb9, 0xaf, 0x82, 0x5c,
0xc2, 0x85, 0xc8, 0x0a, 0xdd, 0xcf, 0x6e, 0xa4, 0xc6, 0x03, 0x6a, 0xce, 0xf7, 0xd3, 0xe3, 0xa3,
0x48, 0x26, 0x0b, 0xba, 0x9b, 0x2c, 0xe3, 0xf7, 0x87, 0x70, 0x77, 0x3d, 0x31, 0xb1, 0xa1, 0xaa,
0x5e, 0x48, 0x17, 0x51, 0x6a, 0xa9, 0xc4, 0xbd, 0x62, 0xe1, 0x9c, 0x1b, 0xeb, 0xd7, 0xc0, 0x27,
0x95, 0x9f, 0x58, 0xce, 0x5f, 0x55, 0xc0, 0x5e, 0xf6, 0x40, 0xf2, 0x79, 0x61, 0x0a, 0xb0, 0x52,
0x20, 0x6e, 0xc8, 0x95, 0x85, 0x19, 0xc0, 0x57, 0xd0, 0x31, 0x8a, 0x52, 0x0f, 0x2a, 0x7a, 0x95,
0xe5, 0x4a, 0x7f, 0xb3, 0xcb, 0xd3, 0xf6, 0x2c, 0x5b, 0xab, 0x1e, 0xb3, 0x91, 0x16, 0x9a, 0x55,
0x34, 0xe1, 0xb7, 0x88, 0x91, 0xd6, 0x9c, 0xe9, 0x89, 0xff, 0xc3, 0x24, 0xc2, 0xf9, 0x31, 0xec,
0xe0, 0xae, 0x12, 0xc8, 0xa4, 0xae, 0x9b, 0x85, 0xa2, 0xcf, 0x60, 0x2f, 0x3d, 0xf8, 0x4a, 0xcf,
0x7a, 0x04, 0xe5, 0xec, 0xa6, 0xa7, 0x7f, 0x07, 0xee, 0xea, 0xe6, 0x54, 0x06, 0x57, 0x81, 0x5c,
0x0c, 0x78, 0x24, 0x79, 0xf2, 0x96, 0xf3, 0x36, 0x54, 0x03, 0x5f, 0x3f, 0x6f, 0x87, 0xaa, 0xa5,
0x33, 0xd4, 0xe1, 0xb4, 0xcc, 0xa1, 0xef, 0x79, 0x1c, 0xfd, 0xf6, 0xa6, 0x5c, 0x46, 0xda, 0x2f,
0xcb, 0x5c, 0x86, 0x81, 0x98, 0x06, 0x42, 0xdc, 0x82, 0x8d, 0x0b, 0xef, 0xaf, 0xb2, 0x19, 0xc7,
0xb2, 0x94, 0xc2, 0xb9, 0x72, 0xeb, 0xb4, 0xb8, 0x62, 0xd2, 0xf0, 0x6c, 0x19, 0x4c, 0x5f, 0x2a,
0x07, 0x56, 0x35, 0x83, 0xe0, 0x3c, 0xc2, 0xa7, 0x6a, 0xd2, 0xc6, 0x84, 0x89, 0x53, 0xce, 0x23,
0xe7, 0x2f, 0x2c, 0x78, 0xf4, 0xf6, 0x1b, 0x04, 0x09, 0xe1, 0x3d, 0x66, 0xb6, 0x5d, 0x0f, 0xf7,
0xdd, 0xa8, 0x48, 0x60, 0xec, 0xfb, 0xe9, 0xf2, 0x7c, 0x60, 0x13, 0x47, 0xfa, 0x80, 0x6d, 0xbe,
0xcd, 0xf9, 0xc7, 0x16, 0xfc, 0xe0, 0xed, 0xe7, 0x57, 0xa2, 0xda, 0x4a, 0xab, 0x5f, 0x2b, 0xb6,
0xfa, 0x6f, 0x60, 0xb7, 0x28, 0x6e, 0x5e, 0xde, 0x77, 0x9f, 0xfd, 0xf4, 0xa6, 0x22, 0x1f, 0x14,
0x01, 0xd5, 0x0d, 0x50, 0x3b, 0x5a, 0xc2, 0x14, 0x63, 0x61, 0xad, 0x14, 0x0b, 0x09, 0xd4, 0x12,
0xce, 0xd2, 0xfc, 0x86, 0x6b, 0x25, 0xb2, 0x9f, 0x5a, 0x83, 0x49, 0x6f, 0x39, 0x42, 0xe5, 0x3e,
0x66, 0x2c, 0xce, 0xa4, 0xb8, 0x0c, 0x56, 0xa5, 0xa1, 0x99, 0x81, 0x62, 0x97, 0xda, 0xa1, 0x29,
0xa8, 0x32, 0x29, 0x9b, 0xcb, 0x49, 0xd6, 0xcc, 0x1b, 0x48, 0xb7, 0xbe, 0xb3, 0x70, 0x91, 0xce,
0x4e, 0x31, 0x1b, 0x75, 0x54, 0xeb, 0x3b, 0x0b, 0x17, 0xc6, 0xc7, 0x56, 0x02, 0x76, 0x5b, 0x57,
0x38, 0xc5, 0x80, 0xfd, 0x06, 0x76, 0xa7, 0x7c, 0xfa, 0x9a, 0x27, 0x62, 0x12, 0xcc, 0xd2, 0x62,
0xb1, 0x73, 0xcb, 0x87, 0x7c, 0x95, 0x71, 0xd0, 0xa5, 0x25, 0xb5, 0xa7, 0x4b, 0x18, 0xf2, 0x4b,
0x2b, 0x2f, 0x17, 0xd7, 0x55, 0xb2, 0xdb, 0x78, 0xe5, 0xf3, 0x1b, 0x5f, 0x99, 0x76, 0x22, 0x2b,
0x95, 0x6f, 0x56, 0xf1, 0xad, 0x6e, 0xa9, 0x67, 0xf6, 0x79, 0xc8, 0x95, 0x06, 0xba, 0xda, 0x65,
0x0c, 0xb8, 0xe4, 0x6c, 0x3b, 0x4b, 0xce, 0xe6, 0xfc, 0x97, 0x05, 0xf6, 0xb2, 0xb5, 0x10, 0x80,
0xfa, 0x38, 0x56, 0x2b, 0xfb, 0x1d, 0xb2, 0x03, 0xed, 0x31, 0xbf, 0x3e, 0x8e, 0xf8, 0x59, 0x7c,
0x1c, 0x71, 0xdb, 0x22, 0xf7, 0xe0, 0xce, 0x98, 0x5f, 0x9f, 0xe8, 0xa2, 0xe9, 0xab, 0x24, 0x9e,
0xcf, 0x54, 0xf0, 0xb3, 0x2b, 0xa4, 0x0d, 0x8d, 0x57, 0x3c, 0x52, 0x4c, 0xec, 0x2a, 0x69, 0xc1,
0x16, 0x55, 0x0a, 0xb3, 0x6b, 0x84, 0x40, 0x77, 0x50, 0x2a, 0x55, 0xed, 0x2d, 0xc5, 0x24, 0x8b,
0xc4, 0x87, 0xd1, 0x55, 0x20, 0xf1, 0x72, 0xbb, 0x4e, 0xf6, 0xc0, 0x5e, 0x4e, 0x94, 0x76, 0x83,
0xfc, 0x00, 0xf6, 0x33, 0x6c, 0xae, 0x92, 0x74, 0xbf, 0x49, 0xee, 0xc0, 0x4e, 0xb6, 0x7f, 0x14,
0xa8, 0x4e, 0xc5, 0x6e, 0xe9, 0x3b, 0x56, 0x1e, 0xcc, 0x06, 0xe7, 0xcf, 0x2d, 0xb0, 0x97, 0x15,
0x4b, 0x7a, 0xb0, 0xb7, 0x8c, 0x3b, 0xf4, 0x43, 0xf5, 0x02, 0x0f, 0xe0, 0xde, 0xf2, 0xce, 0x09,
0x8f, 0xfc, 0x20, 0xba, 0xb0, 0x2d, 0xf2, 0x10, 0x7a, 0xcb, 0x9b, 0x69, 0xf4, 0xb5, 0x2b, 0xeb,
0x76, 0x87, 0xdc, 0x0b, 0x55, 0xc5, 0x68, 0x57, 0x9d, 0x3f, 0xb5, 0xe0, 0xfe, 0x46, 0x6d, 0xab,
0xe7, 0x3c, 0x8f, 0x2e, 0xa3, 0xf8, 0x3a, 0xb2, 0xdf, 0x51, 0x40, 0x7e, 0x67, 0x07, 0x9a, 0x85,
0x3b, 0x3a, 0xd0, 0xcc, 0x79, 0x92, 0x6d, 0x68, 0x0d, 0x58, 0xe4, 0xf1, 0x30, 0xe4, 0xbe, 0x5d,
0x53, 0xe7, 0xce, 0x54, 0x63, 0xc4, 0x7d, 0x7b, 0x8b, 0xec, 0xc2, 0xf6, 0x79, 0x84, 0xe0, 0xb7,
0x71, 0x22, 0x27, 0x0b, 0xbb, 0xee, 0x7c, 0x6f, 0x41, 0x47, 0xd9, 0xe3, 0xf3, 0x38, 0xbe, 0x9c,
0xb2, 0xe4, 0x72, 0x73, 0xa8, 0x9f, 0x27, 0xa1, 0x49, 0x5c, 0x6a, 0x99, 0x8d, 0x17, 0xaa, 0x85,
0xf1, 0xc2, 0x03, 0x68, 0x61, 0x6b, 0xe0, 0x2a, 0x5a, 0x1d, 0x54, 0x9a, 0x88, 0x38, 0x4f, 0xc2,
0x62, 0x8f, 0xb8, 0x55, 0xee, 0x11, 0xdf, 0x03, 0x30, 0xc6, 0xaa, 0x2c, 0xb4, 0xae, 0x2d, 0xd4,
0x60, 0xfa, 0xd2, 0xf9, 0x13, 0x78, 0x57, 0x49, 0x38, 0x8a, 0xc4, 0xb9, 0xe0, 0x89, 0xba, 0x48,
0x0f, 0x56, 0x37, 0x88, 0xba, 0x0f, 0xcd, 0xb9, 0xa1, 0x33, 0xf2, 0x66, 0x30, 0xce, 0x39, 0x27,
0x2c, 0xc0, 0xb1, 0x8a, 0xae, 0x19, 0x1b, 0x08, 0x1f, 0x96, 0x5a, 0xd8, 0x5a, 0x49, 0x3c, 0xe7,
0x6b, 0x5d, 0x2e, 0x0d, 0x42, 0xce, 0x92, 0x17, 0x81, 0x90, 0x71, 0xb2, 0x28, 0x06, 0x4f, 0xab,
0x14, 0x3c, 0xdf, 0x03, 0xf0, 0x14, 0xa1, 0xfe, 0x16, 0x13, 0xdc, 0x0d, 0xa6, 0x2f, 0x9d, 0x7f,
0xb1, 0x80, 0x28, 0x66, 0xe6, 0xc7, 0x82, 0x93, 0xc0, 0x93, 0xf3, 0x84, 0xaf, 0x1d, 0x82, 0x15,
0xa6, 0x8c, 0x95, 0x0d, 0x53, 0xc6, 0x2a, 0xce, 0x70, 0x56, 0xa6, 0x8c, 0x35, 0x44, 0xa7, 0x53,
0xc6, 0x07, 0xd0, 0xc2, 0xa6, 0x0d, 0xc7, 0x8c, 0x7a, 0xea, 0x83, 0x63, 0xc6, 0xd3, 0xb5, 0x63,
0xc6, 0x3a, 0x12, 0x6c, 0x18, 0x33, 0x36, 0x8a, 0x63, 0xc6, 0x09, 0xdc, 0x59, 0xfd, 0x12, 0xb1,
0x79, 0x92, 0xfa, 0x13, 0x68, 0xce, 0x0c, 0x91, 0x29, 0x0f, 0x1f, 0x96, 0x43, 0x62, 0x99, 0x13,
0xcd, 0xa8, 0x9d, 0xbf, 0xad, 0x40, 0xbb, 0x30, 0xc2, 0xdf, 0xa0, 0xf7, 0x1e, 0x34, 0x4c, 0x01,
0x9e, 0xbe, 0x97, 0x01, 0x8b, 0x22, 0x55, 0x4b, 0x22, 0x95, 0xdb, 0x0b, 0xdd, 0xec, 0x15, 0xda,
0x0b, 0x02, 0xb5, 0x19, 0x93, 0x13, 0xd3, 0x2a, 0xe0, 0x3a, 0xd3, 0x54, 0xbd, 0xa0, 0xa9, 0xe2,
0xf4, 0x5c, 0x0f, 0x59, 0xb2, 0xe9, 0xf9, 0x1e, 0x6c, 0xf1, 0x69, 0xfc, 0xf3, 0x00, 0x73, 0x5f,
0x8b, 0x6a, 0x40, 0xa9, 0xea, 0x9a, 0x85, 0x21, 0x97, 0x66, 0xea, 0x62, 0x20, 0xc5, 0x5c, 0x99,
0x91, 0x69, 0xbf, 0x70, 0x8d, 0x6a, 0x0d, 0x7c, 0x9f, 0x47, 0xa6, 0xed, 0x32, 0xd0, 0xe6, 0x91,
0x8b, 0xf3, 0x9d, 0x79, 0xae, 0xf4, 0x97, 0x97, 0xf5, 0xcf, 0x55, 0x78, 0x94, 0xca, 0xda, 0x89,
0x77, 0xb5, 0x3c, 0x90, 0x2d, 0x0c, 0x3e, 0x71, 0x8d, 0x33, 0x06, 0x9e, 0x04, 0x57, 0xdc, 0x77,
0xdf, 0x24, 0xf1, 0xd4, 0xbc, 0x52, 0xdb, 0xe0, 0xbe, 0x4c, 0xe2, 0x29, 0xf9, 0x14, 0xf6, 0xf5,
0x34, 0x40, 0x70, 0xdf, 0xc5, 0x0d, 0x33, 0xd4, 0xc4, 0x91, 0xbc, 0x76, 0xf4, 0x7b, 0x38, 0x1b,
0x10, 0xdc, 0x1f, 0x66, 0xfb, 0x87, 0x6a, 0x5b, 0x4f, 0xb8, 0x22, 0x2f, 0x65, 0xaf, 0x1f, 0x16,
0x34, 0x0a, 0xb9, 0xff, 0x06, 0x56, 0x1d, 0xca, 0x22, 0xd2, 0x86, 0x6b, 0xc3, 0x4f, 0x3e, 0x19,
0x99, 0x33, 0xd7, 0x55, 0x7e, 0xe1, 0x47, 0x2a, 0xf2, 0x11, 0xbe, 0x03, 0xfe, 0xa0, 0x65, 0xad,
0xfb, 0xdd, 0xc8, 0xd0, 0xd2, 0x94, 0x4a, 0x5d, 0x6b, 0x7e, 0xf9, 0x48, 0xed, 0x78, 0xf5, 0x84,
0xda, 0xa5, 0x19, 0x99, 0xf3, 0xdf, 0x96, 0x0e, 0x21, 0xa7, 0xec, 0x2a, 0xeb, 0xdc, 0x8a, 0xf6,
0x6a, 0x95, 0xed, 0x75, 0xdd, 0x6f, 0x0e, 0x0f, 0xa1, 0xf5, 0x86, 0x5d, 0xc5, 0xf3, 0x24, 0x90,
0x5a, 0x35, 0x4d, 0x9a, 0x23, 0xde, 0x12, 0x5b, 0x9f, 0x40, 0x47, 0xe7, 0x7a, 0xb7, 0xe8, 0xc2,
0x6d, 0x8d, 0xd3, 0xc3, 0xa2, 0x5f, 0x85, 0x5d, 0x1d, 0x14, 0xc5, 0x24, 0x4e, 0x24, 0xf6, 0xcd,
0xc2, 0xd8, 0xeb, 0x0e, 0x6e, 0x9c, 0x2a, 0xbc, 0xea, 0x9f, 0x85, 0xca, 0x03, 0x3c, 0x12, 0xa6,
0x60, 0x53, 0x4b, 0x65, 0x47, 0x81, 0x70, 0x25, 0x17, 0xa9, 0xd9, 0xd6, 0x03, 0x71, 0xc6, 0x85,
0xfc, 0xba, 0xd6, 0xac, 0xd9, 0x5b, 0xce, 0x5f, 0x5b, 0x3a, 0x7a, 0xaf, 0x8c, 0x1e, 0x36, 0x98,
0xe5, 0x72, 0x5d, 0x57, 0x59, 0xad, 0xeb, 0x46, 0xf0, 0x68, 0xa2, 0xc3, 0xb0, 0xcb, 0x12, 0x6f,
0x12, 0x5c, 0x71, 0x57, 0xcc, 0x67, 0x33, 0x25, 0x3b, 0x8f, 0xd8, 0xeb, 0xd0, 0x8c, 0x9d, 0x9a,
0xf4, 0xa1, 0x21, 0xeb, 0x6b, 0xaa, 0x53, 0x4d, 0x34, 0xd2, 0x34, 0xce, 0xdf, 0x59, 0xda, 0x18,
0x4c, 0x7a, 0x54, 0xb9, 0xe5, 0x86, 0x93, 0xee, 0xcf, 0xa1, 0x6e, 0x4a, 0x3b, 0x5d, 0x96, 0x2f,
0x8d, 0x6b, 0x0a, 0x0c, 0x0f, 0xce, 0xf2, 0xa1, 0x24, 0x35, 0x87, 0x9c, 0x4f, 0xa0, 0x5d, 0x40,
0x63, 0x9a, 0x1f, 0x1f, 0x8d, 0x8f, 0xbf, 0x1d, 0xeb, 0x34, 0x7f, 0x46, 0xcf, 0x4f, 0xcf, 0x46,
0x43, 0xdb, 0xc2, 0x74, 0x3d, 0x46, 0xf0, 0xdb, 0x63, 0x7a, 0xf6, 0xe2, 0x67, 0x76, 0xc5, 0xf9,
0xbe, 0xaa, 0xc7, 0x76, 0xc5, 0x72, 0xc1, 0x54, 0x41, 0x1b, 0x84, 0x27, 0x50, 0x43, 0xff, 0x31,
0xc6, 0xa4, 0xd6, 0xea, 0x83, 0x64, 0x6c, 0x1c, 0xbc, 0x22, 0x63, 0x65, 0x5c, 0xde, 0x44, 0x85,
0xa0, 0xe8, 0x22, 0xf5, 0xf1, 0x1c, 0xa1, 0x54, 0x62, 0x06, 0x4d, 0x3a, 0xa9, 0x99, 0x69, 0x74,
0x86, 0xeb, 0xe3, 0xef, 0x3c, 0x09, 0x17, 0xb3, 0x38, 0x12, 0x69, 0x64, 0xcc, 0x60, 0x15, 0x64,
0x55, 0xe5, 0x1e, 0xe8, 0xc3, 0xda, 0xfe, 0x5a, 0x06, 0xd3, 0x97, 0x84, 0xaf, 0x1f, 0xff, 0x36,
0xf1, 0x65, 0x7f, 0xb3, 0xfc, 0xb2, 0x6b, 0xbe, 0xfa, 0x60, 0x4d, 0x99, 0xbc, 0x6e, 0x68, 0xac,
0x75, 0xd8, 0xca, 0x1a, 0xef, 0xdf, 0x03, 0xb2, 0xa1, 0xe4, 0x2a, 0xea, 0xe2, 0x64, 0x34, 0x1e,
0x1e, 0x8e, 0xbf, 0x32, 0x25, 0xd7, 0x60, 0x30, 0x3a, 0x51, 0x9a, 0xd1, 0x25, 0xd7, 0x68, 0xf0,
0xf2, 0x70, 0x3c, 0x1a, 0xda, 0x55, 0x05, 0x0d, 0xfa, 0xe3, 0xc1, 0xe8, 0xe5, 0x68, 0x68, 0xd7,
0x9c, 0x7f, 0xb7, 0x74, 0x47, 0x5e, 0x2e, 0x79, 0x87, 0xdc, 0x0b, 0xc4, 0xe6, 0x9f, 0x7d, 0x1e,
0x42, 0xcb, 0xbc, 0xe7, 0x61, 0x6a, 0x69, 0x39, 0x82, 0xfc, 0x01, 0xec, 0xf8, 0xe6, 0xbc, 0x5b,
0xb2, 0xbc, 0x8f, 0x97, 0x67, 0x1b, 0xeb, 0xae, 0x3c, 0x48, 0x17, 0xe6, 0x79, 0xba, 0x7e, 0x09,
0x76, 0x3e, 0x84, 0x6e, 0x99, 0xa2, 0xf4, 0xb1, 0xef, 0x94, 0x3e, 0xd6, 0x72, 0xfe, 0xb9, 0x02,
0x3b, 0x4b, 0xff, 0xf2, 0xb0, 0x39, 0xe7, 0x2f, 0xcf, 0xa1, 0x2b, 0x2b, 0x73, 0x68, 0xf2, 0x21,
0x90, 0x22, 0x89, 0x5b, 0x1c, 0xe8, 0xd9, 0x05, 0x42, 0x1d, 0xab, 0x8a, 0x45, 0x44, 0xed, 0x36,
0x45, 0x04, 0xf9, 0x0c, 0x3a, 0x22, 0xf6, 0x02, 0x16, 0xba, 0x61, 0x10, 0x5d, 0xa6, 0xff, 0x67,
0xb2, 0xf4, 0xdf, 0x0b, 0xa7, 0x48, 0xf1, 0x52, 0x11, 0xd0, 0xb6, 0xc8, 0x01, 0xf2, 0xbb, 0xb0,
0xc7, 0x23, 0xe1, 0xa6, 0x85, 0xa4, 0xeb, 0x67, 0xff, 0x59, 0x52, 0x5d, 0x1d, 0xb3, 0xae, 0x54,
0xaa, 0x94, 0xf0, 0x65, 0x94, 0x70, 0x04, 0x00, 0x65, 0xd7, 0x69, 0x3f, 0x5b, 0xa8, 0xf6, 0xac,
0x72, 0xb5, 0x77, 0x04, 0x6d, 0xd3, 0x08, 0xab, 0x86, 0x0c, 0x9f, 0xb0, 0xfb, 0xec, 0x57, 0xf2,
0x1b, 0xfb, 0xf9, 0xbf, 0x1d, 0xbd, 0x32, 0xff, 0x75, 0x64, 0x98, 0x1e, 0x60, 0xe7, 0x5f, 0x3c,
0xed, 0xfc, 0x8d, 0x05, 0x5d, 0x25, 0x62, 0xe1, 0xe6, 0xdf, 0x86, 0x76, 0x92, 0x41, 0xe9, 0x70,
0x64, 0x2f, 0xe7, 0x9f, 0x93, 0xd2, 0x22, 0x21, 0x79, 0x06, 0x7b, 0x62, 0xfe, 0xda, 0xe4, 0x58,
0xf1, 0xb5, 0x88, 0xa3, 0xe7, 0x0b, 0xc9, 0xd3, 0xe2, 0x6b, 0xed, 0x1e, 0xf9, 0x10, 0x76, 0xd3,
0x81, 0x73, 0x7e, 0x40, 0x4f, 0xe1, 0x57, 0x37, 0x9c, 0xef, 0xac, 0xac, 0x90, 0x51, 0x79, 0x14,
0x9b, 0x90, 0xcc, 0xc4, 0xd4, 0x72, 0x6d, 0xa6, 0xbc, 0x0b, 0x75, 0xf3, 0xd3, 0x95, 0xce, 0x02,
0x06, 0x2a, 0x1a, 0x69, 0xad, 0x64, 0xa4, 0x0f, 0xa1, 0x95, 0x4f, 0x6e, 0xb7, 0x70, 0x98, 0x95,
0x23, 0x72, 0x7f, 0xad, 0x17, 0x8b, 0xdf, 0x7f, 0xaa, 0xc0, 0x6e, 0x41, 0x34, 0xd5, 0xcd, 0xc7,
0x11, 0xf9, 0x04, 0xea, 0x0c, 0x57, 0x28, 0x63, 0xf7, 0x99, 0xb3, 0xb6, 0x30, 0xd0, 0xc4, 0x07,
0xfa, 0x0f, 0x35, 0x27, 0xc8, 0x0f, 0x61, 0x3b, 0x0e, 0x7d, 0x43, 0x72, 0x9e, 0xe5, 0x9b, 0x32,
0xd2, 0x54, 0x2b, 0x0a, 0x32, 0xe3, 0xd1, 0x0d, 0xb5, 0x47, 0x4a, 0xa5, 0xf2, 0x6f, 0xdd, 0x48,
0xb7, 0x0b, 0xdb, 0x47, 0xa3, 0x9f, 0x0d, 0xfa, 0x74, 0xe8, 0xf6, 0x87, 0x43, 0x74, 0x6d, 0x02,
0xdd, 0xfe, 0x60, 0x70, 0x7c, 0x3e, 0x3e, 0x3b, 0x35, 0x38, 0x4b, 0xb5, 0xd2, 0x29, 0xd9, 0x70,
0xf4, 0x72, 0xa4, 0x03, 0xde, 0x1e, 0xd8, 0x19, 0x21, 0x1d, 0xbd, 0x3a, 0xfe, 0x06, 0x03, 0x1f,
0x40, 0xfd, 0xe5, 0xf1, 0xe0, 0x48, 0x85, 0x3d, 0x15, 0x25, 0xce, 0xc7, 0x06, 0xda, 0x22, 0x3b,
0xd0, 0x3e, 0x3f, 0x1c, 0xba, 0xe7, 0x27, 0xc3, 0xbe, 0x62, 0x50, 0x27, 0x36, 0x74, 0xc6, 0xfd,
0x57, 0x23, 0x77, 0xf0, 0xa2, 0x3f, 0xfe, 0x6a, 0x34, 0xb4, 0x1b, 0xce, 0x1f, 0xea, 0xf4, 0x5b,
0x70, 0x39, 0xf2, 0xe3, 0x25, 0x1f, 0x5d, 0xb1, 0xc5, 0x9c, 0xb8, 0xec, 0x9e, 0x99, 0x92, 0x2a,
0x05, 0x25, 0x3d, 0xdf, 0xfe, 0xfd, 0xf6, 0xc1, 0x47, 0x9f, 0xa6, 0x87, 0x5f, 0xd7, 0x71, 0xf5,
0xf1, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0xf0, 0x54, 0xc8, 0x8b, 0xec, 0x27, 0x00, 0x00,
0x56, 0x53, 0x92, 0xac, 0x8f, 0x27, 0x59, 0x2e, 0x67, 0x7b, 0xa6, 0xd5, 0xee, 0x9e, 0xed, 0xee,
0x9a, 0x9d, 0xd8, 0x86, 0x18, 0x3c, 0xd0, 0x03, 0x2c, 0x3b, 0x1f, 0x31, 0xa8, 0x25, 0xcd, 0xb4,
0xdb, 0x6d, 0xd9, 0xa4, 0xed, 0x19, 0x96, 0x20, 0xa2, 0x48, 0x57, 0xa5, 0xad, 0x5a, 0x97, 0xaa,
0x44, 0x65, 0xca, 0x46, 0x7b, 0x20, 0x80, 0x08, 0xce, 0x10, 0x5c, 0x76, 0x8e, 0x73, 0x26, 0x38,
0x11, 0xc1, 0x81, 0x08, 0x0e, 0x9c, 0x08, 0xee, 0x1c, 0xe1, 0x17, 0x10, 0x5c, 0xb8, 0x71, 0x24,
0xf2, 0x65, 0x56, 0xa9, 0x4a, 0x1f, 0xc6, 0x0e, 0x4e, 0x7b, 0x72, 0xbe, 0x97, 0x2f, 0x5f, 0xbe,
0xca, 0xf7, 0xfd, 0x64, 0xd8, 0x9c, 0xb0, 0x20, 0x09, 0xa2, 0xcb, 0xbd, 0x49, 0x12, 0xcb, 0x98,
0xd4, 0xf1, 0xcf, 0xf9, 0xf4, 0x62, 0xf7, 0x81, 0x37, 0x62, 0xd2, 0x0d, 0x7c, 0x1e, 0xc9, 0x40,
0xce, 0xf4, 0xf6, 0xee, 0x03, 0x31, 0x8b, 0x3c, 0x57, 0x70, 0x29, 0x83, 0xe8, 0x52, 0x18, 0xa4,
0xc3, 0x26, 0x93, 0x30, 0xf0, 0x98, 0x0c, 0xe2, 0xc8, 0x1d, 0x73, 0xc9, 0x7c, 0x26, 0x99, 0x3b,
0xe6, 0x42, 0xb0, 0x4b, 0x6e, 0x68, 0xb6, 0xbd, 0x78, 0x3c, 0x9e, 0x46, 0x81, 0x0c, 0xb8, 0x39,
0xe6, 0x30, 0x78, 0xfc, 0x15, 0x97, 0xde, 0x28, 0x88, 0x2e, 0x5f, 0x31, 0xef, 0x8a, 0xfb, 0x67,
0x93, 0x3e, 0x93, 0xac, 0xcf, 0x25, 0x0b, 0x42, 0x41, 0x9e, 0x42, 0x13, 0xf9, 0x44, 0xd3, 0xf1,
0x39, 0x4f, 0x3a, 0xd6, 0x33, 0xeb, 0xc5, 0x26, 0x05, 0x85, 0x1a, 0x22, 0x86, 0x3c, 0x87, 0x96,
0x8c, 0x25, 0x0b, 0x53, 0x8a, 0x12, 0x52, 0x34, 0x11, 0xa7, 0x49, 0x9c, 0xbf, 0xae, 0x41, 0x55,
0xf1, 0x9e, 0x4e, 0xc8, 0x0e, 0x6c, 0x78, 0x61, 0xec, 0x5d, 0x21, 0xa3, 0x0a, 0xd5, 0x00, 0x69,
0x43, 0x29, 0xf0, 0xf1, 0x64, 0x83, 0x96, 0x02, 0x9f, 0x7c, 0x09, 0x75, 0x2f, 0x8e, 0x24, 0xf3,
0xa4, 0xe8, 0x94, 0x9f, 0x95, 0x5f, 0x34, 0x5f, 0x7e, 0xb0, 0x97, 0xbe, 0xc8, 0xde, 0xc9, 0x2c,
0xf2, 0xf6, 0x23, 0x21, 0x59, 0x18, 0xe2, 0xb7, 0xf6, 0x34, 0xe5, 0x37, 0x2f, 0x69, 0x76, 0x88,
0xfc, 0x04, 0x9a, 0xb9, 0x2f, 0xed, 0x54, 0x90, 0xc7, 0xc3, 0x22, 0x8f, 0x9e, 0x21, 0x98, 0xd1,
0x3c, 0x2d, 0x39, 0x82, 0xad, 0x94, 0x8d, 0x79, 0x83, 0xce, 0xc6, 0x33, 0xeb, 0x45, 0xf3, 0xe5,
0x87, 0xf3, 0xe3, 0xb7, 0x3c, 0x18, 0x5d, 0x3c, 0x4d, 0xce, 0x80, 0xe4, 0xf8, 0xa7, 0x3c, 0xab,
0xf7, 0xe1, 0xb9, 0x82, 0x01, 0xf9, 0x04, 0x6a, 0x93, 0x24, 0xbe, 0x08, 0x42, 0xde, 0xa9, 0x21,
0xaf, 0x47, 0x73, 0x5e, 0x29, 0x8f, 0x63, 0x4d, 0x40, 0x53, 0x4a, 0x72, 0x08, 0x6d, 0xb3, 0x4c,
0xe5, 0xa8, 0xdf, 0x47, 0x8e, 0x85, 0xc3, 0xe4, 0x63, 0xa8, 0x19, 0x23, 0xec, 0x34, 0x90, 0xcf,
0xbb, 0xc5, 0x27, 0x3e, 0xd1, 0x9b, 0x34, 0xa5, 0x52, 0x8f, 0x9b, 0x5a, 0x6d, 0x2a, 0x00, 0xdc,
0xeb, 0x71, 0x17, 0x4e, 0x93, 0xcf, 0xa0, 0x79, 0x31, 0x0d, 0xc3, 0x03, 0x3e, 0x53, 0x0e, 0xd4,
0x69, 0x2e, 0xbe, 0x84, 0x92, 0xc2, 0x6c, 0x7e, 0x35, 0x0d, 0x43, 0x9a, 0xa7, 0x56, 0x9a, 0xc9,
0x81, 0xa9, 0x40, 0xad, 0x7b, 0x69, 0x66, 0x99, 0x01, 0xe9, 0x82, 0x7d, 0xc3, 0xa4, 0x37, 0x3a,
0x8a, 0xc2, 0x59, 0xd7, 0xf3, 0xe2, 0x69, 0x24, 0x3b, 0x9b, 0xab, 0x9e, 0xc7, 0x6c, 0xd2, 0x25,
0x72, 0xe2, 0xc2, 0xc3, 0x45, 0x5c, 0x2a, 0x5e, 0xfb, 0x3e, 0xe2, 0xad, 0xe3, 0xe2, 0xfc, 0x57,
0x05, 0x5a, 0x87, 0xd3, 0x50, 0x06, 0xe9, 0x8d, 0x04, 0x2a, 0x11, 0x1b, 0x73, 0xf4, 0xcb, 0x06,
0xc5, 0x35, 0x79, 0x02, 0x0d, 0x19, 0x8c, 0xb9, 0x90, 0x6c, 0x3c, 0x41, 0xef, 0x2c, 0xd3, 0x39,
0x42, 0xed, 0xea, 0xb0, 0xe4, 0xc5, 0x51, 0xa7, 0x8c, 0xc7, 0xe6, 0x08, 0xf2, 0x25, 0x80, 0x17,
0x87, 0x71, 0xe2, 0x8e, 0x98, 0x18, 0x19, 0x07, 0x7c, 0x36, 0x17, 0x3a, 0x7f, 0xf7, 0x5e, 0x4f,
0x11, 0xbe, 0x66, 0x62, 0x44, 0x1b, 0x5e, 0xba, 0x24, 0x8f, 0x54, 0x0c, 0x50, 0x0c, 0x02, 0x1f,
0x1d, 0xb0, 0x4c, 0x6b, 0x08, 0xef, 0xfb, 0xe4, 0x47, 0xb0, 0x75, 0xc5, 0x67, 0x1e, 0x4b, 0x7c,
0xd7, 0x84, 0x4d, 0x74, 0xa7, 0x06, 0x6d, 0x1b, 0xf4, 0xb1, 0xc6, 0x92, 0x87, 0x50, 0xbb, 0xe2,
0x33, 0x77, 0x1a, 0xf8, 0xe8, 0x23, 0x0d, 0x5a, 0xbd, 0xe2, 0xb3, 0xb3, 0xc0, 0x27, 0x9f, 0x43,
0x35, 0x18, 0xb3, 0x4b, 0xae, 0xec, 0x5f, 0x49, 0xf6, 0xc3, 0x35, 0x92, 0xed, 0x9b, 0xb8, 0xbb,
0xaf, 0x88, 0xa9, 0x39, 0x43, 0x3e, 0x86, 0x07, 0xde, 0x54, 0xc8, 0x78, 0x1c, 0xfc, 0x5c, 0x47,
0x5b, 0x14, 0x0c, 0x5d, 0xa0, 0x41, 0x49, 0x61, 0x0b, 0x3f, 0x6d, 0xf7, 0x39, 0x34, 0xb2, 0x6f,
0x54, 0x21, 0x30, 0x88, 0x7c, 0xfe, 0x27, 0x1d, 0xeb, 0x59, 0xf9, 0x45, 0x99, 0x6a, 0x60, 0xf7,
0xdf, 0x2d, 0xd8, 0x2c, 0xdc, 0x96, 0x17, 0xde, 0x2a, 0x08, 0x9f, 0xaa, 0xaa, 0x94, 0x53, 0x55,
0x07, 0x6a, 0x13, 0x36, 0x0b, 0x63, 0xe6, 0xa3, 0x2a, 0x5a, 0x34, 0x05, 0xd5, 0x75, 0x37, 0x81,
0x2f, 0x95, 0x0e, 0xd4, 0x23, 0x6a, 0x80, 0xbc, 0x07, 0xd5, 0x11, 0x0f, 0x2e, 0x47, 0xd2, 0xbc,
0xad, 0x81, 0xc8, 0x2e, 0xd4, 0x95, 0x83, 0x8b, 0xe0, 0xe7, 0x1c, 0xdf, 0xb4, 0x4c, 0x33, 0x98,
0x7c, 0x00, 0x9b, 0x09, 0xae, 0x5c, 0xc9, 0x92, 0x4b, 0x2e, 0xf1, 0x4d, 0xcb, 0xb4, 0xa5, 0x91,
0xa7, 0x88, 0x9b, 0x07, 0xf8, 0x7a, 0x2e, 0xc0, 0x3b, 0xff, 0x66, 0xc1, 0x83, 0xb7, 0xb1, 0xc7,
0x42, 0xa3, 0x99, 0x63, 0x23, 0xdc, 0x6f, 0x41, 0xe5, 0x8a, 0xcf, 0x04, 0x3e, 0x45, 0xf3, 0xe5,
0xf3, 0xb9, 0x16, 0x56, 0x10, 0xef, 0x1d, 0xf0, 0x19, 0x45, 0x72, 0xf2, 0x29, 0xb4, 0xc6, 0x4a,
0x4d, 0xcc, 0x78, 0x57, 0x09, 0x7d, 0xe2, 0xbd, 0xd5, 0x4a, 0xa4, 0x05, 0x5a, 0xf5, 0x85, 0x13,
0x26, 0xc4, 0x4d, 0x9c, 0xf8, 0xc6, 0x6a, 0x33, 0x78, 0xf7, 0xd7, 0xa0, 0x7c, 0xc0, 0x67, 0x2b,
0x7d, 0x81, 0x40, 0x45, 0x25, 0x3d, 0xbc, 0xaa, 0x45, 0x71, 0xed, 0xfc, 0xa3, 0x05, 0xef, 0x16,
0x04, 0xe5, 0x3c, 0x79, 0xcd, 0xc3, 0x30, 0x56, 0x16, 0x6a, 0x2c, 0xd3, 0xbd, 0xe6, 0x89, 0x08,
0xe2, 0x08, 0x99, 0x6d, 0xd0, 0xb6, 0x41, 0x7f, 0xa3, 0xb1, 0x4a, 0xc9, 0x13, 0xce, 0xd1, 0xc8,
0x35, 0xe7, 0xaa, 0x02, 0xf7, 0x7d, 0xcc, 0xbb, 0xfc, 0x3a, 0xf0, 0xb8, 0x8b, 0xa2, 0x68, 0x49,
0x41, 0xa3, 0x86, 0x4a, 0xa0, 0x39, 0x81, 0x9c, 0x4d, 0x38, 0x6a, 0x37, 0x23, 0x38, 0x9d, 0x4d,
0xd0, 0x7b, 0x45, 0x70, 0x19, 0x31, 0x39, 0x4d, 0x38, 0x6a, 0xb9, 0x45, 0xe7, 0x08, 0xe7, 0x7b,
0x0b, 0x6c, 0x25, 0x76, 0x3e, 0x93, 0xae, 0xc9, 0xce, 0x3f, 0x82, 0xad, 0x20, 0x47, 0xe5, 0x66,
0xa9, 0xba, 0x9d, 0x47, 0x17, 0x64, 0x46, 0x91, 0xca, 0x4b, 0x22, 0xa5, 0x0f, 0x5b, 0x29, 0x5a,
0x6e, 0xfa, 0x44, 0x1b, 0x58, 0x3a, 0xa4, 0xa0, 0xf3, 0x9f, 0x16, 0x3c, 0x5c, 0x93, 0xec, 0xef,
0x58, 0x47, 0x7c, 0x00, 0x9b, 0x26, 0x63, 0xb9, 0xe8, 0xba, 0x46, 0xa4, 0x96, 0x41, 0x6a, 0x3f,
0x7b, 0x04, 0x75, 0x1e, 0x09, 0x37, 0x27, 0x58, 0x8d, 0x47, 0x02, 0xdf, 0xf8, 0x39, 0xb4, 0x42,
0x26, 0xa4, 0x3b, 0x9d, 0xf8, 0x4c, 0x72, 0x1d, 0x87, 0x2a, 0xb4, 0xa9, 0x70, 0x67, 0x1a, 0xa5,
0xbe, 0x59, 0xcc, 0x84, 0xe4, 0x63, 0x57, 0xb2, 0x4b, 0x95, 0xd6, 0xcb, 0xea, 0x9b, 0x35, 0xea,
0x94, 0x5d, 0x0a, 0xf2, 0x21, 0xb4, 0x43, 0x65, 0x23, 0x6e, 0x14, 0x78, 0x57, 0x78, 0x89, 0x0e,
0x45, 0x9b, 0x88, 0x1d, 0x1a, 0xa4, 0xf3, 0xe7, 0x55, 0x78, 0xb4, 0xb6, 0xb2, 0x21, 0xbf, 0x0e,
0x3b, 0x79, 0x41, 0x5c, 0x3c, 0x1b, 0xce, 0xcc, 0xd7, 0x93, 0x9c, 0x40, 0x6f, 0xf5, 0xce, 0x2f,
0xf1, 0x53, 0x28, 0xdd, 0x32, 0xdf, 0xe7, 0x3e, 0x06, 0xd4, 0x3a, 0xd5, 0x80, 0xb2, 0x93, 0x73,
0xa5, 0x64, 0xee, 0x63, 0xc9, 0x50, 0xa7, 0x29, 0xa8, 0xe8, 0xc7, 0x53, 0x25, 0x53, 0x53, 0xd3,
0x23, 0xa0, 0xe8, 0x13, 0x3e, 0x8e, 0xaf, 0xb9, 0x8f, 0x19, 0xbd, 0x4e, 0x53, 0x90, 0x3c, 0x83,
0xd6, 0x88, 0x09, 0x17, 0xd9, 0xba, 0x53, 0x81, 0xb9, 0xb9, 0x4e, 0x61, 0xc4, 0x44, 0x57, 0xa1,
0xce, 0x30, 0xc0, 0x5f, 0xf3, 0x24, 0xb8, 0x48, 0xab, 0x69, 0x21, 0x99, 0x9c, 0xea, 0xd4, 0x5b,
0xa6, 0x24, 0xbf, 0x75, 0x82, 0x3b, 0x58, 0x04, 0x27, 0x53, 0x21, 0x53, 0xca, 0x2d, 0xa4, 0x6c,
0x22, 0xce, 0x90, 0x7c, 0x01, 0x8f, 0x4d, 0x65, 0xe8, 0x26, 0xfc, 0x8f, 0xa7, 0x5c, 0x48, 0xad,
0x45, 0x3c, 0xc2, 0x3b, 0x36, 0x9e, 0xe8, 0x18, 0x12, 0xaa, 0x29, 0x50, 0x99, 0xea, 0x3c, 0x5f,
0x7f, 0x5c, 0xbb, 0xc1, 0xf6, 0xda, 0xe3, 0x3d, 0xf4, 0x8c, 0x2f, 0xe1, 0xc9, 0xe2, 0x71, 0xf5,
0x1c, 0x92, 0x9b, 0xeb, 0x09, 0x9e, 0x7f, 0x54, 0x3c, 0x4f, 0x91, 0x42, 0xdf, 0xbf, 0x9e, 0x81,
0x16, 0xe0, 0xc1, 0x7a, 0x06, 0x5a, 0x82, 0xe7, 0xd0, 0xf2, 0x03, 0x31, 0x09, 0xd9, 0x4c, 0xdb,
0xd7, 0x0e, 0xaa, 0xbe, 0x69, 0x70, 0xca, 0xc6, 0x9c, 0x9b, 0x65, 0x7f, 0x4f, 0xcb, 0x93, 0xd5,
0xfe, 0xbe, 0x64, 0xd4, 0xa5, 0x15, 0x46, 0xbd, 0x68, 0xb9, 0xe5, 0x25, 0xcb, 0x75, 0x5e, 0xc1,
0xee, 0xe2, 0xc5, 0xc7, 0xd3, 0xf3, 0x30, 0xf0, 0x7a, 0x23, 0x76, 0xc7, 0x58, 0xe3, 0xfc, 0x43,
0x19, 0x36, 0x0b, 0x6d, 0xc5, 0xff, 0x79, 0xae, 0x85, 0x8e, 0xf9, 0x14, 0x9a, 0x93, 0x24, 0xb8,
0x66, 0x92, 0xbb, 0x57, 0x7c, 0x66, 0xb2, 0x37, 0x18, 0x94, 0xca, 0x46, 0xcf, 0x54, 0x54, 0x15,
0x5e, 0x12, 0x4c, 0x94, 0x5c, 0xe8, 0x97, 0x2d, 0x9a, 0x47, 0xa9, 0x64, 0xfe, 0xb3, 0x38, 0x88,
0x8c, 0x57, 0xd6, 0xa9, 0x81, 0x54, 0xaa, 0xd3, 0xb6, 0xca, 0x7d, 0x4c, 0xe6, 0x75, 0x9a, 0xc1,
0x73, 0xa7, 0xa9, 0xe5, 0x9d, 0xe6, 0x08, 0x6c, 0xa3, 0x5d, 0xe1, 0xca, 0xd8, 0x55, 0x7c, 0x4c,
0x85, 0xf4, 0xe1, 0xba, 0xe6, 0xc9, 0x90, 0x9f, 0xc6, 0x6f, 0xe2, 0x20, 0xa2, 0xed, 0xa4, 0x00,
0x93, 0xcf, 0xa0, 0x9e, 0x96, 0xec, 0xa6, 0x45, 0x78, 0xba, 0x86, 0x91, 0xe9, 0x15, 0x04, 0xcd,
0x0e, 0xa8, 0x0c, 0xc6, 0x23, 0x2f, 0x99, 0x4d, 0x64, 0xe6, 0xf4, 0x73, 0x04, 0xe6, 0xb7, 0x09,
0xf7, 0x24, 0x9b, 0xbb, 0xfe, 0x1c, 0xa1, 0x92, 0x96, 0x21, 0x55, 0x0e, 0x8c, 0x45, 0x46, 0x0b,
0x5f, 0xae, 0x3d, 0x47, 0x1f, 0xf0, 0x99, 0x70, 0x7e, 0x51, 0x82, 0xc7, 0xb7, 0x7c, 0x91, 0xd1,
0x97, 0x95, 0xe9, 0xeb, 0x7d, 0x80, 0x09, 0xda, 0x06, 0xaa, 0x4b, 0xeb, 0xbf, 0xa1, 0x31, 0x4a,
0x5b, 0x99, 0xd2, 0xcb, 0x79, 0xa5, 0xdf, 0x12, 0x58, 0x1f, 0x42, 0xcd, 0xb4, 0xf8, 0xa8, 0xbd,
0x06, 0xad, 0x2a, 0x70, 0xdf, 0x57, 0x76, 0x9b, 0xb6, 0x7d, 0x33, 0xb5, 0x5b, 0xd5, 0x8a, 0xcf,
0x70, 0xfb, 0xa8, 0x44, 0xed, 0xbe, 0x35, 0x7d, 0x19, 0x02, 0xe4, 0x2b, 0xd8, 0x4e, 0xf8, 0x35,
0x67, 0x21, 0xf7, 0x5d, 0x53, 0xf5, 0xa4, 0x75, 0x6e, 0xae, 0x33, 0xa2, 0x86, 0x24, 0x6b, 0x42,
0x92, 0x22, 0x42, 0x38, 0x7f, 0x53, 0x02, 0x7b, 0xd1, 0x2d, 0xc8, 0x17, 0xb9, 0xd6, 0x7c, 0xa9,
0x6a, 0x5b, 0x93, 0xc0, 0x72, 0x8d, 0xf9, 0xd7, 0xd0, 0x32, 0xaf, 0xa7, 0xbe, 0x52, 0x74, 0x4a,
0x8b, 0xe5, 0xf7, 0x7a, 0x3f, 0xa4, 0xcd, 0x49, 0xb6, 0x56, 0x8d, 0x5f, 0x2d, 0xad, 0xfe, 0xca,
0x68, 0x57, 0xb7, 0x88, 0x91, 0x7e, 0x62, 0x7a, 0xe2, 0xff, 0x31, 0x1e, 0x70, 0x7e, 0x0c, 0x5b,
0xb8, 0xab, 0x04, 0x32, 0xf9, 0xe4, 0x6e, 0xf1, 0xe1, 0x73, 0xd8, 0x49, 0x0f, 0x1e, 0xea, 0x99,
0x8c, 0xa0, 0x9c, 0xdd, 0xf5, 0xf4, 0xef, 0xc2, 0x7b, 0xba, 0x63, 0x94, 0xc1, 0x75, 0x20, 0x67,
0x3d, 0x1e, 0x49, 0x9e, 0xdc, 0x72, 0xde, 0x86, 0x72, 0xe0, 0xeb, 0xe7, 0x6d, 0x51, 0xb5, 0x74,
0xfa, 0x3a, 0xc6, 0x15, 0x39, 0x74, 0x3d, 0x8f, 0xa3, 0x33, 0xdd, 0x95, 0xcb, 0x40, 0x3b, 0x4b,
0x91, 0x4b, 0x3f, 0x10, 0xe3, 0x40, 0x88, 0x7b, 0xb0, 0x71, 0xe1, 0x83, 0x65, 0x36, 0xc3, 0x58,
0x16, 0xf2, 0x2a, 0x57, 0xbe, 0x96, 0x56, 0x3c, 0x4c, 0x1a, 0x9e, 0x0d, 0x83, 0xe9, 0x4a, 0xe5,
0x55, 0x2a, 0x91, 0x0b, 0xce, 0x23, 0x7c, 0xaa, 0x3a, 0xad, 0x8d, 0x98, 0x38, 0xe1, 0x3c, 0x72,
0xfe, 0xca, 0x82, 0xa7, 0xb7, 0xdf, 0x20, 0x48, 0x08, 0xef, 0x33, 0xb3, 0xed, 0x7a, 0xb8, 0xef,
0x46, 0x79, 0x02, 0x63, 0xdf, 0x2f, 0x16, 0x9b, 0xf6, 0x75, 0x1c, 0xe9, 0x63, 0xb6, 0xfe, 0x36,
0xe7, 0x9f, 0x1a, 0xf0, 0x83, 0xdb, 0xcf, 0x2f, 0x85, 0x9a, 0xa5, 0xfe, 0xbb, 0x92, 0xef, 0xbf,
0x2f, 0x60, 0x3b, 0x2f, 0xee, 0xbc, 0xe6, 0x6e, 0xbf, 0xfc, 0xc9, 0x5d, 0x45, 0xde, 0xcb, 0x03,
0xaa, 0x44, 0xa7, 0x76, 0xb4, 0x80, 0xc9, 0x07, 0xa8, 0x4a, 0x21, 0x40, 0x11, 0xa8, 0x24, 0x9c,
0xa5, 0x49, 0x07, 0xd7, 0x4a, 0x64, 0x3f, 0xb5, 0x06, 0x93, 0x73, 0xe6, 0x08, 0x95, 0x90, 0x98,
0xb1, 0x38, 0x93, 0x77, 0x32, 0x58, 0xd5, 0x6b, 0x66, 0x56, 0x89, 0xad, 0x63, 0x8b, 0xa6, 0xa0,
0x4a, 0x6f, 0x6c, 0x2a, 0x47, 0x59, 0x87, 0x6d, 0x20, 0xdd, 0x8f, 0x4e, 0xc2, 0x59, 0x3a, 0xe3,
0xc4, 0x14, 0xd1, 0x52, 0xfd, 0xe8, 0x24, 0x9c, 0x19, 0x1f, 0x5b, 0x8a, 0xa2, 0x4d, 0x5d, 0x76,
0xe4, 0xa3, 0xe8, 0x05, 0x6c, 0x8f, 0xf9, 0xf8, 0x9c, 0x27, 0x62, 0x14, 0x4c, 0xd2, 0x0a, 0xae,
0x75, 0xcf, 0x87, 0x3c, 0xcc, 0x38, 0xe8, 0x7a, 0x8f, 0xda, 0xe3, 0x05, 0x0c, 0xf9, 0x0b, 0x6b,
0x5e, 0xc3, 0xad, 0x2a, 0x2f, 0x37, 0xf1, 0xca, 0x57, 0x77, 0xbe, 0x32, 0x6d, 0x0f, 0x96, 0xca,
0xd1, 0xac, 0x0c, 0x5b, 0xde, 0x52, 0xcf, 0xec, 0xf3, 0x90, 0x2b, 0x0d, 0xb4, 0xb5, 0xcb, 0x18,
0x70, 0xc1, 0xd9, 0xb6, 0x16, 0x9c, 0xcd, 0xf9, 0x6f, 0x0b, 0xec, 0x45, 0x6b, 0x21, 0x00, 0xd5,
0x61, 0xac, 0x56, 0xf6, 0x3b, 0x64, 0x0b, 0x9a, 0x43, 0x7e, 0x73, 0x14, 0xf1, 0xd3, 0xf8, 0x28,
0xe2, 0xb6, 0x45, 0x1e, 0xc2, 0x83, 0x21, 0xbf, 0x39, 0xd6, 0x95, 0xcc, 0xd7, 0x49, 0x3c, 0x9d,
0xa8, 0xe0, 0x67, 0x97, 0x48, 0x13, 0x6a, 0x87, 0x3c, 0x52, 0x4c, 0xec, 0x32, 0x69, 0xc0, 0x06,
0x55, 0x0a, 0xb3, 0x2b, 0x84, 0x40, 0xbb, 0x57, 0xa8, 0x1f, 0xed, 0x0d, 0xc5, 0x24, 0x8b, 0xc4,
0xfb, 0xd1, 0x75, 0x20, 0xf1, 0x72, 0xbb, 0x4a, 0x76, 0xc0, 0x5e, 0x4c, 0xd9, 0x76, 0x8d, 0xfc,
0x00, 0x76, 0x33, 0xec, 0x5c, 0x25, 0xe9, 0x7e, 0x9d, 0x3c, 0x80, 0xad, 0x6c, 0xff, 0x20, 0x50,
0xed, 0x83, 0xdd, 0xd0, 0x77, 0x2c, 0x3d, 0x98, 0x0d, 0xce, 0x5f, 0x5a, 0x60, 0x2f, 0x2a, 0x96,
0x74, 0x60, 0x67, 0x11, 0xb7, 0xef, 0x87, 0xea, 0x05, 0x1e, 0xc3, 0xc3, 0xc5, 0x9d, 0x63, 0x1e,
0xf9, 0x41, 0x74, 0x69, 0x5b, 0xe4, 0x09, 0x74, 0x16, 0x37, 0xd3, 0xe8, 0x6b, 0x97, 0x56, 0xed,
0xf6, 0xb9, 0x17, 0xaa, 0x32, 0xce, 0x2e, 0x3b, 0x7f, 0x66, 0xc1, 0xa3, 0xb5, 0xda, 0x56, 0xcf,
0x79, 0x16, 0x5d, 0x45, 0xf1, 0x4d, 0x64, 0xbf, 0xa3, 0x80, 0xf9, 0x9d, 0x2d, 0xa8, 0xe7, 0xee,
0x68, 0x41, 0x7d, 0xce, 0x93, 0x6c, 0x42, 0xa3, 0xc7, 0x22, 0x8f, 0x87, 0x21, 0xf7, 0xed, 0x8a,
0x3a, 0x77, 0xaa, 0xba, 0x15, 0xee, 0xdb, 0x1b, 0x64, 0x1b, 0x36, 0xcf, 0x22, 0x04, 0xbf, 0x8d,
0x13, 0x39, 0x9a, 0xd9, 0x55, 0xe7, 0x7b, 0x0b, 0x5a, 0xca, 0x1e, 0x5f, 0xc5, 0xf1, 0xd5, 0x98,
0x25, 0x57, 0xeb, 0x43, 0xfd, 0x34, 0x09, 0x4d, 0xe2, 0x52, 0xcb, 0xac, 0xe7, 0x2f, 0xe7, 0x7a,
0xfe, 0xc7, 0xd0, 0xc0, 0x7a, 0xdd, 0x55, 0xb4, 0x3a, 0xa8, 0xd4, 0x11, 0x71, 0x96, 0x84, 0xf9,
0xc6, 0x6d, 0xa3, 0xd8, 0xb8, 0xbd, 0x0f, 0x60, 0x8c, 0x55, 0x59, 0x68, 0x55, 0x5b, 0xa8, 0xc1,
0x74, 0xa5, 0xf3, 0xa7, 0xf0, 0xae, 0x92, 0x70, 0x10, 0x89, 0x33, 0xc1, 0x13, 0x75, 0x91, 0x9e,
0x76, 0xae, 0x11, 0x75, 0x17, 0xea, 0x53, 0x43, 0x67, 0xe4, 0xcd, 0x60, 0x1c, 0x3e, 0x8e, 0x58,
0x80, 0xb3, 0x0e, 0x5d, 0xc8, 0xd5, 0x10, 0xde, 0x2f, 0xf4, 0x95, 0x95, 0x82, 0x78, 0xce, 0x1b,
0x5d, 0x2e, 0xf5, 0x42, 0xce, 0x92, 0xd7, 0x81, 0x90, 0x71, 0x32, 0xcb, 0x07, 0x4f, 0xab, 0x10,
0x3c, 0xdf, 0x07, 0xf0, 0x14, 0xa1, 0xfe, 0x16, 0x13, 0xdc, 0x0d, 0xa6, 0x2b, 0x9d, 0x7f, 0xb5,
0x80, 0x28, 0x66, 0x66, 0x82, 0x7f, 0x1c, 0x78, 0x72, 0x9a, 0xf0, 0x95, 0x93, 0xa9, 0xdc, 0xe8,
0xaf, 0xb4, 0x66, 0xf4, 0x57, 0xc6, 0xc1, 0xca, 0xd2, 0xe8, 0xaf, 0x82, 0xe8, 0x74, 0xf4, 0xf7,
0x18, 0x1a, 0xd8, 0x49, 0xe1, 0xec, 0x4f, 0x8f, 0x62, 0x70, 0xf6, 0x77, 0xb2, 0x72, 0xf6, 0x57,
0x45, 0x82, 0x35, 0xb3, 0xbf, 0x5a, 0x7e, 0xf6, 0x37, 0x82, 0x07, 0xcb, 0x5f, 0x22, 0xd6, 0x8f,
0x37, 0x7f, 0x07, 0xea, 0x13, 0x43, 0x64, 0xca, 0xc3, 0x27, 0xc5, 0x90, 0x58, 0xe4, 0x44, 0x33,
0x6a, 0xe7, 0xef, 0x4a, 0xd0, 0xcc, 0xcd, 0xd5, 0xd7, 0xe8, 0xbd, 0x03, 0x35, 0xe6, 0xfb, 0x09,
0x17, 0x22, 0x7d, 0x2f, 0x03, 0xe6, 0x45, 0x2a, 0x17, 0x44, 0x2a, 0xd6, 0xfc, 0xba, 0x03, 0xcb,
0xd5, 0xfc, 0x04, 0x2a, 0x13, 0x26, 0x47, 0xa6, 0x7e, 0xc7, 0x75, 0xa6, 0xa9, 0x6a, 0x4e, 0x53,
0xf9, 0x91, 0xb6, 0x9e, 0x7c, 0x64, 0x23, 0xed, 0x1d, 0xd8, 0xe0, 0xe3, 0xf8, 0x67, 0x01, 0xe6,
0xbe, 0x06, 0xd5, 0x80, 0x52, 0xd5, 0x0d, 0x0b, 0x43, 0x2e, 0xcd, 0x28, 0xc4, 0x40, 0x8a, 0xb9,
0x32, 0x23, 0xd3, 0x13, 0xe1, 0x1a, 0xd5, 0x1a, 0xf8, 0x3e, 0x8f, 0x4c, 0x2f, 0x64, 0xa0, 0xf5,
0x73, 0x10, 0xe7, 0x3b, 0xf3, 0x5c, 0xe9, 0xcf, 0x21, 0xab, 0x9f, 0x2b, 0xf7, 0x28, 0xa5, 0x95,
0x63, 0xe8, 0x72, 0x71, 0x4a, 0x9a, 0x9b, 0x46, 0xe2, 0x1a, 0x1b, 0x7f, 0x9e, 0x04, 0xd7, 0xdc,
0x77, 0x2f, 0x92, 0x78, 0x6c, 0x5e, 0xa9, 0x69, 0x70, 0x5f, 0x25, 0xf1, 0x98, 0x7c, 0x06, 0xbb,
0xba, 0x45, 0x17, 0xdc, 0x77, 0x71, 0xc3, 0x4c, 0x1a, 0x71, 0x4e, 0xae, 0x1d, 0xfd, 0x21, 0x36,
0xec, 0x82, 0xfb, 0xfd, 0x6c, 0x7f, 0x5f, 0x6d, 0xeb, 0xb1, 0x53, 0xe4, 0xa5, 0xec, 0xf5, 0xc3,
0x82, 0x46, 0x21, 0xf7, 0xdf, 0xc0, 0xaa, 0x23, 0xdf, 0x06, 0xad, 0xf9, 0x1d, 0x26, 0x23, 0x73,
0xa6, 0xba, 0xca, 0xcf, 0xfd, 0x72, 0x44, 0x3e, 0xc6, 0x77, 0xc0, 0x5f, 0x99, 0xac, 0x55, 0x3f,
0xe6, 0x18, 0x5a, 0x9a, 0x52, 0xa9, 0x6b, 0xcd, 0xcf, 0x11, 0xa9, 0x1d, 0x2f, 0x9f, 0x50, 0xbb,
0x34, 0x23, 0x73, 0xfe, 0xc7, 0xd2, 0x21, 0xe4, 0x84, 0x5d, 0x73, 0xbf, 0x6b, 0xac, 0x32, 0x67,
0xaf, 0x56, 0xd1, 0x5e, 0x57, 0xfd, 0x10, 0xf0, 0x04, 0x1a, 0x17, 0xec, 0x3a, 0x9e, 0x26, 0x81,
0xd4, 0xaa, 0xa9, 0xd3, 0x39, 0xe2, 0x96, 0xd8, 0xfa, 0x1c, 0x5a, 0x3a, 0xd7, 0xbb, 0x79, 0x17,
0x6e, 0x6a, 0x9c, 0x9e, 0xe0, 0xfc, 0x2a, 0x6c, 0xeb, 0xa0, 0x28, 0x46, 0x71, 0x22, 0xb1, 0x99,
0x15, 0xc6, 0x5e, 0xb7, 0x70, 0xe3, 0x44, 0xe1, 0x55, 0x53, 0x2b, 0x54, 0x1e, 0xe0, 0x91, 0x30,
0x05, 0x9b, 0x5a, 0x2a, 0x3b, 0x0a, 0x84, 0x2b, 0xb9, 0x48, 0xcd, 0xb6, 0x1a, 0x88, 0x53, 0x2e,
0xe4, 0x9b, 0x4a, 0xbd, 0x62, 0x6f, 0x38, 0xbf, 0xb0, 0x74, 0xf4, 0x5e, 0x9a, 0x07, 0xac, 0x31,
0xcb, 0xc5, 0xba, 0xae, 0xb4, 0x5c, 0xd7, 0x0d, 0xe0, 0xe9, 0x48, 0x87, 0x61, 0x97, 0x25, 0xde,
0x28, 0xb8, 0xe6, 0xae, 0x98, 0x4e, 0x26, 0x4a, 0x76, 0x1e, 0xb1, 0xf3, 0xd0, 0xcc, 0x82, 0xea,
0xf4, 0x89, 0x21, 0xeb, 0x6a, 0xaa, 0x13, 0x4d, 0x34, 0xd0, 0x34, 0xce, 0xdf, 0x5b, 0xda, 0x18,
0x4c, 0x7a, 0x54, 0xb9, 0xe5, 0x8e, 0xe3, 0xe7, 0x2f, 0xa0, 0x6a, 0x4a, 0x3b, 0x5d, 0x96, 0x2f,
0xcc, 0x50, 0x72, 0x0c, 0xf7, 0x4e, 0xe7, 0x93, 0x42, 0x6a, 0x0e, 0x39, 0x9f, 0x42, 0x33, 0x87,
0xc6, 0x34, 0x3f, 0x3c, 0x18, 0x1e, 0x7d, 0x3b, 0xd4, 0x69, 0xfe, 0x94, 0x9e, 0x9d, 0x9c, 0x0e,
0xfa, 0xb6, 0x85, 0xe9, 0x7a, 0x88, 0xe0, 0xb7, 0x47, 0xf4, 0xf4, 0xf5, 0x4f, 0xed, 0x92, 0xf3,
0x7d, 0x59, 0xcf, 0xd2, 0xf2, 0xe5, 0x82, 0xa9, 0x82, 0xd6, 0x08, 0x4f, 0xa0, 0x82, 0xfe, 0x63,
0x8c, 0x49, 0xad, 0xd5, 0x07, 0xc9, 0xd8, 0x38, 0x78, 0x49, 0xc6, 0xca, 0xb8, 0xbc, 0x91, 0x0a,
0x41, 0xd1, 0x65, 0xea, 0xe3, 0x73, 0x84, 0x52, 0x89, 0x99, 0xfe, 0xe8, 0xa4, 0x66, 0x46, 0xc4,
0x19, 0xae, 0x8b, 0x3f, 0xbe, 0x24, 0x5c, 0x4c, 0xe2, 0x48, 0xa4, 0x91, 0x31, 0x83, 0x55, 0x90,
0x55, 0x95, 0x7b, 0xa0, 0x0f, 0x6b, 0xfb, 0x6b, 0x18, 0x4c, 0x57, 0x12, 0xbe, 0x7a, 0x26, 0x5b,
0xc7, 0x97, 0xfd, 0xcd, 0xe2, 0xcb, 0xae, 0xf8, 0xea, 0xbd, 0x15, 0x65, 0xf2, 0xaa, 0x49, 0xae,
0xd6, 0x61, 0x23, 0x6b, 0xbc, 0x7f, 0x1f, 0xc8, 0x9a, 0x92, 0x2b, 0xaf, 0x8b, 0xe3, 0xc1, 0xb0,
0xbf, 0x3f, 0xfc, 0xda, 0x94, 0x5c, 0xbd, 0xde, 0xe0, 0x58, 0x69, 0x46, 0x97, 0x5c, 0x83, 0xde,
0xdb, 0xfd, 0xe1, 0xa0, 0x6f, 0x97, 0x15, 0xd4, 0xeb, 0x0e, 0x7b, 0x83, 0xb7, 0x83, 0xbe, 0x5d,
0x71, 0xfe, 0xc3, 0xd2, 0x1d, 0x79, 0xb1, 0xe4, 0xed, 0x73, 0x2f, 0x10, 0xeb, 0x7f, 0x8b, 0x79,
0x02, 0x0d, 0xf3, 0x9e, 0xfb, 0xa9, 0xa5, 0xcd, 0x11, 0xe4, 0x0f, 0x61, 0xcb, 0x37, 0xe7, 0xdd,
0x82, 0xe5, 0x7d, 0xb2, 0x38, 0xdb, 0x58, 0x75, 0xe5, 0x5e, 0xba, 0x30, 0xcf, 0xd3, 0xf6, 0x0b,
0xb0, 0xf3, 0x11, 0xb4, 0x8b, 0x14, 0x85, 0x8f, 0x7d, 0xa7, 0xf0, 0xb1, 0x96, 0xf3, 0x2f, 0x25,
0xd8, 0x5a, 0xf8, 0x3f, 0x84, 0xf5, 0x39, 0x7f, 0x71, 0x38, 0x5c, 0x5a, 0x1a, 0x0e, 0x93, 0x8f,
0x80, 0xe4, 0x49, 0xdc, 0xfc, 0x94, 0xcd, 0xce, 0x11, 0xea, 0x58, 0x95, 0x2f, 0x22, 0x2a, 0xf7,
0x29, 0x22, 0xc8, 0xe7, 0xd0, 0x12, 0xb1, 0x17, 0xb0, 0xd0, 0x0d, 0x83, 0xe8, 0x2a, 0xfd, 0xe7,
0x8f, 0x85, 0x7f, 0x29, 0x38, 0x41, 0x8a, 0xb7, 0x8a, 0x80, 0x36, 0xc5, 0x1c, 0x20, 0xbf, 0x07,
0x3b, 0x3c, 0x12, 0x6e, 0x5a, 0x48, 0xba, 0x7e, 0xf6, 0xef, 0x1e, 0xe5, 0xe5, 0xd9, 0xe7, 0x52,
0xa5, 0x4a, 0x09, 0x5f, 0x44, 0x09, 0x47, 0x00, 0x50, 0x76, 0x93, 0xf6, 0xb3, 0xb9, 0x6a, 0xcf,
0x2a, 0x56, 0x7b, 0x07, 0xd0, 0x34, 0x8d, 0xb0, 0x6a, 0xc8, 0xf0, 0x09, 0xdb, 0x2f, 0x7f, 0x65,
0x7e, 0x63, 0x77, 0xfe, 0xef, 0x41, 0x87, 0xe6, 0xbf, 0x83, 0x0c, 0xd3, 0x3d, 0xec, 0xfc, 0xf3,
0xa7, 0x9d, 0xbf, 0xb5, 0xa0, 0xad, 0x44, 0xcc, 0xdd, 0xfc, 0xdb, 0xd0, 0x4c, 0x32, 0x28, 0x1d,
0x8e, 0xec, 0xe4, 0x06, 0x8a, 0xd9, 0x26, 0xcd, 0x13, 0x92, 0x97, 0xb0, 0x23, 0xa6, 0xe7, 0xe9,
0x54, 0xf1, 0x8d, 0x88, 0xa3, 0x57, 0x33, 0xc9, 0xd3, 0xe2, 0x6b, 0xe5, 0x1e, 0xf9, 0x08, 0xb6,
0xd3, 0x29, 0xf0, 0xfc, 0x80, 0x1e, 0x8d, 0x2f, 0x6f, 0x38, 0xdf, 0x59, 0x59, 0x21, 0xa3, 0xf2,
0x28, 0x36, 0x21, 0x99, 0x89, 0xa9, 0xe5, 0xca, 0x4c, 0xf9, 0x1e, 0x54, 0xcd, 0xef, 0x49, 0x3a,
0x0b, 0x18, 0x28, 0x6f, 0xa4, 0x95, 0x82, 0x91, 0x3e, 0x81, 0x86, 0xc9, 0xbc, 0x5c, 0x99, 0x45,
0x59, 0x15, 0x81, 0x19, 0x62, 0xee, 0xaf, 0xd5, 0x7c, 0xf1, 0xfb, 0xcf, 0x25, 0xd8, 0xce, 0x89,
0xa6, 0xba, 0xf9, 0x38, 0x22, 0x9f, 0x42, 0x95, 0xe1, 0x0a, 0x65, 0x6c, 0xbf, 0x74, 0x56, 0x16,
0x06, 0x9a, 0x78, 0x4f, 0xff, 0xa1, 0xe6, 0x04, 0xf9, 0x21, 0x6c, 0xc6, 0xa1, 0x6f, 0x48, 0xce,
0xb2, 0x7c, 0x53, 0x44, 0x9a, 0x6a, 0x45, 0x41, 0x66, 0x3c, 0xba, 0xa6, 0xf6, 0x48, 0xa9, 0x54,
0xfe, 0xad, 0x1a, 0xe9, 0xb6, 0x61, 0xf3, 0x60, 0xf0, 0xd3, 0x5e, 0x97, 0xf6, 0xdd, 0x6e, 0xbf,
0x8f, 0xae, 0x4d, 0xa0, 0xdd, 0xed, 0xf5, 0x8e, 0xce, 0x86, 0xa7, 0x27, 0x06, 0x67, 0xa9, 0x56,
0x3a, 0x25, 0xeb, 0x0f, 0xde, 0x0e, 0x74, 0xc0, 0xdb, 0x01, 0x3b, 0x23, 0xa4, 0x83, 0xc3, 0xa3,
0x6f, 0x30, 0xf0, 0x01, 0x54, 0xdf, 0x1e, 0xf5, 0x0e, 0x54, 0xd8, 0x53, 0x51, 0xe2, 0x6c, 0x68,
0xa0, 0x0d, 0xb2, 0x05, 0xcd, 0xb3, 0xfd, 0xbe, 0x7b, 0x76, 0xdc, 0xef, 0x2a, 0x06, 0x55, 0x62,
0x43, 0x6b, 0xd8, 0x3d, 0x1c, 0xb8, 0xbd, 0xd7, 0xdd, 0xe1, 0xd7, 0x83, 0xbe, 0x5d, 0x73, 0xfe,
0x48, 0xa7, 0xdf, 0x9c, 0xcb, 0x91, 0x1f, 0x2f, 0xf8, 0xe8, 0x92, 0x2d, 0xce, 0x89, 0x8b, 0xee,
0x99, 0x29, 0xa9, 0x94, 0x53, 0xd2, 0xab, 0xcd, 0x3f, 0x68, 0xee, 0x7d, 0xfc, 0x59, 0x7a, 0xf8,
0xbc, 0x8a, 0xab, 0x4f, 0xfe, 0x37, 0x00, 0x00, 0xff, 0xff, 0x21, 0x27, 0xe9, 0x7c, 0x94, 0x27,
0x00, 0x00,
}

View File

@ -3,6 +3,7 @@ syntax = "proto3";
import "chat_identity.proto";
import "sync_settings.proto";
import 'application_metadata_message.proto';
import 'communities.proto';
option go_package = "./;protobuf";
package protobuf;
@ -154,7 +155,7 @@ message SyncCommunityRequestsToJoin {
string chat_id = 5;
bytes community_id = 6;
uint64 state = 7;
map<string, bytes> revealed_addresses = 8;
repeated RevealedAccount revealed_accounts = 8;
}
message SyncInstallation {

View File

@ -103,7 +103,7 @@ func emojisTxt() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0644), modTime: time.Unix(1669629376, 0)}
info := bindataFileInfo{name: "emojis.txt", size: 28134, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf5, 0x28, 0xc, 0x22, 0x34, 0xa1, 0xeb, 0x8, 0x8d, 0xef, 0x38, 0x1b, 0xd8, 0xc2, 0x1a, 0x6d, 0xa2, 0x62, 0xad, 0x43, 0xfc, 0x1c, 0x38, 0xda, 0x8c, 0x3f, 0x34, 0xa, 0x8c, 0x6f, 0x5d, 0xd8}}
return a, nil
}
@ -123,7 +123,7 @@ func ConfigReadmeMd() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0644), modTime: time.Unix(1644328579, 0)}
info := bindataFileInfo{name: "../config/README.md", size: 3031, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x15, 0x44, 0x2b, 0x13, 0x14, 0x34, 0xa, 0x66, 0x62, 0x1b, 0xc6, 0x4a, 0x2c, 0x7d, 0x4d, 0x89, 0xfb, 0xc9, 0x69, 0xe4, 0x18, 0x5f, 0x3, 0x98, 0x6d, 0x3c, 0x9e, 0xa8, 0xcd, 0x53, 0x5d, 0x75}}
return a, nil
}
@ -143,7 +143,7 @@ func ConfigCliAnonMetricNodeClientJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0644), modTime: time.Unix(1630503875, 0)}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-client.json", size: 857, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x90, 0xdf, 0xcd, 0xc8, 0x92, 0x1d, 0x63, 0x5e, 0xe1, 0xf9, 0x7f, 0xed, 0xf2, 0x68, 0x6b, 0x20, 0xff, 0x1d, 0x3b, 0xc9, 0x7b, 0xb9, 0x6a, 0xba, 0xd3, 0xbd, 0xf7, 0x48, 0x7b, 0x5a, 0x52, 0x79}}
return a, nil
}
@ -163,7 +163,7 @@ func ConfigCliAnonMetricNodeServerJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0644), modTime: time.Unix(1630503875, 0)}
info := bindataFileInfo{name: "../config/cli/anon-metric-node-server.json", size: 696, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xf0, 0x2f, 0x97, 0xab, 0x77, 0x61, 0x93, 0x9d, 0x1f, 0x33, 0x18, 0x72, 0xad, 0xce, 0xa3, 0x35, 0xa9, 0x44, 0xbf, 0x29, 0xa8, 0xea, 0x21, 0xb7, 0x22, 0x7f, 0x7d, 0x3a, 0x6b, 0x55, 0x3c, 0x66}}
return a, nil
}
@ -183,7 +183,7 @@ func ConfigCliFleetEthProdJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 3619, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.prod.json", size: 3619, mode: os.FileMode(0664), modTime: time.Unix(1686055892, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x92, 0x4f, 0x86, 0x8b, 0x6e, 0x2, 0x27, 0xa3, 0x37, 0x27, 0x74, 0x51, 0xf0, 0x97, 0x5b, 0x64, 0x8e, 0xbd, 0x29, 0xba, 0x75, 0x2d, 0x75, 0x78, 0x46, 0xb9, 0x56, 0x6, 0xb1, 0xf9, 0x85, 0xdd}}
return a, nil
}
@ -203,7 +203,7 @@ func ConfigCliFleetEthStagingJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2139, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-eth.staging.json", size: 2139, mode: os.FileMode(0664), modTime: time.Unix(1686055892, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb0, 0xac, 0xc9, 0x61, 0x97, 0x42, 0x0, 0x3a, 0xfc, 0x78, 0x11, 0xa1, 0xc7, 0x55, 0x71, 0x46, 0x72, 0x3e, 0x52, 0xb0, 0x89, 0x69, 0x7f, 0x8f, 0xf1, 0x26, 0x44, 0xc5, 0xfc, 0x20, 0x9f, 0xa1}}
return a, nil
}
@ -223,7 +223,7 @@ func ConfigCliFleetStatusProdJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 2338, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-status.prod.json", size: 2338, mode: os.FileMode(0664), modTime: time.Unix(1686055892, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x59, 0xea, 0x14, 0x57, 0xed, 0x60, 0x4d, 0xb6, 0x32, 0x7e, 0xd3, 0xbe, 0x1e, 0xc7, 0xfe, 0x42, 0xee, 0xfe, 0x10, 0xe4, 0x22, 0x64, 0xc1, 0xb9, 0xce, 0x34, 0xcd, 0xdd, 0xe3, 0x38, 0x43, 0xd3}}
return a, nil
}
@ -243,7 +243,7 @@ func ConfigCliFleetStatusTestJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 1457, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-status.test.json", size: 1457, mode: os.FileMode(0664), modTime: time.Unix(1686055892, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xc9, 0x9f, 0x8f, 0x25, 0x1f, 0x31, 0xbd, 0x72, 0x26, 0xb7, 0xd, 0x7e, 0xcb, 0xbb, 0x12, 0xef, 0x9f, 0x1a, 0x2e, 0xb, 0x96, 0x64, 0x7d, 0x52, 0x9e, 0x68, 0x13, 0x55, 0xd5, 0x88, 0x38, 0x7b}}
return a, nil
}
@ -263,7 +263,7 @@ func ConfigCliFleetWakuv2ProdJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 1264, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.prod.json", size: 1264, mode: os.FileMode(0664), modTime: time.Unix(1686055892, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x71, 0xb9, 0x1c, 0x57, 0x50, 0xa9, 0x93, 0x70, 0xcd, 0xd7, 0x22, 0xee, 0x65, 0x72, 0x11, 0x71, 0xd3, 0x20, 0xd0, 0xf0, 0x4d, 0x53, 0x94, 0x44, 0x81, 0xbd, 0x11, 0xed, 0x5e, 0x72, 0x0, 0x12}}
return a, nil
}
@ -283,7 +283,7 @@ func ConfigCliFleetWakuv2TestJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 1264, mode: os.FileMode(0644), modTime: time.Unix(1684838089, 0)}
info := bindataFileInfo{name: "../config/cli/fleet-wakuv2.test.json", size: 1264, mode: os.FileMode(0664), modTime: time.Unix(1686055892, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x2c, 0x67, 0x1e, 0xd1, 0x98, 0x7b, 0xf3, 0x9f, 0x76, 0xa0, 0xbe, 0x67, 0x29, 0xdb, 0xd7, 0x3e, 0xb8, 0x7c, 0x65, 0x2d, 0x2, 0x84, 0xe0, 0xab, 0x8d, 0x3d, 0x4a, 0x53, 0xb4, 0xa7, 0x2e, 0xf0}}
return a, nil
}
@ -303,7 +303,7 @@ func ConfigCliLesEnabledJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "../config/cli/les-enabled.json", size: 58, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x7e, 0xee, 0x27, 0xa7, 0x74, 0xa0, 0x46, 0xa1, 0x41, 0xed, 0x4d, 0x16, 0x5b, 0xf3, 0xf0, 0x7c, 0xc8, 0x2f, 0x6f, 0x47, 0xa4, 0xbb, 0x5f, 0x43, 0x33, 0xd, 0x9, 0x9d, 0xea, 0x9e, 0x15, 0xee}}
return a, nil
}
@ -323,7 +323,7 @@ func ConfigCliMailserverEnabledJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "../config/cli/mailserver-enabled.json", size: 176, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x34, 0xec, 0x81, 0x8b, 0x99, 0xb6, 0xdb, 0xc0, 0x8b, 0x46, 0x97, 0x96, 0xc7, 0x58, 0x30, 0x33, 0xef, 0x54, 0x25, 0x87, 0x7b, 0xb9, 0x94, 0x6b, 0x18, 0xa4, 0x5b, 0x58, 0x67, 0x7c, 0x44, 0xa6}}
return a, nil
}
@ -343,7 +343,7 @@ func ConfigStatusChainGenesisJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "../config/status-chain-genesis.json", size: 612, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xb, 0xf0, 0xc, 0x1, 0x95, 0x65, 0x6, 0x55, 0x48, 0x8f, 0x83, 0xa0, 0xb4, 0x81, 0xda, 0xad, 0x30, 0x6d, 0xb2, 0x78, 0x1b, 0x26, 0x4, 0x13, 0x12, 0x9, 0x6, 0xae, 0x3a, 0x2c, 0x1, 0x71}}
return a, nil
}
@ -363,7 +363,7 @@ func keysBootnodeKey() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/bootnode.key", size: 65, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x31, 0xcf, 0x27, 0xd4, 0x96, 0x2e, 0x32, 0xcd, 0x58, 0x96, 0x2a, 0xe5, 0x8c, 0xa0, 0xf1, 0x73, 0x1f, 0xd6, 0xd6, 0x8b, 0xb, 0x73, 0xd3, 0x2c, 0x84, 0x1a, 0x56, 0xa4, 0x74, 0xb6, 0x95, 0x20}}
return a, nil
}
@ -383,7 +383,7 @@ func keysFirebaseauthkey() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/firebaseauthkey", size: 153, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xe, 0x69, 0x23, 0x64, 0x7d, 0xf9, 0x14, 0x37, 0x6f, 0x2b, 0x1, 0xf0, 0xb0, 0xa4, 0xb2, 0xd0, 0x18, 0xcd, 0xf9, 0xeb, 0x57, 0xa3, 0xfd, 0x79, 0x25, 0xa7, 0x9c, 0x3, 0xce, 0x26, 0xec, 0xe1}}
return a, nil
}
@ -403,7 +403,7 @@ func keysTestAccount1StatusChainPk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/test-account1-status-chain.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8f, 0xba, 0x35, 0x1, 0x2b, 0x9d, 0xad, 0xf0, 0x2d, 0x3c, 0x4d, 0x6, 0xb5, 0x22, 0x2, 0x47, 0xd4, 0x1c, 0xf4, 0x31, 0x2f, 0xb, 0x5b, 0x27, 0x5d, 0x43, 0x97, 0x58, 0x2d, 0xf0, 0xe1, 0xbe}}
return a, nil
}
@ -423,7 +423,7 @@ func keysTestAccount1Pk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/test-account1.pk", size: 491, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9, 0x43, 0xc2, 0xf4, 0x8c, 0xc6, 0x64, 0x25, 0x8c, 0x7, 0x8c, 0xa8, 0x89, 0x2b, 0x7b, 0x9b, 0x4f, 0x81, 0xcb, 0xce, 0x3d, 0xef, 0x82, 0x9c, 0x27, 0x27, 0xa9, 0xc5, 0x46, 0x70, 0x30, 0x38}}
return a, nil
}
@ -443,7 +443,7 @@ func keysTestAccount2StatusChainPk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/test-account2-status-chain.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9, 0xf8, 0x5c, 0xe9, 0x92, 0x96, 0x2d, 0x88, 0x2b, 0x8e, 0x42, 0x3f, 0xa4, 0x93, 0x6c, 0xad, 0xe9, 0xc0, 0x1b, 0x8a, 0x8, 0x8c, 0x5e, 0x7a, 0x84, 0xa2, 0xf, 0x9f, 0x77, 0x58, 0x2c, 0x2c}}
return a, nil
}
@ -463,7 +463,7 @@ func keysTestAccount2Pk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/test-account2.pk", size: 491, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x9f, 0x72, 0xd5, 0x95, 0x5c, 0x5a, 0x99, 0x9d, 0x2f, 0x21, 0x83, 0xd7, 0x10, 0x17, 0x4a, 0x3d, 0x65, 0xc9, 0x26, 0x1a, 0x2c, 0x9d, 0x65, 0x63, 0xd2, 0xa0, 0xfc, 0x7c, 0x0, 0x87, 0x38, 0x9f}}
return a, nil
}
@ -483,7 +483,7 @@ func keysTestAccount3BeforeEip55Pk() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0644), modTime: time.Unix(1607354881, 0)}
info := bindataFileInfo{name: "keys/test-account3-before-eip55.pk", size: 489, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x81, 0x40, 0x56, 0xc1, 0x5e, 0x10, 0x6e, 0x28, 0x15, 0x3, 0x4e, 0xc4, 0xc4, 0x71, 0x4d, 0x16, 0x99, 0xcc, 0x1b, 0x63, 0xee, 0x10, 0x20, 0xe4, 0x59, 0x52, 0x3f, 0xc0, 0xad, 0x15, 0x13, 0x72}}
return a, nil
}

View File

@ -86,7 +86,7 @@ func configPublicChainAccountsJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0644), modTime: time.Unix(1683558704, 0)}
info := bindataFileInfo{name: "config/public-chain-accounts.json", size: 307, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x76, 0x5d, 0xc0, 0xfe, 0x57, 0x50, 0x18, 0xec, 0x2d, 0x61, 0x1b, 0xa9, 0x81, 0x11, 0x5f, 0x77, 0xf7, 0xb6, 0x67, 0x82, 0x1, 0x40, 0x68, 0x9d, 0xc5, 0x41, 0xaf, 0xce, 0x43, 0x81, 0x92, 0x96}}
return a, nil
}
@ -106,7 +106,7 @@ func configStatusChainAccountsJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "config/status-chain-accounts.json", size: 543, mode: os.FileMode(0644), modTime: time.Unix(1683558704, 0)}
info := bindataFileInfo{name: "config/status-chain-accounts.json", size: 543, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0x8e, 0xb3, 0x61, 0x51, 0x70, 0x3c, 0x12, 0x3e, 0xf1, 0x1c, 0x81, 0xfb, 0x9a, 0x7c, 0xe3, 0x63, 0xd0, 0x8f, 0x12, 0xc5, 0x2d, 0xf4, 0xea, 0x27, 0x33, 0xef, 0xca, 0xf9, 0x3f, 0x72, 0x44, 0xbf}}
return a, nil
}
@ -126,7 +126,7 @@ func configTestDataJson() (*asset, error) {
return nil, err
}
info := bindataFileInfo{name: "config/test-data.json", size: 84, mode: os.FileMode(0644), modTime: time.Unix(1683558704, 0)}
info := bindataFileInfo{name: "config/test-data.json", size: 84, mode: os.FileMode(0664), modTime: time.Unix(1685705602, 0)}
a := &asset{bytes: bytes, info: info, digest: [32]uint8{0xce, 0x9d, 0x80, 0xf5, 0x87, 0xfa, 0x57, 0x1d, 0xa1, 0xd5, 0x7a, 0x10, 0x3, 0xac, 0xd7, 0xf4, 0x64, 0x32, 0x96, 0x2b, 0xb7, 0x21, 0xb7, 0xa6, 0x80, 0x40, 0xe9, 0x65, 0xe3, 0xd6, 0xbd, 0x40}}
return a, nil
}