diff --git a/admin/billing.go b/admin/billing.go index 7e4df576932..1b5a3aed1a1 100644 --- a/admin/billing.go +++ b/admin/billing.go @@ -201,16 +201,18 @@ func (s *Service) RepairOrganizationBilling(ctx context.Context, org *database.O return nil, nil, fmt.Errorf("failed to start trial: %w", err) } - // send trial started email - err = s.Email.SendTrialStarted(&email.TrialStarted{ - ToEmail: org.BillingEmail, - ToName: org.Name, - OrgName: org.Name, - FrontendURL: s.URLs.Frontend(), - TrialEndDate: sub.TrialEndDate, - }) - if err != nil { - s.Logger.Named("billing").Error("failed to send trial started email", zap.String("org_name", org.Name), zap.String("org_id", org.ID), zap.String("billing_email", org.BillingEmail), zap.Error(err)) + // Only send the trial-started email for trial-based plans; free plan has no trial period + if sub.Plan == nil || sub.Plan.PlanType != billing.FreePlanType { + err = s.Email.SendTrialStarted(&email.TrialStarted{ + ToEmail: org.BillingEmail, + ToName: org.Name, + OrgName: org.Name, + FrontendURL: s.URLs.Frontend(), + TrialEndDate: sub.TrialEndDate, + }) + if err != nil { + s.Logger.Named("billing").Error("failed to send trial started email", zap.String("org_name", org.Name), zap.String("org_id", org.ID), zap.String("billing_email", org.BillingEmail), zap.Error(err)) + } } } else { s.Logger.Named("billing").Warn("subscription already exists for org", zap.String("org_id", org.ID), zap.String("org_name", org.Name)) @@ -273,7 +275,8 @@ func (s *Service) StartTrial(ctx context.Context, org *database.Organization) (* return nil, nil, fmt.Errorf("failed to create subscription: %w", err) } - if org.CreatedByUserID != nil { + // Only count trial orgs for trial-based plans (not Free) + if plan.PlanType != billing.FreePlanType && org.CreatedByUserID != nil { err = s.DB.IncrementCurrentTrialOrgCount(ctx, *org.CreatedByUserID) if err != nil { return nil, nil, fmt.Errorf("failed to increment current trial org count: %w", err) @@ -286,22 +289,6 @@ func (s *Service) StartTrial(ctx context.Context, org *database.Organization) (* return org, sub, nil } - var userEmail string - if org.CreatedByUserID != nil { - user, err := s.DB.FindUser(ctx, *org.CreatedByUserID) - if err != nil { - return nil, nil, fmt.Errorf("failed to get user info: %w", err) - } - userEmail = user.Email - } - - s.Logger.Named("billing").Info("started trial for organization", - zap.String("org_name", org.Name), - zap.String("org_id", org.ID), - zap.String("trial_end_date", sub.TrialEndDate.String()), - zap.String("user_email", userEmail), - ) - org, err = s.DB.UpdateOrganization(ctx, org.ID, &database.UpdateOrganizationOptions{ Name: org.Name, DisplayName: org.DisplayName, @@ -339,6 +326,28 @@ func (s *Service) StartTrial(ctx context.Context, org *database.Organization) (* return nil, nil, err } + // Free plan: grant initial credits in DB; no trial issue, billing tracked via credit worker + if plan.PlanType == billing.FreePlanType { + creditAmount := 250.0 + creditExpiry := time.Now().AddDate(1, 0, 0) // 1 year from now + err := s.DB.SetOrganizationCredits(ctx, org.ID, creditAmount, creditExpiry) + if err != nil { + return nil, nil, fmt.Errorf("failed to grant free plan credits: %w", err) + } + s.Logger.Named("billing").Info("started free plan for organization", + zap.String("org_name", org.Name), + zap.String("org_id", org.ID), + zap.Float64("credits_granted", creditAmount), + ) + return org, sub, nil + } + + s.Logger.Named("billing").Info("started trial for organization", + zap.String("org_name", org.Name), + zap.String("org_id", org.ID), + zap.String("trial_end_date", sub.TrialEndDate.String()), + ) + // raise on-trial billing warning _, err = s.DB.UpsertBillingIssue(ctx, &database.UpsertBillingIssueOptions{ OrgID: org.ID, @@ -418,6 +427,21 @@ func (s *Service) CleanupTrialBillingIssues(ctx context.Context, orgID string) e return nil } +// CleanupCreditBillingIssues removes free-plan credit billing issues (called on upgrade to Growth) +func (s *Service) CleanupCreditBillingIssues(ctx context.Context, orgID string) error { + for _, t := range []database.BillingIssueType{ + database.BillingIssueTypeCreditLow, + database.BillingIssueTypeCreditCritical, + database.BillingIssueTypeCreditExhausted, + } { + err := s.DB.DeleteBillingIssueByTypeForOrg(ctx, orgID, t) + if err != nil && !errors.Is(err, database.ErrNotFound) { + return fmt.Errorf("failed to delete credit billing issue: %w", err) + } + } + return nil +} + // CleanupSubscriptionBillingIssues removes subscription related billing issues func (s *Service) CleanupSubscriptionBillingIssues(ctx context.Context, orgID string) error { err := s.DB.DeleteBillingIssueByTypeForOrg(ctx, orgID, database.BillingIssueTypeNeverSubscribed) @@ -481,6 +505,17 @@ func (s *Service) CheckBlockingBillingErrors(ctx context.Context, orgID string) return fmt.Errorf("subscription cancelled") } + be, err = s.DB.FindBillingIssueByTypeForOrg(ctx, orgID, database.BillingIssueTypeCreditExhausted) + if err != nil { + if !errors.Is(err, database.ErrNotFound) { + return err + } + } + + if be != nil { + return fmt.Errorf("free credit exhausted") + } + return nil } diff --git a/admin/billing/biller.go b/admin/billing/biller.go index 2622e3b6204..bc63596feba 100644 --- a/admin/billing/biller.go +++ b/admin/billing/biller.go @@ -62,6 +62,14 @@ type Biller interface { ReportUsage(ctx context.Context, usage []*Usage) error + // GetCreditBalance returns the credit balance for the given customer. + // Returns nil if the customer has no credit grants (e.g. not on a free plan). + GetCreditBalance(ctx context.Context, customerID string) (*CreditBalance, error) + // AddCredits adds a credit grant to the given customer. Returns the new total balance. + AddCredits(ctx context.Context, customerID string, amount float64, expiryDate time.Time, description string) (*CreditBalance, error) + // VoidCredits voids all active credit grants for the given customer (called on upgrade from Free to Growth). + VoidCredits(ctx context.Context, customerID string) error + GetReportingGranularity() UsageReportingGranularity GetReportingWorkerCron() string @@ -81,6 +89,8 @@ const ( TeamPlanType ManagedPlanType EnterprisePlanType + FreePlanType + GrowthPlanType ) type Plan struct { @@ -108,12 +118,12 @@ type Quotas struct { type planMetadata struct { Default bool `mapstructure:"default"` Public bool `mapstructure:"public"` - StorageLimitBytesPerDeployment *int64 `mapstructure:"storage_limit_bytes_per_deployment"` - NumProjects *int `mapstructure:"num_projects"` - NumDeployments *int `mapstructure:"num_deployments"` - NumSlotsTotal *int `mapstructure:"num_slots_total"` - NumSlotsPerDeployment *int `mapstructure:"num_slots_per_deployment"` - NumOutstandingInvites *int `mapstructure:"num_outstanding_invites"` + StorageLimitBytesPerDeployment *int64 `mapstructure:"storage_limit_bytes_per_deployment"` + NumProjects *int `mapstructure:"num_projects"` + NumDeployments *int `mapstructure:"num_deployments"` + NumSlotsTotal *int `mapstructure:"num_slots_total"` + NumSlotsPerDeployment *int `mapstructure:"num_slots_per_deployment"` + NumOutstandingInvites *int `mapstructure:"num_outstanding_invites"` } type Subscription struct { @@ -136,6 +146,14 @@ type Customer struct { PortalURL string } +type CreditBalance struct { + TotalCredit float64 + UsedCredit float64 + RemainingCredit float64 + ExpiryDate time.Time + BurnRatePerDay float64 // Estimated daily burn rate based on recent usage +} + type Usage struct { CustomerID string MetricName string diff --git a/admin/billing/noop.go b/admin/billing/noop.go index 819b5817c8c..b92b582f133 100644 --- a/admin/billing/noop.go +++ b/admin/billing/noop.go @@ -109,6 +109,18 @@ func (n noop) UnmarkCustomerTaxExempt(ctx context.Context, customerID string) er return nil } +func (n noop) GetCreditBalance(ctx context.Context, customerID string) (*CreditBalance, error) { + return nil, nil +} + +func (n noop) AddCredits(ctx context.Context, customerID string, amount float64, expiryDate time.Time, description string) (*CreditBalance, error) { + return nil, nil +} + +func (n noop) VoidCredits(ctx context.Context, customerID string) error { + return nil +} + func (n noop) ReportUsage(ctx context.Context, usage []*Usage) error { return nil } diff --git a/admin/billing/orb.go b/admin/billing/orb.go index 987f9f308a2..12fda8181ae 100644 --- a/admin/billing/orb.go +++ b/admin/billing/orb.go @@ -73,6 +73,13 @@ func (o *Orb) GetDefaultPlan(ctx context.Context) (*Plan, error) { if err != nil { return nil, err } + // Prefer the Free plan as default for new organizations + for _, p := range plans { + if p.PlanType == FreePlanType { + return p, nil + } + } + // Fall back to any plan marked as default in Orb metadata for _, p := range plans { if p.Default { return p, nil @@ -386,6 +393,174 @@ func (o *Orb) UnmarkCustomerTaxExempt(ctx context.Context, customerID string) er return nil } +func (o *Orb) GetCreditBalance(ctx context.Context, customerID string) (*CreditBalance, error) { + if customerID == "" { + return nil, ErrCustomerIDRequired + } + + // Read the credit ledger (ordered by most recent first by default). + // The most recent entry's EndingBalance is the current balance. + // We scan all increment entries to compute the total granted. + ledger, err := o.client.Customers.Credits.Ledger.ListByExternalID(ctx, customerID, orb.CustomerCreditLedgerListByExternalIDParams{ + Limit: orb.F(int64(100)), + }) + if err != nil { + var orbErr *orb.Error + if errors.As(err, &orbErr) && orbErr.Status == orb.ErrorStatus404 { + o.logger.Info("credit balance: customer not found in Orb ledger", zap.String("customer_id", customerID)) + return nil, nil + } + return nil, err + } + + o.logger.Info("credit balance: ledger response", + zap.String("customer_id", customerID), + zap.Int("entry_count", len(ledger.Data)), + ) + for i, e := range ledger.Data { + o.logger.Info("credit balance: ledger entry", + zap.Int("index", i), + zap.String("id", e.ID), + zap.String("entry_status", string(e.EntryStatus)), + zap.Float64("amount", e.Amount), + zap.Float64("starting_balance", e.StartingBalance), + zap.Float64("ending_balance", e.EndingBalance), + zap.String("currency", e.Currency), + zap.String("description", e.Description), + zap.Time("created_at", e.CreatedAt), + ) + } + + if len(ledger.Data) == 0 { + return nil, nil + } + + // Current balance is the most recent entry's ending balance + remainingCredit := ledger.Data[0].EndingBalance + + // Sum all increment entries to get total granted; track earliest grant date + var totalCredit float64 + var earliestGrant time.Time + var latestExpiry time.Time + for _, entry := range ledger.Data { + if entry.EntryStatus == orb.CustomerCreditLedgerListByExternalIDResponseEntryStatusCommitted && + entry.Amount > 0 { + totalCredit += entry.Amount + if earliestGrant.IsZero() || entry.CreatedAt.Before(earliestGrant) { + earliestGrant = entry.CreatedAt + } + } + } + + // If no committed increments found, use the ending balance as both total and remaining + if totalCredit == 0 { + totalCredit = remainingCredit + } + + if totalCredit == 0 && remainingCredit == 0 { + return nil, nil + } + + usedCredit := totalCredit - remainingCredit + if usedCredit < 0 { + usedCredit = 0 + } + + // Estimate burn rate from credit usage + var burnRatePerDay float64 + if usedCredit > 0 && !earliestGrant.IsZero() { + daysSinceStart := time.Since(earliestGrant).Hours() / 24 + if daysSinceStart > 0 { + burnRatePerDay = usedCredit / daysSinceStart + } + } + + o.logger.Info("credit balance: computed from ledger", + zap.String("customer_id", customerID), + zap.Int("ledger_entries", len(ledger.Data)), + zap.Float64("total", totalCredit), + zap.Float64("used", usedCredit), + zap.Float64("remaining", remainingCredit), + zap.Float64("burn_rate_per_day", burnRatePerDay), + zap.Time("latest_expiry", latestExpiry), + ) + + return &CreditBalance{ + TotalCredit: totalCredit, + UsedCredit: usedCredit, + RemainingCredit: remainingCredit, + ExpiryDate: latestExpiry, + BurnRatePerDay: burnRatePerDay, + }, nil +} + +func (o *Orb) AddCredits(ctx context.Context, customerID string, amount float64, expiryDate time.Time, description string) (*CreditBalance, error) { + if customerID == "" { + return nil, ErrCustomerIDRequired + } + + ledgerResp, err := o.client.Customers.Credits.Ledger.NewEntryByExternalID(ctx, customerID, orb.CustomerCreditLedgerNewEntryByExternalIDParamsAddIncrementCreditLedgerEntryRequestParams{ + Amount: orb.F(amount), + EntryType: orb.F(orb.CustomerCreditLedgerNewEntryByExternalIDParamsAddIncrementCreditLedgerEntryRequestParamsEntryTypeIncrement), + ExpiryDate: orb.F(expiryDate), + Description: orb.F(description), + Currency: orb.F("USD"), + }) + if err != nil { + return nil, fmt.Errorf("failed to add credits: %w", err) + } + + o.logger.Info("AddCredits: Orb ledger entry created", + zap.String("customer_id", customerID), + zap.Float64("amount", amount), + zap.String("ledger_id", ledgerResp.ID), + zap.String("entry_status", string(ledgerResp.EntryStatus)), + zap.Float64("starting_balance", ledgerResp.StartingBalance), + zap.Float64("ending_balance", ledgerResp.EndingBalance), + zap.Float64("ledger_amount", ledgerResp.Amount), + ) + + // Return updated balance + return o.GetCreditBalance(ctx, customerID) +} + +func (o *Orb) VoidCredits(ctx context.Context, customerID string) error { + if customerID == "" { + return ErrCustomerIDRequired + } + + // List all active USD credit blocks for this customer + credits, err := o.client.Customers.Credits.ListByExternalID(ctx, customerID, orb.CustomerCreditListByExternalIDParams{ + Currency: orb.F("USD"), + IncludeAllBlocks: orb.F(false), + }) + if err != nil { + var orbErr *orb.Error + if errors.As(err, &orbErr) && orbErr.Status == orb.ErrorStatus404 { + return nil // no customer, nothing to void + } + return fmt.Errorf("failed to list credits for void: %w", err) + } + + for _, c := range credits.Data { + if c.Balance <= 0 { + continue + } + _, err = o.client.Customers.Credits.Ledger.NewEntryByExternalID(ctx, customerID, orb.CustomerCreditLedgerNewEntryByExternalIDParamsAddVoidCreditLedgerEntryRequestParams{ + Amount: orb.F(c.Balance), + BlockID: orb.F(c.ID), + EntryType: orb.F(orb.CustomerCreditLedgerNewEntryByExternalIDParamsAddVoidCreditLedgerEntryRequestParamsEntryTypeVoid), + Currency: orb.F("USD"), + Description: orb.F("Credits voided on upgrade to Growth plan"), + }) + if err != nil { + return fmt.Errorf("failed to void credit block %s: %w", c.ID, err) + } + } + + return nil +} + func (o *Orb) ReportUsage(ctx context.Context, usage []*Usage) error { var orbUsage []orb.EventIngestParamsEvent // sync max 500 events at a time @@ -651,6 +826,10 @@ func getPlanType(externalID string) PlanType { return TeamPlanType case "managed": return ManagedPlanType + case "free-plan": + return FreePlanType + case "growth-plan": + return GrowthPlanType default: return EnterprisePlanType } @@ -664,6 +843,10 @@ func getPlanDisplayName(externalID string) string { return "Team" case "managed": return "Managed" + case "free-plan": + return "Free" + case "growth-plan": + return "Growth" default: return "Enterprise" } diff --git a/admin/database/database.go b/admin/database/database.go index ed3b97959d7..36426c320e2 100644 --- a/admin/database/database.go +++ b/admin/database/database.go @@ -56,6 +56,7 @@ type DB interface { FindMigrationVersion(ctx context.Context) (int, error) FindOrganizations(ctx context.Context, afterName string, limit int) ([]*Organization, error) + FindOrganizationsByBillingPlanName(ctx context.Context, planName string, afterName string, limit int) ([]*Organization, error) FindOrganizationsForUser(ctx context.Context, userID string, afterName string, limit int) ([]*Organization, error) FindOrganization(ctx context.Context, id string) (*Organization, error) FindOrganizationByName(ctx context.Context, name string) (*Organization, error) @@ -91,6 +92,8 @@ type DB interface { InsertProject(ctx context.Context, opts *InsertProjectOptions) (*Project, error) DeleteProject(ctx context.Context, id string) error UpdateProject(ctx context.Context, id string, opts *UpdateProjectOptions) (*Project, error) + UpdateProjectOlapConnector(ctx context.Context, id string, olapConnector string) error + UpdateProjectClusterSlots(ctx context.Context, id string, clusterSlots int64) error CountProjectsForOrganization(ctx context.Context, orgID string) (int, error) CountProjectsQuotaUsage(ctx context.Context, orgID string) (*ProjectsQuotaUsage, error) FindProjectWhitelistedDomain(ctx context.Context, projectID, domain string) (*ProjectWhitelistedDomain, error) @@ -326,6 +329,12 @@ type DB interface { FindOrganizationForPaymentCustomerID(ctx context.Context, customerID string) (*Organization, error) FindOrganizationForBillingCustomerID(ctx context.Context, customerID string) (*Organization, error) + // Credit operations for free-plan orgs + SetOrganizationCredits(ctx context.Context, orgID string, total float64, expiry time.Time) error + AddOrganizationCredits(ctx context.Context, orgID string, amount float64, expiry time.Time) error + IncrementOrganizationCreditUsed(ctx context.Context, orgID string, amount float64) error + ResetOrganizationCredits(ctx context.Context, orgID string) error + FindBillingIssuesForOrg(ctx context.Context, orgID string) ([]*BillingIssue, error) FindBillingIssueByTypeForOrg(ctx context.Context, orgID string, errorType BillingIssueType) (*BillingIssue, error) FindBillingIssueByType(ctx context.Context, errorType BillingIssueType) ([]*BillingIssue, error) @@ -393,8 +402,11 @@ type Organization struct { PaymentCustomerID string `db:"payment_customer_id"` BillingEmail string `db:"billing_email"` BillingPlanName *string `db:"billing_plan_name"` - BillingPlanDisplayName *string `db:"billing_plan_display_name"` - CreatedByUserID *string `db:"created_by_user_id"` + BillingPlanDisplayName *string `db:"billing_plan_display_name"` + CreatedByUserID *string `db:"created_by_user_id"` + CreditTotal float64 `db:"credit_total"` + CreditUsed float64 `db:"credit_used"` + CreditExpiry *time.Time `db:"credit_expiry"` } // InsertOrganizationOptions defines options for inserting a new org @@ -507,6 +519,17 @@ type Project struct { // Annotations are internally configured key-value metadata about the project. // They propagate to the project's deployments and telemetry. Annotations map[string]string `db:"annotations"` + // ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + ChcClusterSize *float64 `db:"chc_cluster_size"` + // ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + // For Live Connect projects, this represents the base slots from the BYOLAP cluster. + ClusterSlots *int64 `db:"cluster_slots"` + // InfraSlots is the Rill infrastructure overhead slot allocation for the project. + // Adjustable by Rill staff; defaults to 4 for Live Connect, 0 for Rill Managed. + InfraSlots *int64 `db:"infra_slots"` + // OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + // Persisted so the frontend can show the correct engine label even when the project is hibernated. + OlapConnector *string `db:"olap_connector"` // CreatedOn is the time the project was created. CreatedOn time.Time `db:"created_on"` // UpdatedOn is the time the project was last updated. @@ -557,6 +580,9 @@ type UpdateProjectOptions struct { DevSlots int DevTTLSeconds int64 Annotations map[string]string + ChcClusterSize *float64 + ClusterSlots *int64 + InfraSlots *int64 } // DeploymentStatus is an enum representing the state of a deployment @@ -1305,6 +1331,9 @@ const ( BillingIssueTypePaymentFailed = 5 BillingIssueTypeSubscriptionCancelled = 6 BillingIssueTypeNeverSubscribed = 7 + BillingIssueTypeCreditLow = 8 + BillingIssueTypeCreditCritical = 9 + BillingIssueTypeCreditExhausted = 10 ) type BillingIssueLevel int @@ -1366,6 +1395,24 @@ type BillingIssueMetadataSubscriptionCancelled struct { type BillingIssueMetadataNeverSubscribed struct{} +type BillingIssueMetadataCreditLow struct { + CreditRemaining float64 `json:"credit_remaining"` + CreditTotal float64 `json:"credit_total"` + CreditExpiry time.Time `json:"credit_expiry"` +} + +type BillingIssueMetadataCreditCritical struct { + CreditRemaining float64 `json:"credit_remaining"` + CreditTotal float64 `json:"credit_total"` + CreditExpiry time.Time `json:"credit_expiry"` +} + +type BillingIssueMetadataCreditExhausted struct { + CreditTotal float64 `json:"credit_total"` + CreditExpiry time.Time `json:"credit_expiry"` + ExhaustedOn time.Time `json:"exhausted_on"` +} + type UpsertBillingIssueOptions struct { OrgID string `validate:"required"` Type BillingIssueType `validate:"required"` diff --git a/admin/database/postgres/migrations/0093.sql b/admin/database/postgres/migrations/0093.sql new file mode 100644 index 00000000000..ea9ea8090a0 --- /dev/null +++ b/admin/database/postgres/migrations/0093.sql @@ -0,0 +1,2 @@ +ALTER TABLE projects ADD COLUMN chc_cluster_size DOUBLE PRECISION; +ALTER TABLE projects ADD COLUMN rill_min_slots BIGINT; diff --git a/admin/database/postgres/migrations/0094.sql b/admin/database/postgres/migrations/0094.sql new file mode 100644 index 00000000000..0340d170b4a --- /dev/null +++ b/admin/database/postgres/migrations/0094.sql @@ -0,0 +1 @@ +ALTER TABLE projects ADD COLUMN infra_slots BIGINT; diff --git a/admin/database/postgres/migrations/0095.sql b/admin/database/postgres/migrations/0095.sql new file mode 100644 index 00000000000..1ce4972d417 --- /dev/null +++ b/admin/database/postgres/migrations/0095.sql @@ -0,0 +1 @@ +ALTER TABLE projects ADD COLUMN olap_connector TEXT; diff --git a/admin/database/postgres/migrations/0096.sql b/admin/database/postgres/migrations/0096.sql new file mode 100644 index 00000000000..163df9a2412 --- /dev/null +++ b/admin/database/postgres/migrations/0096.sql @@ -0,0 +1 @@ +ALTER TABLE projects RENAME COLUMN rill_min_slots TO cluster_slots; diff --git a/admin/database/postgres/migrations/0097.sql b/admin/database/postgres/migrations/0097.sql new file mode 100644 index 00000000000..143afa24f1a --- /dev/null +++ b/admin/database/postgres/migrations/0097.sql @@ -0,0 +1,3 @@ +ALTER TABLE orgs ADD COLUMN credit_total DOUBLE PRECISION NOT NULL DEFAULT 0; +ALTER TABLE orgs ADD COLUMN credit_used DOUBLE PRECISION NOT NULL DEFAULT 0; +ALTER TABLE orgs ADD COLUMN credit_expiry TIMESTAMPTZ; diff --git a/admin/database/postgres/postgres.go b/admin/database/postgres/postgres.go index 60d8298ab24..d6607ad4485 100644 --- a/admin/database/postgres/postgres.go +++ b/admin/database/postgres/postgres.go @@ -65,6 +65,15 @@ func (c *connection) FindOrganizations(ctx context.Context, afterName string, li return res, nil } +func (c *connection) FindOrganizationsByBillingPlanName(ctx context.Context, planName, afterName string, limit int) ([]*database.Organization, error) { + var res []*database.Organization + err := c.getDB(ctx).SelectContext(ctx, &res, "SELECT * FROM orgs WHERE billing_plan_name = $1 AND lower(name) > lower($2) ORDER BY lower(name) LIMIT $3", planName, afterName, limit) + if err != nil { + return nil, parseErr("orgs", err) + } + return res, nil +} + func (c *connection) FindOrganizationsForUser(ctx context.Context, userID, afterName string, limit int) ([]*database.Organization, error) { var res []*database.Organization err := c.getDB(ctx).SelectContext(ctx, &res, ` @@ -530,8 +539,11 @@ func (c *connection) UpdateProject(ctx context.Context, id string, opts *databas prod_version = $17, dev_slots = $18, dev_ttl_seconds = $19, + chc_cluster_size = $20, + cluster_slots = $21, + infra_slots = $22, updated_on = now() - WHERE id = $20 + WHERE id = $23 RETURNING * `, opts.Name, @@ -553,6 +565,9 @@ func (c *connection) UpdateProject(ctx context.Context, id string, opts *databas opts.ProdVersion, opts.DevSlots, opts.DevTTLSeconds, + opts.ChcClusterSize, + opts.ClusterSlots, + opts.InfraSlots, id, ).StructScan(res) if err != nil { @@ -561,6 +576,48 @@ func (c *connection) UpdateProject(ctx context.Context, id string, opts *databas return c.projectFromDTO(res) } +func (c *connection) UpdateProjectOlapConnector(ctx context.Context, id string, olapConnector string) error { + _, err := c.getDB(ctx).ExecContext(ctx, "UPDATE projects SET olap_connector = $1 WHERE id = $2", olapConnector, id) + return parseErr("project", err) +} + +func (c *connection) UpdateProjectClusterSlots(ctx context.Context, id string, clusterSlots int64) error { + _, err := c.getDB(ctx).ExecContext(ctx, "UPDATE projects SET cluster_slots = $1 WHERE id = $2", clusterSlots, id) + return parseErr("project", err) +} + +func (c *connection) SetOrganizationCredits(ctx context.Context, orgID string, total float64, expiry time.Time) error { + _, err := c.getDB(ctx).ExecContext(ctx, + "UPDATE orgs SET credit_total = $1, credit_used = 0, credit_expiry = $2 WHERE id = $3", + total, expiry, orgID, + ) + return parseErr("org", err) +} + +func (c *connection) AddOrganizationCredits(ctx context.Context, orgID string, amount float64, expiry time.Time) error { + _, err := c.getDB(ctx).ExecContext(ctx, + "UPDATE orgs SET credit_total = credit_total + $1, credit_expiry = $2 WHERE id = $3", + amount, expiry, orgID, + ) + return parseErr("org", err) +} + +func (c *connection) IncrementOrganizationCreditUsed(ctx context.Context, orgID string, amount float64) error { + _, err := c.getDB(ctx).ExecContext(ctx, + "UPDATE orgs SET credit_used = LEAST(credit_used + $1, credit_total) WHERE id = $2", + amount, orgID, + ) + return parseErr("org", err) +} + +func (c *connection) ResetOrganizationCredits(ctx context.Context, orgID string) error { + _, err := c.getDB(ctx).ExecContext(ctx, + "UPDATE orgs SET credit_total = 0, credit_used = 0, credit_expiry = NULL WHERE id = $1", + orgID, + ) + return parseErr("org", err) +} + func (c *connection) CountProjectsQuotaUsage(ctx context.Context, orgID string) (*database.ProjectsQuotaUsage, error) { res := &database.ProjectsQuotaUsage{} err := c.getDB(ctx).QueryRowxContext(ctx, ` @@ -3721,6 +3778,12 @@ func (b *billingIssueDTO) AsModel() *database.BillingIssue { metadata = &database.BillingIssueMetadataSubscriptionCancelled{} case database.BillingIssueTypeNeverSubscribed: metadata = &database.BillingIssueMetadataNeverSubscribed{} + case database.BillingIssueTypeCreditLow: + metadata = &database.BillingIssueMetadataCreditLow{} + case database.BillingIssueTypeCreditCritical: + metadata = &database.BillingIssueMetadataCreditCritical{} + case database.BillingIssueTypeCreditExhausted: + metadata = &database.BillingIssueMetadataCreditExhausted{} default: } if err := json.Unmarshal(b.Metadata, &metadata); err != nil { @@ -3741,7 +3804,7 @@ func (b *billingIssueDTO) getBillingIssueLevel() database.BillingIssueLevel { if b.Type == database.BillingIssueTypeUnspecified { return database.BillingIssueLevelUnspecified } - if b.Type == database.BillingIssueTypeOnTrial { + if b.Type == database.BillingIssueTypeOnTrial || b.Type == database.BillingIssueTypeCreditLow { return database.BillingIssueLevelWarning } return database.BillingIssueLevelError diff --git a/admin/jobs/jobs.go b/admin/jobs/jobs.go index 4e86d02472b..fbd895cab15 100644 --- a/admin/jobs/jobs.go +++ b/admin/jobs/jobs.go @@ -35,6 +35,7 @@ type Client interface { CheckProvisioners(ctx context.Context) (*InsertResult, error) BillingReporter(ctx context.Context) (*InsertResult, error) + CreditCheck(ctx context.Context) (*InsertResult, error) DeleteExpiredAuthCodes(ctx context.Context) (*InsertResult, error) DeleteExpiredDeviceAuthCodes(ctx context.Context) (*InsertResult, error) DeleteExpiredTokens(ctx context.Context) (*InsertResult, error) diff --git a/admin/jobs/noop.go b/admin/jobs/noop.go index d6434b45829..08cb4f19c20 100644 --- a/admin/jobs/noop.go +++ b/admin/jobs/noop.go @@ -92,6 +92,10 @@ func (n *noop) BillingReporter(ctx context.Context) (*InsertResult, error) { return nil, nil } +func (n *noop) CreditCheck(ctx context.Context) (*InsertResult, error) { + return nil, nil +} + func (n *noop) DeleteExpiredAuthCodes(ctx context.Context) (*InsertResult, error) { return nil, nil } diff --git a/admin/jobs/river/billing_reporter.go b/admin/jobs/river/billing_reporter.go index 7c256c20c3b..792c9674a1c 100644 --- a/admin/jobs/river/billing_reporter.go +++ b/admin/jobs/river/billing_reporter.go @@ -3,10 +3,14 @@ package river import ( "context" "fmt" + "strings" "time" "github.com/rilldata/rill/admin" "github.com/rilldata/rill/admin/billing" + "github.com/rilldata/rill/admin/database" + runtimev1 "github.com/rilldata/rill/proto/gen/rill/runtime/v1" + "github.com/rilldata/rill/runtime/client" "github.com/riverqueue/river" "go.uber.org/zap" ) @@ -23,6 +27,9 @@ type BillingReporterWorker struct { // NewBillingReporterWorker creates a new worker that reports billing information. func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[BillingReporterArgs]) error { + // Sync OLAP connector types for running deployments (best-effort; runs even if billing fails). + w.syncOlapConnectors(ctx) + // Get reporting granularity var granularity time.Duration var sqlGrainIdentifier string @@ -71,7 +78,10 @@ func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[Billing return nil } + const slotRatePerHr = 0.15 // $/slot/hr for credit accounting + reportedOrgs := make(map[string]struct{}) + orgCreditCost := make(map[string]float64) // org_id -> accumulated dollar cost for this reporting window stop := false limit := 10000 afterTime := time.Time{} @@ -107,6 +117,10 @@ func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[Billing for _, m := range u { reportedOrgs[m.OrgID] = struct{}{} + // Accumulate slot cost per org for free-plan credit accounting + hours := m.EndTime.Sub(m.StartTime).Hours() + orgCreditCost[m.OrgID] += m.MaxValue * slotRatePerHr * hours + customerID := m.OrgID if m.BillingCustomerID != nil && *m.BillingCustomerID != "" { // org might have been deleted or recently created in both cases billing customer id will be null. If billing not initialized for the org, then it will be empty string @@ -114,6 +128,13 @@ func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[Billing customerID = *m.BillingCustomerID } + meta := map[string]interface{}{ + "org_id": m.OrgID, + "project_id": m.ProjectID, + "project_name": m.ProjectName, + "billing_service": m.BillingService, + } + usage = append(usage, &billing.Usage{ CustomerID: customerID, MetricName: m.EventName, @@ -121,7 +142,7 @@ func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[Billing ReportingGrain: w.admin.Biller.GetReportingGranularity(), StartTime: m.StartTime, EndTime: m.EndTime, - Metadata: map[string]interface{}{"org_id": m.OrgID, "project_id": m.ProjectID, "project_name": m.ProjectName, "billing_service": m.BillingService}, + Metadata: meta, }) } @@ -154,6 +175,16 @@ func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[Billing return fmt.Errorf("failed to update last usage reporting time: %w", err) } + // Increment credit_used for free-plan orgs based on slot usage cost + for orgID, cost := range orgCreditCost { + if cost <= 0 { + continue + } + if err := w.admin.DB.IncrementOrganizationCreditUsed(ctx, orgID, cost); err != nil { + w.logger.Warn("failed to increment credit usage for org", zap.String("org_id", orgID), zap.Float64("cost", cost), zap.Error(err)) + } + } + // TODO move the validation to background job // get orgs which have billing customer id orgs, err := w.admin.DB.FindOrganizationIDsWithBilling(ctx) @@ -175,5 +206,166 @@ func (w *BillingReporterWorker) Work(ctx context.Context, job *river.Job[Billing } } } + return nil } + +// syncOlapConnectors detects and persists the OLAP connector driver type for running deployments. +// This allows the frontend to show the correct engine label even when a project is hibernated. +func (w *BillingReporterWorker) syncOlapConnectors(ctx context.Context) { + afterID := "" + limit := 100 + for { + depls, err := w.admin.DB.FindDeployments(ctx, afterID, limit) + if err != nil { + w.logger.Warn("olap sync: failed to list deployments", zap.Error(err)) + return + } + for _, depl := range depls { + if depl.Status != database.DeploymentStatusRunning { + continue + } + w.syncOlapConnectorForDeployment(ctx, depl) + } + if len(depls) < limit { + break + } + afterID = depls[len(depls)-1].ID + } +} + +func (w *BillingReporterWorker) syncOlapConnectorForDeployment(ctx context.Context, depl *database.Deployment) { + proj, err := w.admin.DB.FindProject(ctx, depl.ProjectID) + if err != nil { + w.logger.Debug("olap sync: failed to find project", zap.String("project_id", depl.ProjectID), zap.Error(err)) + return + } + + rt, err := w.admin.OpenRuntimeClient(depl) + if err != nil { + w.logger.Debug("olap sync: failed to open runtime client", zap.String("project_id", depl.ProjectID), zap.Error(err)) + return + } + defer rt.Close() + + resp, err := rt.GetInstance(ctx, &runtimev1.GetInstanceRequest{ + InstanceId: depl.RuntimeInstanceID, + Sensitive: true, + }) + if err != nil { + w.logger.Debug("olap sync: failed to get instance", zap.String("project_id", depl.ProjectID), zap.Error(err)) + return + } + + olapConnectorName := resp.Instance.OlapConnector + if olapConnectorName == "" { + return + } + + // Resolve the connector driver type from the connector name + var connectorType string + var connector *runtimev1.Connector + for _, c := range resp.Instance.ProjectConnectors { + if c.Name == olapConnectorName { + connectorType = c.Type + connector = c + break + } + } + if connectorType == "" { + return + } + + // Update OLAP connector type if changed + if proj.OlapConnector == nil || *proj.OlapConnector != connectorType { + if err := w.admin.DB.UpdateProjectOlapConnector(ctx, proj.ID, connectorType); err != nil { + w.logger.Warn("olap sync: failed to update olap connector", zap.String("project_id", proj.ID), zap.Error(err)) + } + } + + // Detect and sync cluster slots for non-DuckDB connectors (Live Connect) + w.syncClusterSlots(ctx, proj, depl, rt, connector) +} + +// clusterDetectionSQL returns the SQL query for detecting cluster vCPUs, or empty if unsupported. +func clusterDetectionSQL(connector *runtimev1.Connector) string { + if connector == nil { + return "" + } + switch connector.Type { + case "clickhouse": + return `SELECT + if(cgroup_cpu > 0, cgroup_cpu, os_cpu) AS vcpus +FROM ( + SELECT + (SELECT value FROM system.asynchronous_metrics WHERE metric = 'CGroupMaxCPU') AS cgroup_cpu, + (SELECT value FROM system.asynchronous_metrics WHERE metric = 'OSProcessorCount') AS os_cpu +) AS hw` + case "duckdb": + // MotherDuck: detect from DuckDB settings + cfg := connector.Config + if cfg == nil || cfg.Fields == nil { + return "" + } + var pathVal, tokenVal string + if v := cfg.Fields["path"]; v != nil { + pathVal = v.GetStringValue() + } + if v := cfg.Fields["token"]; v != nil { + tokenVal = v.GetStringValue() + } + isMotherDuck := strings.HasPrefix(pathVal, "md:") || tokenVal != "" + if isMotherDuck { + return `SELECT MAX(CASE WHEN name = 'threads' THEN CAST(value AS INT) END) AS vcpus FROM duckdb_settings() WHERE name = 'threads'` + } + return "" + default: + return "" + } +} + +// syncClusterSlots runs a SQL query against the OLAP connector to detect the cluster's vCPU count +// and persists it as cluster_slots in the projects table. +func (w *BillingReporterWorker) syncClusterSlots(ctx context.Context, proj *database.Project, depl *database.Deployment, rt *client.Client, connector *runtimev1.Connector) { + sql := clusterDetectionSQL(connector) + if sql == "" { + return + } + + qc := rt.QueryServiceClient() + qResp, err := qc.Query(ctx, &runtimev1.QueryRequest{ + InstanceId: depl.RuntimeInstanceID, + Connector: connector.Name, + Sql: sql, + Priority: -1, + }) + if err != nil { + w.logger.Debug("cluster slots sync: query failed", zap.String("project_id", proj.ID), zap.Error(err)) + return + } + + if len(qResp.Data) == 0 { + return + } + + row := qResp.Data[0] + vcpusField := row.Fields["vcpus"] + if vcpusField == nil { + return + } + vcpus := int64(vcpusField.GetNumberValue()) + if vcpus <= 0 { + return + } + + // Only update if the value has changed + if proj.ClusterSlots != nil && *proj.ClusterSlots == vcpus { + return + } + + if err := w.admin.DB.UpdateProjectClusterSlots(ctx, proj.ID, vcpus); err != nil { + w.logger.Warn("cluster slots sync: failed to update", zap.String("project_id", proj.ID), zap.Int64("vcpus", vcpus), zap.Error(err)) + } else { + w.logger.Info("cluster slots sync: updated", zap.String("project_id", proj.ID), zap.Int64("vcpus", vcpus)) + } +} diff --git a/admin/jobs/river/credit_checks.go b/admin/jobs/river/credit_checks.go new file mode 100644 index 00000000000..a127a336b08 --- /dev/null +++ b/admin/jobs/river/credit_checks.go @@ -0,0 +1,163 @@ +package river + +import ( + "context" + "fmt" + "time" + + "github.com/rilldata/rill/admin" + "github.com/rilldata/rill/admin/database" + "github.com/riverqueue/river" + "go.uber.org/zap" +) + +type CreditCheckArgs struct{} + +func (CreditCheckArgs) Kind() string { return "credit_check" } + +type CreditCheckWorker struct { + river.WorkerDefaults[CreditCheckArgs] + admin *admin.Service + logger *zap.Logger +} + +func (w *CreditCheckWorker) Work(ctx context.Context, job *river.Job[CreditCheckArgs]) error { + limit := 100 + afterName := "" + + for { + orgs, err := w.admin.DB.FindOrganizationsByBillingPlanName(ctx, "free-plan", afterName, limit) + if err != nil { + return fmt.Errorf("failed to find free-plan orgs: %w", err) + } + + for _, org := range orgs { + if err := w.checkOrg(ctx, org); err != nil { + w.logger.Warn("credit check failed for org", zap.String("org_id", org.ID), zap.String("org_name", org.Name), zap.Error(err)) + } + afterName = org.Name + } + + if len(orgs) < limit { + break + } + } + + return nil +} + +func (w *CreditCheckWorker) checkOrg(ctx context.Context, org *database.Organization) error { + if org.CreditTotal <= 0 { + return nil + } + + remaining := org.CreditTotal - org.CreditUsed + if remaining < 0 { + remaining = 0 + } + usedFraction := org.CreditUsed / org.CreditTotal + now := time.Now().UTC() + + // Also check expiry + expired := org.CreditExpiry != nil && org.CreditExpiry.Before(now) + + var err error + switch { + case remaining <= 0 || expired: + // 100%: exhausted — upsert exhausted issue and hibernate all projects + var expiry time.Time + if org.CreditExpiry != nil { + expiry = *org.CreditExpiry + } + + _, err = w.admin.DB.UpsertBillingIssue(ctx, &database.UpsertBillingIssueOptions{ + OrgID: org.ID, + Type: database.BillingIssueTypeCreditExhausted, + Metadata: &database.BillingIssueMetadataCreditExhausted{ + CreditTotal: org.CreditTotal, + CreditExpiry: expiry, + ExhaustedOn: now, + }, + EventTime: now, + }) + if err != nil { + return fmt.Errorf("failed to upsert credit exhausted issue: %w", err) + } + + // clean up lower-severity issues since exhausted supersedes them + for _, t := range []database.BillingIssueType{database.BillingIssueTypeCreditLow, database.BillingIssueTypeCreditCritical} { + if delErr := w.admin.DB.DeleteBillingIssueByTypeForOrg(ctx, org.ID, t); delErr != nil { + w.logger.Warn("failed to delete lower-severity credit issue", zap.String("org_id", org.ID), zap.Error(delErr)) + } + } + + // hibernate all active projects + projLimit := 10 + afterProjectName := "" + for { + projs, projErr := w.admin.DB.FindProjectsForOrganization(ctx, org.ID, afterProjectName, projLimit) + if projErr != nil { + return fmt.Errorf("failed to find projects for org: %w", projErr) + } + for _, proj := range projs { + if _, hibErr := w.admin.HibernateProject(ctx, proj); hibErr != nil { + w.logger.Warn("failed to hibernate project on credit exhaustion", zap.String("project_id", proj.ID), zap.Error(hibErr)) + } + afterProjectName = proj.Name + } + if len(projs) < projLimit { + break + } + } + + w.logger.Warn("credit exhausted: hibernated all projects", + zap.String("org_id", org.ID), + zap.String("org_name", org.Name), + zap.Float64("total_credit", org.CreditTotal), + zap.Float64("used_credit", org.CreditUsed), + ) + + case usedFraction >= 0.95: + var expiry time.Time + if org.CreditExpiry != nil { + expiry = *org.CreditExpiry + } + _, err = w.admin.DB.UpsertBillingIssue(ctx, &database.UpsertBillingIssueOptions{ + OrgID: org.ID, + Type: database.BillingIssueTypeCreditCritical, + Metadata: &database.BillingIssueMetadataCreditCritical{ + CreditRemaining: remaining, + CreditTotal: org.CreditTotal, + CreditExpiry: expiry, + }, + EventTime: now, + }) + if err != nil { + return fmt.Errorf("failed to upsert credit critical issue: %w", err) + } + if delErr := w.admin.DB.DeleteBillingIssueByTypeForOrg(ctx, org.ID, database.BillingIssueTypeCreditLow); delErr != nil { + w.logger.Warn("failed to delete credit low issue", zap.String("org_id", org.ID), zap.Error(delErr)) + } + + case usedFraction >= 0.80: + var expiry time.Time + if org.CreditExpiry != nil { + expiry = *org.CreditExpiry + } + _, err = w.admin.DB.UpsertBillingIssue(ctx, &database.UpsertBillingIssueOptions{ + OrgID: org.ID, + Type: database.BillingIssueTypeCreditLow, + Metadata: &database.BillingIssueMetadataCreditLow{ + CreditRemaining: remaining, + CreditTotal: org.CreditTotal, + CreditExpiry: expiry, + }, + EventTime: now, + }) + if err != nil { + return fmt.Errorf("failed to upsert credit low issue: %w", err) + } + } + + return nil +} diff --git a/admin/jobs/river/hibernate_expired_deployments.go b/admin/jobs/river/hibernate_expired_deployments.go index 05709724bad..50eab8896c6 100644 --- a/admin/jobs/river/hibernate_expired_deployments.go +++ b/admin/jobs/river/hibernate_expired_deployments.go @@ -76,6 +76,9 @@ func (w *HibernateExpiredDeploymentsWorker) hibernateExpiredDeployment(ctx conte DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Annotations: proj.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { return err diff --git a/admin/jobs/river/org_jobs.go b/admin/jobs/river/org_jobs.go index 6899d0d9998..549cf46e0a6 100644 --- a/admin/jobs/river/org_jobs.go +++ b/admin/jobs/river/org_jobs.go @@ -107,19 +107,21 @@ func (w *StartTrialWorker) Work(ctx context.Context, job *river.Job[StartTrialAr trialOrg, sub, err := w.admin.StartTrial(ctx, org) if err != nil { - return fmt.Errorf("failed to start trial for organization %s: %w", org.Name, err) + return fmt.Errorf("failed to start subscription for organization %s: %w", org.Name, err) } - // send trial started email - err = w.admin.Email.SendTrialStarted(&email.TrialStarted{ - ToEmail: trialOrg.BillingEmail, - ToName: trialOrg.Name, - OrgName: trialOrg.Name, - FrontendURL: w.admin.URLs.Frontend(), - TrialEndDate: sub.TrialEndDate, - }) - if err != nil { - w.logger.Error("failed to send trial started email", zap.String("org_name", trialOrg.Name), zap.String("org_id", trialOrg.ID), zap.String("billing_email", trialOrg.BillingEmail), zap.Error(err)) + // Only send the trial-started email for trial-based plans; free plan has no trial period + if sub.Plan != nil && sub.Plan.PlanType != billing.FreePlanType { + err = w.admin.Email.SendTrialStarted(&email.TrialStarted{ + ToEmail: trialOrg.BillingEmail, + ToName: trialOrg.Name, + OrgName: trialOrg.Name, + FrontendURL: w.admin.URLs.Frontend(), + TrialEndDate: sub.TrialEndDate, + }) + if err != nil { + w.logger.Error("failed to send trial started email", zap.String("org_name", trialOrg.Name), zap.String("org_id", trialOrg.ID), zap.String("billing_email", trialOrg.BillingEmail), zap.Error(err)) + } } return nil diff --git a/admin/jobs/river/river.go b/admin/jobs/river/river.go index 2b95e94cc29..04330d82ab8 100644 --- a/admin/jobs/river/river.go +++ b/admin/jobs/river/river.go @@ -90,6 +90,9 @@ func New(ctx context.Context, dsn string, adm *admin.Service) (jobs.Client, erro river.AddWorker(workers, &TrialEndCheckWorker{admin: adm, logger: billingLogger}) river.AddWorker(workers, &TrialGracePeriodCheckWorker{admin: adm, logger: billingLogger}) + // credit check worker (free-plan orgs) + river.AddWorker(workers, &CreditCheckWorker{admin: adm, logger: billingLogger}) + // subscription related workers river.AddWorker(workers, &SubscriptionCancellationCheckWorker{admin: adm, logger: billingLogger}) @@ -120,6 +123,7 @@ func New(ctx context.Context, dsn string, adm *admin.Service) (jobs.Client, erro jobConfigs := []periodicJobConfig{ {&ValidateDeploymentsArgs{}, "*/30 * * * *", true}, // half-hourly + {&CreditCheckArgs{}, "30 * * * *", true}, // hourly at :30 {&PaymentFailedGracePeriodCheckArgs{}, "0 1 * * *", true}, // daily at 1am UTC {&TrialEndingSoonArgs{}, "5 1 * * *", true}, // daily at 1:05am UTC {&TrialEndCheckArgs{}, "10 1 * * *", true}, // daily at 1:10am UTC @@ -285,6 +289,8 @@ func (c *Client) EnqueueByKind(ctx context.Context, kind string) (*jobs.InsertRe return c.HibernateInactiveOrgs(ctx) case "billing_reporter": return c.BillingReporter(ctx) + case "credit_check": + return c.CreditCheck(ctx) case "delete_expired_auth_codes": return c.DeleteExpiredAuthCodes(ctx) case "delete_expired_device_auth_codes": @@ -637,6 +643,26 @@ func (c *Client) BillingReporter(ctx context.Context) (*jobs.InsertResult, error }, nil } +func (c *Client) CreditCheck(ctx context.Context) (*jobs.InsertResult, error) { + res, err := c.riverClient.Insert(ctx, CreditCheckArgs{}, &river.InsertOpts{ + UniqueOpts: river.UniqueOpts{ + ByArgs: true, + }, + }) + if err != nil { + return nil, err + } + + if res.UniqueSkippedAsDuplicate { + c.logger.Debug("CreditCheck job skipped as duplicate") + } + + return &jobs.InsertResult{ + ID: res.Job.ID, + Duplicate: res.UniqueSkippedAsDuplicate, + }, nil +} + func (c *Client) DeleteExpiredAuthCodes(ctx context.Context) (*jobs.InsertResult, error) { res, err := c.riverClient.Insert(ctx, DeleteExpiredAuthCodesArgs{}, &river.InsertOpts{ UniqueOpts: river.UniqueOpts{ diff --git a/admin/jobs/river/run_autoscaler.go b/admin/jobs/river/run_autoscaler.go index 1d76e8a5778..51a8631fb50 100644 --- a/admin/jobs/river/run_autoscaler.go +++ b/admin/jobs/river/run_autoscaler.go @@ -140,6 +140,9 @@ func (w *RunAutoscalerWorker) Work(ctx context.Context, job *river.Job[RunAutosc DevTTLSeconds: targetProject.DevTTLSeconds, Provisioner: targetProject.Provisioner, Annotations: targetProject.Annotations, + ChcClusterSize: targetProject.ChcClusterSize, + ClusterSlots: targetProject.ClusterSlots, + InfraSlots: targetProject.InfraSlots, }) if err != nil { w.logger.Error("failed to autoscale: error updating the project", zap.String("project_name", targetProject.Name), zap.String("organization_name", projectOrg.Name), zap.Error(err)) diff --git a/admin/projects.go b/admin/projects.go index 1bae93159e4..6ff63c0101c 100644 --- a/admin/projects.go +++ b/admin/projects.go @@ -122,6 +122,9 @@ func (s *Service) CreateProject(ctx context.Context, org *database.Organization, DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Annotations: proj.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { return nil, err @@ -233,6 +236,9 @@ func (s *Service) UpdateProject(ctx context.Context, oldProj *database.Project, DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Annotations: proj.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { return nil, err @@ -382,6 +388,9 @@ func (s *Service) RedeployProject(ctx context.Context, proj *database.Project, p DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Annotations: proj.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { err2 := s.TeardownDeployment(ctx, newDepl) @@ -432,6 +441,9 @@ func (s *Service) HibernateProject(ctx context.Context, proj *database.Project) DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Annotations: proj.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { return nil, err diff --git a/admin/server/billing.go b/admin/server/billing.go index f3c3de66ba4..aa375efd9ab 100644 --- a/admin/server/billing.go +++ b/admin/server/billing.go @@ -50,11 +50,29 @@ func (s *Server) GetBillingSubscription(ctx context.Context, req *adminv1.GetBil return &adminv1.GetBillingSubscriptionResponse{Organization: s.organizationToDTO(org, true)}, nil } - return &adminv1.GetBillingSubscriptionResponse{ + resp := &adminv1.GetBillingSubscriptionResponse{ Organization: s.organizationToDTO(org, true), Subscription: subscriptionToDTO(sub), BillingPortalUrl: sub.Customer.PortalURL, - }, nil + } + + // Populate credit info from DB for free-tier orgs + if sub.Plan != nil && sub.Plan.PlanType == billing.FreePlanType && org.CreditTotal > 0 { + remaining := org.CreditTotal - org.CreditUsed + if remaining < 0 { + remaining = 0 + } + resp.CreditInfo = &adminv1.BillingCreditInfo{ + TotalCredit: org.CreditTotal, + UsedCredit: org.CreditUsed, + RemainingCredit: remaining, + } + if org.CreditExpiry != nil { + resp.CreditInfo.CreditExpiry = timestamppb.New(*org.CreditExpiry) + } + } + + return resp, nil } func (s *Server) UpdateBillingSubscription(ctx context.Context, req *adminv1.UpdateBillingSubscriptionRequest) (*adminv1.UpdateBillingSubscriptionResponse, error) { @@ -98,24 +116,26 @@ func (s *Server) UpdateBillingSubscription(ctx context.Context, req *adminv1.Upd } return nil, err } - // if its a trial plan, start trial only if its a new org - if plan.Default { + // Default plans (Free or trial) can only be started for new orgs (never-subscribed) + if plan.Default || plan.PlanType == billing.FreePlanType || plan.PlanType == billing.TrailPlanType { bi, err := s.admin.DB.FindBillingIssueByTypeForOrg(ctx, org.ID, database.BillingIssueTypeNeverSubscribed) if err != nil { if errors.Is(err, database.ErrNotFound) { - return nil, status.Errorf(codes.FailedPrecondition, "only new organizations can subscribe to the trial plan %s", plan.Name) + return nil, status.Errorf(codes.FailedPrecondition, "only new organizations can subscribe to the %s plan", plan.DisplayName) } return nil, err } if bi != nil { - // check against trial orgs quota, skip for superusers - if org.CreatedByUserID != nil && !claims.Superuser(ctx) { - u, err := s.admin.DB.FindUser(ctx, *org.CreatedByUserID) - if err != nil { - return nil, err - } - if u.QuotaTrialOrgs >= 0 && u.CurrentTrialOrgsCount >= u.QuotaTrialOrgs { - return nil, status.Errorf(codes.FailedPrecondition, "trial orgs quota of %d reached for user %s", u.QuotaTrialOrgs, u.Email) + // Trial quota check only applies to trial-based plans, not Free + if plan.PlanType != billing.FreePlanType { + if org.CreatedByUserID != nil && !claims.Superuser(ctx) { + u, err := s.admin.DB.FindUser(ctx, *org.CreatedByUserID) + if err != nil { + return nil, err + } + if u.QuotaTrialOrgs >= 0 && u.CurrentTrialOrgsCount >= u.QuotaTrialOrgs { + return nil, status.Errorf(codes.FailedPrecondition, "trial orgs quota of %d reached for user %s", u.QuotaTrialOrgs, u.Email) + } } } @@ -124,16 +144,18 @@ func (s *Server) UpdateBillingSubscription(ctx context.Context, req *adminv1.Upd return nil, err } - // send trial started email - err = s.admin.Email.SendTrialStarted(&email.TrialStarted{ - ToEmail: org.BillingEmail, - ToName: org.Name, - OrgName: org.Name, - FrontendURL: s.admin.URLs.Frontend(), - TrialEndDate: sub.TrialEndDate, - }) - if err != nil { - s.logger.Named("billing").Error("failed to send trial started email", zap.String("org_name", org.Name), zap.String("org_id", org.ID), zap.String("billing_email", org.BillingEmail), zap.Error(err)) + // Send trial-started email only for trial-based plans; free plan has no trial period + if plan.PlanType != billing.FreePlanType { + err = s.admin.Email.SendTrialStarted(&email.TrialStarted{ + ToEmail: org.BillingEmail, + ToName: org.Name, + OrgName: org.Name, + FrontendURL: s.admin.URLs.Frontend(), + TrialEndDate: sub.TrialEndDate, + }) + if err != nil { + s.logger.Named("billing").Error("failed to send trial started email", zap.String("org_name", org.Name), zap.String("org_id", org.ID), zap.String("billing_email", org.BillingEmail), zap.Error(err)) + } } return &adminv1.UpdateBillingSubscriptionResponse{ @@ -203,16 +225,56 @@ func (s *Server) UpdateBillingSubscription(ctx context.Context, req *adminv1.Upd } } + // Check for credit exhaustion before cleanup so we know whether to un-hibernate + wasExhausted := false + if plan.PlanType == billing.GrowthPlanType { + ce, ceErr := s.admin.DB.FindBillingIssueByTypeForOrg(ctx, org.ID, database.BillingIssueTypeCreditExhausted) + if ceErr != nil && !errors.Is(ceErr, database.ErrNotFound) { + return nil, ceErr + } + wasExhausted = ce != nil + + // Zero out free-plan credits (credits don't carry over to Growth) + if voidErr := s.admin.DB.ResetOrganizationCredits(ctx, org.ID); voidErr != nil { + s.logger.Named("billing").Warn("failed to reset credits on growth upgrade", zap.String("org_id", org.ID), zap.Error(voidErr)) + } + } + org, err = s.updateQuotasAndHandleBillingIssues(ctx, org, sub) if err != nil { return nil, err } + // Un-hibernate projects that were hibernated due to credit exhaustion + if wasExhausted { + projLimit := 10 + afterProjectName := "" + for { + projs, projErr := s.admin.DB.FindProjectsForOrganization(ctx, org.ID, afterProjectName, projLimit) + if projErr != nil { + s.logger.Named("billing").Error("failed to find projects for un-hibernate on growth upgrade", zap.String("org_id", org.ID), zap.Error(projErr)) + break + } + for _, proj := range projs { + if proj.PrimaryDeploymentID == nil { + if _, redeployErr := s.admin.RedeployProject(ctx, proj, nil); redeployErr != nil { + s.logger.Named("billing").Warn("failed to redeploy hibernated project on growth upgrade", zap.String("project_id", proj.ID), zap.Error(redeployErr)) + } + } + afterProjectName = proj.Name + } + if len(projs) < projLimit { + break + } + } + s.logger.Named("billing").Info("un-hibernated projects on growth upgrade", zap.String("org_id", org.ID), zap.String("org_name", org.Name)) + } + if planChange { // send plan changed email - if plan.PlanType == billing.TeamPlanType { - s.logger.Named("billing").Info("upgraded to team plan", + if plan.PlanType == billing.TeamPlanType || plan.PlanType == billing.GrowthPlanType { + s.logger.Named("billing").Info("upgraded to paid plan", zap.String("org_id", org.ID), zap.String("org_name", org.Name), zap.String("user_email", org.BillingEmail), @@ -220,7 +282,7 @@ func (s *Server) UpdateBillingSubscription(ctx context.Context, req *adminv1.Upd zap.String("plan_name", sub.Plan.Name), ) - // special handling for team plan to send custom email + // special handling for team/growth plan to send custom email err = s.admin.Email.SendTeamPlanStarted(&email.TeamPlan{ ToEmail: org.BillingEmail, ToName: org.Name, @@ -429,8 +491,8 @@ func (s *Server) RenewBillingSubscription(ctx context.Context, req *adminv1.Rene s.logger.Named("billing").Info("subscription renewed", zap.String("org_id", org.ID), zap.String("org_name", org.Name), zap.String("plan_id", sub.Plan.ID), zap.String("plan_name", sub.Plan.Name)) // send subscription renewed email - if sub.Plan.PlanType == billing.TeamPlanType { - // special handling for team plan to send custom email + if sub.Plan.PlanType == billing.TeamPlanType || sub.Plan.PlanType == billing.GrowthPlanType { + // special handling for team/growth plan to send custom email err = s.admin.Email.SendTeamPlanRenewal(&email.TeamPlan{ ToEmail: org.BillingEmail, ToName: org.Name, @@ -440,7 +502,7 @@ func (s *Server) RenewBillingSubscription(ctx context.Context, req *adminv1.Rene BillingStartDate: sub.CurrentBillingCycleEndDate, }) - s.logger.Named("billing").Info("upgraded to team plan", + s.logger.Named("billing").Info("renewed paid plan", zap.String("org_id", org.ID), zap.String("org_name", org.Name), zap.String("user_email", org.BillingEmail), @@ -468,7 +530,6 @@ func (s *Server) RenewBillingSubscription(ctx context.Context, req *adminv1.Rene func (s *Server) GetPaymentsPortalURL(ctx context.Context, req *adminv1.GetPaymentsPortalURLRequest) (*adminv1.GetPaymentsPortalURLResponse, error) { observability.AddRequestAttributes(ctx, attribute.String("args.org", req.Org)) observability.AddRequestAttributes(ctx, attribute.String("args.return_url", req.ReturnUrl)) - observability.AddRequestAttributes(ctx, attribute.Bool("args.setup", req.Setup)) org, err := s.admin.DB.FindOrganizationByName(ctx, req.Org) if err != nil { @@ -490,7 +551,7 @@ func (s *Server) GetPaymentsPortalURL(ctx context.Context, req *adminv1.GetPayme req.ReturnUrl = s.admin.URLs.Frontend() } - url, err := s.admin.PaymentProvider.GetBillingPortalURL(ctx, org.PaymentCustomerID, req.ReturnUrl, req.Setup) + url, err := s.admin.PaymentProvider.GetBillingPortalURL(ctx, org.PaymentCustomerID, req.ReturnUrl, false) if err != nil { return nil, err } @@ -738,6 +799,60 @@ func (s *Server) SudoExtendTrial(ctx context.Context, req *adminv1.SudoExtendTri return &adminv1.SudoExtendTrialResponse{TrialEnd: timestamppb.New(newEndDate)}, nil } +func (s *Server) SudoAddCredits(ctx context.Context, req *adminv1.SudoAddCreditsRequest) (*adminv1.SudoAddCreditsResponse, error) { + observability.AddRequestAttributes(ctx, attribute.String("args.org", req.Org)) + observability.AddRequestAttributes(ctx, attribute.Float64("args.amount", req.Amount)) + + claims := auth.GetClaims(ctx) + if !claims.Superuser(ctx) { + return nil, status.Error(codes.PermissionDenied, "only superusers can add credits") + } + + org, err := s.admin.DB.FindOrganizationByName(ctx, req.Org) + if err != nil { + return nil, status.Error(codes.InvalidArgument, err.Error()) + } + + if org.BillingCustomerID == "" { + return nil, status.Error(codes.FailedPrecondition, "billing not yet initialized for the organization") + } + + expiryDays := int(req.ExpiryDays) + if expiryDays <= 0 { + expiryDays = 365 + } + expiryDate := time.Now().AddDate(0, 0, expiryDays) + + // Add credits to DB: increment total, extend expiry (preserve existing usage) + newTotal := org.CreditTotal + req.Amount + err = s.admin.DB.AddOrganizationCredits(ctx, org.ID, req.Amount, expiryDate) + if err != nil { + return nil, status.Errorf(codes.Internal, "failed to add credits: %v", err) + } + + s.logger.Named("billing").Info("credits added", + zap.String("org_id", org.ID), + zap.String("org_name", org.Name), + zap.Float64("amount", req.Amount), + zap.Float64("new_total", newTotal), + zap.Int("expiry_days", expiryDays), + ) + + remaining := newTotal - org.CreditUsed + if remaining < 0 { + remaining = 0 + } + resp := &adminv1.SudoAddCreditsResponse{ + CreditInfo: &adminv1.BillingCreditInfo{ + TotalCredit: newTotal, + UsedCredit: org.CreditUsed, + RemainingCredit: remaining, + CreditExpiry: timestamppb.New(expiryDate), + }, + } + return resp, nil +} + func (s *Server) SudoTriggerBillingRepair(ctx context.Context, req *adminv1.SudoTriggerBillingRepairRequest) (*adminv1.SudoTriggerBillingRepairResponse, error) { claims := auth.GetClaims(ctx) if !claims.Superuser(ctx) { @@ -943,6 +1058,12 @@ func (s *Server) updateQuotasAndHandleBillingIssues(ctx context.Context, org *da return nil, fmt.Errorf("failed to cleanup subscription cancellation errors: %w", err) } + // delete any credit billing issues (free-plan → Growth upgrade) + err = s.admin.CleanupCreditBillingIssues(ctx, org.ID) + if err != nil { + return nil, fmt.Errorf("failed to cleanup credit billing issues: %w", err) + } + return org, nil } @@ -1076,6 +1197,12 @@ func billingIssueTypeToDTO(t database.BillingIssueType) adminv1.BillingIssueType return adminv1.BillingIssueType_BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED case database.BillingIssueTypeNeverSubscribed: return adminv1.BillingIssueType_BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED + case database.BillingIssueTypeCreditLow: + return adminv1.BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_LOW + case database.BillingIssueTypeCreditCritical: + return adminv1.BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_CRITICAL + case database.BillingIssueTypeCreditExhausted: + return adminv1.BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED default: return adminv1.BillingIssueType_BILLING_ISSUE_TYPE_UNSPECIFIED } @@ -1108,6 +1235,12 @@ func dtoBillingIssueTypeToDB(t adminv1.BillingIssueType) (database.BillingIssueT return database.BillingIssueTypeSubscriptionCancelled, nil case adminv1.BillingIssueType_BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED: return database.BillingIssueTypeNeverSubscribed, nil + case adminv1.BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_LOW: + return database.BillingIssueTypeCreditLow, nil + case adminv1.BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_CRITICAL: + return database.BillingIssueTypeCreditCritical, nil + case adminv1.BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED: + return database.BillingIssueTypeCreditExhausted, nil default: return database.BillingIssueTypeUnspecified, status.Error(codes.InvalidArgument, "invalid billing error type") } @@ -1123,6 +1256,10 @@ func planTypeToDTO(t billing.PlanType) adminv1.BillingPlanType { return adminv1.BillingPlanType_BILLING_PLAN_TYPE_MANAGED case billing.EnterprisePlanType: return adminv1.BillingPlanType_BILLING_PLAN_TYPE_ENTERPRISE + case billing.FreePlanType: + return adminv1.BillingPlanType_BILLING_PLAN_TYPE_FREE + case billing.GrowthPlanType: + return adminv1.BillingPlanType_BILLING_PLAN_TYPE_GROWTH default: return adminv1.BillingPlanType_BILLING_PLAN_TYPE_UNSPECIFIED } @@ -1195,6 +1332,39 @@ func billingIssueMetadataToDTO(t database.BillingIssueType, m database.BillingIs NeverSubscribed: &adminv1.BillingIssueMetadataNeverSubscribed{}, }, } + case database.BillingIssueTypeCreditLow: + cl := m.(*database.BillingIssueMetadataCreditLow) + return &adminv1.BillingIssueMetadata{ + Metadata: &adminv1.BillingIssueMetadata_CreditLow{ + CreditLow: &adminv1.BillingIssueMetadataCreditLow{ + CreditRemaining: cl.CreditRemaining, + CreditTotal: cl.CreditTotal, + CreditExpiry: valOrNullTime(cl.CreditExpiry), + }, + }, + } + case database.BillingIssueTypeCreditCritical: + cc := m.(*database.BillingIssueMetadataCreditCritical) + return &adminv1.BillingIssueMetadata{ + Metadata: &adminv1.BillingIssueMetadata_CreditCritical{ + CreditCritical: &adminv1.BillingIssueMetadataCreditCritical{ + CreditRemaining: cc.CreditRemaining, + CreditTotal: cc.CreditTotal, + CreditExpiry: valOrNullTime(cc.CreditExpiry), + }, + }, + } + case database.BillingIssueTypeCreditExhausted: + ce := m.(*database.BillingIssueMetadataCreditExhausted) + return &adminv1.BillingIssueMetadata{ + Metadata: &adminv1.BillingIssueMetadata_CreditExhausted{ + CreditExhausted: &adminv1.BillingIssueMetadataCreditExhausted{ + CreditTotal: ce.CreditTotal, + CreditExpiry: valOrNullTime(ce.CreditExpiry), + ExhaustedOn: valOrNullTime(ce.ExhaustedOn), + }, + }, + } default: return &adminv1.BillingIssueMetadata{} } diff --git a/admin/server/deployment.go b/admin/server/deployment.go index be5f8431581..cce7a439a10 100644 --- a/admin/server/deployment.go +++ b/admin/server/deployment.go @@ -254,6 +254,7 @@ func (s *Server) GetDeployment(ctx context.Context, req *adminv1.GetDeploymentRe } } else if permissions.ManageProd { instancePermissions = append(instancePermissions, + runtime.ReadOLAP, runtime.ReadResolvers, runtime.EditTrigger, ) @@ -416,6 +417,9 @@ func (s *Server) CreateDeployment(ctx context.Context, req *adminv1.CreateDeploy DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Annotations: proj.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { return nil, err diff --git a/admin/server/projects.go b/admin/server/projects.go index 99618b65495..1469bf860e7 100644 --- a/admin/server/projects.go +++ b/admin/server/projects.go @@ -9,6 +9,7 @@ import ( "time" "github.com/rilldata/rill/admin" + "github.com/rilldata/rill/admin/billing" "github.com/rilldata/rill/admin/database" "github.com/rilldata/rill/admin/pkg/gitutil" "github.com/rilldata/rill/admin/pkg/publicemail" @@ -451,6 +452,7 @@ func (s *Server) GetProject(ctx context.Context, req *adminv1.GetProjectRequest) if permissions.ManageProject { instancePermissions = append( instancePermissions, + runtime.ReadOLAP, runtime.ReadInstance, runtime.ReadResolvers, runtime.EditTrigger, @@ -687,25 +689,28 @@ func (s *Server) CreateProject(ctx context.Context, req *adminv1.CreateProjectRe opts.ArchiveAssetID = &req.ArchiveAssetId } - // if there is no subscription for the org, submit a job to start a trial + // If the org has no subscription, start one (free plan or trial depending on default plan config) bi, err := s.admin.DB.FindBillingIssueByTypeForOrg(ctx, org.ID, database.BillingIssueTypeNeverSubscribed) if err != nil && !errors.Is(err, database.ErrNotFound) { return nil, err } if bi != nil { - // check against trial orgs quota but skip if the user is a superuser - if org.CreatedByUserID != nil && !claims.Superuser(ctx) { - u, err := s.admin.DB.FindUser(ctx, *org.CreatedByUserID) - if err != nil { - return nil, fmt.Errorf("failed to find user: %w", err) - } - if u.QuotaTrialOrgs >= 0 && u.CurrentTrialOrgsCount >= u.QuotaTrialOrgs { - return nil, status.Errorf(codes.FailedPrecondition, "trial orgs quota exceeded for user %s", u.Email) + // Check trial org quota for trial-based plans; free plan orgs are not counted against this quota + defaultPlan, planErr := s.admin.Biller.GetDefaultPlan(ctx) + if planErr == nil && defaultPlan.PlanType != billing.FreePlanType { + if org.CreatedByUserID != nil && !claims.Superuser(ctx) { + u, err := s.admin.DB.FindUser(ctx, *org.CreatedByUserID) + if err != nil { + return nil, fmt.Errorf("failed to find user: %w", err) + } + if u.QuotaTrialOrgs >= 0 && u.CurrentTrialOrgsCount >= u.QuotaTrialOrgs { + return nil, status.Errorf(codes.FailedPrecondition, "trial orgs quota exceeded for user %s", u.Email) + } } } _, err = s.admin.Jobs.StartOrgTrial(ctx, org.ID) if err != nil { - s.logger.Named("billing").Error("failed to submit job to start trial for org, please do it manually", zap.String("org_id", org.ID), zap.Error(err)) + s.logger.Named("billing").Error("failed to submit job to start subscription for org, please do it manually", zap.String("org_id", org.ID), zap.Error(err)) // continue creating the project } } @@ -890,6 +895,14 @@ func (s *Server) UpdateProject(ctx context.Context, req *adminv1.UpdateProjectRe } } + prodSlots := int(valOrDefault(req.ProdSlots, int64(proj.ProdSlots))) + + // Clear auto-scale annotation if user manually adjusts slots + annotations := maps.Clone(proj.Annotations) + if annotations != nil && req.ProdSlots != nil { + delete(annotations, "rill.dev/chc-auto-scaled-slots") + } + opts := &database.UpdateProjectOptions{ Name: valOrDefault(req.NewName, proj.Name), Description: valOrDefault(req.Description, proj.Description), @@ -904,12 +917,15 @@ func (s *Server) UpdateProject(ctx context.Context, req *adminv1.UpdateProjectRe ProdVersion: valOrDefault(req.ProdVersion, proj.ProdVersion), PrimaryBranch: primaryBranch, PrimaryDeploymentID: proj.PrimaryDeploymentID, - ProdSlots: int(valOrDefault(req.ProdSlots, int64(proj.ProdSlots))), + ProdSlots: prodSlots, ProdTTLSeconds: prodTTLSeconds, DevSlots: proj.DevSlots, DevTTLSeconds: proj.DevTTLSeconds, Provisioner: valOrDefault(req.Provisioner, proj.Provisioner), - Annotations: proj.Annotations, + Annotations: annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: valOrDefaultPtr(req.ClusterSlots, proj.ClusterSlots), + InfraSlots: valOrDefaultPtr(req.InfraSlots, proj.InfraSlots), } proj, err = s.admin.UpdateProject(ctx, proj, opts) if err != nil { @@ -1868,6 +1884,9 @@ func (s *Server) SudoUpdateAnnotations(ctx context.Context, req *adminv1.SudoUpd DevTTLSeconds: proj.DevTTLSeconds, Provisioner: proj.Provisioner, Annotations: req.Annotations, + ChcClusterSize: proj.ChcClusterSize, + ClusterSlots: proj.ClusterSlots, + InfraSlots: proj.InfraSlots, }) if err != nil { return nil, err @@ -2189,6 +2208,9 @@ func (s *Server) projToDTO(p *database.Project, orgName string) *adminv1.Project Annotations: p.Annotations, CreatedOn: timestamppb.New(p.CreatedOn), UpdatedOn: timestamppb.New(p.UpdatedOn), + ClusterSlots: p.ClusterSlots, + InfraSlots: p.InfraSlots, + OlapConnector: safeStr(p.OlapConnector), } } @@ -2293,6 +2315,9 @@ func (s *Server) githubRepoIDForProject(ctx context.Context, p *database.Project DevTTLSeconds: p.DevTTLSeconds, Provisioner: p.Provisioner, Annotations: p.Annotations, + ChcClusterSize: p.ChcClusterSize, + ClusterSlots: p.ClusterSlots, + InfraSlots: p.InfraSlots, }) if err != nil { return 0, status.Error(codes.Internal, "failed to update project with github repo id") @@ -2424,3 +2449,11 @@ func valOrDefault[T any](ptr *T, def T) T { } return def } + +// valOrDefaultPtr returns newVal if non-nil, otherwise existing (both pointers). +func valOrDefaultPtr[T any](newVal *T, existing *T) *T { + if newVal != nil { + return newVal + } + return existing +} diff --git a/cli/cmd/sudo/billing/add-credits.go b/cli/cmd/sudo/billing/add-credits.go new file mode 100644 index 00000000000..8b1a9e4b904 --- /dev/null +++ b/cli/cmd/sudo/billing/add-credits.go @@ -0,0 +1,69 @@ +package billing + +import ( + "fmt" + + "github.com/rilldata/rill/cli/pkg/cmdutil" + adminv1 "github.com/rilldata/rill/proto/gen/rill/admin/v1" + "github.com/spf13/cobra" +) + +func AddCreditsCmd(ch *cmdutil.Helper) *cobra.Command { + var org string + var amount float64 + var expiryDays int32 + var description string + + cmd := &cobra.Command{ + Use: "add-credits", + Short: "Add billing credits to an organization", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + ctx := cmd.Context() + + if org == "" { + return fmt.Errorf("please set --org") + } + + if amount <= 0 { + return fmt.Errorf("please set --amount to a positive value") + } + + client, err := ch.Client() + if err != nil { + return err + } + + res, err := client.SudoAddCredits(ctx, &adminv1.SudoAddCreditsRequest{ + Org: org, + Amount: amount, + ExpiryDays: expiryDays, + Description: description, + }) + if err != nil { + return err + } + + if res.CreditInfo != nil { + ch.PrintfSuccess("Added $%.0f credits to organization %q\n", amount, org) + ch.PrintfSuccess(" Total: $%.0f\n", res.CreditInfo.TotalCredit) + ch.PrintfSuccess(" Used: $%.0f\n", res.CreditInfo.UsedCredit) + ch.PrintfSuccess(" Remaining: $%.0f\n", res.CreditInfo.RemainingCredit) + if res.CreditInfo.CreditExpiry != nil { + ch.PrintfSuccess(" Expires: %s\n", res.CreditInfo.CreditExpiry.AsTime().Format("2006-01-02")) + } + } else { + ch.PrintfSuccess("Added $%.0f credits to organization %q\n", amount, org) + } + + return nil + }, + } + + cmd.Flags().SortFlags = false + cmd.Flags().StringVar(&org, "org", "", "Organization name") + cmd.Flags().Float64Var(&amount, "amount", 250, "Credit amount in dollars") + cmd.Flags().Int32Var(&expiryDays, "expiry-days", 365, "Days until credits expire") + cmd.Flags().StringVar(&description, "description", "", "Description for the credit grant") + return cmd +} diff --git a/cli/cmd/sudo/billing/billing.go b/cli/cmd/sudo/billing/billing.go index ea05598795b..6c978f4f427 100644 --- a/cli/cmd/sudo/billing/billing.go +++ b/cli/cmd/sudo/billing/billing.go @@ -14,6 +14,8 @@ func BillingCmd(ch *cmdutil.Helper) *cobra.Command { billingCmd.AddCommand(SetCmd(ch)) billingCmd.AddCommand(DeleteIssueCmd(ch)) billingCmd.AddCommand(ExtendTrialCmd(ch)) + billingCmd.AddCommand(AddCreditsCmd(ch)) + billingCmd.AddCommand(GetCreditsCmd(ch)) billingCmd.AddCommand(RepairCmd(ch)) billingCmd.AddCommand(SetupCmd(ch)) diff --git a/cli/cmd/sudo/billing/get-credits.go b/cli/cmd/sudo/billing/get-credits.go new file mode 100644 index 00000000000..affd731376d --- /dev/null +++ b/cli/cmd/sudo/billing/get-credits.go @@ -0,0 +1,71 @@ +package billing + +import ( + "fmt" + + "github.com/rilldata/rill/cli/pkg/cmdutil" + adminv1 "github.com/rilldata/rill/proto/gen/rill/admin/v1" + "github.com/spf13/cobra" +) + +func GetCreditsCmd(ch *cmdutil.Helper) *cobra.Command { + var org string + + cmd := &cobra.Command{ + Use: "get-credits", + Short: "Show billing credit balance for an organization", + Args: cobra.NoArgs, + RunE: func(cmd *cobra.Command, args []string) error { + ctx := cmd.Context() + + if org == "" { + return fmt.Errorf("please set --org") + } + + client, err := ch.Client() + if err != nil { + return err + } + + res, err := client.GetBillingSubscription(ctx, &adminv1.GetBillingSubscriptionRequest{ + Org: org, + SuperuserForceAccess: true, + }) + if err != nil { + return err + } + + planName := "" + if res.Subscription != nil && res.Subscription.Plan != nil { + planName = res.Subscription.Plan.DisplayName + } + fmt.Printf("Organization: %s\n", org) + fmt.Printf("Plan: %s\n", planName) + + ci := res.CreditInfo + if ci == nil { + fmt.Println("Credits: n/a (no credit balance)") + return nil + } + + fmt.Printf("Credits:\n") + fmt.Printf(" Total: $%.2f\n", ci.TotalCredit) + fmt.Printf(" Used: $%.2f\n", ci.UsedCredit) + fmt.Printf(" Remaining: $%.2f\n", ci.RemainingCredit) + if ci.BurnRatePerDay > 0 { + fmt.Printf(" Burn rate: $%.2f/day\n", ci.BurnRatePerDay) + daysLeft := int(ci.RemainingCredit / ci.BurnRatePerDay) + fmt.Printf(" Est. days: ~%d\n", daysLeft) + } + if ci.CreditExpiry != nil { + fmt.Printf(" Expires: %s\n", ci.CreditExpiry.AsTime().Format("2006-01-02")) + } + + return nil + }, + } + + cmd.Flags().SortFlags = false + cmd.Flags().StringVar(&org, "org", "", "Organization name") + return cmd +} diff --git a/cli/cmd/sudo/billing/setup.go b/cli/cmd/sudo/billing/setup.go index 461dcb3510e..27c8564f50f 100644 --- a/cli/cmd/sudo/billing/setup.go +++ b/cli/cmd/sudo/billing/setup.go @@ -29,7 +29,6 @@ func SetupCmd(ch *cmdutil.Helper) *cobra.Command { res, err := client.GetPaymentsPortalURL(ctx, &adminv1.GetPaymentsPortalURLRequest{ Org: org, - Setup: !update, SuperuserForceAccess: true, }) if err != nil { diff --git a/cli/cmd/sudo/project/edit.go b/cli/cmd/sudo/project/edit.go index f70c4dcb493..fb50cb01d00 100644 --- a/cli/cmd/sudo/project/edit.go +++ b/cli/cmd/sudo/project/edit.go @@ -9,7 +9,7 @@ import ( ) func EditCmd(ch *cmdutil.Helper) *cobra.Command { - var prodSlots int + var infraSlots, clusterSlots, rillSlots int var prodVersion string editCmd := &cobra.Command{ @@ -26,18 +26,27 @@ func EditCmd(ch *cmdutil.Helper) *cobra.Command { } isEditRequested := false - if cmd.Flags().Changed("prod-slots") { - if prodSlots <= 0 { - return fmt.Errorf("--prod-slots must be greater than zero") + + if cmd.Flags().Changed("rill-slots") { + if rillSlots < 0 { + return fmt.Errorf("--rill-slots must be >= 0") } - prodSlotsInt64 := int64(prodSlots) - req.ProdSlots = &prodSlotsInt64 isEditRequested = true } if cmd.Flags().Changed("prod-version") { req.ProdVersion = &prodVersion isEditRequested = true } + if cmd.Flags().Changed("infra-slots") { + v := int64(infraSlots) + req.InfraSlots = &v + isEditRequested = true + } + if cmd.Flags().Changed("cluster-slots") { + v := int64(clusterSlots) + req.ClusterSlots = &v + isEditRequested = true + } if !isEditRequested { ch.Printf("No edit requested\n") @@ -49,19 +58,73 @@ func EditCmd(ch *cmdutil.Helper) *cobra.Command { return err } + // --rill-slots: resolve prod_slots = cluster_slots + rill_slots. + // For Rill Managed (DuckDB): prod_slots = rill_slots directly (no cluster slots). + // For Live Connect: prod_slots = cluster_slots + rill_slots. + if cmd.Flags().Changed("rill-slots") { + proj, err := client.GetProject(ctx, &adminv1.GetProjectRequest{ + Org: args[0], + Project: args[1], + SuperuserForceAccess: true, + }) + if err != nil { + return fmt.Errorf("fetching project for --rill-slots: %w", err) + } + isRillManaged := isRillManagedProject(proj.Project) + if isRillManaged { + // Managed: prod_slots = rill_slots (no cluster component) + newProdSlots := int64(rillSlots) + req.ProdSlots = &newProdSlots + } else { + // Live Connect: prod_slots = cluster_slots + rill_slots + var clusterSlotsForCalc int64 + if cmd.Flags().Changed("cluster-slots") { + clusterSlotsForCalc = int64(clusterSlots) + } else if proj.Project.ClusterSlots != nil { + clusterSlotsForCalc = *proj.Project.ClusterSlots + } else { + return fmt.Errorf("cluster_slots is not set for this project; set it first with --cluster-slots") + } + newProdSlots := clusterSlotsForCalc + int64(rillSlots) + req.ProdSlots = &newProdSlots + } + } + updatedProj, err := client.UpdateProject(ctx, req) if err != nil { return err } ch.PrintfSuccess("Updated project\n") - ch.PrintProjects([]*adminv1.Project{updatedProj.Project}) + proj := updatedProj.Project + isManaged := isRillManagedProject(proj) + if isManaged { + fmt.Printf("Rill slots: %d\n", proj.ProdSlots) + fmt.Printf("Cluster slots: 0\n") + fmt.Printf("Prod slots: %d\n", proj.ProdSlots) + } else { + clusterSlotsVal := int64(4) + clusterLabel := "(default)" + if proj.ClusterSlots != nil { + clusterSlotsVal = *proj.ClusterSlots + clusterLabel = "" + } + rillSlotsVal := proj.ProdSlots - clusterSlotsVal + if rillSlotsVal < 0 { + rillSlotsVal = 0 + } + fmt.Printf("Rill slots: %d\n", rillSlotsVal) + fmt.Printf("Cluster slots: %d %s\n", clusterSlotsVal, clusterLabel) + fmt.Printf("Prod slots: %d (cluster + rill)\n", proj.ProdSlots) + } return nil }, } - editCmd.Flags().IntVar(&prodSlots, "prod-slots", 0, "Slots to allocate for production deployments") + editCmd.Flags().IntVar(&rillSlots, "rill-slots", 0, "Rill slots; for Managed: sets prod_slots directly; for Live Connect: sets prod_slots = cluster_slots + rill_slots") editCmd.Flags().StringVar(&prodVersion, "prod-version", "", "Rill version for production deployment") + editCmd.Flags().IntVar(&infraSlots, "infra-slots", 0, "Rill infra overhead slot allocation (Live Connect only; 0 = use default of 4)") + editCmd.Flags().IntVar(&clusterSlots, "cluster-slots", 0, "Cluster slot allocation override (stored in DB)") return editCmd } diff --git a/cli/cmd/sudo/project/get.go b/cli/cmd/sudo/project/get.go index 1e023c04b24..6e1ed7b9e7d 100644 --- a/cli/cmd/sudo/project/get.go +++ b/cli/cmd/sudo/project/get.go @@ -47,7 +47,26 @@ func GetCmd(ch *cmdutil.Helper) *cobra.Command { fmt.Printf("Subpath: %s\n", project.Subpath) fmt.Printf("Prod version: %s\n", project.ProdVersion) fmt.Printf("Primary branch: %s\n", project.PrimaryBranch) - fmt.Printf("Prod slots: %d\n", project.ProdSlots) + isRillManaged := isRillManagedProject(project) + if isRillManaged { + fmt.Printf("Rill slots: %d\n", project.ProdSlots) + fmt.Printf("Cluster slots: 0\n") + fmt.Printf("Prod slots: %d\n", project.ProdSlots) + } else { + clusterSlots := int64(4) + clusterLabel := " (default)" + if project.ClusterSlots != nil { + clusterSlots = *project.ClusterSlots + clusterLabel = "" + } + rillSlots := project.ProdSlots - clusterSlots + if rillSlots < 0 { + rillSlots = 0 + } + fmt.Printf("Rill slots: %d\n", rillSlots) + fmt.Printf("Cluster slots: %d%s\n", clusterSlots, clusterLabel) + fmt.Printf("Prod slots: %d (cluster + rill)\n", project.ProdSlots) + } fmt.Printf("Primary deployment ID: %s\n", project.PrimaryDeploymentId) fmt.Printf("Prod hibernation TTL: %s\n", time.Duration(project.ProdTtlSeconds)*time.Second) fmt.Printf("Annotations: %s\n", strings.Join(annotations, "; ")) @@ -58,3 +77,17 @@ func GetCmd(ch *cmdutil.Helper) *cobra.Command { return getCmd } + +// isRillManagedProject returns true if the project uses Rill-managed OLAP (DuckDB). +// When olap_connector is not yet populated, falls back to checking whether +// cluster_slots or infra_slots are set (which indicates Live Connect). +func isRillManagedProject(p *adminv1.Project) bool { + if p.OlapConnector != "" { + return p.OlapConnector == "duckdb" + } + // olap_connector not populated; use presence of cluster/infra slots as a Live Connect signal + if p.ClusterSlots != nil || p.InfraSlots != nil { + return false + } + return true +} diff --git a/cli/pkg/local/slots.go b/cli/pkg/local/slots.go index 9452201083c..a86dde4b67a 100644 --- a/cli/pkg/local/slots.go +++ b/cli/pkg/local/slots.go @@ -3,14 +3,12 @@ package local import "github.com/rilldata/rill/cli/pkg/cmdutil" // DefaultProdSlots returns the default number of slots for production environments. +// All plans start with 1 slot; users can manually increase after deployment. // // A slot represents the following resources: // - 1 CPU core // - 4 GB of memory // - 40 GB of storage -func DefaultProdSlots(ch *cmdutil.Helper) int { - if ch.IsDev() { - return 1 - } - return 4 +func DefaultProdSlots(_ *cmdutil.Helper) int { + return 1 } diff --git a/proto/gen/rill/admin/v1/admin.swagger.yaml b/proto/gen/rill/admin/v1/admin.swagger.yaml index 6eba3960689..0e1ba5bb1d3 100644 --- a/proto/gen/rill/admin/v1/admin.swagger.yaml +++ b/proto/gen/rill/admin/v1/admin.swagger.yaml @@ -1185,6 +1185,18 @@ paths: type: string superuserForceAccess: type: boolean + infraSlots: + type: string + format: int64 + description: |- + InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. + Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. + clusterSlots: + type: string + format: int64 + description: |- + ClusterSlots overrides the cluster slot allocation (stored as rill_min_slots in DB). + Adjustable by Rill staff. Derived from the OLAP cluster size. x-visibility: public /v1/orgs/{org}/projects/{project}/alerts: post: @@ -3794,6 +3806,25 @@ paths: required: true schema: $ref: '#/definitions/v1SudoUpdateOrganizationBillingCustomerRequest' + /v1/superuser/organization/credits/add: + post: + summary: SudoAddCredits adds billing credits to an organization + operationId: AdminService_SudoAddCredits + responses: + "200": + description: A successful response. + schema: + $ref: '#/definitions/v1SudoAddCreditsResponse' + default: + description: An unexpected error response. + schema: + $ref: '#/definitions/rpcStatus' + parameters: + - name: body + in: body + required: true + schema: + $ref: '#/definitions/v1SudoAddCreditsRequest' /v1/superuser/organization/custom-domain: patch: summary: |- @@ -3866,6 +3897,9 @@ paths: - BILLING_ISSUE_TYPE_PAYMENT_FAILED - BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED - BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED + - BILLING_ISSUE_TYPE_CREDIT_LOW + - BILLING_ISSUE_TYPE_CREDIT_CRITICAL + - BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED /v1/superuser/projects/annotations: patch: summary: SudoUpdateAnnotations endpoint for superusers to update project annotations @@ -4562,6 +4596,25 @@ definitions: description: Annotation for the base64-encoded UI state to open for the report. v1ApproveProjectAccessResponse: type: object + v1BillingCreditInfo: + type: object + properties: + totalCredit: + type: number + format: double + usedCredit: + type: number + format: double + remainingCredit: + type: number + format: double + creditExpiry: + type: string + format: date-time + burnRatePerDay: + type: number + format: double + description: BillingCreditInfo contains credit balance information for free-tier organizations. v1BillingIssue: type: object properties: @@ -4603,6 +4656,48 @@ definitions: $ref: '#/definitions/v1BillingIssueMetadataSubscriptionCancelled' neverSubscribed: $ref: '#/definitions/v1BillingIssueMetadataNeverSubscribed' + creditLow: + $ref: '#/definitions/v1BillingIssueMetadataCreditLow' + creditCritical: + $ref: '#/definitions/v1BillingIssueMetadataCreditCritical' + creditExhausted: + $ref: '#/definitions/v1BillingIssueMetadataCreditExhausted' + v1BillingIssueMetadataCreditCritical: + type: object + properties: + creditRemaining: + type: number + format: double + creditTotal: + type: number + format: double + creditExpiry: + type: string + format: date-time + v1BillingIssueMetadataCreditExhausted: + type: object + properties: + creditTotal: + type: number + format: double + creditExpiry: + type: string + format: date-time + exhaustedOn: + type: string + format: date-time + v1BillingIssueMetadataCreditLow: + type: object + properties: + creditRemaining: + type: number + format: double + creditTotal: + type: number + format: double + creditExpiry: + type: string + format: date-time v1BillingIssueMetadataNeverSubscribed: type: object v1BillingIssueMetadataNoBillableAddress: @@ -4674,6 +4769,9 @@ definitions: - BILLING_ISSUE_TYPE_PAYMENT_FAILED - BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED - BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED + - BILLING_ISSUE_TYPE_CREDIT_LOW + - BILLING_ISSUE_TYPE_CREDIT_CRITICAL + - BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED default: BILLING_ISSUE_TYPE_UNSPECIFIED v1BillingPlan: type: object @@ -4706,6 +4804,8 @@ definitions: - BILLING_PLAN_TYPE_TEAM - BILLING_PLAN_TYPE_MANAGED - BILLING_PLAN_TYPE_ENTERPRISE + - BILLING_PLAN_TYPE_FREE + - BILLING_PLAN_TYPE_GROWTH default: BILLING_PLAN_TYPE_UNSPECIFIED v1Bookmark: type: object @@ -5049,6 +5149,8 @@ definitions: $ref: '#/definitions/v1Subscription' billingPortalUrl: type: string + creditInfo: + $ref: '#/definitions/v1BillingCreditInfo' v1GetBookmarkResponse: type: object properties: @@ -5933,6 +6035,27 @@ definitions: updatedOn: type: string format: date-time + chcClusterSize: + type: number + format: double + description: ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + clusterSlots: + type: string + format: int64 + description: |- + ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + For Live Connect projects, this represents the base slots from the BYOLAP cluster. + infraSlots: + type: string + format: int64 + description: |- + InfraSlots is the Rill infrastructure overhead slot allocation for the project. + Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. + olapConnector: + type: string + description: |- + OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + Persisted so the frontend can show the correct engine label even when the project is hibernated. v1ProjectInvite: type: object properties: @@ -6390,6 +6513,25 @@ definitions: trialEndDate: type: string format: date-time + v1SudoAddCreditsRequest: + type: object + properties: + org: + type: string + amount: + type: number + format: double + expiryDays: + type: integer + format: int32 + title: Number of days until credits expire; defaults to 365 + description: + type: string + v1SudoAddCreditsResponse: + type: object + properties: + creditInfo: + $ref: '#/definitions/v1BillingCreditInfo' v1SudoDeleteOrganizationBillingIssueResponse: type: object v1SudoExtendTrialRequest: diff --git a/proto/gen/rill/admin/v1/api.pb.go b/proto/gen/rill/admin/v1/api.pb.go index f4d6f7c7463..194af618326 100644 --- a/proto/gen/rill/admin/v1/api.pb.go +++ b/proto/gen/rill/admin/v1/api.pb.go @@ -150,6 +150,8 @@ const ( BillingPlanType_BILLING_PLAN_TYPE_TEAM BillingPlanType = 2 BillingPlanType_BILLING_PLAN_TYPE_MANAGED BillingPlanType = 3 BillingPlanType_BILLING_PLAN_TYPE_ENTERPRISE BillingPlanType = 4 + BillingPlanType_BILLING_PLAN_TYPE_FREE BillingPlanType = 5 + BillingPlanType_BILLING_PLAN_TYPE_GROWTH BillingPlanType = 6 ) // Enum value maps for BillingPlanType. @@ -160,6 +162,8 @@ var ( 2: "BILLING_PLAN_TYPE_TEAM", 3: "BILLING_PLAN_TYPE_MANAGED", 4: "BILLING_PLAN_TYPE_ENTERPRISE", + 5: "BILLING_PLAN_TYPE_FREE", + 6: "BILLING_PLAN_TYPE_GROWTH", } BillingPlanType_value = map[string]int32{ "BILLING_PLAN_TYPE_UNSPECIFIED": 0, @@ -167,6 +171,8 @@ var ( "BILLING_PLAN_TYPE_TEAM": 2, "BILLING_PLAN_TYPE_MANAGED": 3, "BILLING_PLAN_TYPE_ENTERPRISE": 4, + "BILLING_PLAN_TYPE_FREE": 5, + "BILLING_PLAN_TYPE_GROWTH": 6, } ) @@ -208,19 +214,25 @@ const ( BillingIssueType_BILLING_ISSUE_TYPE_PAYMENT_FAILED BillingIssueType = 5 BillingIssueType_BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED BillingIssueType = 6 BillingIssueType_BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED BillingIssueType = 7 + BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_LOW BillingIssueType = 8 + BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_CRITICAL BillingIssueType = 9 + BillingIssueType_BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED BillingIssueType = 10 ) // Enum value maps for BillingIssueType. var ( BillingIssueType_name = map[int32]string{ - 0: "BILLING_ISSUE_TYPE_UNSPECIFIED", - 1: "BILLING_ISSUE_TYPE_ON_TRIAL", - 2: "BILLING_ISSUE_TYPE_TRIAL_ENDED", - 3: "BILLING_ISSUE_TYPE_NO_PAYMENT_METHOD", - 4: "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS", - 5: "BILLING_ISSUE_TYPE_PAYMENT_FAILED", - 6: "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED", - 7: "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED", + 0: "BILLING_ISSUE_TYPE_UNSPECIFIED", + 1: "BILLING_ISSUE_TYPE_ON_TRIAL", + 2: "BILLING_ISSUE_TYPE_TRIAL_ENDED", + 3: "BILLING_ISSUE_TYPE_NO_PAYMENT_METHOD", + 4: "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS", + 5: "BILLING_ISSUE_TYPE_PAYMENT_FAILED", + 6: "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED", + 7: "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED", + 8: "BILLING_ISSUE_TYPE_CREDIT_LOW", + 9: "BILLING_ISSUE_TYPE_CREDIT_CRITICAL", + 10: "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED", } BillingIssueType_value = map[string]int32{ "BILLING_ISSUE_TYPE_UNSPECIFIED": 0, @@ -231,6 +243,9 @@ var ( "BILLING_ISSUE_TYPE_PAYMENT_FAILED": 5, "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED": 6, "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED": 7, + "BILLING_ISSUE_TYPE_CREDIT_LOW": 8, + "BILLING_ISSUE_TYPE_CREDIT_CRITICAL": 9, + "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED": 10, } ) @@ -5043,6 +5058,12 @@ type UpdateProjectRequest struct { ProdTtlSeconds *int64 `protobuf:"varint,10,opt,name=prod_ttl_seconds,json=prodTtlSeconds,proto3,oneof" json:"prod_ttl_seconds,omitempty"` ProdVersion *string `protobuf:"bytes,11,opt,name=prod_version,json=prodVersion,proto3,oneof" json:"prod_version,omitempty"` SuperuserForceAccess bool `protobuf:"varint,14,opt,name=superuser_force_access,json=superuserForceAccess,proto3" json:"superuser_force_access,omitempty"` + // InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. + // Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. + InfraSlots *int64 `protobuf:"varint,16,opt,name=infra_slots,json=infraSlots,proto3,oneof" json:"infra_slots,omitempty"` + // ClusterSlots overrides the cluster slot allocation. + // Adjustable by Rill staff. Derived from the OLAP cluster size. + ClusterSlots *int64 `protobuf:"varint,17,opt,name=cluster_slots,json=clusterSlots,proto3,oneof" json:"cluster_slots,omitempty"` } func (x *UpdateProjectRequest) Reset() { @@ -5182,6 +5203,20 @@ func (x *UpdateProjectRequest) GetSuperuserForceAccess() bool { return false } +func (x *UpdateProjectRequest) GetInfraSlots() int64 { + if x != nil && x.InfraSlots != nil { + return *x.InfraSlots + } + return 0 +} + +func (x *UpdateProjectRequest) GetClusterSlots() int64 { + if x != nil && x.ClusterSlots != nil { + return *x.ClusterSlots + } + return 0 +} + type UpdateProjectResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8117,6 +8152,125 @@ func (x *SudoExtendTrialResponse) GetTrialEnd() *timestamppb.Timestamp { return nil } +type SudoAddCreditsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Org string `protobuf:"bytes,1,opt,name=org,proto3" json:"org,omitempty"` + Amount float64 `protobuf:"fixed64,2,opt,name=amount,proto3" json:"amount,omitempty"` + // Number of days until credits expire; defaults to 365 + ExpiryDays int32 `protobuf:"varint,3,opt,name=expiry_days,json=expiryDays,proto3" json:"expiry_days,omitempty"` + Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"` +} + +func (x *SudoAddCreditsRequest) Reset() { + *x = SudoAddCreditsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SudoAddCreditsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SudoAddCreditsRequest) ProtoMessage() {} + +func (x *SudoAddCreditsRequest) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[127] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SudoAddCreditsRequest.ProtoReflect.Descriptor instead. +func (*SudoAddCreditsRequest) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{127} +} + +func (x *SudoAddCreditsRequest) GetOrg() string { + if x != nil { + return x.Org + } + return "" +} + +func (x *SudoAddCreditsRequest) GetAmount() float64 { + if x != nil { + return x.Amount + } + return 0 +} + +func (x *SudoAddCreditsRequest) GetExpiryDays() int32 { + if x != nil { + return x.ExpiryDays + } + return 0 +} + +func (x *SudoAddCreditsRequest) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +type SudoAddCreditsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreditInfo *BillingCreditInfo `protobuf:"bytes,1,opt,name=credit_info,json=creditInfo,proto3" json:"credit_info,omitempty"` +} + +func (x *SudoAddCreditsResponse) Reset() { + *x = SudoAddCreditsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SudoAddCreditsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SudoAddCreditsResponse) ProtoMessage() {} + +func (x *SudoAddCreditsResponse) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[128] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SudoAddCreditsResponse.ProtoReflect.Descriptor instead. +func (*SudoAddCreditsResponse) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{128} +} + +func (x *SudoAddCreditsResponse) GetCreditInfo() *BillingCreditInfo { + if x != nil { + return x.CreditInfo + } + return nil +} + type SudoUpdateOrganizationCustomDomainRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -8129,7 +8283,7 @@ type SudoUpdateOrganizationCustomDomainRequest struct { func (x *SudoUpdateOrganizationCustomDomainRequest) Reset() { *x = SudoUpdateOrganizationCustomDomainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[127] + mi := &file_rill_admin_v1_api_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8142,7 +8296,7 @@ func (x *SudoUpdateOrganizationCustomDomainRequest) String() string { func (*SudoUpdateOrganizationCustomDomainRequest) ProtoMessage() {} func (x *SudoUpdateOrganizationCustomDomainRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[127] + mi := &file_rill_admin_v1_api_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8155,7 +8309,7 @@ func (x *SudoUpdateOrganizationCustomDomainRequest) ProtoReflect() protoreflect. // Deprecated: Use SudoUpdateOrganizationCustomDomainRequest.ProtoReflect.Descriptor instead. func (*SudoUpdateOrganizationCustomDomainRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{127} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{129} } func (x *SudoUpdateOrganizationCustomDomainRequest) GetName() string { @@ -8183,7 +8337,7 @@ type SudoUpdateOrganizationCustomDomainResponse struct { func (x *SudoUpdateOrganizationCustomDomainResponse) Reset() { *x = SudoUpdateOrganizationCustomDomainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[128] + mi := &file_rill_admin_v1_api_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8196,7 +8350,7 @@ func (x *SudoUpdateOrganizationCustomDomainResponse) String() string { func (*SudoUpdateOrganizationCustomDomainResponse) ProtoMessage() {} func (x *SudoUpdateOrganizationCustomDomainResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[128] + mi := &file_rill_admin_v1_api_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8209,7 +8363,7 @@ func (x *SudoUpdateOrganizationCustomDomainResponse) ProtoReflect() protoreflect // Deprecated: Use SudoUpdateOrganizationCustomDomainResponse.ProtoReflect.Descriptor instead. func (*SudoUpdateOrganizationCustomDomainResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{128} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{130} } func (x *SudoUpdateOrganizationCustomDomainResponse) GetOrganization() *Organization { @@ -8232,7 +8386,7 @@ type SudoUpdateUserQuotasRequest struct { func (x *SudoUpdateUserQuotasRequest) Reset() { *x = SudoUpdateUserQuotasRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[129] + mi := &file_rill_admin_v1_api_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8245,7 +8399,7 @@ func (x *SudoUpdateUserQuotasRequest) String() string { func (*SudoUpdateUserQuotasRequest) ProtoMessage() {} func (x *SudoUpdateUserQuotasRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[129] + mi := &file_rill_admin_v1_api_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8258,7 +8412,7 @@ func (x *SudoUpdateUserQuotasRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SudoUpdateUserQuotasRequest.ProtoReflect.Descriptor instead. func (*SudoUpdateUserQuotasRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{129} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{131} } func (x *SudoUpdateUserQuotasRequest) GetEmail() string { @@ -8293,7 +8447,7 @@ type SudoUpdateUserQuotasResponse struct { func (x *SudoUpdateUserQuotasResponse) Reset() { *x = SudoUpdateUserQuotasResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[130] + mi := &file_rill_admin_v1_api_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8306,7 +8460,7 @@ func (x *SudoUpdateUserQuotasResponse) String() string { func (*SudoUpdateUserQuotasResponse) ProtoMessage() {} func (x *SudoUpdateUserQuotasResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[130] + mi := &file_rill_admin_v1_api_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8319,7 +8473,7 @@ func (x *SudoUpdateUserQuotasResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SudoUpdateUserQuotasResponse.ProtoReflect.Descriptor instead. func (*SudoUpdateUserQuotasResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{130} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{132} } func (x *SudoUpdateUserQuotasResponse) GetUser() *User { @@ -8342,7 +8496,7 @@ type SudoUpdateAnnotationsRequest struct { func (x *SudoUpdateAnnotationsRequest) Reset() { *x = SudoUpdateAnnotationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[131] + mi := &file_rill_admin_v1_api_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8355,7 +8509,7 @@ func (x *SudoUpdateAnnotationsRequest) String() string { func (*SudoUpdateAnnotationsRequest) ProtoMessage() {} func (x *SudoUpdateAnnotationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[131] + mi := &file_rill_admin_v1_api_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8368,7 +8522,7 @@ func (x *SudoUpdateAnnotationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SudoUpdateAnnotationsRequest.ProtoReflect.Descriptor instead. func (*SudoUpdateAnnotationsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{131} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{133} } func (x *SudoUpdateAnnotationsRequest) GetOrg() string { @@ -8403,7 +8557,7 @@ type SudoUpdateAnnotationsResponse struct { func (x *SudoUpdateAnnotationsResponse) Reset() { *x = SudoUpdateAnnotationsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[132] + mi := &file_rill_admin_v1_api_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8416,7 +8570,7 @@ func (x *SudoUpdateAnnotationsResponse) String() string { func (*SudoUpdateAnnotationsResponse) ProtoMessage() {} func (x *SudoUpdateAnnotationsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[132] + mi := &file_rill_admin_v1_api_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8429,7 +8583,7 @@ func (x *SudoUpdateAnnotationsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SudoUpdateAnnotationsResponse.ProtoReflect.Descriptor instead. func (*SudoUpdateAnnotationsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{132} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{134} } func (x *SudoUpdateAnnotationsResponse) GetProject() *Project { @@ -8450,7 +8604,7 @@ type SudoIssueRuntimeManagerTokenRequest struct { func (x *SudoIssueRuntimeManagerTokenRequest) Reset() { *x = SudoIssueRuntimeManagerTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[133] + mi := &file_rill_admin_v1_api_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8463,7 +8617,7 @@ func (x *SudoIssueRuntimeManagerTokenRequest) String() string { func (*SudoIssueRuntimeManagerTokenRequest) ProtoMessage() {} func (x *SudoIssueRuntimeManagerTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[133] + mi := &file_rill_admin_v1_api_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8476,7 +8630,7 @@ func (x *SudoIssueRuntimeManagerTokenRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use SudoIssueRuntimeManagerTokenRequest.ProtoReflect.Descriptor instead. func (*SudoIssueRuntimeManagerTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{133} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{135} } func (x *SudoIssueRuntimeManagerTokenRequest) GetHost() string { @@ -8497,7 +8651,7 @@ type SudoIssueRuntimeManagerTokenResponse struct { func (x *SudoIssueRuntimeManagerTokenResponse) Reset() { *x = SudoIssueRuntimeManagerTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[134] + mi := &file_rill_admin_v1_api_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8510,7 +8664,7 @@ func (x *SudoIssueRuntimeManagerTokenResponse) String() string { func (*SudoIssueRuntimeManagerTokenResponse) ProtoMessage() {} func (x *SudoIssueRuntimeManagerTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[134] + mi := &file_rill_admin_v1_api_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8523,7 +8677,7 @@ func (x *SudoIssueRuntimeManagerTokenResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use SudoIssueRuntimeManagerTokenResponse.ProtoReflect.Descriptor instead. func (*SudoIssueRuntimeManagerTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{134} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{136} } func (x *SudoIssueRuntimeManagerTokenResponse) GetToken() string { @@ -8545,7 +8699,7 @@ type SudoDeleteOrganizationBillingIssueRequest struct { func (x *SudoDeleteOrganizationBillingIssueRequest) Reset() { *x = SudoDeleteOrganizationBillingIssueRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[135] + mi := &file_rill_admin_v1_api_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8558,7 +8712,7 @@ func (x *SudoDeleteOrganizationBillingIssueRequest) String() string { func (*SudoDeleteOrganizationBillingIssueRequest) ProtoMessage() {} func (x *SudoDeleteOrganizationBillingIssueRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[135] + mi := &file_rill_admin_v1_api_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8571,7 +8725,7 @@ func (x *SudoDeleteOrganizationBillingIssueRequest) ProtoReflect() protoreflect. // Deprecated: Use SudoDeleteOrganizationBillingIssueRequest.ProtoReflect.Descriptor instead. func (*SudoDeleteOrganizationBillingIssueRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{135} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{137} } func (x *SudoDeleteOrganizationBillingIssueRequest) GetOrg() string { @@ -8597,7 +8751,7 @@ type SudoDeleteOrganizationBillingIssueResponse struct { func (x *SudoDeleteOrganizationBillingIssueResponse) Reset() { *x = SudoDeleteOrganizationBillingIssueResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[136] + mi := &file_rill_admin_v1_api_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8610,7 +8764,7 @@ func (x *SudoDeleteOrganizationBillingIssueResponse) String() string { func (*SudoDeleteOrganizationBillingIssueResponse) ProtoMessage() {} func (x *SudoDeleteOrganizationBillingIssueResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[136] + mi := &file_rill_admin_v1_api_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8623,7 +8777,7 @@ func (x *SudoDeleteOrganizationBillingIssueResponse) ProtoReflect() protoreflect // Deprecated: Use SudoDeleteOrganizationBillingIssueResponse.ProtoReflect.Descriptor instead. func (*SudoDeleteOrganizationBillingIssueResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{136} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{138} } type SudoTriggerBillingRepairRequest struct { @@ -8635,7 +8789,7 @@ type SudoTriggerBillingRepairRequest struct { func (x *SudoTriggerBillingRepairRequest) Reset() { *x = SudoTriggerBillingRepairRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[137] + mi := &file_rill_admin_v1_api_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8648,7 +8802,7 @@ func (x *SudoTriggerBillingRepairRequest) String() string { func (*SudoTriggerBillingRepairRequest) ProtoMessage() {} func (x *SudoTriggerBillingRepairRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[137] + mi := &file_rill_admin_v1_api_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8661,7 +8815,7 @@ func (x *SudoTriggerBillingRepairRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SudoTriggerBillingRepairRequest.ProtoReflect.Descriptor instead. func (*SudoTriggerBillingRepairRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{137} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{139} } type SudoTriggerBillingRepairResponse struct { @@ -8673,7 +8827,7 @@ type SudoTriggerBillingRepairResponse struct { func (x *SudoTriggerBillingRepairResponse) Reset() { *x = SudoTriggerBillingRepairResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[138] + mi := &file_rill_admin_v1_api_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8686,7 +8840,7 @@ func (x *SudoTriggerBillingRepairResponse) String() string { func (*SudoTriggerBillingRepairResponse) ProtoMessage() {} func (x *SudoTriggerBillingRepairResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[138] + mi := &file_rill_admin_v1_api_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8699,7 +8853,7 @@ func (x *SudoTriggerBillingRepairResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SudoTriggerBillingRepairResponse.ProtoReflect.Descriptor instead. func (*SudoTriggerBillingRepairResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{138} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{140} } type ListProjectMemberUsersRequest struct { @@ -8718,7 +8872,7 @@ type ListProjectMemberUsersRequest struct { func (x *ListProjectMemberUsersRequest) Reset() { *x = ListProjectMemberUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[139] + mi := &file_rill_admin_v1_api_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8731,7 +8885,7 @@ func (x *ListProjectMemberUsersRequest) String() string { func (*ListProjectMemberUsersRequest) ProtoMessage() {} func (x *ListProjectMemberUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[139] + mi := &file_rill_admin_v1_api_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8744,7 +8898,7 @@ func (x *ListProjectMemberUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectMemberUsersRequest.ProtoReflect.Descriptor instead. func (*ListProjectMemberUsersRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{139} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{141} } func (x *ListProjectMemberUsersRequest) GetOrg() string { @@ -8801,7 +8955,7 @@ type ListProjectMemberUsersResponse struct { func (x *ListProjectMemberUsersResponse) Reset() { *x = ListProjectMemberUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[140] + mi := &file_rill_admin_v1_api_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8814,7 +8968,7 @@ func (x *ListProjectMemberUsersResponse) String() string { func (*ListProjectMemberUsersResponse) ProtoMessage() {} func (x *ListProjectMemberUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[140] + mi := &file_rill_admin_v1_api_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8827,7 +8981,7 @@ func (x *ListProjectMemberUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectMemberUsersResponse.ProtoReflect.Descriptor instead. func (*ListProjectMemberUsersResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{140} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{142} } func (x *ListProjectMemberUsersResponse) GetMembers() []*ProjectMemberUser { @@ -8858,7 +9012,7 @@ type ListProjectInvitesRequest struct { func (x *ListProjectInvitesRequest) Reset() { *x = ListProjectInvitesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[141] + mi := &file_rill_admin_v1_api_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8871,7 +9025,7 @@ func (x *ListProjectInvitesRequest) String() string { func (*ListProjectInvitesRequest) ProtoMessage() {} func (x *ListProjectInvitesRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[141] + mi := &file_rill_admin_v1_api_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8884,7 +9038,7 @@ func (x *ListProjectInvitesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectInvitesRequest.ProtoReflect.Descriptor instead. func (*ListProjectInvitesRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{141} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{143} } func (x *ListProjectInvitesRequest) GetOrg() string { @@ -8927,7 +9081,7 @@ type ListProjectInvitesResponse struct { func (x *ListProjectInvitesResponse) Reset() { *x = ListProjectInvitesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[142] + mi := &file_rill_admin_v1_api_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8940,7 +9094,7 @@ func (x *ListProjectInvitesResponse) String() string { func (*ListProjectInvitesResponse) ProtoMessage() {} func (x *ListProjectInvitesResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[142] + mi := &file_rill_admin_v1_api_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8953,7 +9107,7 @@ func (x *ListProjectInvitesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListProjectInvitesResponse.ProtoReflect.Descriptor instead. func (*ListProjectInvitesResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{142} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{144} } func (x *ListProjectInvitesResponse) GetInvites() []*ProjectInvite { @@ -8986,7 +9140,7 @@ type AddProjectMemberUserRequest struct { func (x *AddProjectMemberUserRequest) Reset() { *x = AddProjectMemberUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[143] + mi := &file_rill_admin_v1_api_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8999,7 +9153,7 @@ func (x *AddProjectMemberUserRequest) String() string { func (*AddProjectMemberUserRequest) ProtoMessage() {} func (x *AddProjectMemberUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[143] + mi := &file_rill_admin_v1_api_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9012,7 +9166,7 @@ func (x *AddProjectMemberUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddProjectMemberUserRequest.ProtoReflect.Descriptor instead. func (*AddProjectMemberUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{143} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{145} } func (x *AddProjectMemberUserRequest) GetOrg() string { @@ -9068,7 +9222,7 @@ type AddProjectMemberUserResponse struct { func (x *AddProjectMemberUserResponse) Reset() { *x = AddProjectMemberUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[144] + mi := &file_rill_admin_v1_api_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9081,7 +9235,7 @@ func (x *AddProjectMemberUserResponse) String() string { func (*AddProjectMemberUserResponse) ProtoMessage() {} func (x *AddProjectMemberUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[144] + mi := &file_rill_admin_v1_api_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9094,7 +9248,7 @@ func (x *AddProjectMemberUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddProjectMemberUserResponse.ProtoReflect.Descriptor instead. func (*AddProjectMemberUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{144} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{146} } func (x *AddProjectMemberUserResponse) GetPendingSignup() bool { @@ -9117,7 +9271,7 @@ type RemoveProjectMemberUserRequest struct { func (x *RemoveProjectMemberUserRequest) Reset() { *x = RemoveProjectMemberUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[145] + mi := &file_rill_admin_v1_api_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9130,7 +9284,7 @@ func (x *RemoveProjectMemberUserRequest) String() string { func (*RemoveProjectMemberUserRequest) ProtoMessage() {} func (x *RemoveProjectMemberUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[145] + mi := &file_rill_admin_v1_api_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9143,7 +9297,7 @@ func (x *RemoveProjectMemberUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveProjectMemberUserRequest.ProtoReflect.Descriptor instead. func (*RemoveProjectMemberUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{145} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{147} } func (x *RemoveProjectMemberUserRequest) GetOrg() string { @@ -9176,7 +9330,7 @@ type RemoveProjectMemberUserResponse struct { func (x *RemoveProjectMemberUserResponse) Reset() { *x = RemoveProjectMemberUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[146] + mi := &file_rill_admin_v1_api_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9189,7 +9343,7 @@ func (x *RemoveProjectMemberUserResponse) String() string { func (*RemoveProjectMemberUserResponse) ProtoMessage() {} func (x *RemoveProjectMemberUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[146] + mi := &file_rill_admin_v1_api_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9202,7 +9356,7 @@ func (x *RemoveProjectMemberUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveProjectMemberUserResponse.ProtoReflect.Descriptor instead. func (*RemoveProjectMemberUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{146} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{148} } type SetProjectMemberUserRoleRequest struct { @@ -9221,7 +9375,7 @@ type SetProjectMemberUserRoleRequest struct { func (x *SetProjectMemberUserRoleRequest) Reset() { *x = SetProjectMemberUserRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[147] + mi := &file_rill_admin_v1_api_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9234,7 +9388,7 @@ func (x *SetProjectMemberUserRoleRequest) String() string { func (*SetProjectMemberUserRoleRequest) ProtoMessage() {} func (x *SetProjectMemberUserRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[147] + mi := &file_rill_admin_v1_api_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9247,7 +9401,7 @@ func (x *SetProjectMemberUserRoleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetProjectMemberUserRoleRequest.ProtoReflect.Descriptor instead. func (*SetProjectMemberUserRoleRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{147} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{149} } func (x *SetProjectMemberUserRoleRequest) GetOrg() string { @@ -9301,7 +9455,7 @@ type SetProjectMemberUserRoleResponse struct { func (x *SetProjectMemberUserRoleResponse) Reset() { *x = SetProjectMemberUserRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[148] + mi := &file_rill_admin_v1_api_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9314,7 +9468,7 @@ func (x *SetProjectMemberUserRoleResponse) String() string { func (*SetProjectMemberUserRoleResponse) ProtoMessage() {} func (x *SetProjectMemberUserRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[148] + mi := &file_rill_admin_v1_api_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9327,7 +9481,7 @@ func (x *SetProjectMemberUserRoleResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SetProjectMemberUserRoleResponse.ProtoReflect.Descriptor instead. func (*SetProjectMemberUserRoleResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{148} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{150} } type ListUsergroupsForOrganizationAndUserRequest struct { @@ -9344,7 +9498,7 @@ type ListUsergroupsForOrganizationAndUserRequest struct { func (x *ListUsergroupsForOrganizationAndUserRequest) Reset() { *x = ListUsergroupsForOrganizationAndUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[149] + mi := &file_rill_admin_v1_api_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9357,7 +9511,7 @@ func (x *ListUsergroupsForOrganizationAndUserRequest) String() string { func (*ListUsergroupsForOrganizationAndUserRequest) ProtoMessage() {} func (x *ListUsergroupsForOrganizationAndUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[149] + mi := &file_rill_admin_v1_api_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9370,7 +9524,7 @@ func (x *ListUsergroupsForOrganizationAndUserRequest) ProtoReflect() protoreflec // Deprecated: Use ListUsergroupsForOrganizationAndUserRequest.ProtoReflect.Descriptor instead. func (*ListUsergroupsForOrganizationAndUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{149} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{151} } func (x *ListUsergroupsForOrganizationAndUserRequest) GetOrg() string { @@ -9413,7 +9567,7 @@ type ListUsergroupsForOrganizationAndUserResponse struct { func (x *ListUsergroupsForOrganizationAndUserResponse) Reset() { *x = ListUsergroupsForOrganizationAndUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[150] + mi := &file_rill_admin_v1_api_proto_msgTypes[152] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9426,7 +9580,7 @@ func (x *ListUsergroupsForOrganizationAndUserResponse) String() string { func (*ListUsergroupsForOrganizationAndUserResponse) ProtoMessage() {} func (x *ListUsergroupsForOrganizationAndUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[150] + mi := &file_rill_admin_v1_api_proto_msgTypes[152] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9439,7 +9593,7 @@ func (x *ListUsergroupsForOrganizationAndUserResponse) ProtoReflect() protorefle // Deprecated: Use ListUsergroupsForOrganizationAndUserResponse.ProtoReflect.Descriptor instead. func (*ListUsergroupsForOrganizationAndUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{150} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{152} } func (x *ListUsergroupsForOrganizationAndUserResponse) GetUsergroups() []*Usergroup { @@ -9468,7 +9622,7 @@ type CreateUsergroupRequest struct { func (x *CreateUsergroupRequest) Reset() { *x = CreateUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[151] + mi := &file_rill_admin_v1_api_proto_msgTypes[153] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9481,7 +9635,7 @@ func (x *CreateUsergroupRequest) String() string { func (*CreateUsergroupRequest) ProtoMessage() {} func (x *CreateUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[151] + mi := &file_rill_admin_v1_api_proto_msgTypes[153] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9494,7 +9648,7 @@ func (x *CreateUsergroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUsergroupRequest.ProtoReflect.Descriptor instead. func (*CreateUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{151} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{153} } func (x *CreateUsergroupRequest) GetOrg() string { @@ -9522,7 +9676,7 @@ type CreateUsergroupResponse struct { func (x *CreateUsergroupResponse) Reset() { *x = CreateUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[152] + mi := &file_rill_admin_v1_api_proto_msgTypes[154] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9535,7 +9689,7 @@ func (x *CreateUsergroupResponse) String() string { func (*CreateUsergroupResponse) ProtoMessage() {} func (x *CreateUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[152] + mi := &file_rill_admin_v1_api_proto_msgTypes[154] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9548,7 +9702,7 @@ func (x *CreateUsergroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateUsergroupResponse.ProtoReflect.Descriptor instead. func (*CreateUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{152} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{154} } func (x *CreateUsergroupResponse) GetUsergroup() *Usergroup { @@ -9572,7 +9726,7 @@ type GetUsergroupRequest struct { func (x *GetUsergroupRequest) Reset() { *x = GetUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[153] + mi := &file_rill_admin_v1_api_proto_msgTypes[155] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9585,7 +9739,7 @@ func (x *GetUsergroupRequest) String() string { func (*GetUsergroupRequest) ProtoMessage() {} func (x *GetUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[153] + mi := &file_rill_admin_v1_api_proto_msgTypes[155] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9598,7 +9752,7 @@ func (x *GetUsergroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsergroupRequest.ProtoReflect.Descriptor instead. func (*GetUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{153} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{155} } func (x *GetUsergroupRequest) GetOrg() string { @@ -9641,7 +9795,7 @@ type GetUsergroupResponse struct { func (x *GetUsergroupResponse) Reset() { *x = GetUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[154] + mi := &file_rill_admin_v1_api_proto_msgTypes[156] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9654,7 +9808,7 @@ func (x *GetUsergroupResponse) String() string { func (*GetUsergroupResponse) ProtoMessage() {} func (x *GetUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[154] + mi := &file_rill_admin_v1_api_proto_msgTypes[156] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9667,7 +9821,7 @@ func (x *GetUsergroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsergroupResponse.ProtoReflect.Descriptor instead. func (*GetUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{154} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{156} } func (x *GetUsergroupResponse) GetUsergroup() *Usergroup { @@ -9698,7 +9852,7 @@ type UpdateUsergroupRequest struct { func (x *UpdateUsergroupRequest) Reset() { *x = UpdateUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[155] + mi := &file_rill_admin_v1_api_proto_msgTypes[157] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9711,7 +9865,7 @@ func (x *UpdateUsergroupRequest) String() string { func (*UpdateUsergroupRequest) ProtoMessage() {} func (x *UpdateUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[155] + mi := &file_rill_admin_v1_api_proto_msgTypes[157] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9724,7 +9878,7 @@ func (x *UpdateUsergroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUsergroupRequest.ProtoReflect.Descriptor instead. func (*UpdateUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{155} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{157} } func (x *UpdateUsergroupRequest) GetOrg() string { @@ -9766,7 +9920,7 @@ type UpdateUsergroupResponse struct { func (x *UpdateUsergroupResponse) Reset() { *x = UpdateUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[156] + mi := &file_rill_admin_v1_api_proto_msgTypes[158] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9779,7 +9933,7 @@ func (x *UpdateUsergroupResponse) String() string { func (*UpdateUsergroupResponse) ProtoMessage() {} func (x *UpdateUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[156] + mi := &file_rill_admin_v1_api_proto_msgTypes[158] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9792,7 +9946,7 @@ func (x *UpdateUsergroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUsergroupResponse.ProtoReflect.Descriptor instead. func (*UpdateUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{156} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{158} } func (x *UpdateUsergroupResponse) GetUsergroup() *Usergroup { @@ -9817,7 +9971,7 @@ type ListOrganizationMemberUsergroupsRequest struct { func (x *ListOrganizationMemberUsergroupsRequest) Reset() { *x = ListOrganizationMemberUsergroupsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[157] + mi := &file_rill_admin_v1_api_proto_msgTypes[159] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9830,7 +9984,7 @@ func (x *ListOrganizationMemberUsergroupsRequest) String() string { func (*ListOrganizationMemberUsergroupsRequest) ProtoMessage() {} func (x *ListOrganizationMemberUsergroupsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[157] + mi := &file_rill_admin_v1_api_proto_msgTypes[159] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9843,7 +9997,7 @@ func (x *ListOrganizationMemberUsergroupsRequest) ProtoReflect() protoreflect.Me // Deprecated: Use ListOrganizationMemberUsergroupsRequest.ProtoReflect.Descriptor instead. func (*ListOrganizationMemberUsergroupsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{157} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{159} } func (x *ListOrganizationMemberUsergroupsRequest) GetOrg() string { @@ -9893,7 +10047,7 @@ type ListOrganizationMemberUsergroupsResponse struct { func (x *ListOrganizationMemberUsergroupsResponse) Reset() { *x = ListOrganizationMemberUsergroupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[158] + mi := &file_rill_admin_v1_api_proto_msgTypes[160] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9906,7 +10060,7 @@ func (x *ListOrganizationMemberUsergroupsResponse) String() string { func (*ListOrganizationMemberUsergroupsResponse) ProtoMessage() {} func (x *ListOrganizationMemberUsergroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[158] + mi := &file_rill_admin_v1_api_proto_msgTypes[160] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9919,7 +10073,7 @@ func (x *ListOrganizationMemberUsergroupsResponse) ProtoReflect() protoreflect.M // Deprecated: Use ListOrganizationMemberUsergroupsResponse.ProtoReflect.Descriptor instead. func (*ListOrganizationMemberUsergroupsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{158} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{160} } func (x *ListOrganizationMemberUsergroupsResponse) GetMembers() []*MemberUsergroup { @@ -9952,7 +10106,7 @@ type ListProjectMemberUsergroupsRequest struct { func (x *ListProjectMemberUsergroupsRequest) Reset() { *x = ListProjectMemberUsergroupsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[159] + mi := &file_rill_admin_v1_api_proto_msgTypes[161] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -9965,7 +10119,7 @@ func (x *ListProjectMemberUsergroupsRequest) String() string { func (*ListProjectMemberUsergroupsRequest) ProtoMessage() {} func (x *ListProjectMemberUsergroupsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[159] + mi := &file_rill_admin_v1_api_proto_msgTypes[161] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -9978,7 +10132,7 @@ func (x *ListProjectMemberUsergroupsRequest) ProtoReflect() protoreflect.Message // Deprecated: Use ListProjectMemberUsergroupsRequest.ProtoReflect.Descriptor instead. func (*ListProjectMemberUsergroupsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{159} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{161} } func (x *ListProjectMemberUsergroupsRequest) GetOrg() string { @@ -10035,7 +10189,7 @@ type ListProjectMemberUsergroupsResponse struct { func (x *ListProjectMemberUsergroupsResponse) Reset() { *x = ListProjectMemberUsergroupsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[160] + mi := &file_rill_admin_v1_api_proto_msgTypes[162] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10048,7 +10202,7 @@ func (x *ListProjectMemberUsergroupsResponse) String() string { func (*ListProjectMemberUsergroupsResponse) ProtoMessage() {} func (x *ListProjectMemberUsergroupsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[160] + mi := &file_rill_admin_v1_api_proto_msgTypes[162] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10061,7 +10215,7 @@ func (x *ListProjectMemberUsergroupsResponse) ProtoReflect() protoreflect.Messag // Deprecated: Use ListProjectMemberUsergroupsResponse.ProtoReflect.Descriptor instead. func (*ListProjectMemberUsergroupsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{160} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{162} } func (x *ListProjectMemberUsergroupsResponse) GetMembers() []*MemberUsergroup { @@ -10090,7 +10244,7 @@ type DeleteUsergroupRequest struct { func (x *DeleteUsergroupRequest) Reset() { *x = DeleteUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[161] + mi := &file_rill_admin_v1_api_proto_msgTypes[163] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10103,7 +10257,7 @@ func (x *DeleteUsergroupRequest) String() string { func (*DeleteUsergroupRequest) ProtoMessage() {} func (x *DeleteUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[161] + mi := &file_rill_admin_v1_api_proto_msgTypes[163] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10116,7 +10270,7 @@ func (x *DeleteUsergroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUsergroupRequest.ProtoReflect.Descriptor instead. func (*DeleteUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{161} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{163} } func (x *DeleteUsergroupRequest) GetOrg() string { @@ -10142,7 +10296,7 @@ type DeleteUsergroupResponse struct { func (x *DeleteUsergroupResponse) Reset() { *x = DeleteUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[162] + mi := &file_rill_admin_v1_api_proto_msgTypes[164] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10155,7 +10309,7 @@ func (x *DeleteUsergroupResponse) String() string { func (*DeleteUsergroupResponse) ProtoMessage() {} func (x *DeleteUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[162] + mi := &file_rill_admin_v1_api_proto_msgTypes[164] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10168,7 +10322,7 @@ func (x *DeleteUsergroupResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUsergroupResponse.ProtoReflect.Descriptor instead. func (*DeleteUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{162} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{164} } type AddOrganizationMemberUsergroupRequest struct { @@ -10184,7 +10338,7 @@ type AddOrganizationMemberUsergroupRequest struct { func (x *AddOrganizationMemberUsergroupRequest) Reset() { *x = AddOrganizationMemberUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[163] + mi := &file_rill_admin_v1_api_proto_msgTypes[165] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10197,7 +10351,7 @@ func (x *AddOrganizationMemberUsergroupRequest) String() string { func (*AddOrganizationMemberUsergroupRequest) ProtoMessage() {} func (x *AddOrganizationMemberUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[163] + mi := &file_rill_admin_v1_api_proto_msgTypes[165] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10210,7 +10364,7 @@ func (x *AddOrganizationMemberUsergroupRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use AddOrganizationMemberUsergroupRequest.ProtoReflect.Descriptor instead. func (*AddOrganizationMemberUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{163} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{165} } func (x *AddOrganizationMemberUsergroupRequest) GetOrg() string { @@ -10243,7 +10397,7 @@ type AddOrganizationMemberUsergroupResponse struct { func (x *AddOrganizationMemberUsergroupResponse) Reset() { *x = AddOrganizationMemberUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[164] + mi := &file_rill_admin_v1_api_proto_msgTypes[166] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10256,7 +10410,7 @@ func (x *AddOrganizationMemberUsergroupResponse) String() string { func (*AddOrganizationMemberUsergroupResponse) ProtoMessage() {} func (x *AddOrganizationMemberUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[164] + mi := &file_rill_admin_v1_api_proto_msgTypes[166] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10269,7 +10423,7 @@ func (x *AddOrganizationMemberUsergroupResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use AddOrganizationMemberUsergroupResponse.ProtoReflect.Descriptor instead. func (*AddOrganizationMemberUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{164} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{166} } type SetOrganizationMemberUsergroupRoleRequest struct { @@ -10285,7 +10439,7 @@ type SetOrganizationMemberUsergroupRoleRequest struct { func (x *SetOrganizationMemberUsergroupRoleRequest) Reset() { *x = SetOrganizationMemberUsergroupRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[165] + mi := &file_rill_admin_v1_api_proto_msgTypes[167] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10298,7 +10452,7 @@ func (x *SetOrganizationMemberUsergroupRoleRequest) String() string { func (*SetOrganizationMemberUsergroupRoleRequest) ProtoMessage() {} func (x *SetOrganizationMemberUsergroupRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[165] + mi := &file_rill_admin_v1_api_proto_msgTypes[167] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10311,7 +10465,7 @@ func (x *SetOrganizationMemberUsergroupRoleRequest) ProtoReflect() protoreflect. // Deprecated: Use SetOrganizationMemberUsergroupRoleRequest.ProtoReflect.Descriptor instead. func (*SetOrganizationMemberUsergroupRoleRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{165} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{167} } func (x *SetOrganizationMemberUsergroupRoleRequest) GetOrg() string { @@ -10344,7 +10498,7 @@ type SetOrganizationMemberUsergroupRoleResponse struct { func (x *SetOrganizationMemberUsergroupRoleResponse) Reset() { *x = SetOrganizationMemberUsergroupRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[166] + mi := &file_rill_admin_v1_api_proto_msgTypes[168] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10357,7 +10511,7 @@ func (x *SetOrganizationMemberUsergroupRoleResponse) String() string { func (*SetOrganizationMemberUsergroupRoleResponse) ProtoMessage() {} func (x *SetOrganizationMemberUsergroupRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[166] + mi := &file_rill_admin_v1_api_proto_msgTypes[168] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10370,7 +10524,7 @@ func (x *SetOrganizationMemberUsergroupRoleResponse) ProtoReflect() protoreflect // Deprecated: Use SetOrganizationMemberUsergroupRoleResponse.ProtoReflect.Descriptor instead. func (*SetOrganizationMemberUsergroupRoleResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{166} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{168} } type RemoveOrganizationMemberUsergroupRequest struct { @@ -10385,7 +10539,7 @@ type RemoveOrganizationMemberUsergroupRequest struct { func (x *RemoveOrganizationMemberUsergroupRequest) Reset() { *x = RemoveOrganizationMemberUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[167] + mi := &file_rill_admin_v1_api_proto_msgTypes[169] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10398,7 +10552,7 @@ func (x *RemoveOrganizationMemberUsergroupRequest) String() string { func (*RemoveOrganizationMemberUsergroupRequest) ProtoMessage() {} func (x *RemoveOrganizationMemberUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[167] + mi := &file_rill_admin_v1_api_proto_msgTypes[169] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10411,7 +10565,7 @@ func (x *RemoveOrganizationMemberUsergroupRequest) ProtoReflect() protoreflect.M // Deprecated: Use RemoveOrganizationMemberUsergroupRequest.ProtoReflect.Descriptor instead. func (*RemoveOrganizationMemberUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{167} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{169} } func (x *RemoveOrganizationMemberUsergroupRequest) GetOrg() string { @@ -10437,7 +10591,7 @@ type RemoveOrganizationMemberUsergroupResponse struct { func (x *RemoveOrganizationMemberUsergroupResponse) Reset() { *x = RemoveOrganizationMemberUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[168] + mi := &file_rill_admin_v1_api_proto_msgTypes[170] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10450,7 +10604,7 @@ func (x *RemoveOrganizationMemberUsergroupResponse) String() string { func (*RemoveOrganizationMemberUsergroupResponse) ProtoMessage() {} func (x *RemoveOrganizationMemberUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[168] + mi := &file_rill_admin_v1_api_proto_msgTypes[170] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10463,7 +10617,7 @@ func (x *RemoveOrganizationMemberUsergroupResponse) ProtoReflect() protoreflect. // Deprecated: Use RemoveOrganizationMemberUsergroupResponse.ProtoReflect.Descriptor instead. func (*RemoveOrganizationMemberUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{168} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{170} } type AddProjectMemberUsergroupRequest struct { @@ -10482,7 +10636,7 @@ type AddProjectMemberUsergroupRequest struct { func (x *AddProjectMemberUsergroupRequest) Reset() { *x = AddProjectMemberUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[169] + mi := &file_rill_admin_v1_api_proto_msgTypes[171] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10495,7 +10649,7 @@ func (x *AddProjectMemberUsergroupRequest) String() string { func (*AddProjectMemberUsergroupRequest) ProtoMessage() {} func (x *AddProjectMemberUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[169] + mi := &file_rill_admin_v1_api_proto_msgTypes[171] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10508,7 +10662,7 @@ func (x *AddProjectMemberUsergroupRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddProjectMemberUsergroupRequest.ProtoReflect.Descriptor instead. func (*AddProjectMemberUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{169} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{171} } func (x *AddProjectMemberUsergroupRequest) GetOrg() string { @@ -10562,7 +10716,7 @@ type AddProjectMemberUsergroupResponse struct { func (x *AddProjectMemberUsergroupResponse) Reset() { *x = AddProjectMemberUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[170] + mi := &file_rill_admin_v1_api_proto_msgTypes[172] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10575,7 +10729,7 @@ func (x *AddProjectMemberUsergroupResponse) String() string { func (*AddProjectMemberUsergroupResponse) ProtoMessage() {} func (x *AddProjectMemberUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[170] + mi := &file_rill_admin_v1_api_proto_msgTypes[172] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10588,7 +10742,7 @@ func (x *AddProjectMemberUsergroupResponse) ProtoReflect() protoreflect.Message // Deprecated: Use AddProjectMemberUsergroupResponse.ProtoReflect.Descriptor instead. func (*AddProjectMemberUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{170} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{172} } type SetProjectMemberUsergroupRoleRequest struct { @@ -10607,7 +10761,7 @@ type SetProjectMemberUsergroupRoleRequest struct { func (x *SetProjectMemberUsergroupRoleRequest) Reset() { *x = SetProjectMemberUsergroupRoleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[171] + mi := &file_rill_admin_v1_api_proto_msgTypes[173] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10620,7 +10774,7 @@ func (x *SetProjectMemberUsergroupRoleRequest) String() string { func (*SetProjectMemberUsergroupRoleRequest) ProtoMessage() {} func (x *SetProjectMemberUsergroupRoleRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[171] + mi := &file_rill_admin_v1_api_proto_msgTypes[173] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10633,7 +10787,7 @@ func (x *SetProjectMemberUsergroupRoleRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use SetProjectMemberUsergroupRoleRequest.ProtoReflect.Descriptor instead. func (*SetProjectMemberUsergroupRoleRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{171} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{173} } func (x *SetProjectMemberUsergroupRoleRequest) GetOrg() string { @@ -10687,7 +10841,7 @@ type SetProjectMemberUsergroupRoleResponse struct { func (x *SetProjectMemberUsergroupRoleResponse) Reset() { *x = SetProjectMemberUsergroupRoleResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[172] + mi := &file_rill_admin_v1_api_proto_msgTypes[174] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10700,7 +10854,7 @@ func (x *SetProjectMemberUsergroupRoleResponse) String() string { func (*SetProjectMemberUsergroupRoleResponse) ProtoMessage() {} func (x *SetProjectMemberUsergroupRoleResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[172] + mi := &file_rill_admin_v1_api_proto_msgTypes[174] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10713,7 +10867,7 @@ func (x *SetProjectMemberUsergroupRoleResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use SetProjectMemberUsergroupRoleResponse.ProtoReflect.Descriptor instead. func (*SetProjectMemberUsergroupRoleResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{172} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{174} } type RemoveProjectMemberUsergroupRequest struct { @@ -10729,7 +10883,7 @@ type RemoveProjectMemberUsergroupRequest struct { func (x *RemoveProjectMemberUsergroupRequest) Reset() { *x = RemoveProjectMemberUsergroupRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[173] + mi := &file_rill_admin_v1_api_proto_msgTypes[175] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10742,7 +10896,7 @@ func (x *RemoveProjectMemberUsergroupRequest) String() string { func (*RemoveProjectMemberUsergroupRequest) ProtoMessage() {} func (x *RemoveProjectMemberUsergroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[173] + mi := &file_rill_admin_v1_api_proto_msgTypes[175] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10755,7 +10909,7 @@ func (x *RemoveProjectMemberUsergroupRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use RemoveProjectMemberUsergroupRequest.ProtoReflect.Descriptor instead. func (*RemoveProjectMemberUsergroupRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{173} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{175} } func (x *RemoveProjectMemberUsergroupRequest) GetOrg() string { @@ -10788,7 +10942,7 @@ type RemoveProjectMemberUsergroupResponse struct { func (x *RemoveProjectMemberUsergroupResponse) Reset() { *x = RemoveProjectMemberUsergroupResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[174] + mi := &file_rill_admin_v1_api_proto_msgTypes[176] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10801,7 +10955,7 @@ func (x *RemoveProjectMemberUsergroupResponse) String() string { func (*RemoveProjectMemberUsergroupResponse) ProtoMessage() {} func (x *RemoveProjectMemberUsergroupResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[174] + mi := &file_rill_admin_v1_api_proto_msgTypes[176] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10814,7 +10968,7 @@ func (x *RemoveProjectMemberUsergroupResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use RemoveProjectMemberUsergroupResponse.ProtoReflect.Descriptor instead. func (*RemoveProjectMemberUsergroupResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{174} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{176} } type AddUsergroupMemberUserRequest struct { @@ -10830,7 +10984,7 @@ type AddUsergroupMemberUserRequest struct { func (x *AddUsergroupMemberUserRequest) Reset() { *x = AddUsergroupMemberUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[175] + mi := &file_rill_admin_v1_api_proto_msgTypes[177] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10843,7 +10997,7 @@ func (x *AddUsergroupMemberUserRequest) String() string { func (*AddUsergroupMemberUserRequest) ProtoMessage() {} func (x *AddUsergroupMemberUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[175] + mi := &file_rill_admin_v1_api_proto_msgTypes[177] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10856,7 +11010,7 @@ func (x *AddUsergroupMemberUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUsergroupMemberUserRequest.ProtoReflect.Descriptor instead. func (*AddUsergroupMemberUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{175} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{177} } func (x *AddUsergroupMemberUserRequest) GetOrg() string { @@ -10889,7 +11043,7 @@ type AddUsergroupMemberUserResponse struct { func (x *AddUsergroupMemberUserResponse) Reset() { *x = AddUsergroupMemberUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[176] + mi := &file_rill_admin_v1_api_proto_msgTypes[178] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10902,7 +11056,7 @@ func (x *AddUsergroupMemberUserResponse) String() string { func (*AddUsergroupMemberUserResponse) ProtoMessage() {} func (x *AddUsergroupMemberUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[176] + mi := &file_rill_admin_v1_api_proto_msgTypes[178] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10915,7 +11069,7 @@ func (x *AddUsergroupMemberUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUsergroupMemberUserResponse.ProtoReflect.Descriptor instead. func (*AddUsergroupMemberUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{176} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{178} } type ListUsergroupMemberUsersRequest struct { @@ -10932,7 +11086,7 @@ type ListUsergroupMemberUsersRequest struct { func (x *ListUsergroupMemberUsersRequest) Reset() { *x = ListUsergroupMemberUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[177] + mi := &file_rill_admin_v1_api_proto_msgTypes[179] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -10945,7 +11099,7 @@ func (x *ListUsergroupMemberUsersRequest) String() string { func (*ListUsergroupMemberUsersRequest) ProtoMessage() {} func (x *ListUsergroupMemberUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[177] + mi := &file_rill_admin_v1_api_proto_msgTypes[179] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -10958,7 +11112,7 @@ func (x *ListUsergroupMemberUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListUsergroupMemberUsersRequest.ProtoReflect.Descriptor instead. func (*ListUsergroupMemberUsersRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{177} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{179} } func (x *ListUsergroupMemberUsersRequest) GetOrg() string { @@ -11001,7 +11155,7 @@ type ListUsergroupMemberUsersResponse struct { func (x *ListUsergroupMemberUsersResponse) Reset() { *x = ListUsergroupMemberUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[178] + mi := &file_rill_admin_v1_api_proto_msgTypes[180] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11014,7 +11168,7 @@ func (x *ListUsergroupMemberUsersResponse) String() string { func (*ListUsergroupMemberUsersResponse) ProtoMessage() {} func (x *ListUsergroupMemberUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[178] + mi := &file_rill_admin_v1_api_proto_msgTypes[180] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11027,7 +11181,7 @@ func (x *ListUsergroupMemberUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListUsergroupMemberUsersResponse.ProtoReflect.Descriptor instead. func (*ListUsergroupMemberUsersResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{178} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{180} } func (x *ListUsergroupMemberUsersResponse) GetMembers() []*UsergroupMemberUser { @@ -11057,7 +11211,7 @@ type RemoveUsergroupMemberUserRequest struct { func (x *RemoveUsergroupMemberUserRequest) Reset() { *x = RemoveUsergroupMemberUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[179] + mi := &file_rill_admin_v1_api_proto_msgTypes[181] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11070,7 +11224,7 @@ func (x *RemoveUsergroupMemberUserRequest) String() string { func (*RemoveUsergroupMemberUserRequest) ProtoMessage() {} func (x *RemoveUsergroupMemberUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[179] + mi := &file_rill_admin_v1_api_proto_msgTypes[181] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11083,7 +11237,7 @@ func (x *RemoveUsergroupMemberUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveUsergroupMemberUserRequest.ProtoReflect.Descriptor instead. func (*RemoveUsergroupMemberUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{179} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{181} } func (x *RemoveUsergroupMemberUserRequest) GetOrg() string { @@ -11116,7 +11270,7 @@ type RemoveUsergroupMemberUserResponse struct { func (x *RemoveUsergroupMemberUserResponse) Reset() { *x = RemoveUsergroupMemberUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[180] + mi := &file_rill_admin_v1_api_proto_msgTypes[182] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11129,7 +11283,7 @@ func (x *RemoveUsergroupMemberUserResponse) String() string { func (*RemoveUsergroupMemberUserResponse) ProtoMessage() {} func (x *RemoveUsergroupMemberUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[180] + mi := &file_rill_admin_v1_api_proto_msgTypes[182] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11142,7 +11296,7 @@ func (x *RemoveUsergroupMemberUserResponse) ProtoReflect() protoreflect.Message // Deprecated: Use RemoveUsergroupMemberUserResponse.ProtoReflect.Descriptor instead. func (*RemoveUsergroupMemberUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{180} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{182} } type UserPreferences struct { @@ -11156,7 +11310,7 @@ type UserPreferences struct { func (x *UserPreferences) Reset() { *x = UserPreferences{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[181] + mi := &file_rill_admin_v1_api_proto_msgTypes[183] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11169,7 +11323,7 @@ func (x *UserPreferences) String() string { func (*UserPreferences) ProtoMessage() {} func (x *UserPreferences) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[181] + mi := &file_rill_admin_v1_api_proto_msgTypes[183] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11182,7 +11336,7 @@ func (x *UserPreferences) ProtoReflect() protoreflect.Message { // Deprecated: Use UserPreferences.ProtoReflect.Descriptor instead. func (*UserPreferences) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{181} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{183} } func (x *UserPreferences) GetTimeZone() string { @@ -11203,7 +11357,7 @@ type UpdateUserPreferencesRequest struct { func (x *UpdateUserPreferencesRequest) Reset() { *x = UpdateUserPreferencesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[182] + mi := &file_rill_admin_v1_api_proto_msgTypes[184] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11216,7 +11370,7 @@ func (x *UpdateUserPreferencesRequest) String() string { func (*UpdateUserPreferencesRequest) ProtoMessage() {} func (x *UpdateUserPreferencesRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[182] + mi := &file_rill_admin_v1_api_proto_msgTypes[184] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11229,7 +11383,7 @@ func (x *UpdateUserPreferencesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserPreferencesRequest.ProtoReflect.Descriptor instead. func (*UpdateUserPreferencesRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{182} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{184} } func (x *UpdateUserPreferencesRequest) GetPreferences() *UserPreferences { @@ -11250,7 +11404,7 @@ type UpdateUserPreferencesResponse struct { func (x *UpdateUserPreferencesResponse) Reset() { *x = UpdateUserPreferencesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[183] + mi := &file_rill_admin_v1_api_proto_msgTypes[185] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11263,7 +11417,7 @@ func (x *UpdateUserPreferencesResponse) String() string { func (*UpdateUserPreferencesResponse) ProtoMessage() {} func (x *UpdateUserPreferencesResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[183] + mi := &file_rill_admin_v1_api_proto_msgTypes[185] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11276,7 +11430,7 @@ func (x *UpdateUserPreferencesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateUserPreferencesResponse.ProtoReflect.Descriptor instead. func (*UpdateUserPreferencesResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{183} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{185} } func (x *UpdateUserPreferencesResponse) GetPreferences() *UserPreferences { @@ -11297,7 +11451,7 @@ type GetUserRequest struct { func (x *GetUserRequest) Reset() { *x = GetUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[184] + mi := &file_rill_admin_v1_api_proto_msgTypes[186] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11310,7 +11464,7 @@ func (x *GetUserRequest) String() string { func (*GetUserRequest) ProtoMessage() {} func (x *GetUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[184] + mi := &file_rill_admin_v1_api_proto_msgTypes[186] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11323,7 +11477,7 @@ func (x *GetUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserRequest.ProtoReflect.Descriptor instead. func (*GetUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{184} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{186} } func (x *GetUserRequest) GetEmail() string { @@ -11344,7 +11498,7 @@ type GetUserResponse struct { func (x *GetUserResponse) Reset() { *x = GetUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[185] + mi := &file_rill_admin_v1_api_proto_msgTypes[187] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11357,7 +11511,7 @@ func (x *GetUserResponse) String() string { func (*GetUserResponse) ProtoMessage() {} func (x *GetUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[185] + mi := &file_rill_admin_v1_api_proto_msgTypes[187] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11370,7 +11524,7 @@ func (x *GetUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUserResponse.ProtoReflect.Descriptor instead. func (*GetUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{185} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{187} } func (x *GetUserResponse) GetUser() *User { @@ -11389,7 +11543,7 @@ type GetCurrentUserRequest struct { func (x *GetCurrentUserRequest) Reset() { *x = GetCurrentUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[186] + mi := &file_rill_admin_v1_api_proto_msgTypes[188] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11402,7 +11556,7 @@ func (x *GetCurrentUserRequest) String() string { func (*GetCurrentUserRequest) ProtoMessage() {} func (x *GetCurrentUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[186] + mi := &file_rill_admin_v1_api_proto_msgTypes[188] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11415,7 +11569,7 @@ func (x *GetCurrentUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCurrentUserRequest.ProtoReflect.Descriptor instead. func (*GetCurrentUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{186} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{188} } type GetCurrentUserResponse struct { @@ -11430,7 +11584,7 @@ type GetCurrentUserResponse struct { func (x *GetCurrentUserResponse) Reset() { *x = GetCurrentUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[187] + mi := &file_rill_admin_v1_api_proto_msgTypes[189] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11443,7 +11597,7 @@ func (x *GetCurrentUserResponse) String() string { func (*GetCurrentUserResponse) ProtoMessage() {} func (x *GetCurrentUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[187] + mi := &file_rill_admin_v1_api_proto_msgTypes[189] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11456,7 +11610,7 @@ func (x *GetCurrentUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCurrentUserResponse.ProtoReflect.Descriptor instead. func (*GetCurrentUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{187} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{189} } func (x *GetCurrentUserResponse) GetUser() *User { @@ -11485,7 +11639,7 @@ type DeleteUserRequest struct { func (x *DeleteUserRequest) Reset() { *x = DeleteUserRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[188] + mi := &file_rill_admin_v1_api_proto_msgTypes[190] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11498,7 +11652,7 @@ func (x *DeleteUserRequest) String() string { func (*DeleteUserRequest) ProtoMessage() {} func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[188] + mi := &file_rill_admin_v1_api_proto_msgTypes[190] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11511,7 +11665,7 @@ func (x *DeleteUserRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserRequest.ProtoReflect.Descriptor instead. func (*DeleteUserRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{188} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{190} } func (x *DeleteUserRequest) GetEmail() string { @@ -11537,7 +11691,7 @@ type DeleteUserResponse struct { func (x *DeleteUserResponse) Reset() { *x = DeleteUserResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[189] + mi := &file_rill_admin_v1_api_proto_msgTypes[191] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11550,7 +11704,7 @@ func (x *DeleteUserResponse) String() string { func (*DeleteUserResponse) ProtoMessage() {} func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[189] + mi := &file_rill_admin_v1_api_proto_msgTypes[191] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11563,7 +11717,7 @@ func (x *DeleteUserResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserResponse.ProtoReflect.Descriptor instead. func (*DeleteUserResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{189} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{191} } type ListUserAuthTokensRequest struct { @@ -11586,7 +11740,7 @@ type ListUserAuthTokensRequest struct { func (x *ListUserAuthTokensRequest) Reset() { *x = ListUserAuthTokensRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[190] + mi := &file_rill_admin_v1_api_proto_msgTypes[192] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11599,7 +11753,7 @@ func (x *ListUserAuthTokensRequest) String() string { func (*ListUserAuthTokensRequest) ProtoMessage() {} func (x *ListUserAuthTokensRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[190] + mi := &file_rill_admin_v1_api_proto_msgTypes[192] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11612,7 +11766,7 @@ func (x *ListUserAuthTokensRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListUserAuthTokensRequest.ProtoReflect.Descriptor instead. func (*ListUserAuthTokensRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{190} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{192} } func (x *ListUserAuthTokensRequest) GetUserId() string { @@ -11664,7 +11818,7 @@ type ListUserAuthTokensResponse struct { func (x *ListUserAuthTokensResponse) Reset() { *x = ListUserAuthTokensResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[191] + mi := &file_rill_admin_v1_api_proto_msgTypes[193] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11677,7 +11831,7 @@ func (x *ListUserAuthTokensResponse) String() string { func (*ListUserAuthTokensResponse) ProtoMessage() {} func (x *ListUserAuthTokensResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[191] + mi := &file_rill_admin_v1_api_proto_msgTypes[193] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11690,7 +11844,7 @@ func (x *ListUserAuthTokensResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListUserAuthTokensResponse.ProtoReflect.Descriptor instead. func (*ListUserAuthTokensResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{191} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{193} } func (x *ListUserAuthTokensResponse) GetTokens() []*UserAuthToken { @@ -11731,7 +11885,7 @@ type IssueUserAuthTokenRequest struct { func (x *IssueUserAuthTokenRequest) Reset() { *x = IssueUserAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[192] + mi := &file_rill_admin_v1_api_proto_msgTypes[194] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11744,7 +11898,7 @@ func (x *IssueUserAuthTokenRequest) String() string { func (*IssueUserAuthTokenRequest) ProtoMessage() {} func (x *IssueUserAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[192] + mi := &file_rill_admin_v1_api_proto_msgTypes[194] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11757,7 +11911,7 @@ func (x *IssueUserAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueUserAuthTokenRequest.ProtoReflect.Descriptor instead. func (*IssueUserAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{192} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{194} } func (x *IssueUserAuthTokenRequest) GetUserId() string { @@ -11814,7 +11968,7 @@ type IssueUserAuthTokenResponse struct { func (x *IssueUserAuthTokenResponse) Reset() { *x = IssueUserAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[193] + mi := &file_rill_admin_v1_api_proto_msgTypes[195] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11827,7 +11981,7 @@ func (x *IssueUserAuthTokenResponse) String() string { func (*IssueUserAuthTokenResponse) ProtoMessage() {} func (x *IssueUserAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[193] + mi := &file_rill_admin_v1_api_proto_msgTypes[195] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11840,7 +11994,7 @@ func (x *IssueUserAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueUserAuthTokenResponse.ProtoReflect.Descriptor instead. func (*IssueUserAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{193} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{195} } func (x *IssueUserAuthTokenResponse) GetToken() string { @@ -11865,7 +12019,7 @@ type RevokeUserAuthTokenRequest struct { func (x *RevokeUserAuthTokenRequest) Reset() { *x = RevokeUserAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[194] + mi := &file_rill_admin_v1_api_proto_msgTypes[196] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11878,7 +12032,7 @@ func (x *RevokeUserAuthTokenRequest) String() string { func (*RevokeUserAuthTokenRequest) ProtoMessage() {} func (x *RevokeUserAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[194] + mi := &file_rill_admin_v1_api_proto_msgTypes[196] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11891,7 +12045,7 @@ func (x *RevokeUserAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeUserAuthTokenRequest.ProtoReflect.Descriptor instead. func (*RevokeUserAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{194} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{196} } func (x *RevokeUserAuthTokenRequest) GetTokenId() string { @@ -11917,7 +12071,7 @@ type RevokeUserAuthTokenResponse struct { func (x *RevokeUserAuthTokenResponse) Reset() { *x = RevokeUserAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[195] + mi := &file_rill_admin_v1_api_proto_msgTypes[197] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11930,7 +12084,7 @@ func (x *RevokeUserAuthTokenResponse) String() string { func (*RevokeUserAuthTokenResponse) ProtoMessage() {} func (x *RevokeUserAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[195] + mi := &file_rill_admin_v1_api_proto_msgTypes[197] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11943,7 +12097,7 @@ func (x *RevokeUserAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeUserAuthTokenResponse.ProtoReflect.Descriptor instead. func (*RevokeUserAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{195} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{197} } type RevokeAllUserAuthTokensRequest struct { @@ -11961,7 +12115,7 @@ type RevokeAllUserAuthTokensRequest struct { func (x *RevokeAllUserAuthTokensRequest) Reset() { *x = RevokeAllUserAuthTokensRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[196] + mi := &file_rill_admin_v1_api_proto_msgTypes[198] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -11974,7 +12128,7 @@ func (x *RevokeAllUserAuthTokensRequest) String() string { func (*RevokeAllUserAuthTokensRequest) ProtoMessage() {} func (x *RevokeAllUserAuthTokensRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[196] + mi := &file_rill_admin_v1_api_proto_msgTypes[198] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -11987,7 +12141,7 @@ func (x *RevokeAllUserAuthTokensRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeAllUserAuthTokensRequest.ProtoReflect.Descriptor instead. func (*RevokeAllUserAuthTokensRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{196} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{198} } func (x *RevokeAllUserAuthTokensRequest) GetUserId() string { @@ -12016,7 +12170,7 @@ type RevokeAllUserAuthTokensResponse struct { func (x *RevokeAllUserAuthTokensResponse) Reset() { *x = RevokeAllUserAuthTokensResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[197] + mi := &file_rill_admin_v1_api_proto_msgTypes[199] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12029,7 +12183,7 @@ func (x *RevokeAllUserAuthTokensResponse) String() string { func (*RevokeAllUserAuthTokensResponse) ProtoMessage() {} func (x *RevokeAllUserAuthTokensResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[197] + mi := &file_rill_admin_v1_api_proto_msgTypes[199] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12042,7 +12196,7 @@ func (x *RevokeAllUserAuthTokensResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeAllUserAuthTokensResponse.ProtoReflect.Descriptor instead. func (*RevokeAllUserAuthTokensResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{197} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{199} } func (x *RevokeAllUserAuthTokensResponse) GetTokensRevoked() int32 { @@ -12064,7 +12218,7 @@ type RevokeRepresentativeAuthTokensRequest struct { func (x *RevokeRepresentativeAuthTokensRequest) Reset() { *x = RevokeRepresentativeAuthTokensRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[198] + mi := &file_rill_admin_v1_api_proto_msgTypes[200] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12077,7 +12231,7 @@ func (x *RevokeRepresentativeAuthTokensRequest) String() string { func (*RevokeRepresentativeAuthTokensRequest) ProtoMessage() {} func (x *RevokeRepresentativeAuthTokensRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[198] + mi := &file_rill_admin_v1_api_proto_msgTypes[200] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12090,7 +12244,7 @@ func (x *RevokeRepresentativeAuthTokensRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use RevokeRepresentativeAuthTokensRequest.ProtoReflect.Descriptor instead. func (*RevokeRepresentativeAuthTokensRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{198} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{200} } func (x *RevokeRepresentativeAuthTokensRequest) GetEmail() string { @@ -12109,7 +12263,7 @@ type RevokeRepresentativeAuthTokensResponse struct { func (x *RevokeRepresentativeAuthTokensResponse) Reset() { *x = RevokeRepresentativeAuthTokensResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[199] + mi := &file_rill_admin_v1_api_proto_msgTypes[201] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12122,7 +12276,7 @@ func (x *RevokeRepresentativeAuthTokensResponse) String() string { func (*RevokeRepresentativeAuthTokensResponse) ProtoMessage() {} func (x *RevokeRepresentativeAuthTokensResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[199] + mi := &file_rill_admin_v1_api_proto_msgTypes[201] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12135,7 +12289,7 @@ func (x *RevokeRepresentativeAuthTokensResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use RevokeRepresentativeAuthTokensResponse.ProtoReflect.Descriptor instead. func (*RevokeRepresentativeAuthTokensResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{199} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{201} } type IssueRepresentativeAuthTokenRequest struct { @@ -12150,7 +12304,7 @@ type IssueRepresentativeAuthTokenRequest struct { func (x *IssueRepresentativeAuthTokenRequest) Reset() { *x = IssueRepresentativeAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[200] + mi := &file_rill_admin_v1_api_proto_msgTypes[202] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12163,7 +12317,7 @@ func (x *IssueRepresentativeAuthTokenRequest) String() string { func (*IssueRepresentativeAuthTokenRequest) ProtoMessage() {} func (x *IssueRepresentativeAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[200] + mi := &file_rill_admin_v1_api_proto_msgTypes[202] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12176,7 +12330,7 @@ func (x *IssueRepresentativeAuthTokenRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use IssueRepresentativeAuthTokenRequest.ProtoReflect.Descriptor instead. func (*IssueRepresentativeAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{200} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{202} } func (x *IssueRepresentativeAuthTokenRequest) GetEmail() string { @@ -12204,7 +12358,7 @@ type IssueRepresentativeAuthTokenResponse struct { func (x *IssueRepresentativeAuthTokenResponse) Reset() { *x = IssueRepresentativeAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[201] + mi := &file_rill_admin_v1_api_proto_msgTypes[203] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12217,7 +12371,7 @@ func (x *IssueRepresentativeAuthTokenResponse) String() string { func (*IssueRepresentativeAuthTokenResponse) ProtoMessage() {} func (x *IssueRepresentativeAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[201] + mi := &file_rill_admin_v1_api_proto_msgTypes[203] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12230,7 +12384,7 @@ func (x *IssueRepresentativeAuthTokenResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use IssueRepresentativeAuthTokenResponse.ProtoReflect.Descriptor instead. func (*IssueRepresentativeAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{201} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{203} } func (x *IssueRepresentativeAuthTokenResponse) GetToken() string { @@ -12249,7 +12403,7 @@ type RevokeCurrentAuthTokenRequest struct { func (x *RevokeCurrentAuthTokenRequest) Reset() { *x = RevokeCurrentAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[202] + mi := &file_rill_admin_v1_api_proto_msgTypes[204] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12262,7 +12416,7 @@ func (x *RevokeCurrentAuthTokenRequest) String() string { func (*RevokeCurrentAuthTokenRequest) ProtoMessage() {} func (x *RevokeCurrentAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[202] + mi := &file_rill_admin_v1_api_proto_msgTypes[204] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12275,7 +12429,7 @@ func (x *RevokeCurrentAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeCurrentAuthTokenRequest.ProtoReflect.Descriptor instead. func (*RevokeCurrentAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{202} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{204} } type RevokeCurrentAuthTokenResponse struct { @@ -12287,7 +12441,7 @@ type RevokeCurrentAuthTokenResponse struct { func (x *RevokeCurrentAuthTokenResponse) Reset() { *x = RevokeCurrentAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[203] + mi := &file_rill_admin_v1_api_proto_msgTypes[205] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12300,7 +12454,7 @@ func (x *RevokeCurrentAuthTokenResponse) String() string { func (*RevokeCurrentAuthTokenResponse) ProtoMessage() {} func (x *RevokeCurrentAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[203] + mi := &file_rill_admin_v1_api_proto_msgTypes[205] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12313,7 +12467,7 @@ func (x *RevokeCurrentAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeCurrentAuthTokenResponse.ProtoReflect.Descriptor instead. func (*RevokeCurrentAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{203} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{205} } type ListBookmarksRequest struct { @@ -12329,7 +12483,7 @@ type ListBookmarksRequest struct { func (x *ListBookmarksRequest) Reset() { *x = ListBookmarksRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[204] + mi := &file_rill_admin_v1_api_proto_msgTypes[206] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12342,7 +12496,7 @@ func (x *ListBookmarksRequest) String() string { func (*ListBookmarksRequest) ProtoMessage() {} func (x *ListBookmarksRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[204] + mi := &file_rill_admin_v1_api_proto_msgTypes[206] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12355,7 +12509,7 @@ func (x *ListBookmarksRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListBookmarksRequest.ProtoReflect.Descriptor instead. func (*ListBookmarksRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{204} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{206} } func (x *ListBookmarksRequest) GetProjectId() string { @@ -12390,7 +12544,7 @@ type ListBookmarksResponse struct { func (x *ListBookmarksResponse) Reset() { *x = ListBookmarksResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[205] + mi := &file_rill_admin_v1_api_proto_msgTypes[207] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12403,7 +12557,7 @@ func (x *ListBookmarksResponse) String() string { func (*ListBookmarksResponse) ProtoMessage() {} func (x *ListBookmarksResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[205] + mi := &file_rill_admin_v1_api_proto_msgTypes[207] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12416,7 +12570,7 @@ func (x *ListBookmarksResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListBookmarksResponse.ProtoReflect.Descriptor instead. func (*ListBookmarksResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{205} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{207} } func (x *ListBookmarksResponse) GetBookmarks() []*Bookmark { @@ -12437,7 +12591,7 @@ type GetBookmarkRequest struct { func (x *GetBookmarkRequest) Reset() { *x = GetBookmarkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[206] + mi := &file_rill_admin_v1_api_proto_msgTypes[208] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12450,7 +12604,7 @@ func (x *GetBookmarkRequest) String() string { func (*GetBookmarkRequest) ProtoMessage() {} func (x *GetBookmarkRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[206] + mi := &file_rill_admin_v1_api_proto_msgTypes[208] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12463,7 +12617,7 @@ func (x *GetBookmarkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBookmarkRequest.ProtoReflect.Descriptor instead. func (*GetBookmarkRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{206} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{208} } func (x *GetBookmarkRequest) GetBookmarkId() string { @@ -12484,7 +12638,7 @@ type GetBookmarkResponse struct { func (x *GetBookmarkResponse) Reset() { *x = GetBookmarkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[207] + mi := &file_rill_admin_v1_api_proto_msgTypes[209] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12497,7 +12651,7 @@ func (x *GetBookmarkResponse) String() string { func (*GetBookmarkResponse) ProtoMessage() {} func (x *GetBookmarkResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[207] + mi := &file_rill_admin_v1_api_proto_msgTypes[209] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12510,7 +12664,7 @@ func (x *GetBookmarkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBookmarkResponse.ProtoReflect.Descriptor instead. func (*GetBookmarkResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{207} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{209} } func (x *GetBookmarkResponse) GetBookmark() *Bookmark { @@ -12538,7 +12692,7 @@ type CreateBookmarkRequest struct { func (x *CreateBookmarkRequest) Reset() { *x = CreateBookmarkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[208] + mi := &file_rill_admin_v1_api_proto_msgTypes[210] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12551,7 +12705,7 @@ func (x *CreateBookmarkRequest) String() string { func (*CreateBookmarkRequest) ProtoMessage() {} func (x *CreateBookmarkRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[208] + mi := &file_rill_admin_v1_api_proto_msgTypes[210] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12564,7 +12718,7 @@ func (x *CreateBookmarkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBookmarkRequest.ProtoReflect.Descriptor instead. func (*CreateBookmarkRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{208} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{210} } func (x *CreateBookmarkRequest) GetDisplayName() string { @@ -12634,7 +12788,7 @@ type CreateBookmarkResponse struct { func (x *CreateBookmarkResponse) Reset() { *x = CreateBookmarkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[209] + mi := &file_rill_admin_v1_api_proto_msgTypes[211] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12647,7 +12801,7 @@ func (x *CreateBookmarkResponse) String() string { func (*CreateBookmarkResponse) ProtoMessage() {} func (x *CreateBookmarkResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[209] + mi := &file_rill_admin_v1_api_proto_msgTypes[211] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12660,7 +12814,7 @@ func (x *CreateBookmarkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateBookmarkResponse.ProtoReflect.Descriptor instead. func (*CreateBookmarkResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{209} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{211} } func (x *CreateBookmarkResponse) GetBookmark() *Bookmark { @@ -12686,7 +12840,7 @@ type UpdateBookmarkRequest struct { func (x *UpdateBookmarkRequest) Reset() { *x = UpdateBookmarkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[210] + mi := &file_rill_admin_v1_api_proto_msgTypes[212] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12699,7 +12853,7 @@ func (x *UpdateBookmarkRequest) String() string { func (*UpdateBookmarkRequest) ProtoMessage() {} func (x *UpdateBookmarkRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[210] + mi := &file_rill_admin_v1_api_proto_msgTypes[212] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12712,7 +12866,7 @@ func (x *UpdateBookmarkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateBookmarkRequest.ProtoReflect.Descriptor instead. func (*UpdateBookmarkRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{210} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{212} } func (x *UpdateBookmarkRequest) GetBookmarkId() string { @@ -12766,7 +12920,7 @@ type UpdateBookmarkResponse struct { func (x *UpdateBookmarkResponse) Reset() { *x = UpdateBookmarkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[211] + mi := &file_rill_admin_v1_api_proto_msgTypes[213] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12779,7 +12933,7 @@ func (x *UpdateBookmarkResponse) String() string { func (*UpdateBookmarkResponse) ProtoMessage() {} func (x *UpdateBookmarkResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[211] + mi := &file_rill_admin_v1_api_proto_msgTypes[213] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12792,7 +12946,7 @@ func (x *UpdateBookmarkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateBookmarkResponse.ProtoReflect.Descriptor instead. func (*UpdateBookmarkResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{211} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{213} } type RemoveBookmarkRequest struct { @@ -12806,7 +12960,7 @@ type RemoveBookmarkRequest struct { func (x *RemoveBookmarkRequest) Reset() { *x = RemoveBookmarkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[212] + mi := &file_rill_admin_v1_api_proto_msgTypes[214] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12819,7 +12973,7 @@ func (x *RemoveBookmarkRequest) String() string { func (*RemoveBookmarkRequest) ProtoMessage() {} func (x *RemoveBookmarkRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[212] + mi := &file_rill_admin_v1_api_proto_msgTypes[214] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12832,7 +12986,7 @@ func (x *RemoveBookmarkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveBookmarkRequest.ProtoReflect.Descriptor instead. func (*RemoveBookmarkRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{212} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{214} } func (x *RemoveBookmarkRequest) GetBookmarkId() string { @@ -12851,7 +13005,7 @@ type RemoveBookmarkResponse struct { func (x *RemoveBookmarkResponse) Reset() { *x = RemoveBookmarkResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[213] + mi := &file_rill_admin_v1_api_proto_msgTypes[215] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12864,7 +13018,7 @@ func (x *RemoveBookmarkResponse) String() string { func (*RemoveBookmarkResponse) ProtoMessage() {} func (x *RemoveBookmarkResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[213] + mi := &file_rill_admin_v1_api_proto_msgTypes[215] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12877,7 +13031,7 @@ func (x *RemoveBookmarkResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveBookmarkResponse.ProtoReflect.Descriptor instead. func (*RemoveBookmarkResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{213} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{215} } type SearchUsersRequest struct { @@ -12893,7 +13047,7 @@ type SearchUsersRequest struct { func (x *SearchUsersRequest) Reset() { *x = SearchUsersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[214] + mi := &file_rill_admin_v1_api_proto_msgTypes[216] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12906,7 +13060,7 @@ func (x *SearchUsersRequest) String() string { func (*SearchUsersRequest) ProtoMessage() {} func (x *SearchUsersRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[214] + mi := &file_rill_admin_v1_api_proto_msgTypes[216] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12919,7 +13073,7 @@ func (x *SearchUsersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchUsersRequest.ProtoReflect.Descriptor instead. func (*SearchUsersRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{214} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{216} } func (x *SearchUsersRequest) GetEmailPattern() string { @@ -12955,7 +13109,7 @@ type SearchUsersResponse struct { func (x *SearchUsersResponse) Reset() { *x = SearchUsersResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[215] + mi := &file_rill_admin_v1_api_proto_msgTypes[217] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -12968,7 +13122,7 @@ func (x *SearchUsersResponse) String() string { func (*SearchUsersResponse) ProtoMessage() {} func (x *SearchUsersResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[215] + mi := &file_rill_admin_v1_api_proto_msgTypes[217] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -12981,7 +13135,7 @@ func (x *SearchUsersResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchUsersResponse.ProtoReflect.Descriptor instead. func (*SearchUsersResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{215} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{217} } func (x *SearchUsersResponse) GetUsers() []*User { @@ -13009,7 +13163,7 @@ type RevokeServiceAuthTokenRequest struct { func (x *RevokeServiceAuthTokenRequest) Reset() { *x = RevokeServiceAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[216] + mi := &file_rill_admin_v1_api_proto_msgTypes[218] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13022,7 +13176,7 @@ func (x *RevokeServiceAuthTokenRequest) String() string { func (*RevokeServiceAuthTokenRequest) ProtoMessage() {} func (x *RevokeServiceAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[216] + mi := &file_rill_admin_v1_api_proto_msgTypes[218] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13035,7 +13189,7 @@ func (x *RevokeServiceAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeServiceAuthTokenRequest.ProtoReflect.Descriptor instead. func (*RevokeServiceAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{216} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{218} } func (x *RevokeServiceAuthTokenRequest) GetTokenId() string { @@ -13054,7 +13208,7 @@ type RevokeServiceAuthTokenResponse struct { func (x *RevokeServiceAuthTokenResponse) Reset() { *x = RevokeServiceAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[217] + mi := &file_rill_admin_v1_api_proto_msgTypes[219] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13067,7 +13221,7 @@ func (x *RevokeServiceAuthTokenResponse) String() string { func (*RevokeServiceAuthTokenResponse) ProtoMessage() {} func (x *RevokeServiceAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[217] + mi := &file_rill_admin_v1_api_proto_msgTypes[219] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13080,7 +13234,7 @@ func (x *RevokeServiceAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeServiceAuthTokenResponse.ProtoReflect.Descriptor instead. func (*RevokeServiceAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{217} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{219} } type IssueServiceAuthTokenRequest struct { @@ -13095,7 +13249,7 @@ type IssueServiceAuthTokenRequest struct { func (x *IssueServiceAuthTokenRequest) Reset() { *x = IssueServiceAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[218] + mi := &file_rill_admin_v1_api_proto_msgTypes[220] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13108,7 +13262,7 @@ func (x *IssueServiceAuthTokenRequest) String() string { func (*IssueServiceAuthTokenRequest) ProtoMessage() {} func (x *IssueServiceAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[218] + mi := &file_rill_admin_v1_api_proto_msgTypes[220] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13121,7 +13275,7 @@ func (x *IssueServiceAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueServiceAuthTokenRequest.ProtoReflect.Descriptor instead. func (*IssueServiceAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{218} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{220} } func (x *IssueServiceAuthTokenRequest) GetOrg() string { @@ -13149,7 +13303,7 @@ type IssueServiceAuthTokenResponse struct { func (x *IssueServiceAuthTokenResponse) Reset() { *x = IssueServiceAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[219] + mi := &file_rill_admin_v1_api_proto_msgTypes[221] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13162,7 +13316,7 @@ func (x *IssueServiceAuthTokenResponse) String() string { func (*IssueServiceAuthTokenResponse) ProtoMessage() {} func (x *IssueServiceAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[219] + mi := &file_rill_admin_v1_api_proto_msgTypes[221] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13175,7 +13329,7 @@ func (x *IssueServiceAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueServiceAuthTokenResponse.ProtoReflect.Descriptor instead. func (*IssueServiceAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{219} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{221} } func (x *IssueServiceAuthTokenResponse) GetToken() string { @@ -13197,7 +13351,7 @@ type ListServiceAuthTokensRequest struct { func (x *ListServiceAuthTokensRequest) Reset() { *x = ListServiceAuthTokensRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[220] + mi := &file_rill_admin_v1_api_proto_msgTypes[222] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13210,7 +13364,7 @@ func (x *ListServiceAuthTokensRequest) String() string { func (*ListServiceAuthTokensRequest) ProtoMessage() {} func (x *ListServiceAuthTokensRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[220] + mi := &file_rill_admin_v1_api_proto_msgTypes[222] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13223,7 +13377,7 @@ func (x *ListServiceAuthTokensRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListServiceAuthTokensRequest.ProtoReflect.Descriptor instead. func (*ListServiceAuthTokensRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{220} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{222} } func (x *ListServiceAuthTokensRequest) GetOrg() string { @@ -13251,7 +13405,7 @@ type ListServiceAuthTokensResponse struct { func (x *ListServiceAuthTokensResponse) Reset() { *x = ListServiceAuthTokensResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[221] + mi := &file_rill_admin_v1_api_proto_msgTypes[223] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13264,7 +13418,7 @@ func (x *ListServiceAuthTokensResponse) String() string { func (*ListServiceAuthTokensResponse) ProtoMessage() {} func (x *ListServiceAuthTokensResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[221] + mi := &file_rill_admin_v1_api_proto_msgTypes[223] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13277,7 +13431,7 @@ func (x *ListServiceAuthTokensResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListServiceAuthTokensResponse.ProtoReflect.Descriptor instead. func (*ListServiceAuthTokensResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{221} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{223} } func (x *ListServiceAuthTokensResponse) GetTokens() []*ServiceToken { @@ -13323,7 +13477,7 @@ type IssueMagicAuthTokenRequest struct { func (x *IssueMagicAuthTokenRequest) Reset() { *x = IssueMagicAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[222] + mi := &file_rill_admin_v1_api_proto_msgTypes[224] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13336,7 +13490,7 @@ func (x *IssueMagicAuthTokenRequest) String() string { func (*IssueMagicAuthTokenRequest) ProtoMessage() {} func (x *IssueMagicAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[222] + mi := &file_rill_admin_v1_api_proto_msgTypes[224] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13349,7 +13503,7 @@ func (x *IssueMagicAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueMagicAuthTokenRequest.ProtoReflect.Descriptor instead. func (*IssueMagicAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{222} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{224} } func (x *IssueMagicAuthTokenRequest) GetOrg() string { @@ -13436,7 +13590,7 @@ type ResourceName struct { func (x *ResourceName) Reset() { *x = ResourceName{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[223] + mi := &file_rill_admin_v1_api_proto_msgTypes[225] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13449,7 +13603,7 @@ func (x *ResourceName) String() string { func (*ResourceName) ProtoMessage() {} func (x *ResourceName) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[223] + mi := &file_rill_admin_v1_api_proto_msgTypes[225] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13462,7 +13616,7 @@ func (x *ResourceName) ProtoReflect() protoreflect.Message { // Deprecated: Use ResourceName.ProtoReflect.Descriptor instead. func (*ResourceName) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{223} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{225} } func (x *ResourceName) GetType() string { @@ -13491,7 +13645,7 @@ type IssueMagicAuthTokenResponse struct { func (x *IssueMagicAuthTokenResponse) Reset() { *x = IssueMagicAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[224] + mi := &file_rill_admin_v1_api_proto_msgTypes[226] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13504,7 +13658,7 @@ func (x *IssueMagicAuthTokenResponse) String() string { func (*IssueMagicAuthTokenResponse) ProtoMessage() {} func (x *IssueMagicAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[224] + mi := &file_rill_admin_v1_api_proto_msgTypes[226] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13517,7 +13671,7 @@ func (x *IssueMagicAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use IssueMagicAuthTokenResponse.ProtoReflect.Descriptor instead. func (*IssueMagicAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{224} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{226} } func (x *IssueMagicAuthTokenResponse) GetToken() string { @@ -13548,7 +13702,7 @@ type ListMagicAuthTokensRequest struct { func (x *ListMagicAuthTokensRequest) Reset() { *x = ListMagicAuthTokensRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[225] + mi := &file_rill_admin_v1_api_proto_msgTypes[227] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13561,7 +13715,7 @@ func (x *ListMagicAuthTokensRequest) String() string { func (*ListMagicAuthTokensRequest) ProtoMessage() {} func (x *ListMagicAuthTokensRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[225] + mi := &file_rill_admin_v1_api_proto_msgTypes[227] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13574,7 +13728,7 @@ func (x *ListMagicAuthTokensRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMagicAuthTokensRequest.ProtoReflect.Descriptor instead. func (*ListMagicAuthTokensRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{225} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{227} } func (x *ListMagicAuthTokensRequest) GetOrg() string { @@ -13617,7 +13771,7 @@ type ListMagicAuthTokensResponse struct { func (x *ListMagicAuthTokensResponse) Reset() { *x = ListMagicAuthTokensResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[226] + mi := &file_rill_admin_v1_api_proto_msgTypes[228] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13630,7 +13784,7 @@ func (x *ListMagicAuthTokensResponse) String() string { func (*ListMagicAuthTokensResponse) ProtoMessage() {} func (x *ListMagicAuthTokensResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[226] + mi := &file_rill_admin_v1_api_proto_msgTypes[228] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13643,7 +13797,7 @@ func (x *ListMagicAuthTokensResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListMagicAuthTokensResponse.ProtoReflect.Descriptor instead. func (*ListMagicAuthTokensResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{226} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{228} } func (x *ListMagicAuthTokensResponse) GetTokens() []*MagicAuthToken { @@ -13669,7 +13823,7 @@ type GetCurrentMagicAuthTokenRequest struct { func (x *GetCurrentMagicAuthTokenRequest) Reset() { *x = GetCurrentMagicAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[227] + mi := &file_rill_admin_v1_api_proto_msgTypes[229] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13682,7 +13836,7 @@ func (x *GetCurrentMagicAuthTokenRequest) String() string { func (*GetCurrentMagicAuthTokenRequest) ProtoMessage() {} func (x *GetCurrentMagicAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[227] + mi := &file_rill_admin_v1_api_proto_msgTypes[229] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13695,7 +13849,7 @@ func (x *GetCurrentMagicAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCurrentMagicAuthTokenRequest.ProtoReflect.Descriptor instead. func (*GetCurrentMagicAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{227} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{229} } type GetCurrentMagicAuthTokenResponse struct { @@ -13709,7 +13863,7 @@ type GetCurrentMagicAuthTokenResponse struct { func (x *GetCurrentMagicAuthTokenResponse) Reset() { *x = GetCurrentMagicAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[228] + mi := &file_rill_admin_v1_api_proto_msgTypes[230] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13722,7 +13876,7 @@ func (x *GetCurrentMagicAuthTokenResponse) String() string { func (*GetCurrentMagicAuthTokenResponse) ProtoMessage() {} func (x *GetCurrentMagicAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[228] + mi := &file_rill_admin_v1_api_proto_msgTypes[230] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13735,7 +13889,7 @@ func (x *GetCurrentMagicAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCurrentMagicAuthTokenResponse.ProtoReflect.Descriptor instead. func (*GetCurrentMagicAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{228} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{230} } func (x *GetCurrentMagicAuthTokenResponse) GetToken() *MagicAuthToken { @@ -13756,7 +13910,7 @@ type RevokeMagicAuthTokenRequest struct { func (x *RevokeMagicAuthTokenRequest) Reset() { *x = RevokeMagicAuthTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[229] + mi := &file_rill_admin_v1_api_proto_msgTypes[231] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13769,7 +13923,7 @@ func (x *RevokeMagicAuthTokenRequest) String() string { func (*RevokeMagicAuthTokenRequest) ProtoMessage() {} func (x *RevokeMagicAuthTokenRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[229] + mi := &file_rill_admin_v1_api_proto_msgTypes[231] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13782,7 +13936,7 @@ func (x *RevokeMagicAuthTokenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeMagicAuthTokenRequest.ProtoReflect.Descriptor instead. func (*RevokeMagicAuthTokenRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{229} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{231} } func (x *RevokeMagicAuthTokenRequest) GetTokenId() string { @@ -13801,7 +13955,7 @@ type RevokeMagicAuthTokenResponse struct { func (x *RevokeMagicAuthTokenResponse) Reset() { *x = RevokeMagicAuthTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[230] + mi := &file_rill_admin_v1_api_proto_msgTypes[232] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13814,7 +13968,7 @@ func (x *RevokeMagicAuthTokenResponse) String() string { func (*RevokeMagicAuthTokenResponse) ProtoMessage() {} func (x *RevokeMagicAuthTokenResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[230] + mi := &file_rill_admin_v1_api_proto_msgTypes[232] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13827,7 +13981,7 @@ func (x *RevokeMagicAuthTokenResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RevokeMagicAuthTokenResponse.ProtoReflect.Descriptor instead. func (*RevokeMagicAuthTokenResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{230} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{232} } type GetGithubRepoStatusRequest struct { @@ -13841,7 +13995,7 @@ type GetGithubRepoStatusRequest struct { func (x *GetGithubRepoStatusRequest) Reset() { *x = GetGithubRepoStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[231] + mi := &file_rill_admin_v1_api_proto_msgTypes[233] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13854,7 +14008,7 @@ func (x *GetGithubRepoStatusRequest) String() string { func (*GetGithubRepoStatusRequest) ProtoMessage() {} func (x *GetGithubRepoStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[231] + mi := &file_rill_admin_v1_api_proto_msgTypes[233] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13867,7 +14021,7 @@ func (x *GetGithubRepoStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGithubRepoStatusRequest.ProtoReflect.Descriptor instead. func (*GetGithubRepoStatusRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{231} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{233} } func (x *GetGithubRepoStatusRequest) GetRemote() string { @@ -13890,7 +14044,7 @@ type GetGithubRepoStatusResponse struct { func (x *GetGithubRepoStatusResponse) Reset() { *x = GetGithubRepoStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[232] + mi := &file_rill_admin_v1_api_proto_msgTypes[234] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13903,7 +14057,7 @@ func (x *GetGithubRepoStatusResponse) String() string { func (*GetGithubRepoStatusResponse) ProtoMessage() {} func (x *GetGithubRepoStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[232] + mi := &file_rill_admin_v1_api_proto_msgTypes[234] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13916,7 +14070,7 @@ func (x *GetGithubRepoStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGithubRepoStatusResponse.ProtoReflect.Descriptor instead. func (*GetGithubRepoStatusResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{232} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{234} } func (x *GetGithubRepoStatusResponse) GetHasAccess() bool { @@ -13949,7 +14103,7 @@ type GetGithubUserStatusRequest struct { func (x *GetGithubUserStatusRequest) Reset() { *x = GetGithubUserStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[233] + mi := &file_rill_admin_v1_api_proto_msgTypes[235] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -13962,7 +14116,7 @@ func (x *GetGithubUserStatusRequest) String() string { func (*GetGithubUserStatusRequest) ProtoMessage() {} func (x *GetGithubUserStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[233] + mi := &file_rill_admin_v1_api_proto_msgTypes[235] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -13975,7 +14129,7 @@ func (x *GetGithubUserStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGithubUserStatusRequest.ProtoReflect.Descriptor instead. func (*GetGithubUserStatusRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{233} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{235} } type GetGithubUserStatusResponse struct { @@ -13998,7 +14152,7 @@ type GetGithubUserStatusResponse struct { func (x *GetGithubUserStatusResponse) Reset() { *x = GetGithubUserStatusResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[234] + mi := &file_rill_admin_v1_api_proto_msgTypes[236] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14011,7 +14165,7 @@ func (x *GetGithubUserStatusResponse) String() string { func (*GetGithubUserStatusResponse) ProtoMessage() {} func (x *GetGithubUserStatusResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[234] + mi := &file_rill_admin_v1_api_proto_msgTypes[236] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14024,7 +14178,7 @@ func (x *GetGithubUserStatusResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGithubUserStatusResponse.ProtoReflect.Descriptor instead. func (*GetGithubUserStatusResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{234} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{236} } func (x *GetGithubUserStatusResponse) GetHasAccess() bool { @@ -14086,7 +14240,7 @@ type ListGithubUserReposRequest struct { func (x *ListGithubUserReposRequest) Reset() { *x = ListGithubUserReposRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[235] + mi := &file_rill_admin_v1_api_proto_msgTypes[237] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14099,7 +14253,7 @@ func (x *ListGithubUserReposRequest) String() string { func (*ListGithubUserReposRequest) ProtoMessage() {} func (x *ListGithubUserReposRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[235] + mi := &file_rill_admin_v1_api_proto_msgTypes[237] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14112,7 +14266,7 @@ func (x *ListGithubUserReposRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGithubUserReposRequest.ProtoReflect.Descriptor instead. func (*ListGithubUserReposRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{235} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{237} } type ListGithubUserReposResponse struct { @@ -14126,7 +14280,7 @@ type ListGithubUserReposResponse struct { func (x *ListGithubUserReposResponse) Reset() { *x = ListGithubUserReposResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[236] + mi := &file_rill_admin_v1_api_proto_msgTypes[238] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14139,7 +14293,7 @@ func (x *ListGithubUserReposResponse) String() string { func (*ListGithubUserReposResponse) ProtoMessage() {} func (x *ListGithubUserReposResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[236] + mi := &file_rill_admin_v1_api_proto_msgTypes[238] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14152,7 +14306,7 @@ func (x *ListGithubUserReposResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGithubUserReposResponse.ProtoReflect.Descriptor instead. func (*ListGithubUserReposResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{236} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{238} } func (x *ListGithubUserReposResponse) GetRepos() []*ListGithubUserReposResponse_Repo { @@ -14175,7 +14329,7 @@ type ConnectProjectToGithubRequest struct { func (x *ConnectProjectToGithubRequest) Reset() { *x = ConnectProjectToGithubRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[237] + mi := &file_rill_admin_v1_api_proto_msgTypes[239] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14188,7 +14342,7 @@ func (x *ConnectProjectToGithubRequest) String() string { func (*ConnectProjectToGithubRequest) ProtoMessage() {} func (x *ConnectProjectToGithubRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[237] + mi := &file_rill_admin_v1_api_proto_msgTypes[239] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14201,7 +14355,7 @@ func (x *ConnectProjectToGithubRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectProjectToGithubRequest.ProtoReflect.Descriptor instead. func (*ConnectProjectToGithubRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{237} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{239} } func (x *ConnectProjectToGithubRequest) GetOrg() string { @@ -14234,7 +14388,7 @@ type ConnectProjectToGithubResponse struct { func (x *ConnectProjectToGithubResponse) Reset() { *x = ConnectProjectToGithubResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[238] + mi := &file_rill_admin_v1_api_proto_msgTypes[240] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14247,7 +14401,7 @@ func (x *ConnectProjectToGithubResponse) String() string { func (*ConnectProjectToGithubResponse) ProtoMessage() {} func (x *ConnectProjectToGithubResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[238] + mi := &file_rill_admin_v1_api_proto_msgTypes[240] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14260,7 +14414,7 @@ func (x *ConnectProjectToGithubResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ConnectProjectToGithubResponse.ProtoReflect.Descriptor instead. func (*ConnectProjectToGithubResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{238} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{240} } type CreateManagedGitRepoRequest struct { @@ -14277,7 +14431,7 @@ type CreateManagedGitRepoRequest struct { func (x *CreateManagedGitRepoRequest) Reset() { *x = CreateManagedGitRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[239] + mi := &file_rill_admin_v1_api_proto_msgTypes[241] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14290,7 +14444,7 @@ func (x *CreateManagedGitRepoRequest) String() string { func (*CreateManagedGitRepoRequest) ProtoMessage() {} func (x *CreateManagedGitRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[239] + mi := &file_rill_admin_v1_api_proto_msgTypes[241] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14303,7 +14457,7 @@ func (x *CreateManagedGitRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateManagedGitRepoRequest.ProtoReflect.Descriptor instead. func (*CreateManagedGitRepoRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{239} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{241} } func (x *CreateManagedGitRepoRequest) GetOrg() string { @@ -14335,7 +14489,7 @@ type CreateManagedGitRepoResponse struct { func (x *CreateManagedGitRepoResponse) Reset() { *x = CreateManagedGitRepoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[240] + mi := &file_rill_admin_v1_api_proto_msgTypes[242] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14348,7 +14502,7 @@ func (x *CreateManagedGitRepoResponse) String() string { func (*CreateManagedGitRepoResponse) ProtoMessage() {} func (x *CreateManagedGitRepoResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[240] + mi := &file_rill_admin_v1_api_proto_msgTypes[242] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14361,7 +14515,7 @@ func (x *CreateManagedGitRepoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateManagedGitRepoResponse.ProtoReflect.Descriptor instead. func (*CreateManagedGitRepoResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{240} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{242} } func (x *CreateManagedGitRepoResponse) GetRemote() string { @@ -14412,7 +14566,7 @@ type GetCloneCredentialsRequest struct { func (x *GetCloneCredentialsRequest) Reset() { *x = GetCloneCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[241] + mi := &file_rill_admin_v1_api_proto_msgTypes[243] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14425,7 +14579,7 @@ func (x *GetCloneCredentialsRequest) String() string { func (*GetCloneCredentialsRequest) ProtoMessage() {} func (x *GetCloneCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[241] + mi := &file_rill_admin_v1_api_proto_msgTypes[243] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14438,7 +14592,7 @@ func (x *GetCloneCredentialsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCloneCredentialsRequest.ProtoReflect.Descriptor instead. func (*GetCloneCredentialsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{241} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{243} } func (x *GetCloneCredentialsRequest) GetOrg() string { @@ -14481,7 +14635,7 @@ type GetCloneCredentialsResponse struct { func (x *GetCloneCredentialsResponse) Reset() { *x = GetCloneCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[242] + mi := &file_rill_admin_v1_api_proto_msgTypes[244] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14494,7 +14648,7 @@ func (x *GetCloneCredentialsResponse) String() string { func (*GetCloneCredentialsResponse) ProtoMessage() {} func (x *GetCloneCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[242] + mi := &file_rill_admin_v1_api_proto_msgTypes[244] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14507,7 +14661,7 @@ func (x *GetCloneCredentialsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCloneCredentialsResponse.ProtoReflect.Descriptor instead. func (*GetCloneCredentialsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{242} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{244} } func (x *GetCloneCredentialsResponse) GetGitRepoUrl() string { @@ -14579,7 +14733,7 @@ type CreateWhitelistedDomainRequest struct { func (x *CreateWhitelistedDomainRequest) Reset() { *x = CreateWhitelistedDomainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[243] + mi := &file_rill_admin_v1_api_proto_msgTypes[245] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14592,7 +14746,7 @@ func (x *CreateWhitelistedDomainRequest) String() string { func (*CreateWhitelistedDomainRequest) ProtoMessage() {} func (x *CreateWhitelistedDomainRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[243] + mi := &file_rill_admin_v1_api_proto_msgTypes[245] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14605,7 +14759,7 @@ func (x *CreateWhitelistedDomainRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWhitelistedDomainRequest.ProtoReflect.Descriptor instead. func (*CreateWhitelistedDomainRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{243} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{245} } func (x *CreateWhitelistedDomainRequest) GetOrg() string { @@ -14638,7 +14792,7 @@ type CreateWhitelistedDomainResponse struct { func (x *CreateWhitelistedDomainResponse) Reset() { *x = CreateWhitelistedDomainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[244] + mi := &file_rill_admin_v1_api_proto_msgTypes[246] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14651,7 +14805,7 @@ func (x *CreateWhitelistedDomainResponse) String() string { func (*CreateWhitelistedDomainResponse) ProtoMessage() {} func (x *CreateWhitelistedDomainResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[244] + mi := &file_rill_admin_v1_api_proto_msgTypes[246] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14664,7 +14818,7 @@ func (x *CreateWhitelistedDomainResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateWhitelistedDomainResponse.ProtoReflect.Descriptor instead. func (*CreateWhitelistedDomainResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{244} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{246} } type RemoveWhitelistedDomainRequest struct { @@ -14679,7 +14833,7 @@ type RemoveWhitelistedDomainRequest struct { func (x *RemoveWhitelistedDomainRequest) Reset() { *x = RemoveWhitelistedDomainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[245] + mi := &file_rill_admin_v1_api_proto_msgTypes[247] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14692,7 +14846,7 @@ func (x *RemoveWhitelistedDomainRequest) String() string { func (*RemoveWhitelistedDomainRequest) ProtoMessage() {} func (x *RemoveWhitelistedDomainRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[245] + mi := &file_rill_admin_v1_api_proto_msgTypes[247] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14705,7 +14859,7 @@ func (x *RemoveWhitelistedDomainRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveWhitelistedDomainRequest.ProtoReflect.Descriptor instead. func (*RemoveWhitelistedDomainRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{245} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{247} } func (x *RemoveWhitelistedDomainRequest) GetOrg() string { @@ -14731,7 +14885,7 @@ type RemoveWhitelistedDomainResponse struct { func (x *RemoveWhitelistedDomainResponse) Reset() { *x = RemoveWhitelistedDomainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[246] + mi := &file_rill_admin_v1_api_proto_msgTypes[248] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14744,7 +14898,7 @@ func (x *RemoveWhitelistedDomainResponse) String() string { func (*RemoveWhitelistedDomainResponse) ProtoMessage() {} func (x *RemoveWhitelistedDomainResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[246] + mi := &file_rill_admin_v1_api_proto_msgTypes[248] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14757,7 +14911,7 @@ func (x *RemoveWhitelistedDomainResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveWhitelistedDomainResponse.ProtoReflect.Descriptor instead. func (*RemoveWhitelistedDomainResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{246} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{248} } type ListWhitelistedDomainsRequest struct { @@ -14771,7 +14925,7 @@ type ListWhitelistedDomainsRequest struct { func (x *ListWhitelistedDomainsRequest) Reset() { *x = ListWhitelistedDomainsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[247] + mi := &file_rill_admin_v1_api_proto_msgTypes[249] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14784,7 +14938,7 @@ func (x *ListWhitelistedDomainsRequest) String() string { func (*ListWhitelistedDomainsRequest) ProtoMessage() {} func (x *ListWhitelistedDomainsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[247] + mi := &file_rill_admin_v1_api_proto_msgTypes[249] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14797,7 +14951,7 @@ func (x *ListWhitelistedDomainsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWhitelistedDomainsRequest.ProtoReflect.Descriptor instead. func (*ListWhitelistedDomainsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{247} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{249} } func (x *ListWhitelistedDomainsRequest) GetOrg() string { @@ -14818,7 +14972,7 @@ type ListWhitelistedDomainsResponse struct { func (x *ListWhitelistedDomainsResponse) Reset() { *x = ListWhitelistedDomainsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[248] + mi := &file_rill_admin_v1_api_proto_msgTypes[250] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14831,7 +14985,7 @@ func (x *ListWhitelistedDomainsResponse) String() string { func (*ListWhitelistedDomainsResponse) ProtoMessage() {} func (x *ListWhitelistedDomainsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[248] + mi := &file_rill_admin_v1_api_proto_msgTypes[250] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14844,7 +14998,7 @@ func (x *ListWhitelistedDomainsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListWhitelistedDomainsResponse.ProtoReflect.Descriptor instead. func (*ListWhitelistedDomainsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{248} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{250} } func (x *ListWhitelistedDomainsResponse) GetDomains() []*WhitelistedDomain { @@ -14868,7 +15022,7 @@ type CreateProjectWhitelistedDomainRequest struct { func (x *CreateProjectWhitelistedDomainRequest) Reset() { *x = CreateProjectWhitelistedDomainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[249] + mi := &file_rill_admin_v1_api_proto_msgTypes[251] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14881,7 +15035,7 @@ func (x *CreateProjectWhitelistedDomainRequest) String() string { func (*CreateProjectWhitelistedDomainRequest) ProtoMessage() {} func (x *CreateProjectWhitelistedDomainRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[249] + mi := &file_rill_admin_v1_api_proto_msgTypes[251] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14894,7 +15048,7 @@ func (x *CreateProjectWhitelistedDomainRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use CreateProjectWhitelistedDomainRequest.ProtoReflect.Descriptor instead. func (*CreateProjectWhitelistedDomainRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{249} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{251} } func (x *CreateProjectWhitelistedDomainRequest) GetOrg() string { @@ -14934,7 +15088,7 @@ type CreateProjectWhitelistedDomainResponse struct { func (x *CreateProjectWhitelistedDomainResponse) Reset() { *x = CreateProjectWhitelistedDomainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[250] + mi := &file_rill_admin_v1_api_proto_msgTypes[252] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14947,7 +15101,7 @@ func (x *CreateProjectWhitelistedDomainResponse) String() string { func (*CreateProjectWhitelistedDomainResponse) ProtoMessage() {} func (x *CreateProjectWhitelistedDomainResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[250] + mi := &file_rill_admin_v1_api_proto_msgTypes[252] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -14960,7 +15114,7 @@ func (x *CreateProjectWhitelistedDomainResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use CreateProjectWhitelistedDomainResponse.ProtoReflect.Descriptor instead. func (*CreateProjectWhitelistedDomainResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{250} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{252} } type RemoveProjectWhitelistedDomainRequest struct { @@ -14976,7 +15130,7 @@ type RemoveProjectWhitelistedDomainRequest struct { func (x *RemoveProjectWhitelistedDomainRequest) Reset() { *x = RemoveProjectWhitelistedDomainRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[251] + mi := &file_rill_admin_v1_api_proto_msgTypes[253] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -14989,7 +15143,7 @@ func (x *RemoveProjectWhitelistedDomainRequest) String() string { func (*RemoveProjectWhitelistedDomainRequest) ProtoMessage() {} func (x *RemoveProjectWhitelistedDomainRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[251] + mi := &file_rill_admin_v1_api_proto_msgTypes[253] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15002,7 +15156,7 @@ func (x *RemoveProjectWhitelistedDomainRequest) ProtoReflect() protoreflect.Mess // Deprecated: Use RemoveProjectWhitelistedDomainRequest.ProtoReflect.Descriptor instead. func (*RemoveProjectWhitelistedDomainRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{251} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{253} } func (x *RemoveProjectWhitelistedDomainRequest) GetOrg() string { @@ -15035,7 +15189,7 @@ type RemoveProjectWhitelistedDomainResponse struct { func (x *RemoveProjectWhitelistedDomainResponse) Reset() { *x = RemoveProjectWhitelistedDomainResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[252] + mi := &file_rill_admin_v1_api_proto_msgTypes[254] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15048,7 +15202,7 @@ func (x *RemoveProjectWhitelistedDomainResponse) String() string { func (*RemoveProjectWhitelistedDomainResponse) ProtoMessage() {} func (x *RemoveProjectWhitelistedDomainResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[252] + mi := &file_rill_admin_v1_api_proto_msgTypes[254] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15061,7 +15215,7 @@ func (x *RemoveProjectWhitelistedDomainResponse) ProtoReflect() protoreflect.Mes // Deprecated: Use RemoveProjectWhitelistedDomainResponse.ProtoReflect.Descriptor instead. func (*RemoveProjectWhitelistedDomainResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{252} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{254} } type ListProjectWhitelistedDomainsRequest struct { @@ -15076,7 +15230,7 @@ type ListProjectWhitelistedDomainsRequest struct { func (x *ListProjectWhitelistedDomainsRequest) Reset() { *x = ListProjectWhitelistedDomainsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[253] + mi := &file_rill_admin_v1_api_proto_msgTypes[255] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15089,7 +15243,7 @@ func (x *ListProjectWhitelistedDomainsRequest) String() string { func (*ListProjectWhitelistedDomainsRequest) ProtoMessage() {} func (x *ListProjectWhitelistedDomainsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[253] + mi := &file_rill_admin_v1_api_proto_msgTypes[255] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15102,7 +15256,7 @@ func (x *ListProjectWhitelistedDomainsRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use ListProjectWhitelistedDomainsRequest.ProtoReflect.Descriptor instead. func (*ListProjectWhitelistedDomainsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{253} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{255} } func (x *ListProjectWhitelistedDomainsRequest) GetOrg() string { @@ -15130,7 +15284,7 @@ type ListProjectWhitelistedDomainsResponse struct { func (x *ListProjectWhitelistedDomainsResponse) Reset() { *x = ListProjectWhitelistedDomainsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[254] + mi := &file_rill_admin_v1_api_proto_msgTypes[256] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15143,7 +15297,7 @@ func (x *ListProjectWhitelistedDomainsResponse) String() string { func (*ListProjectWhitelistedDomainsResponse) ProtoMessage() {} func (x *ListProjectWhitelistedDomainsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[254] + mi := &file_rill_admin_v1_api_proto_msgTypes[256] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15156,7 +15310,7 @@ func (x *ListProjectWhitelistedDomainsResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use ListProjectWhitelistedDomainsResponse.ProtoReflect.Descriptor instead. func (*ListProjectWhitelistedDomainsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{254} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{256} } func (x *ListProjectWhitelistedDomainsResponse) GetDomains() []*WhitelistedDomain { @@ -15178,7 +15332,7 @@ type GetRepoMetaRequest struct { func (x *GetRepoMetaRequest) Reset() { *x = GetRepoMetaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[255] + mi := &file_rill_admin_v1_api_proto_msgTypes[257] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15191,7 +15345,7 @@ func (x *GetRepoMetaRequest) String() string { func (*GetRepoMetaRequest) ProtoMessage() {} func (x *GetRepoMetaRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[255] + mi := &file_rill_admin_v1_api_proto_msgTypes[257] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15204,7 +15358,7 @@ func (x *GetRepoMetaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepoMetaRequest.ProtoReflect.Descriptor instead. func (*GetRepoMetaRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{255} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{257} } func (x *GetRepoMetaRequest) GetProjectId() string { @@ -15247,7 +15401,7 @@ type GetRepoMetaResponse struct { func (x *GetRepoMetaResponse) Reset() { *x = GetRepoMetaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[256] + mi := &file_rill_admin_v1_api_proto_msgTypes[258] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15260,7 +15414,7 @@ func (x *GetRepoMetaResponse) String() string { func (*GetRepoMetaResponse) ProtoMessage() {} func (x *GetRepoMetaResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[256] + mi := &file_rill_admin_v1_api_proto_msgTypes[258] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15273,7 +15427,7 @@ func (x *GetRepoMetaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetRepoMetaResponse.ProtoReflect.Descriptor instead. func (*GetRepoMetaResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{256} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{258} } func (x *GetRepoMetaResponse) GetExpiresOn() *timestamppb.Timestamp { @@ -15374,7 +15528,7 @@ type PullVirtualRepoRequest struct { func (x *PullVirtualRepoRequest) Reset() { *x = PullVirtualRepoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[257] + mi := &file_rill_admin_v1_api_proto_msgTypes[259] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15387,7 +15541,7 @@ func (x *PullVirtualRepoRequest) String() string { func (*PullVirtualRepoRequest) ProtoMessage() {} func (x *PullVirtualRepoRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[257] + mi := &file_rill_admin_v1_api_proto_msgTypes[259] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15400,7 +15554,7 @@ func (x *PullVirtualRepoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PullVirtualRepoRequest.ProtoReflect.Descriptor instead. func (*PullVirtualRepoRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{257} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{259} } func (x *PullVirtualRepoRequest) GetProjectId() string { @@ -15452,7 +15606,7 @@ type PullVirtualRepoResponse struct { func (x *PullVirtualRepoResponse) Reset() { *x = PullVirtualRepoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[258] + mi := &file_rill_admin_v1_api_proto_msgTypes[260] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15465,7 +15619,7 @@ func (x *PullVirtualRepoResponse) String() string { func (*PullVirtualRepoResponse) ProtoMessage() {} func (x *PullVirtualRepoResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[258] + mi := &file_rill_admin_v1_api_proto_msgTypes[260] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15478,7 +15632,7 @@ func (x *PullVirtualRepoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PullVirtualRepoResponse.ProtoReflect.Descriptor instead. func (*PullVirtualRepoResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{258} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{260} } func (x *PullVirtualRepoResponse) GetFiles() []*VirtualFile { @@ -15514,7 +15668,7 @@ type GetVirtualFileRequest struct { func (x *GetVirtualFileRequest) Reset() { *x = GetVirtualFileRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[259] + mi := &file_rill_admin_v1_api_proto_msgTypes[261] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15527,7 +15681,7 @@ func (x *GetVirtualFileRequest) String() string { func (*GetVirtualFileRequest) ProtoMessage() {} func (x *GetVirtualFileRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[259] + mi := &file_rill_admin_v1_api_proto_msgTypes[261] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15540,7 +15694,7 @@ func (x *GetVirtualFileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVirtualFileRequest.ProtoReflect.Descriptor instead. func (*GetVirtualFileRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{259} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{261} } func (x *GetVirtualFileRequest) GetProjectId() string { @@ -15583,7 +15737,7 @@ type GetVirtualFileResponse struct { func (x *GetVirtualFileResponse) Reset() { *x = GetVirtualFileResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[260] + mi := &file_rill_admin_v1_api_proto_msgTypes[262] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15596,7 +15750,7 @@ func (x *GetVirtualFileResponse) String() string { func (*GetVirtualFileResponse) ProtoMessage() {} func (x *GetVirtualFileResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[260] + mi := &file_rill_admin_v1_api_proto_msgTypes[262] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15609,7 +15763,7 @@ func (x *GetVirtualFileResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVirtualFileResponse.ProtoReflect.Descriptor instead. func (*GetVirtualFileResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{260} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{262} } func (x *GetVirtualFileResponse) GetFile() *VirtualFile { @@ -15638,7 +15792,7 @@ type DeleteVirtualFileRequest struct { func (x *DeleteVirtualFileRequest) Reset() { *x = DeleteVirtualFileRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[261] + mi := &file_rill_admin_v1_api_proto_msgTypes[263] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15651,7 +15805,7 @@ func (x *DeleteVirtualFileRequest) String() string { func (*DeleteVirtualFileRequest) ProtoMessage() {} func (x *DeleteVirtualFileRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[261] + mi := &file_rill_admin_v1_api_proto_msgTypes[263] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15664,7 +15818,7 @@ func (x *DeleteVirtualFileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteVirtualFileRequest.ProtoReflect.Descriptor instead. func (*DeleteVirtualFileRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{261} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{263} } func (x *DeleteVirtualFileRequest) GetProjectId() string { @@ -15704,7 +15858,7 @@ type DeleteVirtualFileResponse struct { func (x *DeleteVirtualFileResponse) Reset() { *x = DeleteVirtualFileResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[262] + mi := &file_rill_admin_v1_api_proto_msgTypes[264] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15717,7 +15871,7 @@ func (x *DeleteVirtualFileResponse) String() string { func (*DeleteVirtualFileResponse) ProtoMessage() {} func (x *DeleteVirtualFileResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[262] + mi := &file_rill_admin_v1_api_proto_msgTypes[264] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15730,7 +15884,7 @@ func (x *DeleteVirtualFileResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteVirtualFileResponse.ProtoReflect.Descriptor instead. func (*DeleteVirtualFileResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{262} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{264} } type GetReportMetaRequest struct { @@ -15755,7 +15909,7 @@ type GetReportMetaRequest struct { func (x *GetReportMetaRequest) Reset() { *x = GetReportMetaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[263] + mi := &file_rill_admin_v1_api_proto_msgTypes[265] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15768,7 +15922,7 @@ func (x *GetReportMetaRequest) String() string { func (*GetReportMetaRequest) ProtoMessage() {} func (x *GetReportMetaRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[263] + mi := &file_rill_admin_v1_api_proto_msgTypes[265] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15781,7 +15935,7 @@ func (x *GetReportMetaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReportMetaRequest.ProtoReflect.Descriptor instead. func (*GetReportMetaRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{263} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{265} } func (x *GetReportMetaRequest) GetProjectId() string { @@ -15867,7 +16021,7 @@ type GetReportMetaResponse struct { func (x *GetReportMetaResponse) Reset() { *x = GetReportMetaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[264] + mi := &file_rill_admin_v1_api_proto_msgTypes[266] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15880,7 +16034,7 @@ func (x *GetReportMetaResponse) String() string { func (*GetReportMetaResponse) ProtoMessage() {} func (x *GetReportMetaResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[264] + mi := &file_rill_admin_v1_api_proto_msgTypes[266] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15893,7 +16047,7 @@ func (x *GetReportMetaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetReportMetaResponse.ProtoReflect.Descriptor instead. func (*GetReportMetaResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{264} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{266} } func (x *GetReportMetaResponse) GetDeliveryMeta() map[string]*GetReportMetaResponse_DeliveryMeta { @@ -15924,7 +16078,7 @@ type GetAlertMetaRequest struct { func (x *GetAlertMetaRequest) Reset() { *x = GetAlertMetaRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[265] + mi := &file_rill_admin_v1_api_proto_msgTypes[267] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -15937,7 +16091,7 @@ func (x *GetAlertMetaRequest) String() string { func (*GetAlertMetaRequest) ProtoMessage() {} func (x *GetAlertMetaRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[265] + mi := &file_rill_admin_v1_api_proto_msgTypes[267] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -15950,7 +16104,7 @@ func (x *GetAlertMetaRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAlertMetaRequest.ProtoReflect.Descriptor instead. func (*GetAlertMetaRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{265} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{267} } func (x *GetAlertMetaRequest) GetProjectId() string { @@ -16044,7 +16198,7 @@ type GetAlertMetaResponse struct { func (x *GetAlertMetaResponse) Reset() { *x = GetAlertMetaResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[266] + mi := &file_rill_admin_v1_api_proto_msgTypes[268] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16057,7 +16211,7 @@ func (x *GetAlertMetaResponse) String() string { func (*GetAlertMetaResponse) ProtoMessage() {} func (x *GetAlertMetaResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[266] + mi := &file_rill_admin_v1_api_proto_msgTypes[268] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16070,7 +16224,7 @@ func (x *GetAlertMetaResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAlertMetaResponse.ProtoReflect.Descriptor instead. func (*GetAlertMetaResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{266} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{268} } func (x *GetAlertMetaResponse) GetRecipientUrls() map[string]*GetAlertMetaResponse_URLs { @@ -16100,7 +16254,7 @@ type CreateReportRequest struct { func (x *CreateReportRequest) Reset() { *x = CreateReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[267] + mi := &file_rill_admin_v1_api_proto_msgTypes[269] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16113,7 +16267,7 @@ func (x *CreateReportRequest) String() string { func (*CreateReportRequest) ProtoMessage() {} func (x *CreateReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[267] + mi := &file_rill_admin_v1_api_proto_msgTypes[269] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16126,7 +16280,7 @@ func (x *CreateReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportRequest.ProtoReflect.Descriptor instead. func (*CreateReportRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{267} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{269} } func (x *CreateReportRequest) GetOrg() string { @@ -16161,7 +16315,7 @@ type CreateReportResponse struct { func (x *CreateReportResponse) Reset() { *x = CreateReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[268] + mi := &file_rill_admin_v1_api_proto_msgTypes[270] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16174,7 +16328,7 @@ func (x *CreateReportResponse) String() string { func (*CreateReportResponse) ProtoMessage() {} func (x *CreateReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[268] + mi := &file_rill_admin_v1_api_proto_msgTypes[270] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16187,7 +16341,7 @@ func (x *CreateReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateReportResponse.ProtoReflect.Descriptor instead. func (*CreateReportResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{268} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{270} } func (x *CreateReportResponse) GetName() string { @@ -16211,7 +16365,7 @@ type EditReportRequest struct { func (x *EditReportRequest) Reset() { *x = EditReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[269] + mi := &file_rill_admin_v1_api_proto_msgTypes[271] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16224,7 +16378,7 @@ func (x *EditReportRequest) String() string { func (*EditReportRequest) ProtoMessage() {} func (x *EditReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[269] + mi := &file_rill_admin_v1_api_proto_msgTypes[271] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16237,7 +16391,7 @@ func (x *EditReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EditReportRequest.ProtoReflect.Descriptor instead. func (*EditReportRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{269} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{271} } func (x *EditReportRequest) GetOrg() string { @@ -16277,7 +16431,7 @@ type EditReportResponse struct { func (x *EditReportResponse) Reset() { *x = EditReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[270] + mi := &file_rill_admin_v1_api_proto_msgTypes[272] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16290,7 +16444,7 @@ func (x *EditReportResponse) String() string { func (*EditReportResponse) ProtoMessage() {} func (x *EditReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[270] + mi := &file_rill_admin_v1_api_proto_msgTypes[272] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16303,7 +16457,7 @@ func (x *EditReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EditReportResponse.ProtoReflect.Descriptor instead. func (*EditReportResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{270} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{272} } type UnsubscribeReportRequest struct { @@ -16321,7 +16475,7 @@ type UnsubscribeReportRequest struct { func (x *UnsubscribeReportRequest) Reset() { *x = UnsubscribeReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[271] + mi := &file_rill_admin_v1_api_proto_msgTypes[273] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16334,7 +16488,7 @@ func (x *UnsubscribeReportRequest) String() string { func (*UnsubscribeReportRequest) ProtoMessage() {} func (x *UnsubscribeReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[271] + mi := &file_rill_admin_v1_api_proto_msgTypes[273] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16347,7 +16501,7 @@ func (x *UnsubscribeReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeReportRequest.ProtoReflect.Descriptor instead. func (*UnsubscribeReportRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{271} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{273} } func (x *UnsubscribeReportRequest) GetOrg() string { @@ -16394,7 +16548,7 @@ type UnsubscribeReportResponse struct { func (x *UnsubscribeReportResponse) Reset() { *x = UnsubscribeReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[272] + mi := &file_rill_admin_v1_api_proto_msgTypes[274] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16407,7 +16561,7 @@ func (x *UnsubscribeReportResponse) String() string { func (*UnsubscribeReportResponse) ProtoMessage() {} func (x *UnsubscribeReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[272] + mi := &file_rill_admin_v1_api_proto_msgTypes[274] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16420,7 +16574,7 @@ func (x *UnsubscribeReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeReportResponse.ProtoReflect.Descriptor instead. func (*UnsubscribeReportResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{272} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{274} } type DeleteReportRequest struct { @@ -16436,7 +16590,7 @@ type DeleteReportRequest struct { func (x *DeleteReportRequest) Reset() { *x = DeleteReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[273] + mi := &file_rill_admin_v1_api_proto_msgTypes[275] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16449,7 +16603,7 @@ func (x *DeleteReportRequest) String() string { func (*DeleteReportRequest) ProtoMessage() {} func (x *DeleteReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[273] + mi := &file_rill_admin_v1_api_proto_msgTypes[275] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16462,7 +16616,7 @@ func (x *DeleteReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteReportRequest.ProtoReflect.Descriptor instead. func (*DeleteReportRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{273} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{275} } func (x *DeleteReportRequest) GetOrg() string { @@ -16495,7 +16649,7 @@ type DeleteReportResponse struct { func (x *DeleteReportResponse) Reset() { *x = DeleteReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[274] + mi := &file_rill_admin_v1_api_proto_msgTypes[276] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16508,7 +16662,7 @@ func (x *DeleteReportResponse) String() string { func (*DeleteReportResponse) ProtoMessage() {} func (x *DeleteReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[274] + mi := &file_rill_admin_v1_api_proto_msgTypes[276] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16521,7 +16675,7 @@ func (x *DeleteReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteReportResponse.ProtoReflect.Descriptor instead. func (*DeleteReportResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{274} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{276} } type TriggerReportRequest struct { @@ -16537,7 +16691,7 @@ type TriggerReportRequest struct { func (x *TriggerReportRequest) Reset() { *x = TriggerReportRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[275] + mi := &file_rill_admin_v1_api_proto_msgTypes[277] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16550,7 +16704,7 @@ func (x *TriggerReportRequest) String() string { func (*TriggerReportRequest) ProtoMessage() {} func (x *TriggerReportRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[275] + mi := &file_rill_admin_v1_api_proto_msgTypes[277] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16563,7 +16717,7 @@ func (x *TriggerReportRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TriggerReportRequest.ProtoReflect.Descriptor instead. func (*TriggerReportRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{275} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{277} } func (x *TriggerReportRequest) GetOrg() string { @@ -16596,7 +16750,7 @@ type TriggerReportResponse struct { func (x *TriggerReportResponse) Reset() { *x = TriggerReportResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[276] + mi := &file_rill_admin_v1_api_proto_msgTypes[278] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16609,7 +16763,7 @@ func (x *TriggerReportResponse) String() string { func (*TriggerReportResponse) ProtoMessage() {} func (x *TriggerReportResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[276] + mi := &file_rill_admin_v1_api_proto_msgTypes[278] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16622,7 +16776,7 @@ func (x *TriggerReportResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TriggerReportResponse.ProtoReflect.Descriptor instead. func (*TriggerReportResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{276} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{278} } type GenerateReportYAMLRequest struct { @@ -16638,7 +16792,7 @@ type GenerateReportYAMLRequest struct { func (x *GenerateReportYAMLRequest) Reset() { *x = GenerateReportYAMLRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[277] + mi := &file_rill_admin_v1_api_proto_msgTypes[279] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16651,7 +16805,7 @@ func (x *GenerateReportYAMLRequest) String() string { func (*GenerateReportYAMLRequest) ProtoMessage() {} func (x *GenerateReportYAMLRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[277] + mi := &file_rill_admin_v1_api_proto_msgTypes[279] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16664,7 +16818,7 @@ func (x *GenerateReportYAMLRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateReportYAMLRequest.ProtoReflect.Descriptor instead. func (*GenerateReportYAMLRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{277} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{279} } func (x *GenerateReportYAMLRequest) GetOrg() string { @@ -16699,7 +16853,7 @@ type GenerateReportYAMLResponse struct { func (x *GenerateReportYAMLResponse) Reset() { *x = GenerateReportYAMLResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[278] + mi := &file_rill_admin_v1_api_proto_msgTypes[280] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16712,7 +16866,7 @@ func (x *GenerateReportYAMLResponse) String() string { func (*GenerateReportYAMLResponse) ProtoMessage() {} func (x *GenerateReportYAMLResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[278] + mi := &file_rill_admin_v1_api_proto_msgTypes[280] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16725,7 +16879,7 @@ func (x *GenerateReportYAMLResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateReportYAMLResponse.ProtoReflect.Descriptor instead. func (*GenerateReportYAMLResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{278} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{280} } func (x *GenerateReportYAMLResponse) GetYaml() string { @@ -16748,7 +16902,7 @@ type CreateAlertRequest struct { func (x *CreateAlertRequest) Reset() { *x = CreateAlertRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[279] + mi := &file_rill_admin_v1_api_proto_msgTypes[281] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16761,7 +16915,7 @@ func (x *CreateAlertRequest) String() string { func (*CreateAlertRequest) ProtoMessage() {} func (x *CreateAlertRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[279] + mi := &file_rill_admin_v1_api_proto_msgTypes[281] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16774,7 +16928,7 @@ func (x *CreateAlertRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAlertRequest.ProtoReflect.Descriptor instead. func (*CreateAlertRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{279} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{281} } func (x *CreateAlertRequest) GetOrg() string { @@ -16809,7 +16963,7 @@ type CreateAlertResponse struct { func (x *CreateAlertResponse) Reset() { *x = CreateAlertResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[280] + mi := &file_rill_admin_v1_api_proto_msgTypes[282] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16822,7 +16976,7 @@ func (x *CreateAlertResponse) String() string { func (*CreateAlertResponse) ProtoMessage() {} func (x *CreateAlertResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[280] + mi := &file_rill_admin_v1_api_proto_msgTypes[282] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16835,7 +16989,7 @@ func (x *CreateAlertResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateAlertResponse.ProtoReflect.Descriptor instead. func (*CreateAlertResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{280} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{282} } func (x *CreateAlertResponse) GetName() string { @@ -16859,7 +17013,7 @@ type EditAlertRequest struct { func (x *EditAlertRequest) Reset() { *x = EditAlertRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[281] + mi := &file_rill_admin_v1_api_proto_msgTypes[283] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16872,7 +17026,7 @@ func (x *EditAlertRequest) String() string { func (*EditAlertRequest) ProtoMessage() {} func (x *EditAlertRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[281] + mi := &file_rill_admin_v1_api_proto_msgTypes[283] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16885,7 +17039,7 @@ func (x *EditAlertRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EditAlertRequest.ProtoReflect.Descriptor instead. func (*EditAlertRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{281} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{283} } func (x *EditAlertRequest) GetOrg() string { @@ -16925,7 +17079,7 @@ type EditAlertResponse struct { func (x *EditAlertResponse) Reset() { *x = EditAlertResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[282] + mi := &file_rill_admin_v1_api_proto_msgTypes[284] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16938,7 +17092,7 @@ func (x *EditAlertResponse) String() string { func (*EditAlertResponse) ProtoMessage() {} func (x *EditAlertResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[282] + mi := &file_rill_admin_v1_api_proto_msgTypes[284] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16951,7 +17105,7 @@ func (x *EditAlertResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use EditAlertResponse.ProtoReflect.Descriptor instead. func (*EditAlertResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{282} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{284} } type UnsubscribeAlertRequest struct { @@ -16969,7 +17123,7 @@ type UnsubscribeAlertRequest struct { func (x *UnsubscribeAlertRequest) Reset() { *x = UnsubscribeAlertRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[283] + mi := &file_rill_admin_v1_api_proto_msgTypes[285] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -16982,7 +17136,7 @@ func (x *UnsubscribeAlertRequest) String() string { func (*UnsubscribeAlertRequest) ProtoMessage() {} func (x *UnsubscribeAlertRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[283] + mi := &file_rill_admin_v1_api_proto_msgTypes[285] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -16995,7 +17149,7 @@ func (x *UnsubscribeAlertRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeAlertRequest.ProtoReflect.Descriptor instead. func (*UnsubscribeAlertRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{283} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{285} } func (x *UnsubscribeAlertRequest) GetOrg() string { @@ -17042,7 +17196,7 @@ type UnsubscribeAlertResponse struct { func (x *UnsubscribeAlertResponse) Reset() { *x = UnsubscribeAlertResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[284] + mi := &file_rill_admin_v1_api_proto_msgTypes[286] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17055,7 +17209,7 @@ func (x *UnsubscribeAlertResponse) String() string { func (*UnsubscribeAlertResponse) ProtoMessage() {} func (x *UnsubscribeAlertResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[284] + mi := &file_rill_admin_v1_api_proto_msgTypes[286] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17068,7 +17222,7 @@ func (x *UnsubscribeAlertResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UnsubscribeAlertResponse.ProtoReflect.Descriptor instead. func (*UnsubscribeAlertResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{284} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{286} } type DeleteAlertRequest struct { @@ -17084,7 +17238,7 @@ type DeleteAlertRequest struct { func (x *DeleteAlertRequest) Reset() { *x = DeleteAlertRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[285] + mi := &file_rill_admin_v1_api_proto_msgTypes[287] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17097,7 +17251,7 @@ func (x *DeleteAlertRequest) String() string { func (*DeleteAlertRequest) ProtoMessage() {} func (x *DeleteAlertRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[285] + mi := &file_rill_admin_v1_api_proto_msgTypes[287] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17110,7 +17264,7 @@ func (x *DeleteAlertRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAlertRequest.ProtoReflect.Descriptor instead. func (*DeleteAlertRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{285} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{287} } func (x *DeleteAlertRequest) GetOrg() string { @@ -17143,7 +17297,7 @@ type DeleteAlertResponse struct { func (x *DeleteAlertResponse) Reset() { *x = DeleteAlertResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[286] + mi := &file_rill_admin_v1_api_proto_msgTypes[288] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17156,7 +17310,7 @@ func (x *DeleteAlertResponse) String() string { func (*DeleteAlertResponse) ProtoMessage() {} func (x *DeleteAlertResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[286] + mi := &file_rill_admin_v1_api_proto_msgTypes[288] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17169,7 +17323,7 @@ func (x *DeleteAlertResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteAlertResponse.ProtoReflect.Descriptor instead. func (*DeleteAlertResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{286} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{288} } type GenerateAlertYAMLRequest struct { @@ -17185,7 +17339,7 @@ type GenerateAlertYAMLRequest struct { func (x *GenerateAlertYAMLRequest) Reset() { *x = GenerateAlertYAMLRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[287] + mi := &file_rill_admin_v1_api_proto_msgTypes[289] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17198,7 +17352,7 @@ func (x *GenerateAlertYAMLRequest) String() string { func (*GenerateAlertYAMLRequest) ProtoMessage() {} func (x *GenerateAlertYAMLRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[287] + mi := &file_rill_admin_v1_api_proto_msgTypes[289] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17211,7 +17365,7 @@ func (x *GenerateAlertYAMLRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateAlertYAMLRequest.ProtoReflect.Descriptor instead. func (*GenerateAlertYAMLRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{287} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{289} } func (x *GenerateAlertYAMLRequest) GetOrg() string { @@ -17246,7 +17400,7 @@ type GenerateAlertYAMLResponse struct { func (x *GenerateAlertYAMLResponse) Reset() { *x = GenerateAlertYAMLResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[288] + mi := &file_rill_admin_v1_api_proto_msgTypes[290] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17259,7 +17413,7 @@ func (x *GenerateAlertYAMLResponse) String() string { func (*GenerateAlertYAMLResponse) ProtoMessage() {} func (x *GenerateAlertYAMLResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[288] + mi := &file_rill_admin_v1_api_proto_msgTypes[290] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17272,7 +17426,7 @@ func (x *GenerateAlertYAMLResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GenerateAlertYAMLResponse.ProtoReflect.Descriptor instead. func (*GenerateAlertYAMLResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{288} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{290} } func (x *GenerateAlertYAMLResponse) GetYaml() string { @@ -17295,7 +17449,7 @@ type GetAlertYAMLRequest struct { func (x *GetAlertYAMLRequest) Reset() { *x = GetAlertYAMLRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[289] + mi := &file_rill_admin_v1_api_proto_msgTypes[291] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17308,7 +17462,7 @@ func (x *GetAlertYAMLRequest) String() string { func (*GetAlertYAMLRequest) ProtoMessage() {} func (x *GetAlertYAMLRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[289] + mi := &file_rill_admin_v1_api_proto_msgTypes[291] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17321,7 +17475,7 @@ func (x *GetAlertYAMLRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAlertYAMLRequest.ProtoReflect.Descriptor instead. func (*GetAlertYAMLRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{289} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{291} } func (x *GetAlertYAMLRequest) GetOrg() string { @@ -17356,7 +17510,7 @@ type GetAlertYAMLResponse struct { func (x *GetAlertYAMLResponse) Reset() { *x = GetAlertYAMLResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[290] + mi := &file_rill_admin_v1_api_proto_msgTypes[292] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17369,7 +17523,7 @@ func (x *GetAlertYAMLResponse) String() string { func (*GetAlertYAMLResponse) ProtoMessage() {} func (x *GetAlertYAMLResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[290] + mi := &file_rill_admin_v1_api_proto_msgTypes[292] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17382,7 +17536,7 @@ func (x *GetAlertYAMLResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAlertYAMLResponse.ProtoReflect.Descriptor instead. func (*GetAlertYAMLResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{290} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{292} } func (x *GetAlertYAMLResponse) GetYaml() string { @@ -17404,7 +17558,7 @@ type GetBillingSubscriptionRequest struct { func (x *GetBillingSubscriptionRequest) Reset() { *x = GetBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[291] + mi := &file_rill_admin_v1_api_proto_msgTypes[293] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17417,7 +17571,7 @@ func (x *GetBillingSubscriptionRequest) String() string { func (*GetBillingSubscriptionRequest) ProtoMessage() {} func (x *GetBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[291] + mi := &file_rill_admin_v1_api_proto_msgTypes[293] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17430,7 +17584,7 @@ func (x *GetBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBillingSubscriptionRequest.ProtoReflect.Descriptor instead. func (*GetBillingSubscriptionRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{291} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{293} } func (x *GetBillingSubscriptionRequest) GetOrg() string { @@ -17452,15 +17606,16 @@ type GetBillingSubscriptionResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` - Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` - BillingPortalUrl string `protobuf:"bytes,3,opt,name=billing_portal_url,json=billingPortalUrl,proto3" json:"billing_portal_url,omitempty"` + Organization *Organization `protobuf:"bytes,1,opt,name=organization,proto3" json:"organization,omitempty"` + Subscription *Subscription `protobuf:"bytes,2,opt,name=subscription,proto3" json:"subscription,omitempty"` + BillingPortalUrl string `protobuf:"bytes,3,opt,name=billing_portal_url,json=billingPortalUrl,proto3" json:"billing_portal_url,omitempty"` + CreditInfo *BillingCreditInfo `protobuf:"bytes,4,opt,name=credit_info,json=creditInfo,proto3" json:"credit_info,omitempty"` } func (x *GetBillingSubscriptionResponse) Reset() { *x = GetBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[292] + mi := &file_rill_admin_v1_api_proto_msgTypes[294] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17473,7 +17628,7 @@ func (x *GetBillingSubscriptionResponse) String() string { func (*GetBillingSubscriptionResponse) ProtoMessage() {} func (x *GetBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[292] + mi := &file_rill_admin_v1_api_proto_msgTypes[294] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17486,7 +17641,7 @@ func (x *GetBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBillingSubscriptionResponse.ProtoReflect.Descriptor instead. func (*GetBillingSubscriptionResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{292} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{294} } func (x *GetBillingSubscriptionResponse) GetOrganization() *Organization { @@ -17510,6 +17665,93 @@ func (x *GetBillingSubscriptionResponse) GetBillingPortalUrl() string { return "" } +func (x *GetBillingSubscriptionResponse) GetCreditInfo() *BillingCreditInfo { + if x != nil { + return x.CreditInfo + } + return nil +} + +// BillingCreditInfo contains credit balance information for free-tier organizations. +type BillingCreditInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalCredit float64 `protobuf:"fixed64,1,opt,name=total_credit,json=totalCredit,proto3" json:"total_credit,omitempty"` + UsedCredit float64 `protobuf:"fixed64,2,opt,name=used_credit,json=usedCredit,proto3" json:"used_credit,omitempty"` + RemainingCredit float64 `protobuf:"fixed64,3,opt,name=remaining_credit,json=remainingCredit,proto3" json:"remaining_credit,omitempty"` + CreditExpiry *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=credit_expiry,json=creditExpiry,proto3" json:"credit_expiry,omitempty"` + BurnRatePerDay float64 `protobuf:"fixed64,5,opt,name=burn_rate_per_day,json=burnRatePerDay,proto3" json:"burn_rate_per_day,omitempty"` +} + +func (x *BillingCreditInfo) Reset() { + *x = BillingCreditInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[295] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingCreditInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingCreditInfo) ProtoMessage() {} + +func (x *BillingCreditInfo) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[295] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BillingCreditInfo.ProtoReflect.Descriptor instead. +func (*BillingCreditInfo) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{295} +} + +func (x *BillingCreditInfo) GetTotalCredit() float64 { + if x != nil { + return x.TotalCredit + } + return 0 +} + +func (x *BillingCreditInfo) GetUsedCredit() float64 { + if x != nil { + return x.UsedCredit + } + return 0 +} + +func (x *BillingCreditInfo) GetRemainingCredit() float64 { + if x != nil { + return x.RemainingCredit + } + return 0 +} + +func (x *BillingCreditInfo) GetCreditExpiry() *timestamppb.Timestamp { + if x != nil { + return x.CreditExpiry + } + return nil +} + +func (x *BillingCreditInfo) GetBurnRatePerDay() float64 { + if x != nil { + return x.BurnRatePerDay + } + return 0 +} + type UpdateBillingSubscriptionRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -17523,7 +17765,7 @@ type UpdateBillingSubscriptionRequest struct { func (x *UpdateBillingSubscriptionRequest) Reset() { *x = UpdateBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[293] + mi := &file_rill_admin_v1_api_proto_msgTypes[296] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17536,7 +17778,7 @@ func (x *UpdateBillingSubscriptionRequest) String() string { func (*UpdateBillingSubscriptionRequest) ProtoMessage() {} func (x *UpdateBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[293] + mi := &file_rill_admin_v1_api_proto_msgTypes[296] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17549,7 +17791,7 @@ func (x *UpdateBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateBillingSubscriptionRequest.ProtoReflect.Descriptor instead. func (*UpdateBillingSubscriptionRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{293} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{296} } func (x *UpdateBillingSubscriptionRequest) GetOrg() string { @@ -17585,7 +17827,7 @@ type UpdateBillingSubscriptionResponse struct { func (x *UpdateBillingSubscriptionResponse) Reset() { *x = UpdateBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[294] + mi := &file_rill_admin_v1_api_proto_msgTypes[297] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17598,7 +17840,7 @@ func (x *UpdateBillingSubscriptionResponse) String() string { func (*UpdateBillingSubscriptionResponse) ProtoMessage() {} func (x *UpdateBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[294] + mi := &file_rill_admin_v1_api_proto_msgTypes[297] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17611,7 +17853,7 @@ func (x *UpdateBillingSubscriptionResponse) ProtoReflect() protoreflect.Message // Deprecated: Use UpdateBillingSubscriptionResponse.ProtoReflect.Descriptor instead. func (*UpdateBillingSubscriptionResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{294} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{297} } func (x *UpdateBillingSubscriptionResponse) GetOrganization() *Organization { @@ -17640,7 +17882,7 @@ type CancelBillingSubscriptionRequest struct { func (x *CancelBillingSubscriptionRequest) Reset() { *x = CancelBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[295] + mi := &file_rill_admin_v1_api_proto_msgTypes[298] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17653,7 +17895,7 @@ func (x *CancelBillingSubscriptionRequest) String() string { func (*CancelBillingSubscriptionRequest) ProtoMessage() {} func (x *CancelBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[295] + mi := &file_rill_admin_v1_api_proto_msgTypes[298] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17666,7 +17908,7 @@ func (x *CancelBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CancelBillingSubscriptionRequest.ProtoReflect.Descriptor instead. func (*CancelBillingSubscriptionRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{295} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{298} } func (x *CancelBillingSubscriptionRequest) GetOrg() string { @@ -17692,7 +17934,7 @@ type CancelBillingSubscriptionResponse struct { func (x *CancelBillingSubscriptionResponse) Reset() { *x = CancelBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[296] + mi := &file_rill_admin_v1_api_proto_msgTypes[299] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17705,7 +17947,7 @@ func (x *CancelBillingSubscriptionResponse) String() string { func (*CancelBillingSubscriptionResponse) ProtoMessage() {} func (x *CancelBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[296] + mi := &file_rill_admin_v1_api_proto_msgTypes[299] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17718,7 +17960,7 @@ func (x *CancelBillingSubscriptionResponse) ProtoReflect() protoreflect.Message // Deprecated: Use CancelBillingSubscriptionResponse.ProtoReflect.Descriptor instead. func (*CancelBillingSubscriptionResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{296} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{299} } type RenewBillingSubscriptionRequest struct { @@ -17734,7 +17976,7 @@ type RenewBillingSubscriptionRequest struct { func (x *RenewBillingSubscriptionRequest) Reset() { *x = RenewBillingSubscriptionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[297] + mi := &file_rill_admin_v1_api_proto_msgTypes[300] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17747,7 +17989,7 @@ func (x *RenewBillingSubscriptionRequest) String() string { func (*RenewBillingSubscriptionRequest) ProtoMessage() {} func (x *RenewBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[297] + mi := &file_rill_admin_v1_api_proto_msgTypes[300] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17760,7 +18002,7 @@ func (x *RenewBillingSubscriptionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RenewBillingSubscriptionRequest.ProtoReflect.Descriptor instead. func (*RenewBillingSubscriptionRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{297} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{300} } func (x *RenewBillingSubscriptionRequest) GetOrg() string { @@ -17796,7 +18038,7 @@ type RenewBillingSubscriptionResponse struct { func (x *RenewBillingSubscriptionResponse) Reset() { *x = RenewBillingSubscriptionResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[298] + mi := &file_rill_admin_v1_api_proto_msgTypes[301] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17809,7 +18051,7 @@ func (x *RenewBillingSubscriptionResponse) String() string { func (*RenewBillingSubscriptionResponse) ProtoMessage() {} func (x *RenewBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[298] + mi := &file_rill_admin_v1_api_proto_msgTypes[301] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17822,7 +18064,7 @@ func (x *RenewBillingSubscriptionResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RenewBillingSubscriptionResponse.ProtoReflect.Descriptor instead. func (*RenewBillingSubscriptionResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{298} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{301} } func (x *RenewBillingSubscriptionResponse) GetOrganization() *Organization { @@ -17853,7 +18095,7 @@ type GetPaymentsPortalURLRequest struct { func (x *GetPaymentsPortalURLRequest) Reset() { *x = GetPaymentsPortalURLRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[299] + mi := &file_rill_admin_v1_api_proto_msgTypes[302] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17866,7 +18108,7 @@ func (x *GetPaymentsPortalURLRequest) String() string { func (*GetPaymentsPortalURLRequest) ProtoMessage() {} func (x *GetPaymentsPortalURLRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[299] + mi := &file_rill_admin_v1_api_proto_msgTypes[302] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17879,7 +18121,7 @@ func (x *GetPaymentsPortalURLRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPaymentsPortalURLRequest.ProtoReflect.Descriptor instead. func (*GetPaymentsPortalURLRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{299} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{302} } func (x *GetPaymentsPortalURLRequest) GetOrg() string { @@ -17921,7 +18163,7 @@ type GetPaymentsPortalURLResponse struct { func (x *GetPaymentsPortalURLResponse) Reset() { *x = GetPaymentsPortalURLResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[300] + mi := &file_rill_admin_v1_api_proto_msgTypes[303] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17934,7 +18176,7 @@ func (x *GetPaymentsPortalURLResponse) String() string { func (*GetPaymentsPortalURLResponse) ProtoMessage() {} func (x *GetPaymentsPortalURLResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[300] + mi := &file_rill_admin_v1_api_proto_msgTypes[303] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17947,7 +18189,7 @@ func (x *GetPaymentsPortalURLResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetPaymentsPortalURLResponse.ProtoReflect.Descriptor instead. func (*GetPaymentsPortalURLResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{300} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{303} } func (x *GetPaymentsPortalURLResponse) GetUrl() string { @@ -17966,7 +18208,7 @@ type ListPublicBillingPlansRequest struct { func (x *ListPublicBillingPlansRequest) Reset() { *x = ListPublicBillingPlansRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[301] + mi := &file_rill_admin_v1_api_proto_msgTypes[304] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -17979,7 +18221,7 @@ func (x *ListPublicBillingPlansRequest) String() string { func (*ListPublicBillingPlansRequest) ProtoMessage() {} func (x *ListPublicBillingPlansRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[301] + mi := &file_rill_admin_v1_api_proto_msgTypes[304] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -17992,7 +18234,7 @@ func (x *ListPublicBillingPlansRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPublicBillingPlansRequest.ProtoReflect.Descriptor instead. func (*ListPublicBillingPlansRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{301} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{304} } type ListPublicBillingPlansResponse struct { @@ -18006,7 +18248,7 @@ type ListPublicBillingPlansResponse struct { func (x *ListPublicBillingPlansResponse) Reset() { *x = ListPublicBillingPlansResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[302] + mi := &file_rill_admin_v1_api_proto_msgTypes[305] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18019,7 +18261,7 @@ func (x *ListPublicBillingPlansResponse) String() string { func (*ListPublicBillingPlansResponse) ProtoMessage() {} func (x *ListPublicBillingPlansResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[302] + mi := &file_rill_admin_v1_api_proto_msgTypes[305] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18032,7 +18274,7 @@ func (x *ListPublicBillingPlansResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ListPublicBillingPlansResponse.ProtoReflect.Descriptor instead. func (*ListPublicBillingPlansResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{302} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{305} } func (x *ListPublicBillingPlansResponse) GetPlans() []*BillingPlan { @@ -18053,7 +18295,7 @@ type GetBillingProjectCredentialsRequest struct { func (x *GetBillingProjectCredentialsRequest) Reset() { *x = GetBillingProjectCredentialsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[303] + mi := &file_rill_admin_v1_api_proto_msgTypes[306] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18066,7 +18308,7 @@ func (x *GetBillingProjectCredentialsRequest) String() string { func (*GetBillingProjectCredentialsRequest) ProtoMessage() {} func (x *GetBillingProjectCredentialsRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[303] + mi := &file_rill_admin_v1_api_proto_msgTypes[306] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18079,7 +18321,7 @@ func (x *GetBillingProjectCredentialsRequest) ProtoReflect() protoreflect.Messag // Deprecated: Use GetBillingProjectCredentialsRequest.ProtoReflect.Descriptor instead. func (*GetBillingProjectCredentialsRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{303} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{306} } func (x *GetBillingProjectCredentialsRequest) GetOrg() string { @@ -18103,7 +18345,7 @@ type GetBillingProjectCredentialsResponse struct { func (x *GetBillingProjectCredentialsResponse) Reset() { *x = GetBillingProjectCredentialsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[304] + mi := &file_rill_admin_v1_api_proto_msgTypes[307] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18116,7 +18358,7 @@ func (x *GetBillingProjectCredentialsResponse) String() string { func (*GetBillingProjectCredentialsResponse) ProtoMessage() {} func (x *GetBillingProjectCredentialsResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[304] + mi := &file_rill_admin_v1_api_proto_msgTypes[307] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18129,7 +18371,7 @@ func (x *GetBillingProjectCredentialsResponse) ProtoReflect() protoreflect.Messa // Deprecated: Use GetBillingProjectCredentialsResponse.ProtoReflect.Descriptor instead. func (*GetBillingProjectCredentialsResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{304} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{307} } func (x *GetBillingProjectCredentialsResponse) GetRuntimeHost() string { @@ -18176,7 +18418,7 @@ type TelemetryRequest struct { func (x *TelemetryRequest) Reset() { *x = TelemetryRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[305] + mi := &file_rill_admin_v1_api_proto_msgTypes[308] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18189,7 +18431,7 @@ func (x *TelemetryRequest) String() string { func (*TelemetryRequest) ProtoMessage() {} func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[305] + mi := &file_rill_admin_v1_api_proto_msgTypes[308] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18202,7 +18444,7 @@ func (x *TelemetryRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use TelemetryRequest.ProtoReflect.Descriptor instead. func (*TelemetryRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{305} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{308} } func (x *TelemetryRequest) GetName() string { @@ -18235,7 +18477,7 @@ type TelemetryResponse struct { func (x *TelemetryResponse) Reset() { *x = TelemetryResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[306] + mi := &file_rill_admin_v1_api_proto_msgTypes[309] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18248,7 +18490,7 @@ func (x *TelemetryResponse) String() string { func (*TelemetryResponse) ProtoMessage() {} func (x *TelemetryResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[306] + mi := &file_rill_admin_v1_api_proto_msgTypes[309] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18261,7 +18503,7 @@ func (x *TelemetryResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use TelemetryResponse.ProtoReflect.Descriptor instead. func (*TelemetryResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{306} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{309} } type RequestProjectAccessRequest struct { @@ -18277,7 +18519,7 @@ type RequestProjectAccessRequest struct { func (x *RequestProjectAccessRequest) Reset() { *x = RequestProjectAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[307] + mi := &file_rill_admin_v1_api_proto_msgTypes[310] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18290,7 +18532,7 @@ func (x *RequestProjectAccessRequest) String() string { func (*RequestProjectAccessRequest) ProtoMessage() {} func (x *RequestProjectAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[307] + mi := &file_rill_admin_v1_api_proto_msgTypes[310] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18303,7 +18545,7 @@ func (x *RequestProjectAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestProjectAccessRequest.ProtoReflect.Descriptor instead. func (*RequestProjectAccessRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{307} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{310} } func (x *RequestProjectAccessRequest) GetOrg() string { @@ -18336,7 +18578,7 @@ type RequestProjectAccessResponse struct { func (x *RequestProjectAccessResponse) Reset() { *x = RequestProjectAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[308] + mi := &file_rill_admin_v1_api_proto_msgTypes[311] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18349,7 +18591,7 @@ func (x *RequestProjectAccessResponse) String() string { func (*RequestProjectAccessResponse) ProtoMessage() {} func (x *RequestProjectAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[308] + mi := &file_rill_admin_v1_api_proto_msgTypes[311] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18362,7 +18604,7 @@ func (x *RequestProjectAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestProjectAccessResponse.ProtoReflect.Descriptor instead. func (*RequestProjectAccessResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{308} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{311} } type GetProjectAccessRequestRequest struct { @@ -18376,7 +18618,7 @@ type GetProjectAccessRequestRequest struct { func (x *GetProjectAccessRequestRequest) Reset() { *x = GetProjectAccessRequestRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[309] + mi := &file_rill_admin_v1_api_proto_msgTypes[312] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18389,7 +18631,7 @@ func (x *GetProjectAccessRequestRequest) String() string { func (*GetProjectAccessRequestRequest) ProtoMessage() {} func (x *GetProjectAccessRequestRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[309] + mi := &file_rill_admin_v1_api_proto_msgTypes[312] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18402,7 +18644,7 @@ func (x *GetProjectAccessRequestRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectAccessRequestRequest.ProtoReflect.Descriptor instead. func (*GetProjectAccessRequestRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{309} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{312} } func (x *GetProjectAccessRequestRequest) GetId() string { @@ -18423,7 +18665,7 @@ type GetProjectAccessRequestResponse struct { func (x *GetProjectAccessRequestResponse) Reset() { *x = GetProjectAccessRequestResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[310] + mi := &file_rill_admin_v1_api_proto_msgTypes[313] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18436,7 +18678,7 @@ func (x *GetProjectAccessRequestResponse) String() string { func (*GetProjectAccessRequestResponse) ProtoMessage() {} func (x *GetProjectAccessRequestResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[310] + mi := &file_rill_admin_v1_api_proto_msgTypes[313] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18449,7 +18691,7 @@ func (x *GetProjectAccessRequestResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetProjectAccessRequestResponse.ProtoReflect.Descriptor instead. func (*GetProjectAccessRequestResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{310} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{313} } func (x *GetProjectAccessRequestResponse) GetEmail() string { @@ -18471,7 +18713,7 @@ type ApproveProjectAccessRequest struct { func (x *ApproveProjectAccessRequest) Reset() { *x = ApproveProjectAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[311] + mi := &file_rill_admin_v1_api_proto_msgTypes[314] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18484,7 +18726,7 @@ func (x *ApproveProjectAccessRequest) String() string { func (*ApproveProjectAccessRequest) ProtoMessage() {} func (x *ApproveProjectAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[311] + mi := &file_rill_admin_v1_api_proto_msgTypes[314] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18497,7 +18739,7 @@ func (x *ApproveProjectAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApproveProjectAccessRequest.ProtoReflect.Descriptor instead. func (*ApproveProjectAccessRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{311} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{314} } func (x *ApproveProjectAccessRequest) GetId() string { @@ -18523,7 +18765,7 @@ type ApproveProjectAccessResponse struct { func (x *ApproveProjectAccessResponse) Reset() { *x = ApproveProjectAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[312] + mi := &file_rill_admin_v1_api_proto_msgTypes[315] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18536,7 +18778,7 @@ func (x *ApproveProjectAccessResponse) String() string { func (*ApproveProjectAccessResponse) ProtoMessage() {} func (x *ApproveProjectAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[312] + mi := &file_rill_admin_v1_api_proto_msgTypes[315] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18549,7 +18791,7 @@ func (x *ApproveProjectAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ApproveProjectAccessResponse.ProtoReflect.Descriptor instead. func (*ApproveProjectAccessResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{312} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{315} } type DenyProjectAccessRequest struct { @@ -18563,7 +18805,7 @@ type DenyProjectAccessRequest struct { func (x *DenyProjectAccessRequest) Reset() { *x = DenyProjectAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[313] + mi := &file_rill_admin_v1_api_proto_msgTypes[316] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18576,7 +18818,7 @@ func (x *DenyProjectAccessRequest) String() string { func (*DenyProjectAccessRequest) ProtoMessage() {} func (x *DenyProjectAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[313] + mi := &file_rill_admin_v1_api_proto_msgTypes[316] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18589,7 +18831,7 @@ func (x *DenyProjectAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DenyProjectAccessRequest.ProtoReflect.Descriptor instead. func (*DenyProjectAccessRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{313} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{316} } func (x *DenyProjectAccessRequest) GetId() string { @@ -18608,7 +18850,7 @@ type DenyProjectAccessResponse struct { func (x *DenyProjectAccessResponse) Reset() { *x = DenyProjectAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[314] + mi := &file_rill_admin_v1_api_proto_msgTypes[317] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18621,7 +18863,7 @@ func (x *DenyProjectAccessResponse) String() string { func (*DenyProjectAccessResponse) ProtoMessage() {} func (x *DenyProjectAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[314] + mi := &file_rill_admin_v1_api_proto_msgTypes[317] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18634,7 +18876,7 @@ func (x *DenyProjectAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DenyProjectAccessResponse.ProtoReflect.Descriptor instead. func (*DenyProjectAccessResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{314} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{317} } type ListOrganizationBillingIssuesRequest struct { @@ -18649,7 +18891,7 @@ type ListOrganizationBillingIssuesRequest struct { func (x *ListOrganizationBillingIssuesRequest) Reset() { *x = ListOrganizationBillingIssuesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[315] + mi := &file_rill_admin_v1_api_proto_msgTypes[318] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18662,7 +18904,7 @@ func (x *ListOrganizationBillingIssuesRequest) String() string { func (*ListOrganizationBillingIssuesRequest) ProtoMessage() {} func (x *ListOrganizationBillingIssuesRequest) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[315] + mi := &file_rill_admin_v1_api_proto_msgTypes[318] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18675,7 +18917,7 @@ func (x *ListOrganizationBillingIssuesRequest) ProtoReflect() protoreflect.Messa // Deprecated: Use ListOrganizationBillingIssuesRequest.ProtoReflect.Descriptor instead. func (*ListOrganizationBillingIssuesRequest) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{315} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{318} } func (x *ListOrganizationBillingIssuesRequest) GetOrg() string { @@ -18703,7 +18945,7 @@ type ListOrganizationBillingIssuesResponse struct { func (x *ListOrganizationBillingIssuesResponse) Reset() { *x = ListOrganizationBillingIssuesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[316] + mi := &file_rill_admin_v1_api_proto_msgTypes[319] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18716,7 +18958,7 @@ func (x *ListOrganizationBillingIssuesResponse) String() string { func (*ListOrganizationBillingIssuesResponse) ProtoMessage() {} func (x *ListOrganizationBillingIssuesResponse) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[316] + mi := &file_rill_admin_v1_api_proto_msgTypes[319] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18729,7 +18971,7 @@ func (x *ListOrganizationBillingIssuesResponse) ProtoReflect() protoreflect.Mess // Deprecated: Use ListOrganizationBillingIssuesResponse.ProtoReflect.Descriptor instead. func (*ListOrganizationBillingIssuesResponse) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{316} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{319} } func (x *ListOrganizationBillingIssuesResponse) GetIssues() []*BillingIssue { @@ -18757,7 +18999,7 @@ type User struct { func (x *User) Reset() { *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[317] + mi := &file_rill_admin_v1_api_proto_msgTypes[320] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18770,7 +19012,7 @@ func (x *User) String() string { func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[317] + mi := &file_rill_admin_v1_api_proto_msgTypes[320] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18783,7 +19025,7 @@ func (x *User) ProtoReflect() protoreflect.Message { // Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{317} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{320} } func (x *User) GetId() string { @@ -18859,7 +19101,7 @@ type Service struct { func (x *Service) Reset() { *x = Service{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[318] + mi := &file_rill_admin_v1_api_proto_msgTypes[321] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18872,7 +19114,7 @@ func (x *Service) String() string { func (*Service) ProtoMessage() {} func (x *Service) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[318] + mi := &file_rill_admin_v1_api_proto_msgTypes[321] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18885,7 +19127,7 @@ func (x *Service) ProtoReflect() protoreflect.Message { // Deprecated: Use Service.ProtoReflect.Descriptor instead. func (*Service) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{318} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{321} } func (x *Service) GetId() string { @@ -18956,7 +19198,7 @@ type OrganizationMemberService struct { func (x *OrganizationMemberService) Reset() { *x = OrganizationMemberService{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[319] + mi := &file_rill_admin_v1_api_proto_msgTypes[322] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -18969,7 +19211,7 @@ func (x *OrganizationMemberService) String() string { func (*OrganizationMemberService) ProtoMessage() {} func (x *OrganizationMemberService) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[319] + mi := &file_rill_admin_v1_api_proto_msgTypes[322] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -18982,7 +19224,7 @@ func (x *OrganizationMemberService) ProtoReflect() protoreflect.Message { // Deprecated: Use OrganizationMemberService.ProtoReflect.Descriptor instead. func (*OrganizationMemberService) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{319} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{322} } func (x *OrganizationMemberService) GetId() string { @@ -19069,7 +19311,7 @@ type ProjectMemberService struct { func (x *ProjectMemberService) Reset() { *x = ProjectMemberService{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[320] + mi := &file_rill_admin_v1_api_proto_msgTypes[323] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19082,7 +19324,7 @@ func (x *ProjectMemberService) String() string { func (*ProjectMemberService) ProtoMessage() {} func (x *ProjectMemberService) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[320] + mi := &file_rill_admin_v1_api_proto_msgTypes[323] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19095,7 +19337,7 @@ func (x *ProjectMemberService) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectMemberService.ProtoReflect.Descriptor instead. func (*ProjectMemberService) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{320} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{323} } func (x *ProjectMemberService) GetId() string { @@ -19203,7 +19445,7 @@ type Organization struct { func (x *Organization) Reset() { *x = Organization{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[321] + mi := &file_rill_admin_v1_api_proto_msgTypes[324] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19216,7 +19458,7 @@ func (x *Organization) String() string { func (*Organization) ProtoMessage() {} func (x *Organization) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[321] + mi := &file_rill_admin_v1_api_proto_msgTypes[324] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19229,7 +19471,7 @@ func (x *Organization) ProtoReflect() protoreflect.Message { // Deprecated: Use Organization.ProtoReflect.Descriptor instead. func (*Organization) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{321} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{324} } func (x *Organization) GetId() string { @@ -19375,7 +19617,7 @@ type Subscription struct { func (x *Subscription) Reset() { *x = Subscription{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[322] + mi := &file_rill_admin_v1_api_proto_msgTypes[325] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19388,7 +19630,7 @@ func (x *Subscription) String() string { func (*Subscription) ProtoMessage() {} func (x *Subscription) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[322] + mi := &file_rill_admin_v1_api_proto_msgTypes[325] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19401,7 +19643,7 @@ func (x *Subscription) ProtoReflect() protoreflect.Message { // Deprecated: Use Subscription.ProtoReflect.Descriptor instead. func (*Subscription) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{322} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{325} } func (x *Subscription) GetId() string { @@ -19465,7 +19707,7 @@ type UserQuotas struct { func (x *UserQuotas) Reset() { *x = UserQuotas{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[323] + mi := &file_rill_admin_v1_api_proto_msgTypes[326] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19478,7 +19720,7 @@ func (x *UserQuotas) String() string { func (*UserQuotas) ProtoMessage() {} func (x *UserQuotas) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[323] + mi := &file_rill_admin_v1_api_proto_msgTypes[326] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19491,7 +19733,7 @@ func (x *UserQuotas) ProtoReflect() protoreflect.Message { // Deprecated: Use UserQuotas.ProtoReflect.Descriptor instead. func (*UserQuotas) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{323} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{326} } func (x *UserQuotas) GetSingleuserOrgs() int32 { @@ -19524,7 +19766,7 @@ type OrganizationQuotas struct { func (x *OrganizationQuotas) Reset() { *x = OrganizationQuotas{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[324] + mi := &file_rill_admin_v1_api_proto_msgTypes[327] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19537,7 +19779,7 @@ func (x *OrganizationQuotas) String() string { func (*OrganizationQuotas) ProtoMessage() {} func (x *OrganizationQuotas) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[324] + mi := &file_rill_admin_v1_api_proto_msgTypes[327] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19550,7 +19792,7 @@ func (x *OrganizationQuotas) ProtoReflect() protoreflect.Message { // Deprecated: Use OrganizationQuotas.ProtoReflect.Descriptor instead. func (*OrganizationQuotas) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{324} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{327} } func (x *OrganizationQuotas) GetProjects() int32 { @@ -19624,12 +19866,23 @@ type Project struct { ProdVersion string `protobuf:"bytes,21,opt,name=prod_version,json=prodVersion,proto3" json:"prod_version,omitempty"` CreatedOn *timestamppb.Timestamp `protobuf:"bytes,14,opt,name=created_on,json=createdOn,proto3" json:"created_on,omitempty"` UpdatedOn *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=updated_on,json=updatedOn,proto3" json:"updated_on,omitempty"` + // ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + ChcClusterSize *float64 `protobuf:"fixed64,27,opt,name=chc_cluster_size,json=chcClusterSize,proto3,oneof" json:"chc_cluster_size,omitempty"` + // ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + // For Live Connect projects, this represents the base slots from the BYOLAP cluster. + ClusterSlots *int64 `protobuf:"varint,28,opt,name=cluster_slots,json=clusterSlots,proto3,oneof" json:"cluster_slots,omitempty"` + // InfraSlots is the Rill infrastructure overhead slot allocation for the project. + // Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. + InfraSlots *int64 `protobuf:"varint,29,opt,name=infra_slots,json=infraSlots,proto3,oneof" json:"infra_slots,omitempty"` + // OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + // Persisted so the frontend can show the correct engine label even when the project is hibernated. + OlapConnector string `protobuf:"bytes,30,opt,name=olap_connector,json=olapConnector,proto3" json:"olap_connector,omitempty"` } func (x *Project) Reset() { *x = Project{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[325] + mi := &file_rill_admin_v1_api_proto_msgTypes[328] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19642,7 +19895,7 @@ func (x *Project) String() string { func (*Project) ProtoMessage() {} func (x *Project) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[325] + mi := &file_rill_admin_v1_api_proto_msgTypes[328] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19655,7 +19908,7 @@ func (x *Project) ProtoReflect() protoreflect.Message { // Deprecated: Use Project.ProtoReflect.Descriptor instead. func (*Project) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{325} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{328} } func (x *Project) GetId() string { @@ -19819,6 +20072,34 @@ func (x *Project) GetUpdatedOn() *timestamppb.Timestamp { return nil } +func (x *Project) GetChcClusterSize() float64 { + if x != nil && x.ChcClusterSize != nil { + return *x.ChcClusterSize + } + return 0 +} + +func (x *Project) GetClusterSlots() int64 { + if x != nil && x.ClusterSlots != nil { + return *x.ClusterSlots + } + return 0 +} + +func (x *Project) GetInfraSlots() int64 { + if x != nil && x.InfraSlots != nil { + return *x.InfraSlots + } + return 0 +} + +func (x *Project) GetOlapConnector() string { + if x != nil { + return x.OlapConnector + } + return "" +} + type Deployment struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -19841,7 +20122,7 @@ type Deployment struct { func (x *Deployment) Reset() { *x = Deployment{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[326] + mi := &file_rill_admin_v1_api_proto_msgTypes[329] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19854,7 +20135,7 @@ func (x *Deployment) String() string { func (*Deployment) ProtoMessage() {} func (x *Deployment) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[326] + mi := &file_rill_admin_v1_api_proto_msgTypes[329] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19867,7 +20148,7 @@ func (x *Deployment) ProtoReflect() protoreflect.Message { // Deprecated: Use Deployment.ProtoReflect.Descriptor instead. func (*Deployment) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{326} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{329} } func (x *Deployment) GetId() string { @@ -19970,7 +20251,7 @@ type ProvisionerResource struct { func (x *ProvisionerResource) Reset() { *x = ProvisionerResource{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[327] + mi := &file_rill_admin_v1_api_proto_msgTypes[330] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -19983,7 +20264,7 @@ func (x *ProvisionerResource) String() string { func (*ProvisionerResource) ProtoMessage() {} func (x *ProvisionerResource) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[327] + mi := &file_rill_admin_v1_api_proto_msgTypes[330] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -19996,7 +20277,7 @@ func (x *ProvisionerResource) ProtoReflect() protoreflect.Message { // Deprecated: Use ProvisionerResource.ProtoReflect.Descriptor instead. func (*ProvisionerResource) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{327} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{330} } func (x *ProvisionerResource) GetId() string { @@ -20061,7 +20342,7 @@ type OrganizationPermissions struct { func (x *OrganizationPermissions) Reset() { *x = OrganizationPermissions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[328] + mi := &file_rill_admin_v1_api_proto_msgTypes[331] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20074,7 +20355,7 @@ func (x *OrganizationPermissions) String() string { func (*OrganizationPermissions) ProtoMessage() {} func (x *OrganizationPermissions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[328] + mi := &file_rill_admin_v1_api_proto_msgTypes[331] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20087,7 +20368,7 @@ func (x *OrganizationPermissions) ProtoReflect() protoreflect.Message { // Deprecated: Use OrganizationPermissions.ProtoReflect.Descriptor instead. func (*OrganizationPermissions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{328} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{331} } func (x *OrganizationPermissions) GetAdmin() bool { @@ -20192,7 +20473,7 @@ type ProjectPermissions struct { func (x *ProjectPermissions) Reset() { *x = ProjectPermissions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[329] + mi := &file_rill_admin_v1_api_proto_msgTypes[332] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20205,7 +20486,7 @@ func (x *ProjectPermissions) String() string { func (*ProjectPermissions) ProtoMessage() {} func (x *ProjectPermissions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[329] + mi := &file_rill_admin_v1_api_proto_msgTypes[332] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20218,7 +20499,7 @@ func (x *ProjectPermissions) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectPermissions.ProtoReflect.Descriptor instead. func (*ProjectPermissions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{329} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{332} } func (x *ProjectPermissions) GetAdmin() bool { @@ -20388,7 +20669,7 @@ type OrganizationRole struct { func (x *OrganizationRole) Reset() { *x = OrganizationRole{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[330] + mi := &file_rill_admin_v1_api_proto_msgTypes[333] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20401,7 +20682,7 @@ func (x *OrganizationRole) String() string { func (*OrganizationRole) ProtoMessage() {} func (x *OrganizationRole) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[330] + mi := &file_rill_admin_v1_api_proto_msgTypes[333] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20414,7 +20695,7 @@ func (x *OrganizationRole) ProtoReflect() protoreflect.Message { // Deprecated: Use OrganizationRole.ProtoReflect.Descriptor instead. func (*OrganizationRole) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{330} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{333} } func (x *OrganizationRole) GetId() string { @@ -20451,7 +20732,7 @@ type ProjectRole struct { func (x *ProjectRole) Reset() { *x = ProjectRole{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[331] + mi := &file_rill_admin_v1_api_proto_msgTypes[334] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20464,7 +20745,7 @@ func (x *ProjectRole) String() string { func (*ProjectRole) ProtoMessage() {} func (x *ProjectRole) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[331] + mi := &file_rill_admin_v1_api_proto_msgTypes[334] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20477,7 +20758,7 @@ func (x *ProjectRole) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectRole.ProtoReflect.Descriptor instead. func (*ProjectRole) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{331} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{334} } func (x *ProjectRole) GetId() string { @@ -20521,7 +20802,7 @@ type OrganizationMemberUser struct { func (x *OrganizationMemberUser) Reset() { *x = OrganizationMemberUser{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[332] + mi := &file_rill_admin_v1_api_proto_msgTypes[335] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20534,7 +20815,7 @@ func (x *OrganizationMemberUser) String() string { func (*OrganizationMemberUser) ProtoMessage() {} func (x *OrganizationMemberUser) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[332] + mi := &file_rill_admin_v1_api_proto_msgTypes[335] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20547,7 +20828,7 @@ func (x *OrganizationMemberUser) ProtoReflect() protoreflect.Message { // Deprecated: Use OrganizationMemberUser.ProtoReflect.Descriptor instead. func (*OrganizationMemberUser) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{332} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{335} } func (x *OrganizationMemberUser) GetUserId() string { @@ -20640,7 +20921,7 @@ type ProjectMemberUser struct { func (x *ProjectMemberUser) Reset() { *x = ProjectMemberUser{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[333] + mi := &file_rill_admin_v1_api_proto_msgTypes[336] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20653,7 +20934,7 @@ func (x *ProjectMemberUser) String() string { func (*ProjectMemberUser) ProtoMessage() {} func (x *ProjectMemberUser) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[333] + mi := &file_rill_admin_v1_api_proto_msgTypes[336] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20666,7 +20947,7 @@ func (x *ProjectMemberUser) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectMemberUser.ProtoReflect.Descriptor instead. func (*ProjectMemberUser) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{333} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{336} } func (x *ProjectMemberUser) GetUserId() string { @@ -20755,7 +21036,7 @@ type UsergroupMemberUser struct { func (x *UsergroupMemberUser) Reset() { *x = UsergroupMemberUser{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[334] + mi := &file_rill_admin_v1_api_proto_msgTypes[337] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20768,7 +21049,7 @@ func (x *UsergroupMemberUser) String() string { func (*UsergroupMemberUser) ProtoMessage() {} func (x *UsergroupMemberUser) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[334] + mi := &file_rill_admin_v1_api_proto_msgTypes[337] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20781,7 +21062,7 @@ func (x *UsergroupMemberUser) ProtoReflect() protoreflect.Message { // Deprecated: Use UsergroupMemberUser.ProtoReflect.Descriptor instead. func (*UsergroupMemberUser) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{334} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{337} } func (x *UsergroupMemberUser) GetUserId() string { @@ -20839,7 +21120,7 @@ type OrganizationInvite struct { func (x *OrganizationInvite) Reset() { *x = OrganizationInvite{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[335] + mi := &file_rill_admin_v1_api_proto_msgTypes[338] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20852,7 +21133,7 @@ func (x *OrganizationInvite) String() string { func (*OrganizationInvite) ProtoMessage() {} func (x *OrganizationInvite) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[335] + mi := &file_rill_admin_v1_api_proto_msgTypes[338] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20865,7 +21146,7 @@ func (x *OrganizationInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use OrganizationInvite.ProtoReflect.Descriptor instead. func (*OrganizationInvite) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{335} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{338} } func (x *OrganizationInvite) GetEmail() string { @@ -20905,7 +21186,7 @@ type ProjectInvite struct { func (x *ProjectInvite) Reset() { *x = ProjectInvite{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[336] + mi := &file_rill_admin_v1_api_proto_msgTypes[339] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -20918,7 +21199,7 @@ func (x *ProjectInvite) String() string { func (*ProjectInvite) ProtoMessage() {} func (x *ProjectInvite) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[336] + mi := &file_rill_admin_v1_api_proto_msgTypes[339] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -20931,7 +21212,7 @@ func (x *ProjectInvite) ProtoReflect() protoreflect.Message { // Deprecated: Use ProjectInvite.ProtoReflect.Descriptor instead. func (*ProjectInvite) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{336} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{339} } func (x *ProjectInvite) GetEmail() string { @@ -20988,7 +21269,7 @@ type WhitelistedDomain struct { func (x *WhitelistedDomain) Reset() { *x = WhitelistedDomain{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[337] + mi := &file_rill_admin_v1_api_proto_msgTypes[340] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21001,7 +21282,7 @@ func (x *WhitelistedDomain) String() string { func (*WhitelistedDomain) ProtoMessage() {} func (x *WhitelistedDomain) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[337] + mi := &file_rill_admin_v1_api_proto_msgTypes[340] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21014,7 +21295,7 @@ func (x *WhitelistedDomain) ProtoReflect() protoreflect.Message { // Deprecated: Use WhitelistedDomain.ProtoReflect.Descriptor instead. func (*WhitelistedDomain) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{337} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{340} } func (x *WhitelistedDomain) GetDomain() string { @@ -21054,7 +21335,7 @@ type Bookmark struct { func (x *Bookmark) Reset() { *x = Bookmark{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[338] + mi := &file_rill_admin_v1_api_proto_msgTypes[341] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21067,7 +21348,7 @@ func (x *Bookmark) String() string { func (*Bookmark) ProtoMessage() {} func (x *Bookmark) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[338] + mi := &file_rill_admin_v1_api_proto_msgTypes[341] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21080,7 +21361,7 @@ func (x *Bookmark) ProtoReflect() protoreflect.Message { // Deprecated: Use Bookmark.ProtoReflect.Descriptor instead. func (*Bookmark) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{338} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{341} } func (x *Bookmark) GetId() string { @@ -21188,7 +21469,7 @@ type ServiceToken struct { func (x *ServiceToken) Reset() { *x = ServiceToken{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[339] + mi := &file_rill_admin_v1_api_proto_msgTypes[342] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21201,7 +21482,7 @@ func (x *ServiceToken) String() string { func (*ServiceToken) ProtoMessage() {} func (x *ServiceToken) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[339] + mi := &file_rill_admin_v1_api_proto_msgTypes[342] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21214,7 +21495,7 @@ func (x *ServiceToken) ProtoReflect() protoreflect.Message { // Deprecated: Use ServiceToken.ProtoReflect.Descriptor instead. func (*ServiceToken) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{339} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{342} } func (x *ServiceToken) GetId() string { @@ -21266,7 +21547,7 @@ type UserAuthToken struct { func (x *UserAuthToken) Reset() { *x = UserAuthToken{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[340] + mi := &file_rill_admin_v1_api_proto_msgTypes[343] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21279,7 +21560,7 @@ func (x *UserAuthToken) String() string { func (*UserAuthToken) ProtoMessage() {} func (x *UserAuthToken) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[340] + mi := &file_rill_admin_v1_api_proto_msgTypes[343] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21292,7 +21573,7 @@ func (x *UserAuthToken) ProtoReflect() protoreflect.Message { // Deprecated: Use UserAuthToken.ProtoReflect.Descriptor instead. func (*UserAuthToken) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{340} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{343} } func (x *UserAuthToken) GetId() string { @@ -21401,7 +21682,7 @@ type MagicAuthToken struct { func (x *MagicAuthToken) Reset() { *x = MagicAuthToken{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[341] + mi := &file_rill_admin_v1_api_proto_msgTypes[344] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21414,7 +21695,7 @@ func (x *MagicAuthToken) String() string { func (*MagicAuthToken) ProtoMessage() {} func (x *MagicAuthToken) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[341] + mi := &file_rill_admin_v1_api_proto_msgTypes[344] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21427,7 +21708,7 @@ func (x *MagicAuthToken) ProtoReflect() protoreflect.Message { // Deprecated: Use MagicAuthToken.ProtoReflect.Descriptor instead. func (*MagicAuthToken) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{341} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{344} } func (x *MagicAuthToken) GetId() string { @@ -21565,7 +21846,7 @@ type VirtualFile struct { func (x *VirtualFile) Reset() { *x = VirtualFile{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[342] + mi := &file_rill_admin_v1_api_proto_msgTypes[345] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21578,7 +21859,7 @@ func (x *VirtualFile) String() string { func (*VirtualFile) ProtoMessage() {} func (x *VirtualFile) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[342] + mi := &file_rill_admin_v1_api_proto_msgTypes[345] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21591,7 +21872,7 @@ func (x *VirtualFile) ProtoReflect() protoreflect.Message { // Deprecated: Use VirtualFile.ProtoReflect.Descriptor instead. func (*VirtualFile) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{342} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{345} } func (x *VirtualFile) GetPath() string { @@ -21658,7 +21939,7 @@ type ReportOptions struct { func (x *ReportOptions) Reset() { *x = ReportOptions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[343] + mi := &file_rill_admin_v1_api_proto_msgTypes[346] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21671,7 +21952,7 @@ func (x *ReportOptions) String() string { func (*ReportOptions) ProtoMessage() {} func (x *ReportOptions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[343] + mi := &file_rill_admin_v1_api_proto_msgTypes[346] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21684,7 +21965,7 @@ func (x *ReportOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use ReportOptions.ProtoReflect.Descriptor instead. func (*ReportOptions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{343} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{346} } func (x *ReportOptions) GetDisplayName() string { @@ -21858,7 +22139,7 @@ type AlertOptions struct { func (x *AlertOptions) Reset() { *x = AlertOptions{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[344] + mi := &file_rill_admin_v1_api_proto_msgTypes[347] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -21871,7 +22152,7 @@ func (x *AlertOptions) String() string { func (*AlertOptions) ProtoMessage() {} func (x *AlertOptions) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[344] + mi := &file_rill_admin_v1_api_proto_msgTypes[347] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -21884,7 +22165,7 @@ func (x *AlertOptions) ProtoReflect() protoreflect.Message { // Deprecated: Use AlertOptions.ProtoReflect.Descriptor instead. func (*AlertOptions) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{344} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{347} } func (x *AlertOptions) GetDisplayName() string { @@ -22025,7 +22306,7 @@ type BillingPlan struct { func (x *BillingPlan) Reset() { *x = BillingPlan{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[345] + mi := &file_rill_admin_v1_api_proto_msgTypes[348] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22038,7 +22319,7 @@ func (x *BillingPlan) String() string { func (*BillingPlan) ProtoMessage() {} func (x *BillingPlan) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[345] + mi := &file_rill_admin_v1_api_proto_msgTypes[348] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22051,7 +22332,7 @@ func (x *BillingPlan) ProtoReflect() protoreflect.Message { // Deprecated: Use BillingPlan.ProtoReflect.Descriptor instead. func (*BillingPlan) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{345} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{348} } func (x *BillingPlan) GetId() string { @@ -22133,7 +22414,7 @@ type Quotas struct { func (x *Quotas) Reset() { *x = Quotas{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[346] + mi := &file_rill_admin_v1_api_proto_msgTypes[349] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22146,7 +22427,7 @@ func (x *Quotas) String() string { func (*Quotas) ProtoMessage() {} func (x *Quotas) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[346] + mi := &file_rill_admin_v1_api_proto_msgTypes[349] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22159,7 +22440,7 @@ func (x *Quotas) ProtoReflect() protoreflect.Message { // Deprecated: Use Quotas.ProtoReflect.Descriptor instead. func (*Quotas) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{346} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{349} } func (x *Quotas) GetProjects() string { @@ -22220,7 +22501,7 @@ type Usergroup struct { func (x *Usergroup) Reset() { *x = Usergroup{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[347] + mi := &file_rill_admin_v1_api_proto_msgTypes[350] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22233,7 +22514,7 @@ func (x *Usergroup) String() string { func (*Usergroup) ProtoMessage() {} func (x *Usergroup) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[347] + mi := &file_rill_admin_v1_api_proto_msgTypes[350] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22246,7 +22527,7 @@ func (x *Usergroup) ProtoReflect() protoreflect.Message { // Deprecated: Use Usergroup.ProtoReflect.Descriptor instead. func (*Usergroup) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{347} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{350} } func (x *Usergroup) GetGroupId() string { @@ -22310,7 +22591,7 @@ type MemberUsergroup struct { func (x *MemberUsergroup) Reset() { *x = MemberUsergroup{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[348] + mi := &file_rill_admin_v1_api_proto_msgTypes[351] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22323,7 +22604,7 @@ func (x *MemberUsergroup) String() string { func (*MemberUsergroup) ProtoMessage() {} func (x *MemberUsergroup) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[348] + mi := &file_rill_admin_v1_api_proto_msgTypes[351] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22336,7 +22617,7 @@ func (x *MemberUsergroup) ProtoReflect() protoreflect.Message { // Deprecated: Use MemberUsergroup.ProtoReflect.Descriptor instead. func (*MemberUsergroup) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{348} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{351} } func (x *MemberUsergroup) GetGroupId() string { @@ -22418,7 +22699,7 @@ type BillingIssue struct { func (x *BillingIssue) Reset() { *x = BillingIssue{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[349] + mi := &file_rill_admin_v1_api_proto_msgTypes[352] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22431,7 +22712,7 @@ func (x *BillingIssue) String() string { func (*BillingIssue) ProtoMessage() {} func (x *BillingIssue) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[349] + mi := &file_rill_admin_v1_api_proto_msgTypes[352] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22444,7 +22725,7 @@ func (x *BillingIssue) ProtoReflect() protoreflect.Message { // Deprecated: Use BillingIssue.ProtoReflect.Descriptor instead. func (*BillingIssue) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{349} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{352} } func (x *BillingIssue) GetOrg() string { @@ -22503,13 +22784,16 @@ type BillingIssueMetadata struct { // *BillingIssueMetadata_PaymentFailed // *BillingIssueMetadata_SubscriptionCancelled // *BillingIssueMetadata_NeverSubscribed + // *BillingIssueMetadata_CreditLow + // *BillingIssueMetadata_CreditCritical + // *BillingIssueMetadata_CreditExhausted Metadata isBillingIssueMetadata_Metadata `protobuf_oneof:"metadata"` } func (x *BillingIssueMetadata) Reset() { *x = BillingIssueMetadata{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[350] + mi := &file_rill_admin_v1_api_proto_msgTypes[353] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22522,7 +22806,7 @@ func (x *BillingIssueMetadata) String() string { func (*BillingIssueMetadata) ProtoMessage() {} func (x *BillingIssueMetadata) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[350] + mi := &file_rill_admin_v1_api_proto_msgTypes[353] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22535,7 +22819,7 @@ func (x *BillingIssueMetadata) ProtoReflect() protoreflect.Message { // Deprecated: Use BillingIssueMetadata.ProtoReflect.Descriptor instead. func (*BillingIssueMetadata) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{350} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{353} } func (m *BillingIssueMetadata) GetMetadata() isBillingIssueMetadata_Metadata { @@ -22594,6 +22878,27 @@ func (x *BillingIssueMetadata) GetNeverSubscribed() *BillingIssueMetadataNeverSu return nil } +func (x *BillingIssueMetadata) GetCreditLow() *BillingIssueMetadataCreditLow { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_CreditLow); ok { + return x.CreditLow + } + return nil +} + +func (x *BillingIssueMetadata) GetCreditCritical() *BillingIssueMetadataCreditCritical { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_CreditCritical); ok { + return x.CreditCritical + } + return nil +} + +func (x *BillingIssueMetadata) GetCreditExhausted() *BillingIssueMetadataCreditExhausted { + if x, ok := x.GetMetadata().(*BillingIssueMetadata_CreditExhausted); ok { + return x.CreditExhausted + } + return nil +} + type isBillingIssueMetadata_Metadata interface { isBillingIssueMetadata_Metadata() } @@ -22626,9 +22931,21 @@ type BillingIssueMetadata_NeverSubscribed struct { NeverSubscribed *BillingIssueMetadataNeverSubscribed `protobuf:"bytes,7,opt,name=never_subscribed,json=neverSubscribed,proto3,oneof"` } -func (*BillingIssueMetadata_OnTrial) isBillingIssueMetadata_Metadata() {} +type BillingIssueMetadata_CreditLow struct { + CreditLow *BillingIssueMetadataCreditLow `protobuf:"bytes,8,opt,name=credit_low,json=creditLow,proto3,oneof"` +} -func (*BillingIssueMetadata_TrialEnded) isBillingIssueMetadata_Metadata() {} +type BillingIssueMetadata_CreditCritical struct { + CreditCritical *BillingIssueMetadataCreditCritical `protobuf:"bytes,9,opt,name=credit_critical,json=creditCritical,proto3,oneof"` +} + +type BillingIssueMetadata_CreditExhausted struct { + CreditExhausted *BillingIssueMetadataCreditExhausted `protobuf:"bytes,10,opt,name=credit_exhausted,json=creditExhausted,proto3,oneof"` +} + +func (*BillingIssueMetadata_OnTrial) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_TrialEnded) isBillingIssueMetadata_Metadata() {} func (*BillingIssueMetadata_NoPaymentMethod) isBillingIssueMetadata_Metadata() {} @@ -22640,6 +22957,12 @@ func (*BillingIssueMetadata_SubscriptionCancelled) isBillingIssueMetadata_Metada func (*BillingIssueMetadata_NeverSubscribed) isBillingIssueMetadata_Metadata() {} +func (*BillingIssueMetadata_CreditLow) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_CreditCritical) isBillingIssueMetadata_Metadata() {} + +func (*BillingIssueMetadata_CreditExhausted) isBillingIssueMetadata_Metadata() {} + type BillingIssueMetadataOnTrial struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -22652,7 +22975,7 @@ type BillingIssueMetadataOnTrial struct { func (x *BillingIssueMetadataOnTrial) Reset() { *x = BillingIssueMetadataOnTrial{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[351] + mi := &file_rill_admin_v1_api_proto_msgTypes[354] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22665,7 +22988,7 @@ func (x *BillingIssueMetadataOnTrial) String() string { func (*BillingIssueMetadataOnTrial) ProtoMessage() {} func (x *BillingIssueMetadataOnTrial) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[351] + mi := &file_rill_admin_v1_api_proto_msgTypes[354] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22678,7 +23001,7 @@ func (x *BillingIssueMetadataOnTrial) ProtoReflect() protoreflect.Message { // Deprecated: Use BillingIssueMetadataOnTrial.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataOnTrial) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{351} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{354} } func (x *BillingIssueMetadataOnTrial) GetEndDate() *timestamppb.Timestamp { @@ -22707,7 +23030,7 @@ type BillingIssueMetadataTrialEnded struct { func (x *BillingIssueMetadataTrialEnded) Reset() { *x = BillingIssueMetadataTrialEnded{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[352] + mi := &file_rill_admin_v1_api_proto_msgTypes[355] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22720,7 +23043,7 @@ func (x *BillingIssueMetadataTrialEnded) String() string { func (*BillingIssueMetadataTrialEnded) ProtoMessage() {} func (x *BillingIssueMetadataTrialEnded) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[352] + mi := &file_rill_admin_v1_api_proto_msgTypes[355] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22733,7 +23056,7 @@ func (x *BillingIssueMetadataTrialEnded) ProtoReflect() protoreflect.Message { // Deprecated: Use BillingIssueMetadataTrialEnded.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataTrialEnded) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{352} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{355} } func (x *BillingIssueMetadataTrialEnded) GetEndDate() *timestamppb.Timestamp { @@ -22759,7 +23082,7 @@ type BillingIssueMetadataNoPaymentMethod struct { func (x *BillingIssueMetadataNoPaymentMethod) Reset() { *x = BillingIssueMetadataNoPaymentMethod{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[353] + mi := &file_rill_admin_v1_api_proto_msgTypes[356] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22772,7 +23095,7 @@ func (x *BillingIssueMetadataNoPaymentMethod) String() string { func (*BillingIssueMetadataNoPaymentMethod) ProtoMessage() {} func (x *BillingIssueMetadataNoPaymentMethod) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[353] + mi := &file_rill_admin_v1_api_proto_msgTypes[356] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22785,7 +23108,7 @@ func (x *BillingIssueMetadataNoPaymentMethod) ProtoReflect() protoreflect.Messag // Deprecated: Use BillingIssueMetadataNoPaymentMethod.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataNoPaymentMethod) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{353} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{356} } type BillingIssueMetadataNoBillableAddress struct { @@ -22797,7 +23120,7 @@ type BillingIssueMetadataNoBillableAddress struct { func (x *BillingIssueMetadataNoBillableAddress) Reset() { *x = BillingIssueMetadataNoBillableAddress{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[354] + mi := &file_rill_admin_v1_api_proto_msgTypes[357] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22810,7 +23133,7 @@ func (x *BillingIssueMetadataNoBillableAddress) String() string { func (*BillingIssueMetadataNoBillableAddress) ProtoMessage() {} func (x *BillingIssueMetadataNoBillableAddress) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[354] + mi := &file_rill_admin_v1_api_proto_msgTypes[357] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22823,7 +23146,7 @@ func (x *BillingIssueMetadataNoBillableAddress) ProtoReflect() protoreflect.Mess // Deprecated: Use BillingIssueMetadataNoBillableAddress.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataNoBillableAddress) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{354} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{357} } type BillingIssueMetadataPaymentFailed struct { @@ -22837,7 +23160,7 @@ type BillingIssueMetadataPaymentFailed struct { func (x *BillingIssueMetadataPaymentFailed) Reset() { *x = BillingIssueMetadataPaymentFailed{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[355] + mi := &file_rill_admin_v1_api_proto_msgTypes[358] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22850,7 +23173,7 @@ func (x *BillingIssueMetadataPaymentFailed) String() string { func (*BillingIssueMetadataPaymentFailed) ProtoMessage() {} func (x *BillingIssueMetadataPaymentFailed) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[355] + mi := &file_rill_admin_v1_api_proto_msgTypes[358] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22863,7 +23186,7 @@ func (x *BillingIssueMetadataPaymentFailed) ProtoReflect() protoreflect.Message // Deprecated: Use BillingIssueMetadataPaymentFailed.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataPaymentFailed) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{355} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{358} } func (x *BillingIssueMetadataPaymentFailed) GetInvoices() []*BillingIssueMetadataPaymentFailedMeta { @@ -22891,7 +23214,7 @@ type BillingIssueMetadataPaymentFailedMeta struct { func (x *BillingIssueMetadataPaymentFailedMeta) Reset() { *x = BillingIssueMetadataPaymentFailedMeta{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[356] + mi := &file_rill_admin_v1_api_proto_msgTypes[359] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -22904,7 +23227,7 @@ func (x *BillingIssueMetadataPaymentFailedMeta) String() string { func (*BillingIssueMetadataPaymentFailedMeta) ProtoMessage() {} func (x *BillingIssueMetadataPaymentFailedMeta) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[356] + mi := &file_rill_admin_v1_api_proto_msgTypes[359] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -22917,7 +23240,7 @@ func (x *BillingIssueMetadataPaymentFailedMeta) ProtoReflect() protoreflect.Mess // Deprecated: Use BillingIssueMetadataPaymentFailedMeta.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataPaymentFailedMeta) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{356} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{359} } func (x *BillingIssueMetadataPaymentFailedMeta) GetInvoiceId() string { @@ -22987,7 +23310,7 @@ type BillingIssueMetadataSubscriptionCancelled struct { func (x *BillingIssueMetadataSubscriptionCancelled) Reset() { *x = BillingIssueMetadataSubscriptionCancelled{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[357] + mi := &file_rill_admin_v1_api_proto_msgTypes[360] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23000,7 +23323,7 @@ func (x *BillingIssueMetadataSubscriptionCancelled) String() string { func (*BillingIssueMetadataSubscriptionCancelled) ProtoMessage() {} func (x *BillingIssueMetadataSubscriptionCancelled) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[357] + mi := &file_rill_admin_v1_api_proto_msgTypes[360] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23013,7 +23336,7 @@ func (x *BillingIssueMetadataSubscriptionCancelled) ProtoReflect() protoreflect. // Deprecated: Use BillingIssueMetadataSubscriptionCancelled.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataSubscriptionCancelled) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{357} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{360} } func (x *BillingIssueMetadataSubscriptionCancelled) GetEndDate() *timestamppb.Timestamp { @@ -23032,7 +23355,7 @@ type BillingIssueMetadataNeverSubscribed struct { func (x *BillingIssueMetadataNeverSubscribed) Reset() { *x = BillingIssueMetadataNeverSubscribed{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[358] + mi := &file_rill_admin_v1_api_proto_msgTypes[361] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23045,7 +23368,7 @@ func (x *BillingIssueMetadataNeverSubscribed) String() string { func (*BillingIssueMetadataNeverSubscribed) ProtoMessage() {} func (x *BillingIssueMetadataNeverSubscribed) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[358] + mi := &file_rill_admin_v1_api_proto_msgTypes[361] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23058,7 +23381,196 @@ func (x *BillingIssueMetadataNeverSubscribed) ProtoReflect() protoreflect.Messag // Deprecated: Use BillingIssueMetadataNeverSubscribed.ProtoReflect.Descriptor instead. func (*BillingIssueMetadataNeverSubscribed) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{358} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{361} +} + +type BillingIssueMetadataCreditLow struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreditRemaining float64 `protobuf:"fixed64,1,opt,name=credit_remaining,json=creditRemaining,proto3" json:"credit_remaining,omitempty"` + CreditTotal float64 `protobuf:"fixed64,2,opt,name=credit_total,json=creditTotal,proto3" json:"credit_total,omitempty"` + CreditExpiry *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=credit_expiry,json=creditExpiry,proto3" json:"credit_expiry,omitempty"` +} + +func (x *BillingIssueMetadataCreditLow) Reset() { + *x = BillingIssueMetadataCreditLow{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[362] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataCreditLow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataCreditLow) ProtoMessage() {} + +func (x *BillingIssueMetadataCreditLow) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[362] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BillingIssueMetadataCreditLow.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataCreditLow) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{362} +} + +func (x *BillingIssueMetadataCreditLow) GetCreditRemaining() float64 { + if x != nil { + return x.CreditRemaining + } + return 0 +} + +func (x *BillingIssueMetadataCreditLow) GetCreditTotal() float64 { + if x != nil { + return x.CreditTotal + } + return 0 +} + +func (x *BillingIssueMetadataCreditLow) GetCreditExpiry() *timestamppb.Timestamp { + if x != nil { + return x.CreditExpiry + } + return nil +} + +type BillingIssueMetadataCreditCritical struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreditRemaining float64 `protobuf:"fixed64,1,opt,name=credit_remaining,json=creditRemaining,proto3" json:"credit_remaining,omitempty"` + CreditTotal float64 `protobuf:"fixed64,2,opt,name=credit_total,json=creditTotal,proto3" json:"credit_total,omitempty"` + CreditExpiry *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=credit_expiry,json=creditExpiry,proto3" json:"credit_expiry,omitempty"` +} + +func (x *BillingIssueMetadataCreditCritical) Reset() { + *x = BillingIssueMetadataCreditCritical{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[363] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataCreditCritical) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataCreditCritical) ProtoMessage() {} + +func (x *BillingIssueMetadataCreditCritical) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[363] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BillingIssueMetadataCreditCritical.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataCreditCritical) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{363} +} + +func (x *BillingIssueMetadataCreditCritical) GetCreditRemaining() float64 { + if x != nil { + return x.CreditRemaining + } + return 0 +} + +func (x *BillingIssueMetadataCreditCritical) GetCreditTotal() float64 { + if x != nil { + return x.CreditTotal + } + return 0 +} + +func (x *BillingIssueMetadataCreditCritical) GetCreditExpiry() *timestamppb.Timestamp { + if x != nil { + return x.CreditExpiry + } + return nil +} + +type BillingIssueMetadataCreditExhausted struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreditTotal float64 `protobuf:"fixed64,1,opt,name=credit_total,json=creditTotal,proto3" json:"credit_total,omitempty"` + CreditExpiry *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=credit_expiry,json=creditExpiry,proto3" json:"credit_expiry,omitempty"` + ExhaustedOn *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=exhausted_on,json=exhaustedOn,proto3" json:"exhausted_on,omitempty"` +} + +func (x *BillingIssueMetadataCreditExhausted) Reset() { + *x = BillingIssueMetadataCreditExhausted{} + if protoimpl.UnsafeEnabled { + mi := &file_rill_admin_v1_api_proto_msgTypes[364] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BillingIssueMetadataCreditExhausted) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BillingIssueMetadataCreditExhausted) ProtoMessage() {} + +func (x *BillingIssueMetadataCreditExhausted) ProtoReflect() protoreflect.Message { + mi := &file_rill_admin_v1_api_proto_msgTypes[364] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BillingIssueMetadataCreditExhausted.ProtoReflect.Descriptor instead. +func (*BillingIssueMetadataCreditExhausted) Descriptor() ([]byte, []int) { + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{364} +} + +func (x *BillingIssueMetadataCreditExhausted) GetCreditTotal() float64 { + if x != nil { + return x.CreditTotal + } + return 0 +} + +func (x *BillingIssueMetadataCreditExhausted) GetCreditExpiry() *timestamppb.Timestamp { + if x != nil { + return x.CreditExpiry + } + return nil +} + +func (x *BillingIssueMetadataCreditExhausted) GetExhaustedOn() *timestamppb.Timestamp { + if x != nil { + return x.ExhaustedOn + } + return nil } type ListGithubUserReposResponse_Repo struct { @@ -23076,7 +23588,7 @@ type ListGithubUserReposResponse_Repo struct { func (x *ListGithubUserReposResponse_Repo) Reset() { *x = ListGithubUserReposResponse_Repo{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[370] + mi := &file_rill_admin_v1_api_proto_msgTypes[376] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23089,7 +23601,7 @@ func (x *ListGithubUserReposResponse_Repo) String() string { func (*ListGithubUserReposResponse_Repo) ProtoMessage() {} func (x *ListGithubUserReposResponse_Repo) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[370] + mi := &file_rill_admin_v1_api_proto_msgTypes[376] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23102,7 +23614,7 @@ func (x *ListGithubUserReposResponse_Repo) ProtoReflect() protoreflect.Message { // Deprecated: Use ListGithubUserReposResponse_Repo.ProtoReflect.Descriptor instead. func (*ListGithubUserReposResponse_Repo) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{236, 0} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{238, 0} } func (x *ListGithubUserReposResponse_Repo) GetName() string { @@ -23156,7 +23668,7 @@ type GetReportMetaResponse_DeliveryMeta struct { func (x *GetReportMetaResponse_DeliveryMeta) Reset() { *x = GetReportMetaResponse_DeliveryMeta{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[371] + mi := &file_rill_admin_v1_api_proto_msgTypes[377] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23169,7 +23681,7 @@ func (x *GetReportMetaResponse_DeliveryMeta) String() string { func (*GetReportMetaResponse_DeliveryMeta) ProtoMessage() {} func (x *GetReportMetaResponse_DeliveryMeta) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[371] + mi := &file_rill_admin_v1_api_proto_msgTypes[377] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23182,7 +23694,7 @@ func (x *GetReportMetaResponse_DeliveryMeta) ProtoReflect() protoreflect.Message // Deprecated: Use GetReportMetaResponse_DeliveryMeta.ProtoReflect.Descriptor instead. func (*GetReportMetaResponse_DeliveryMeta) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{264, 0} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{266, 0} } func (x *GetReportMetaResponse_DeliveryMeta) GetOpenUrl() string { @@ -23240,7 +23752,7 @@ type GetAlertMetaResponse_URLs struct { func (x *GetAlertMetaResponse_URLs) Reset() { *x = GetAlertMetaResponse_URLs{} if protoimpl.UnsafeEnabled { - mi := &file_rill_admin_v1_api_proto_msgTypes[374] + mi := &file_rill_admin_v1_api_proto_msgTypes[380] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -23253,7 +23765,7 @@ func (x *GetAlertMetaResponse_URLs) String() string { func (*GetAlertMetaResponse_URLs) ProtoMessage() {} func (x *GetAlertMetaResponse_URLs) ProtoReflect() protoreflect.Message { - mi := &file_rill_admin_v1_api_proto_msgTypes[374] + mi := &file_rill_admin_v1_api_proto_msgTypes[380] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -23266,7 +23778,7 @@ func (x *GetAlertMetaResponse_URLs) ProtoReflect() protoreflect.Message { // Deprecated: Use GetAlertMetaResponse_URLs.ProtoReflect.Descriptor instead. func (*GetAlertMetaResponse_URLs) Descriptor() ([]byte, []int) { - return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{266, 0} + return file_rill_admin_v1_api_proto_rawDescGZIP(), []int{268, 0} } func (x *GetAlertMetaResponse_URLs) GetOpenUrl() string { @@ -23985,7 +24497,7 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x27, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x9d, 0x06, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x8f, 0x07, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, @@ -24023,7 +24535,12 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x48, 0x0c, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x72, + 0x61, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x03, + 0x48, 0x0d, 0x52, 0x0c, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x6c, 0x6f, 0x74, 0x73, + 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x62, 0x72, @@ -24035,781 +24552,829 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x6e, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x49, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x30, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0xde, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x14, 0xfa, 0x42, 0x11, 0x72, 0x0f, 0x52, 0x06, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, - 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x12, 0x30, 0x0a, 0x14, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x73, 0x69, - 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, - 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, - 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x73, - 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, - 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x65, - 0x64, 0x55, 0x72, 0x6c, 0x12, 0x5f, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x5f, - 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7a, 0x0a, 0x16, 0x52, 0x65, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x34, - 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, - 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x7b, 0x0a, 0x17, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1a, 0x0a, 0x18, - 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x0a, 0x17, 0x54, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x54, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x1c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, - 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x16, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, - 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, - 0x19, 0x0a, 0x17, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x0a, 0x10, 0x50, - 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, - 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x53, 0x0a, 0x11, 0x50, 0x72, 0x6f, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0x41, - 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x66, 0x72, 0x61, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x22, 0x49, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x30, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x22, 0xde, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, + 0x73, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x14, 0xfa, 0x42, 0x11, 0x72, 0x0f, 0x52, 0x06, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, + 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x12, 0x30, 0x0a, 0x14, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x73, 0x69, 0x7a, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x12, 0x65, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x42, + 0x79, 0x74, 0x65, 0x73, 0x22, 0xf3, 0x01, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, + 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x73, 0x73, 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x65, + 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x67, + 0x6e, 0x65, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x5f, 0x0a, 0x0f, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, + 0x67, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x73, 0x69, 0x67, 0x6e, 0x69, 0x6e, 0x67, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x1a, 0x41, 0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x69, + 0x6e, 0x67, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7a, 0x0a, 0x16, 0x52, 0x65, + 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, + 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, + 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x7b, 0x0a, 0x17, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1a, + 0x0a, 0x18, 0x48, 0x69, 0x62, 0x65, 0x72, 0x6e, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x0a, 0x17, 0x54, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x22, 0x1a, 0x0a, 0x18, 0x54, 0x72, + 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x63, 0x69, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x1c, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, + 0x52, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x16, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x52, 0x65, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, - 0x64, 0x22, 0xa5, 0x04, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x57, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, - 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, 0x73, 0x5f, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x75, - 0x73, 0x65, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x4f, 0x0a, 0x17, 0x64, 0x75, - 0x63, 0x6b, 0x64, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x5f, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x52, 0x15, 0x64, 0x75, 0x63, 0x6b, 0x64, 0x62, 0x43, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3c, 0x0a, 0x0e, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x12, 0x0a, 0x10, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa4, 0x01, - 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x11, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, - 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, - 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, - 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x9f, 0x02, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, - 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, - 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, - 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, - 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, 0x74, 0x4f, + 0x64, 0x22, 0x19, 0x0a, 0x17, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x64, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8c, 0x01, 0x0a, + 0x10, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, + 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, 0x73, 0x22, 0x53, 0x0a, 0x11, 0x50, + 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x22, 0x41, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, + 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x49, 0x64, 0x22, 0xa5, 0x04, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x57, 0x0a, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x09, 0x76, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x12, 0x5d, 0x0a, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x41, 0x6e, + 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, + 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, + 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x39, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x75, 0x73, 0x65, + 0x73, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0b, 0x75, 0x73, 0x65, 0x73, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x4f, 0x0a, 0x17, + 0x64, 0x75, 0x63, 0x6b, 0x64, 0x62, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x15, 0x64, 0x75, 0x63, 0x6b, 0x64, 0x62, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x1a, 0x3c, 0x0a, + 0x0e, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3e, 0x0a, 0x10, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x12, 0x0a, 0x10, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0xa4, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x12, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x11, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x3f, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x22, 0x9f, 0x02, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, + 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x73, + 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, + 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x5f, 0x70, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x22, 0xaf, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, + 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x3f, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7a, 0x0a, 0x1e, 0x4c, 0x69, + 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x27, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa7, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x07, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, + 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xa6, 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, + 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, + 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x4a, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, - 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7a, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x27, 0x0a, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, - 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, - 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa7, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x07, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x6f, 0x74, 0x61, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa6, - 0x01, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, - 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, - 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x4a, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, - 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, 0x67, - 0x6e, 0x75, 0x70, 0x22, 0x5f, 0x0a, 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, + 0x69, 0x67, 0x6e, 0x75, 0x70, 0x22, 0x5f, 0x0a, 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, + 0x0a, 0x18, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x0a, 0x18, - 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x22, 0x1b, 0x0a, 0x19, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, - 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, - 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x5c, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, - 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x62, 0x0a, - 0x21, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x22, 0x7a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, - 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x58, 0x0a, - 0x1c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, - 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x85, 0x01, 0x0a, 0x26, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0x1b, 0x0a, 0x19, 0x4c, 0x65, 0x61, 0x76, 0x65, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xb3, 0x01, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, + 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5c, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, + 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, + 0x62, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x22, 0x7a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, - 0x69, 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, 0x75, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x0a, - 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xa2, 0x01, 0x0a, 0x2d, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, - 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, - 0x30, 0x0a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x17, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x16, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x22, - 0x52, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x16, - 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x17, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0d, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x49, 0x64, 0x42, 0x04, 0x0a, 0x02, 0x69, 0x64, 0x22, 0xab, 0x02, 0x0a, 0x17, - 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, 0x75, 0x73, - 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, 0x52, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xe8, 0x03, 0x0a, 0x23, 0x53, 0x75, - 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x70, - 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, - 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x03, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, - 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x1e, 0x73, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, - 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0e, 0x0a, 0x0c, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x42, 0x25, 0x0a, - 0x23, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x67, 0x0a, 0x24, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xda, 0x01, - 0x0a, 0x2c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x33, 0x0a, 0x13, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x62, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0xb1, 0x01, 0x0a, 0x2d, 0x53, - 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, - 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, - 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x52, - 0x0a, 0x16, 0x53, 0x75, 0x64, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x54, 0x72, 0x69, 0x61, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x1a, 0x04, 0x18, 0x1e, 0x20, 0x00, 0x52, 0x04, 0x64, 0x61, - 0x79, 0x73, 0x22, 0x52, 0x0a, 0x17, 0x53, 0x75, 0x64, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x54, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, 0x74, 0x72, - 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x64, 0x0a, 0x29, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x6d, 0x0a, 0x2a, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, + 0x58, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x38, 0x0a, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x06, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x85, 0x01, 0x0a, 0x26, 0x4c, 0x69, + 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, + 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x22, 0x69, 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x6e, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0a, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0xa2, 0x01, 0x0a, + 0x2d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, + 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, + 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x22, 0x30, 0x0a, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, + 0x75, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x22, 0x52, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x70, 0x65, 0x72, + 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x75, 0x70, 0x65, + 0x72, 0x75, 0x73, 0x65, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x53, 0x75, 0x70, 0x65, + 0x72, 0x75, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbd, 0x01, + 0x0a, 0x16, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x25, 0x0a, + 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0a, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x42, 0x04, 0x0a, 0x02, 0x69, 0x64, 0x22, 0xab, 0x02, + 0x0a, 0x17, 0x53, 0x75, 0x64, 0x6f, 0x47, 0x65, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x48, 0x00, 0x52, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x2f, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x32, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x48, 0x00, + 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3b, 0x0a, 0x0a, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, + 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x42, + 0x0a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x22, 0xe8, 0x03, 0x0a, 0x23, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, - 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x1b, - 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, - 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x6f, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x22, 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x73, - 0x88, 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, 0x69, 0x61, - 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x22, 0x47, 0x0a, 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, - 0xfc, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x5e, - 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, - 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, - 0x0a, 0x1d, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x30, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x16, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x39, 0x0a, 0x23, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x24, - 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x72, 0x0a, 0x29, 0x53, 0x75, - 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, - 0x0a, 0x2a, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x1f, - 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x22, 0x0a, 0x20, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0b, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x03, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6f, 0x75, + 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, + 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x4f, 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x1e, + 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x42, 0x17, + 0x0a, 0x15, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6f, 0x75, 0x74, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x42, + 0x25, 0x0a, 0x23, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, + 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x67, 0x0a, 0x24, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0xda, 0x01, 0x0a, 0x2c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x33, 0x0a, 0x13, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x70, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x16, 0x0a, 0x14, + 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x22, 0xb1, 0x01, 0x0a, + 0x2d, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, + 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x52, 0x0a, 0x16, 0x53, 0x75, 0x64, 0x6f, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x54, 0x72, + 0x69, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x1a, 0x04, 0x18, 0x1e, 0x20, 0x00, 0x52, 0x04, + 0x64, 0x61, 0x79, 0x73, 0x22, 0x52, 0x0a, 0x17, 0x53, 0x75, 0x64, 0x6f, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x64, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x37, 0x0a, 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x08, + 0x74, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x22, 0x9d, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, + 0x6f, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x26, 0x0a, + 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x42, 0x0e, 0xfa, + 0x42, 0x0b, 0x12, 0x09, 0x21, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x06, 0x61, + 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x5f, + 0x64, 0x61, 0x79, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, + 0x72, 0x79, 0x44, 0x61, 0x79, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x16, 0x53, 0x75, 0x64, 0x6f, + 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x64, 0x0a, 0x29, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x6d, 0x0a, 0x2a, 0x53, + 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x01, 0x0a, 0x1b, 0x53, + 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6f, + 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0e, 0x73, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, + 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, + 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x22, 0x47, 0x0a, 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0xfc, + 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x5e, 0x0a, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, + 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x51, 0x0a, + 0x1d, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x22, 0x39, 0x0a, 0x23, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x22, 0x3c, 0x0a, 0x24, 0x53, + 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x72, 0x0a, 0x29, 0x53, 0x75, 0x64, + 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2c, 0x0a, + 0x2a, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x53, + 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x22, + 0x0a, 0x20, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xef, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, + 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, + 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, + 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, + 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa1, 0x01, 0x0a, 0x19, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, - 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa1, 0x01, 0x0a, - 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x7c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, + 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x07, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9d, 0x02, + 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, + 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x45, 0x0a, + 0x1c, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, + 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x69, + 0x67, 0x6e, 0x75, 0x70, 0x22, 0x7d, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, + 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, - 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x7c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, - 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x07, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, - 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x9d, - 0x02, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x45, - 0x0a, 0x1c, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, - 0x0a, 0x0e, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, - 0x69, 0x67, 0x6e, 0x75, 0x70, 0x22, 0x7d, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, + 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6c, + 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x01, 0x0a, + 0x2b, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, + 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x2c, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, 0x0f, + 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x50, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x36, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, + 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0xbe, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x36, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x75, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xc7, 0x01, 0x0a, 0x27, 0x4c, 0x69, 0x73, 0x74, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, + 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, + 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0xe5, 0x01, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xaf, 0x02, 0x0a, 0x1f, 0x53, 0x65, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, - 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, - 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, - 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, - 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, - 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x22, 0x0a, 0x20, 0x53, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xb2, 0x01, - 0x0a, 0x2b, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, - 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, - 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x90, 0x01, 0x0a, 0x2c, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x26, 0x0a, - 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x50, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x51, 0x0a, 0x17, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x9f, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, - 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x76, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xbe, 0x01, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x65, 0x77, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x51, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x36, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x09, 0x75, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xc7, 0x01, 0x0a, 0x27, 0x4c, 0x69, 0x73, - 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, - 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x22, 0x8c, 0x01, 0x0a, 0x28, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, - 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0xe5, 0x01, 0x0a, 0x22, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x73, + 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, + 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x23, 0x4c, 0x69, 0x73, + 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x22, 0x5a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x19, + 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x25, 0x41, 0x64, + 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x22, 0x28, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0x0a, + 0x29, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x04, + 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x2a, 0x53, 0x65, 0x74, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x28, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, - 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x23, 0x4c, 0x69, - 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x38, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x22, 0x5a, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x04, + 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, + 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x73, + 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, + 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, - 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x25, 0x41, - 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, - 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x22, 0x28, 0x0a, 0x26, 0x41, 0x64, 0x64, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, - 0x0a, 0x29, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, - 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x2c, 0x0a, 0x2a, 0x53, 0x65, - 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6c, 0x0a, 0x28, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, 0x6c, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, + 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, + 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x42, 0x15, 0x0a, 0x13, + 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0x0a, + 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, - 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x2b, 0x0a, 0x29, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0xaa, 0x02, 0x0a, 0x20, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, - 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, - 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x22, 0x23, 0x0a, 0x21, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xbc, 0x02, 0x0a, 0x24, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x09, - 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x20, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x48, 0x00, 0x52, 0x04, 0x72, 0x6f, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, - 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x22, 0x27, 0x0a, 0x25, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, - 0x0a, 0x23, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x26, 0x0a, 0x24, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1d, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, + 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x20, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, + 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x07, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, + 0x83, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, @@ -24817,877 +25382,896 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x20, 0x0a, 0x1e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xab, 0x01, 0x0a, 0x1f, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, - 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x27, 0x0a, - 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, - 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x20, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x07, 0x6d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x83, 0x01, 0x0a, 0x20, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x25, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x0f, 0x55, - 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x20, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x22, 0x60, - 0x0a, 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, - 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, - 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x22, 0x61, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, - 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, - 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, - 0x63, 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x3a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x40, 0x0a, - 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x23, 0x0a, 0x21, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x0a, 0x0f, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x20, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x22, 0x60, 0x0a, + 0x1c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, + 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x40, 0x0a, + 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, - 0x68, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x61, 0x0a, 0x1d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x40, 0x0a, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x22, 0x2f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0xe6, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, - 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, - 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, - 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x22, 0x7a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x92, 0x02, 0x0a, 0x19, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x33, - 0x0a, 0x0f, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, - 0x01, 0x60, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x1a, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6d, 0x0a, - 0x1a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x61, 0x69, 0x6c, 0x22, 0x3a, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, + 0x17, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x40, 0x0a, 0x0b, + 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, + 0x73, 0x52, 0x0b, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x22, 0x68, + 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xe6, + 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x27, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, + 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1d, 0x0a, 0x1b, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x1d, 0x0a, 0x07, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, + 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x22, 0x7a, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x34, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, + 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x92, 0x02, 0x0a, 0x19, 0x49, 0x73, 0x73, 0x75, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x20, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x09, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, + 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, 0x33, 0x0a, + 0x0f, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, + 0x60, 0x01, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x32, 0x0a, 0x1a, 0x49, 0x73, 0x73, 0x75, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x6d, 0x0a, 0x1a, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x1e, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, - 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x48, 0x0a, 0x1f, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, - 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x22, - 0x46, 0x0a, 0x25, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1d, 0x0a, 0x1b, 0x52, + 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x78, 0x0a, 0x1e, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x34, + 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, + 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, + 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x22, 0x48, 0x0a, 0x1f, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x41, 0x6c, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x5f, 0x72, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x64, 0x22, 0x46, + 0x0a, 0x25, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, + 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x65, 0x0a, 0x23, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, - 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x65, 0x0a, 0x23, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, - 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, - 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x6d, - 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, - 0x6c, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x24, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x60, 0x01, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x69, + 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, + 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x24, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x52, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x76, 0x65, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x1f, 0x0a, 0x1d, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x14, 0x4c, 0x69, 0x73, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, - 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x4c, 0x69, - 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, - 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, 0x35, 0x0a, 0x12, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x49, - 0x64, 0x22, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x96, 0x02, - 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, - 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, - 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x75, 0x72, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, - 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x33, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x08, 0x62, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x7f, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x4e, 0x0a, 0x15, 0x4c, 0x69, 0x73, + 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x35, 0x0a, 0x09, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x09, + 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, 0x35, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x49, 0x64, - 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, - 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x38, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x6f, - 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0d, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x68, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, - 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3a, 0x0a, 0x1d, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, - 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x49, 0x73, 0x73, 0x75, 0x65, + 0x22, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x22, 0x96, 0x02, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, + 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x75, + 0x72, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x75, 0x72, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, + 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0x4d, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x33, 0x0a, 0x08, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x08, 0x62, 0x6f, 0x6f, 0x6b, + 0x6d, 0x61, 0x72, 0x6b, 0x22, 0xce, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x49, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x72, 0x6c, 0x5f, 0x73, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x38, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x6f, 0x6f, 0x6b, + 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x49, 0x64, 0x22, 0x18, 0x0a, 0x16, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2c, 0x0a, 0x0d, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x5f, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x0c, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, + 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x68, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x29, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, + 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3a, 0x0a, 0x1d, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x22, 0x20, 0x0a, 0x1e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5c, - 0x0a, 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, - 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x1d, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, - 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x22, 0xb8, 0x04, 0x0a, 0x1a, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1c, 0x49, 0x73, 0x73, 0x75, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, + 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x35, 0x0a, 0x1d, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x5c, 0x0a, + 0x1c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, + 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x1d, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x22, 0xb8, 0x04, 0x0a, 0x1a, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, + 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, + 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x73, 0x0a, 0x14, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, + 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x41, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x52, 0x12, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, + 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x36, 0x0a, 0x0c, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, + 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xa2, 0x01, 0x0a, 0x1a, + 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, 0x07, + 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x7c, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x35, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x06, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, + 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x21, + 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, - 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x73, 0x0a, 0x14, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, - 0x65, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x41, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x73, 0x1a, 0x62, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, - 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, - 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, - 0x12, 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x05, 0x10, 0x06, 0x22, 0x36, 0x0a, - 0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, - 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0xa2, 0x01, 0x0a, - 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, - 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, - 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x42, 0x0a, 0xfa, 0x42, - 0x07, 0x2a, 0x05, 0x18, 0xe8, 0x07, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, - 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x22, 0x7c, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x35, 0x0a, 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x06, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, - 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, - 0x21, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, - 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x57, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x38, 0x0a, 0x1b, 0x52, - 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, + 0x74, 0x22, 0x57, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, - 0x61, 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x68, 0x61, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, - 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, - 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x1c, 0x0a, 0x1a, 0x47, - 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc1, 0x04, 0x0a, 0x1b, 0x47, 0x65, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x38, 0x0a, 0x1b, 0x52, 0x65, + 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x49, 0x64, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, + 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x34, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x8d, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x70, 0x6f, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, + 0x73, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x68, 0x61, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x61, + 0x6e, 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x55, 0x72, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x1c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, - 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, - 0x61, 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, - 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, - 0x61, 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, - 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0xa7, 0x01, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x53, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xc1, 0x04, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x68, 0x61, 0x73, 0x5f, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x68, 0x61, + 0x73, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x55, 0x72, + 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x61, + 0x0a, 0x1c, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x1a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x23, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x04, - 0x6f, 0x72, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, - 0x6f, 0x72, 0x67, 0x73, 0x1a, 0x77, 0x0a, 0x28, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x6e, 0x12, 0xa7, 0x01, 0x0a, 0x25, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x53, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x23, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1c, 0x0a, - 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf8, 0x01, 0x0a, 0x1b, + 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x16, 0x0a, 0x04, 0x6f, + 0x72, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x04, 0x6f, + 0x72, 0x67, 0x73, 0x1a, 0x77, 0x0a, 0x28, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x35, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x70, 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x05, 0x72, - 0x65, 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x05, 0x72, 0x65, 0x70, - 0x6f, 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x04, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, - 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x63, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x43, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, - 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, - 0x6f, 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, - 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x13, 0x70, 0x61, - 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x6f, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, - 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x83, 0x03, 0x0a, 0x1b, 0x47, 0x65, - 0x74, 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x67, 0x69, 0x74, - 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x67, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x67, - 0x69, 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x67, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x12, 0x51, 0x0a, 0x17, 0x67, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, - 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x14, - 0x67, 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, 0x72, - 0x65, 0x73, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x69, 0x74, 0x53, 0x75, - 0x62, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x67, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x72, 0x61, - 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x67, - 0x69, 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x30, 0x0a, - 0x14, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, - 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x22, - 0x79, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x70, 0x6f, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xf8, 0x01, 0x0a, 0x1b, 0x4c, + 0x69, 0x73, 0x74, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, + 0x6f, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x45, 0x0a, 0x05, 0x72, 0x65, + 0x70, 0x6f, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x47, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6f, + 0x73, 0x1a, 0x91, 0x01, 0x0a, 0x04, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x25, + 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x22, 0x63, 0x0a, 0x1d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x22, 0x20, 0x0a, 0x1e, 0x43, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x54, 0x6f, 0x47, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x0a, 0x1b, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, + 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x1c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, + 0x72, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x62, 0x72, + 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x4a, 0x0a, 0x13, 0x70, 0x61, 0x73, + 0x73, 0x77, 0x6f, 0x72, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x11, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x73, 0x41, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x6f, + 0x6e, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, + 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, + 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x83, 0x03, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x6f, 0x6e, 0x65, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x67, 0x69, 0x74, 0x5f, + 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x67, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x67, 0x69, + 0x74, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x67, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x67, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x12, 0x51, 0x0a, 0x17, 0x67, 0x69, 0x74, 0x5f, 0x70, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, + 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x14, 0x67, + 0x69, 0x74, 0x50, 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x41, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x69, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x70, 0x61, + 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x69, 0x74, 0x53, 0x75, 0x62, + 0x70, 0x61, 0x74, 0x68, 0x12, 0x2c, 0x0a, 0x12, 0x67, 0x69, 0x74, 0x5f, 0x70, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x67, 0x69, 0x74, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, + 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x67, 0x69, 0x74, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x64, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x67, 0x69, + 0x74, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x30, 0x0a, 0x14, + 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x22, 0x79, + 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1f, 0x0a, 0x06, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, 0x04, + 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, + 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, 0x1e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, + 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x21, 0x0a, 0x1f, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x0a, + 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, + 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, + 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0x5c, 0x0a, 0x1e, 0x4c, 0x69, 0x73, + 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x64, + 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, + 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x25, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1f, 0x0a, 0x06, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x1b, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, - 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x21, 0x0a, 0x1f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5c, 0x0a, - 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, - 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1f, 0x0a, 0x06, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, - 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x21, 0x0a, 0x1f, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, - 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, - 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, 0x5c, 0x0a, 0x1e, 0x4c, 0x69, - 0x73, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, - 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x28, 0x0a, + 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, - 0x07, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x22, 0xa3, 0x01, 0x0a, 0x25, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, + 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, + 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, + 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, + 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, + 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x24, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0x1b, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x28, - 0x0a, 0x26, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, + 0x22, 0x63, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x86, 0x01, 0x0a, 0x25, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, 0x0a, - 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, - 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x1f, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x22, 0x28, 0x0a, 0x26, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, - 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x64, 0x0a, 0x24, 0x4c, - 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x21, - 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x22, 0x63, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x64, 0x6f, - 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x69, 0x74, - 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x33, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, - 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xf5, 0x03, 0x0a, 0x13, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x12, 0x42, - 0x0a, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, - 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x67, - 0x69, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x67, 0x69, 0x74, 0x53, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, - 0x67, 0x69, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x67, 0x69, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, - 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, - 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, - 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, - 0x70, 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x64, 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x72, 0x63, 0x68, - 0x69, 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x44, - 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x72, - 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x12, 0x61, 0x72, 0x63, - 0x68, 0x69, 0x76, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x22, 0xdc, 0x01, 0x0a, 0x16, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x26, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x2a, 0x04, 0x18, 0x64, 0x40, 0x01, 0x52, 0x08, 0x70, - 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4a, 0x04, 0x08, 0x02, - 0x10, 0x03, 0x22, 0x73, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, - 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, - 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, - 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, - 0x26, 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, - 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x48, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, - 0x52, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, - 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, - 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, - 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1b, - 0x0a, 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcb, 0x03, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, - 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, - 0x6e, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, - 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x11, - 0x77, 0x68, 0x65, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6a, 0x73, 0x6f, - 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x77, 0x68, 0x65, - 0x72, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x11, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x61, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x4a, 0x04, 0x08, - 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xce, 0x03, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x5f, - 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, - 0x1a, 0xdd, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, - 0x61, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x65, - 0x64, 0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x64, 0x69, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x55, 0x72, 0x6c, 0x12, - 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x73, - 0x1a, 0x72, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, - 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xc3, 0x03, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x64, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x68, 0x69, 0x74, 0x65, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x07, 0x64, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x22, 0x33, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xf5, 0x03, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x12, 0x42, 0x0a, + 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0d, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x67, 0x69, + 0x74, 0x5f, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x67, 0x69, 0x74, 0x53, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1d, 0x0a, 0x0a, 0x67, + 0x69, 0x74, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x69, 0x74, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, + 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, + 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, + 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x70, + 0x6f, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, + 0x47, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x30, 0x0a, 0x14, 0x61, 0x72, 0x63, 0x68, 0x69, + 0x76, 0x65, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x72, 0x63, + 0x68, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x49, 0x64, 0x12, 0x48, 0x0a, 0x12, 0x61, 0x72, 0x63, 0x68, + 0x69, 0x76, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x4f, 0x6e, 0x22, 0xdc, 0x01, 0x0a, 0x16, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x26, + 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x42, 0x09, 0xfa, 0x42, 0x06, 0x2a, 0x04, 0x18, 0x64, 0x40, 0x01, 0x52, 0x08, 0x70, 0x61, + 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4a, 0x04, 0x08, 0x02, 0x10, + 0x03, 0x22, 0x73, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, + 0x66, 0x69, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, + 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x05, 0x66, 0x69, 0x6c, 0x65, 0x73, 0x12, 0x26, + 0x0a, 0x0f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x65, 0x78, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xa2, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x56, 0x69, + 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x48, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, + 0x04, 0x66, 0x69, 0x6c, 0x65, 0x22, 0xa5, 0x01, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, - 0x64, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, - 0x0a, 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x71, - 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, - 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x19, - 0x0a, 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, - 0x6e, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, - 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0b, 0x0a, - 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, - 0x22, 0x99, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, - 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, - 0x69, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, - 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, - 0x12, 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x1a, 0x65, 0x0a, 0x04, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x70, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x75, - 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x55, 0x72, - 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x73, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x55, 0x72, 0x6c, 0x1a, 0x6a, 0x0a, 0x12, 0x52, 0x65, - 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1b, 0x0a, + 0x19, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xcb, 0x03, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x41, 0x0a, 0x0e, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0d, 0x65, 0x78, 0x65, 0x63, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x07, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6e, + 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x39, 0x0a, 0x09, + 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x11, 0x77, + 0x68, 0x65, 0x72, 0x65, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x77, 0x68, 0x65, 0x72, + 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2f, 0x0a, 0x11, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x10, 0x61, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x4a, 0x04, 0x08, 0x02, + 0x10, 0x03, 0x4a, 0x04, 0x08, 0x04, 0x10, 0x05, 0x22, 0xce, 0x03, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x5b, 0x0a, 0x0d, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x5f, 0x6d, + 0x65, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x0c, 0x64, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x1a, + 0xdd, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, + 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x65, + 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x64, + 0x69, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, + 0x69, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x17, + 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, + 0x72, 0x75, 0x63, 0x74, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x41, 0x74, 0x74, 0x72, 0x73, 0x1a, + 0x72, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x47, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x65, 0x6c, 0x69, + 0x76, 0x65, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0xc3, 0x03, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x55, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x0a, + 0x11, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x71, 0x75, + 0x65, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x11, 0x71, 0x75, 0x65, 0x72, + 0x79, 0x46, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, + 0x08, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, + 0x6e, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x61, 0x6e, + 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x1a, 0x3e, 0x0a, 0x10, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x52, 0x4c, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x83, 0x01, 0x0a, - 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, - 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x95, - 0x01, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x0b, 0x0a, 0x09, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x66, 0x6f, 0x72, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, + 0x99, 0x03, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5d, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x69, + 0x70, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x55, + 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x12, 0x49, 0x0a, 0x14, 0x71, 0x75, 0x65, 0x72, 0x79, + 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, + 0x71, 0x75, 0x65, 0x72, 0x79, 0x46, 0x6f, 0x72, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x1a, 0x65, 0x0a, 0x04, 0x55, 0x52, 0x4c, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x70, + 0x65, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x70, + 0x65, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x64, 0x69, 0x74, 0x55, 0x72, 0x6c, + 0x12, 0x27, 0x0a, 0x0f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x73, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x55, 0x72, 0x6c, 0x1a, 0x6a, 0x0a, 0x12, 0x52, 0x65, 0x63, + 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x3e, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x55, 0x52, 0x4c, 0x73, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x01, 0x10, 0x02, 0x22, 0x83, 0x01, 0x0a, 0x13, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x08, + 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x2a, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x95, 0x01, + 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa7, 0x01, 0x0a, 0x18, + 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, + 0x01, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x0a, 0x73, 0x6c, + 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, + 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, 0x60, 0x01, 0x52, 0x09, 0x73, 0x6c, 0x61, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x55, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x56, 0x0a, 0x14, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x54, 0x72, 0x69, + 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x40, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, + 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x30, + 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, + 0x22, 0x81, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x29, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0x93, 0x01, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x14, 0x0a, 0x12, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa7, 0x01, 0x0a, - 0x18, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, - 0x01, 0x01, 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x0a, 0x73, - 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, 0x60, 0x01, 0x52, 0x09, 0x73, 0x6c, 0x61, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x1b, 0x0a, 0x19, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x55, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x56, 0x0a, 0x14, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x17, 0x0a, 0x15, 0x54, 0x72, - 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x40, 0x0a, - 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, - 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x30, 0x0a, 0x1a, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, - 0x6c, 0x22, 0x81, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x29, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x93, 0x01, 0x0a, 0x10, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x17, 0x55, + 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, 0x60, + 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x0a, 0x73, 0x6c, 0x61, 0x63, + 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, + 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, 0x60, 0x01, 0x52, 0x09, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x54, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, + 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x13, 0x0a, 0x11, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xa6, 0x01, 0x0a, 0x17, - 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, - 0x60, 0x01, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x29, 0x0a, 0x0a, 0x73, 0x6c, 0x61, - 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x42, 0x0a, 0xfa, - 0x42, 0x07, 0x72, 0x05, 0xd0, 0x01, 0x01, 0x60, 0x01, 0x52, 0x09, 0x73, 0x6c, 0x61, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x54, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x87, 0x01, - 0x0a, 0x18, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, - 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x3f, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x42, 0x08, 0xfa, 0x42, 0x05, 0x8a, 0x01, 0x02, 0x10, 0x01, 0x52, 0x07, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2f, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x55, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, - 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0x2a, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x70, 0x0a, 0x1d, 0x47, - 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, - 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, - 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, - 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, - 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xd0, 0x01, - 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, - 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x72, 0x6c, - 0x22, 0x99, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x2f, 0x0a, 0x19, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x55, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, + 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x2a, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x61, 0x6d, 0x6c, 0x22, 0x70, 0x0a, 0x1d, 0x47, 0x65, + 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, + 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x93, 0x02, 0x0a, + 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x72, + 0x74, 0x61, 0x6c, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x72, 0x6c, 0x12, + 0x41, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x22, 0xee, 0x01, 0x0a, 0x11, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x21, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x75, + 0x73, 0x65, 0x64, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0a, 0x75, 0x73, 0x65, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x29, 0x0a, 0x10, + 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x11, 0x62, 0x75, 0x72, 0x6e, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x61, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x0e, 0x62, 0x75, 0x72, 0x6e, 0x52, 0x61, 0x74, 0x65, 0x50, 0x65, 0x72, + 0x44, 0x61, 0x79, 0x22, 0x99, 0x01, 0x0a, 0x20, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, + 0x6f, 0x72, 0x67, 0x12, 0x24, 0x0a, 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, + 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, + 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, + 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, + 0xa5, 0x01, 0x0a, 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, + 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, + 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x23, 0x0a, 0x21, + 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x98, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, @@ -25696,989 +26280,990 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, - 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa5, 0x01, 0x0a, - 0x21, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x73, 0x0a, 0x20, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x23, 0x0a, 0x21, 0x43, 0x61, 0x6e, - 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x98, - 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, - 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x24, 0x0a, - 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, + 0x20, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3f, 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, + 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x65, + 0x74, 0x75, 0x70, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, - 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x20, 0x52, 0x65, - 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, - 0x0a, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0c, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x3f, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, - 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, - 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55, 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x65, - 0x74, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x73, 0x65, 0x74, 0x75, 0x70, - 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x66, 0x6f, - 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x63, 0x65, - 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x30, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x1f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, - 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x1e, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, - 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, 0x0a, 0x05, 0x70, - 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x22, 0x40, 0x0a, - 0x23, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x22, - 0xae, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, + 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x30, 0x0a, 0x1c, 0x47, 0x65, 0x74, + 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, + 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x1f, 0x0a, 0x1d, 0x4c, + 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x52, 0x0a, 0x1e, + 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x30, + 0x0a, 0x05, 0x70, 0x6c, 0x61, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x05, 0x70, 0x6c, 0x61, 0x6e, 0x73, + 0x22, 0x40, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x69, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, - 0x22, 0x6b, 0x0a, 0x10, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x2d, - 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x22, 0x13, 0x0a, - 0x11, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x1b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xfa, 0x42, 0x04, 0x72, 0x02, 0x10, 0x01, 0x52, 0x03, 0x6f, + 0x72, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x24, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x1f, + 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x21, 0x0a, 0x0c, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x74, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x22, 0x6b, 0x0a, 0x10, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x2d, 0x0a, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x05, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x22, 0x13, 0x0a, 0x11, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5d, 0x0a, 0x1b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x72, 0x6f, 0x6c, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6f, 0x72, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x30, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x22, 0x37, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x1b, - 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, - 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x22, - 0x1e, 0x0a, 0x1c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1b, 0x0a, 0x19, 0x44, - 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x24, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, - 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x46, 0x6f, 0x72, - 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x5c, 0x0a, 0x25, 0x4c, 0x69, 0x73, 0x74, - 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x33, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x06, - 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x68, 0x6f, 0x74, - 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, - 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, - 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x79, 0x6c, 0x6f, - 0x6e, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x6c, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x48, 0x61, - 0x73, 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, - 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, - 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, - 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xe9, 0x02, 0x0a, 0x19, 0x4f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x22, + 0x41, 0x0a, 0x1b, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, + 0x6c, 0x65, 0x22, 0x1e, 0x0a, 0x1c, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2a, 0x0a, 0x18, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x1b, + 0x0a, 0x19, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x6e, 0x0a, 0x24, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x34, 0x0a, 0x16, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x5c, 0x0a, 0x25, 0x4c, + 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, + 0x65, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x22, 0xbf, 0x02, 0x0a, 0x04, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x31, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, + 0x61, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, + 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x70, + 0x79, 0x6c, 0x6f, 0x6e, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x68, 0x61, 0x73, 0x68, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x79, 0x6c, 0x6f, 0x6e, 0x45, 0x6d, 0x61, 0x69, + 0x6c, 0x48, 0x61, 0x73, 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, + 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x02, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x68, 0x61, - 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x73, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 0x20, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, + 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xe9, 0x02, 0x0a, + 0x19, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, + 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x68, 0x61, 0x73, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, + 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x68, 0x61, 0x73, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x73, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xad, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, + 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, + 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x11, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xb3, 0x06, 0x0a, 0x0c, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, + 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, + 0x0d, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x44, 0x61, 0x72, 0x6b, 0x55, 0x72, + 0x6c, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x55, + 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, + 0x75, 0x72, 0x6c, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, + 0x6e, 0x61, 0x69, 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x17, + 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, + 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, + 0x65, 0x49, 0x64, 0x12, 0x39, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x2e, + 0x0a, 0x13, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, + 0x0a, 0x13, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, + 0x0a, 0x0d, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x45, 0x6d, + 0x61, 0x69, 0x6c, 0x12, 0x2f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, + 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, + 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x16, 0x62, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, + 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xad, 0x03, 0x0a, 0x14, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x0e, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, + 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, + 0x03, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x2e, 0x0a, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, + 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x62, 0x0a, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x1e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x45, 0x6e, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, + 0x6e, 0x64, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x61, 0x6c, + 0x45, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x1d, + 0x0a, 0x0a, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x73, 0x22, 0xa2, 0x02, + 0x0a, 0x12, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, + 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, + 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, + 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, + 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x1e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8b, 0x09, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, - 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, - 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, - 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 0x20, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2b, + 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, + 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x52, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x67, + 0x69, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x47, 0x69, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x70, + 0x61, 0x74, 0x68, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x62, + 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x17, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x73, 0x73, + 0x65, 0x74, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x73, 0x6c, 0x6f, + 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x53, 0x6c, + 0x6f, 0x74, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, + 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x53, + 0x6c, 0x6f, 0x74, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, + 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x64, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x5f, + 0x74, 0x74, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x64, 0x54, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x41, + 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, + 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xb3, 0x06, 0x0a, 0x0c, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x19, 0x0a, 0x08, 0x6c, 0x6f, 0x67, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6c, 0x6f, 0x67, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6c, 0x6f, - 0x67, 0x6f, 0x5f, 0x64, 0x61, 0x72, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x6f, 0x44, 0x61, 0x72, 0x6b, 0x55, 0x72, 0x6c, 0x12, 0x1f, - 0x0a, 0x0b, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x61, 0x76, 0x69, 0x63, 0x6f, 0x6e, 0x55, 0x72, 0x6c, 0x12, - 0x23, 0x0a, 0x0d, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, 0x6c, 0x5f, 0x75, 0x72, 0x6c, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x68, 0x75, 0x6d, 0x62, 0x6e, 0x61, 0x69, - 0x6c, 0x55, 0x72, 0x6c, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x64, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x35, 0x0a, 0x17, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x72, 0x6f, 0x6c, - 0x65, 0x5f, 0x69, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x49, 0x64, - 0x12, 0x39, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, - 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x62, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x70, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x5f, - 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x65, 0x72, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x62, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x12, 0x2f, 0x0a, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0f, 0x62, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3e, 0x0a, 0x19, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, - 0x6e, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x16, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, - 0x6c, 0x61, 0x6e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x62, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1c, 0x0a, - 0x1a, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x64, - 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc6, 0x03, 0x0a, 0x0c, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2e, 0x0a, 0x04, - 0x70, 0x6c, 0x61, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x52, 0x04, 0x70, 0x6c, 0x61, 0x6e, 0x12, 0x39, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x62, - 0x0a, 0x20, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x61, - 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1c, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x5e, 0x0a, 0x1e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x62, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x5f, 0x65, 0x6e, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x1a, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x43, 0x79, 0x63, 0x6c, 0x65, 0x45, 0x6e, 0x64, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x40, 0x0a, 0x0e, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x5f, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x63, 0x68, 0x63, 0x5f, 0x63, 0x6c, 0x75, + 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x01, 0x48, + 0x00, 0x52, 0x0e, 0x63, 0x68, 0x63, 0x43, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x53, 0x69, 0x7a, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x69, 0x6c, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, + 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x0c, + 0x72, 0x69, 0x6c, 0x6c, 0x4d, 0x69, 0x6e, 0x53, 0x6c, 0x6f, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, 0x1d, + 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x53, 0x6c, 0x6f, + 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0e, 0x6f, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, + 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x1a, 0x3e, 0x0a, 0x10, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x63, 0x68, 0x63, 0x5f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x69, 0x6c, 0x6c, 0x5f, 0x6d, 0x69, 0x6e, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x69, 0x6e, 0x66, 0x72, 0x61, 0x5f, 0x73, + 0x6c, 0x6f, 0x74, 0x73, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, + 0x22, 0xde, 0x03, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, + 0x0a, 0x0d, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, + 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, + 0x65, 0x64, 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x72, + 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, - 0x44, 0x61, 0x74, 0x65, 0x22, 0x54, 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, - 0x61, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x73, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x73, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x75, 0x73, 0x65, 0x72, 0x4f, 0x72, 0x67, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x74, - 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x6f, 0x72, 0x67, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x4f, 0x72, 0x67, 0x73, 0x22, 0xa2, 0x02, 0x0a, 0x12, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x51, 0x75, 0x6f, 0x74, 0x61, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, - 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, - 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, - 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, - 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, - 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, - 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x1e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0xac, 0x07, 0x0a, 0x07, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x15, 0x0a, 0x06, 0x6f, 0x72, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x6f, 0x72, 0x67, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x72, 0x67, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x72, 0x67, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x12, 0x2b, 0x0a, 0x12, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, - 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x12, 0x24, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x5f, 0x67, 0x69, 0x74, 0x5f, - 0x69, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x64, 0x47, 0x69, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, - 0x68, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x70, 0x61, 0x74, 0x68, - 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x62, 0x72, 0x61, 0x6e, - 0x63, 0x68, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x42, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x28, 0x0a, 0x10, 0x61, 0x72, 0x63, 0x68, 0x69, - 0x76, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x65, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x41, 0x73, 0x73, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x64, 0x53, 0x6c, 0x6f, 0x74, 0x73, - 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x5f, 0x64, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x6c, 0x6f, 0x74, - 0x73, 0x18, 0x19, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x65, 0x76, 0x53, 0x6c, 0x6f, 0x74, - 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x64, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x64, 0x55, 0x72, 0x6c, 0x12, 0x28, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x64, 0x5f, 0x74, 0x74, 0x6c, - 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, - 0x70, 0x72, 0x6f, 0x64, 0x54, 0x74, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x49, - 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x14, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x72, 0x6f, - 0x64, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x70, 0x72, 0x6f, 0x64, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x22, 0xd0, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, + 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, + 0x72, 0x67, 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0xfa, 0x02, 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x72, 0x65, 0x61, 0x64, 0x4f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, + 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x28, 0x0a, + 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x72, 0x67, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, + 0x6f, 0x72, 0x67, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x41, 0x64, 0x6d, 0x69, 0x6e, + 0x73, 0x22, 0xba, 0x07, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, + 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x18, 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, + 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, + 0x64, 0x50, 0x72, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, + 0x6f, 0x64, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0e, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1f, 0x0a, 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x12, 0x26, 0x0a, 0x0f, 0x72, + 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, + 0x76, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x44, + 0x65, 0x76, 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x76, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, + 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x12, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x37, + 0x0a, 0x18, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, + 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, + 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6c, + 0x65, 0x72, 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x6f, + 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, 0x80, + 0x01, 0x0a, 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x6f, 0x6c, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, + 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x22, 0x76, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, + 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb1, 0x03, 0x0a, 0x16, 0x4f, 0x72, + 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, + 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, + 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x75, + 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, + 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xaf, 0x03, + 0x0a, 0x11, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x75, + 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, + 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1b, + 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, + 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, + 0x86, 0x02, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, + 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, + 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, + 0x72, 0x6c, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x66, 0x0a, 0x12, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x42, 0x79, + 0x22, 0xef, 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, + 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, + 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x73, 0x22, 0x3f, 0x0a, 0x11, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, + 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, + 0x6f, 0x6c, 0x65, 0x22, 0xbc, 0x03, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x72, 0x6c, + 0x5f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, + 0x72, 0x6c, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, + 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, + 0x64, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, + 0x61, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x4f, 0x6e, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, - 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x4a, 0x04, 0x08, 0x0b, 0x10, 0x0c, 0x22, 0xde, - 0x03, 0x0a, 0x0a, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0d, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x76, 0x69, 0x72, 0x6f, 0x6e, 0x6d, 0x65, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x62, 0x72, 0x61, 0x6e, 0x63, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x64, - 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x65, 0x64, - 0x69, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x75, - 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x72, 0x75, 0x6e, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x49, - 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, - 0xd0, 0x01, 0x0a, 0x13, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x65, 0x70, 0x6c, 0x6f, - 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x61, 0x72, 0x67, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x04, 0x61, 0x72, 0x67, - 0x73, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x22, 0xfa, 0x02, 0x0a, 0x17, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, - 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x67, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, - 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, - 0x61, 0x64, 0x4f, 0x72, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, - 0x6f, 0x72, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x4f, 0x72, 0x67, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x61, - 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x72, - 0x65, 0x61, 0x64, 0x5f, 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x72, 0x67, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x2c, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, - 0x6f, 0x72, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x6f, 0x72, - 0x67, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4f, 0x72, 0x67, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x22, - 0xba, 0x07, 0x0a, 0x12, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, 0x65, 0x72, 0x6d, 0x69, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, - 0x15, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, - 0x72, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x50, - 0x72, 0x6f, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x64, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x72, - 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x64, 0x12, 0x19, - 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x64, 0x65, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x07, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x12, 0x26, 0x0a, 0x0f, 0x72, 0x65, 0x61, - 0x64, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x44, 0x65, 0x76, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x44, 0x65, 0x76, - 0x12, 0x3c, 0x0a, 0x1a, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x76, 0x69, 0x73, - 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x40, - 0x0a, 0x1c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x73, 0x69, - 0x6f, 0x6e, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x14, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x76, - 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x61, 0x64, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, - 0x72, 0x65, 0x61, 0x64, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x14, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x32, 0x0a, 0x15, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x18, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, - 0x6d, 0x61, 0x67, 0x69, 0x63, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x4d, - 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x25, - 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x61, 0x6c, 0x65, 0x72, - 0x74, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x5f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x73, 0x12, 0x29, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x5f, 0x62, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x22, 0x80, 0x01, 0x0a, - 0x10, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x72, 0x67, 0x61, 0x6e, - 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, - 0x76, 0x0a, 0x0b, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x43, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x70, 0x65, 0x72, 0x6d, - 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xb1, 0x03, 0x0a, 0x16, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, - 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x29, 0x0a, 0x10, 0x75, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x75, 0x73, 0x65, - 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x37, 0x0a, 0x0a, - 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, - 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xaf, 0x03, 0x0a, 0x11, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x70, - 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x1b, 0x0a, 0x09, - 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, - 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x64, 0x4f, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, - 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0x86, 0x02, - 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x75, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, - 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x75, 0x73, - 0x65, 0x72, 0x5f, 0x70, 0x68, 0x6f, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x75, 0x73, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x55, 0x72, 0x6c, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x4f, 0x6e, 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x66, 0x0a, 0x12, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x42, 0x79, 0x22, 0xef, - 0x01, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x72, 0x67, 0x5f, 0x72, 0x6f, 0x6c, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x72, 0x67, 0x52, - 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x5f, 0x62, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x42, 0x79, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, - 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, - 0x22, 0x3f, 0x0a, 0x11, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, - 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x22, 0xbc, 0x03, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x21, - 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x0a, 0x75, 0x72, 0x6c, 0x5f, 0x73, - 0x65, 0x61, 0x72, 0x63, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x72, 0x6c, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4b, 0x69, 0x6e, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, - 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, 0x75, - 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, + 0x6e, 0x22, 0xe9, 0x03, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x18, + 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, + 0x61, 0x75, 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x12, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, + 0x67, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, + 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, - 0x22, 0xac, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x22, - 0xe9, 0x03, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, - 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x75, - 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x37, 0x0a, 0x18, 0x61, 0x75, - 0x74, 0x68, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, - 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x15, 0x61, 0x75, - 0x74, 0x68, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x12, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x69, 0x6e, 0x67, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x37, 0x0a, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, - 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x73, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xdc, 0x06, 0x0a, 0x0e, - 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x0e, - 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, - 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x12, 0x33, 0x0a, 0x07, 0x75, - 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x73, 0x65, 0x64, 0x4f, 0x6e, - 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x31, 0x0a, - 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, 0x65, 0x72, - 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, 0x69, 0x6c, - 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, - 0x72, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, - 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x27, 0x0a, - 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x14, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x12, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, - 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x1a, 0x62, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x31, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, - 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0x8a, 0x01, 0x0a, 0x0b, 0x56, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xbe, 0x06, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x72, 0x6f, 0x6e, 0x12, - 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, - 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x21, - 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x2a, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x5f, - 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, - 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x21, 0x0a, - 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x12, 0x42, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, - 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, 0x72, 0x74, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x6f, - 0x72, 0x6d, 0x61, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, - 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x14, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x63, 0x6c, 0x75, - 0x64, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, - 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, - 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, - 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x0c, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, - 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, - 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, - 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, 0x12, 0x22, - 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, - 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x6f, - 0x64, 0x65, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x22, 0xbc, 0x05, 0x0a, 0x0c, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, - 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, - 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x72, 0x6f, 0x6e, 0x12, - 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, - 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, - 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, - 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, - 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1d, - 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, - 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, - 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, 0x34, 0x0a, - 0x16, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x14, 0x72, - 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x6f, - 0x6e, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, - 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, - 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, - 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, - 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, - 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x22, 0x0a, - 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x61, 0x74, - 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, 0x4f, 0x70, - 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x0b, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x70, - 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, - 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, - 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, - 0x11, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, 0x64, 0x61, - 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x50, - 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x61, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x66, 0x61, - 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, 0x6f, 0x74, - 0x61, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0x96, 0x02, 0x0a, 0x06, 0x51, - 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, 0x6f, 0x74, - 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x70, 0x65, - 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, - 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, - 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x70, - 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x1e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x73, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xdc, 0x06, + 0x0a, 0x0e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, + 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, - 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x03, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, - 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, 0x65, 0x72, - 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x6d, 0x70, 0x52, 0x09, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x73, 0x4f, 0x6e, 0x12, 0x33, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x06, 0x75, 0x73, 0x65, 0x64, + 0x4f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x31, 0x0a, 0x15, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, + 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x11, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, + 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x67, 0x0a, 0x14, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, + 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x12, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, + 0x6d, 0x65, 0x1a, 0x62, 0x0a, 0x17, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, + 0x77, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x31, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x45, 0x78, 0x70, 0x72, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x0a, 0x10, 0x0b, 0x22, 0x8a, 0x01, 0x0a, + 0x0b, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, + 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x12, 0x39, + 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0xbe, 0x06, 0x0a, 0x0d, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x72, 0x6f, + 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x0a, + 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x16, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x21, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x67, + 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, + 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, 0x72, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, + 0x21, 0x0a, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x12, 0x42, 0x0a, 0x0d, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x72, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x70, 0x6f, + 0x72, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, + 0x14, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, + 0x61, 0x69, 0x6c, 0x5f, 0x72, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, + 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, + 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, + 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, + 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, + 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, + 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, + 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, + 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x65, 0x78, 0x70, 0x6c, 0x6f, 0x72, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x76, + 0x61, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x76, 0x61, 0x73, + 0x12, 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, + 0x4d, 0x6f, 0x64, 0x65, 0x4a, 0x04, 0x08, 0x13, 0x10, 0x14, 0x22, 0xbc, 0x05, 0x0a, 0x0c, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x64, + 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x63, 0x72, 0x6f, 0x6e, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x43, 0x72, 0x6f, + 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x7a, 0x6f, 0x6e, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x5a, 0x6f, 0x6e, 0x65, 0x12, 0x2b, 0x0a, + 0x11, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, + 0x61, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x13, 0x72, 0x65, 0x73, 0x6f, 0x6c, 0x76, + 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x12, 0x72, 0x65, + 0x73, 0x6f, 0x6c, 0x76, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, + 0x12, 0x1d, 0x0a, 0x0a, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x71, 0x75, 0x65, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x5f, 0x61, 0x72, 0x67, 0x73, 0x5f, 0x6a, 0x73, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x71, 0x75, 0x65, 0x72, 0x79, 0x41, + 0x72, 0x67, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x5f, 0x76, 0x69, 0x65, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x56, 0x69, 0x65, 0x77, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x12, + 0x34, 0x0a, 0x16, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x61, 0x66, 0x74, 0x65, + 0x72, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x14, 0x72, 0x65, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x5f, 0x72, + 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0f, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x63, 0x69, 0x70, 0x69, 0x65, 0x6e, 0x74, 0x73, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x6e, + 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, + 0x43, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x6c, 0x61, 0x63, + 0x6b, 0x5f, 0x77, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x0d, 0x73, 0x6c, 0x61, 0x63, 0x6b, 0x57, 0x65, 0x62, 0x68, 0x6f, 0x6f, 0x6b, 0x73, 0x12, + 0x22, 0x0a, 0x0d, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x65, 0x62, 0x4f, 0x70, 0x65, 0x6e, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0e, 0x77, 0x65, 0x62, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x77, 0x65, 0x62, + 0x4f, 0x70, 0x65, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0xc0, 0x02, 0x0a, 0x0b, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3b, 0x0a, + 0x09, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x2a, 0x0a, 0x11, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x5f, + 0x64, 0x61, 0x79, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x44, 0x61, 0x79, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x64, + 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x52, 0x06, 0x71, 0x75, + 0x6f, 0x74, 0x61, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x22, 0x96, 0x02, 0x0a, + 0x06, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x6c, 0x6f, 0x74, + 0x73, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x5f, + 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x73, 0x6c, 0x6f, 0x74, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, + 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x75, 0x74, 0x73, + 0x74, 0x61, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6f, 0x75, 0x74, 0x73, 0x74, 0x61, 0x6e, 0x64, 0x69, + 0x6e, 0x67, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x22, 0x73, 0x74, 0x6f, + 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x1e, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x65, 0x72, 0x44, 0x65, 0x70, 0x6c, 0x6f, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x02, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2b, 0x0a, + 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x44, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x64, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, - 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, - 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, 0x73, 0x6f, - 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, 0x65, 0x73, - 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x12, 0x39, - 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x09, - 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xc4, 0x02, 0x0a, 0x0c, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x72, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x33, 0x0a, 0x04, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x36, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x65, 0x76, - 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, - 0x22, 0xb6, 0x05, 0x0a, 0x14, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x08, 0x6f, 0x6e, 0x5f, - 0x74, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x72, 0x69, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, + 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x22, 0x8e, 0x03, 0x0a, 0x0f, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x19, + 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x6f, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x12, 0x39, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x4f, + 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x5f, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x72, + 0x65, 0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, + 0x12, 0x39, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x18, 0x09, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x22, 0xc4, 0x02, 0x0a, 0x0c, + 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6f, 0x72, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6f, 0x72, 0x67, 0x12, 0x33, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x52, 0x05, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x3f, 0x0a, 0x08, 0x6d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, + 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x4f, 0x6e, 0x22, 0xc4, 0x07, 0x0a, 0x14, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x08, 0x6f, + 0x6e, 0x5f, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x6e, 0x54, + 0x72, 0x69, 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, + 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x61, + 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x11, 0x6e, 0x6f, 0x5f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x66, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x62, + 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, + 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x42, 0x69, 0x6c, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6e, + 0x6f, 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x59, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x61, + 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x16, 0x73, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x07, 0x6f, 0x6e, 0x54, 0x72, 0x69, - 0x61, 0x6c, 0x12, 0x50, 0x0a, 0x0b, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x64, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x54, 0x72, 0x69, 0x61, - 0x6c, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0a, 0x74, 0x72, 0x69, 0x61, 0x6c, 0x45, - 0x6e, 0x64, 0x65, 0x64, 0x12, 0x60, 0x0a, 0x11, 0x6e, 0x6f, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x6f, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x66, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x62, 0x69, 0x6c, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x15, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x5f, + 0x0a, 0x10, 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x76, + 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, + 0x6e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x12, + 0x4d, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x6f, 0x42, 0x69, 0x6c, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x11, 0x6e, 0x6f, 0x42, - 0x69, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x59, - 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x50, 0x61, 0x79, 0x6d, 0x65, - 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6d, - 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x12, 0x71, 0x0a, 0x16, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, - 0x6c, 0x65, 0x64, 0x48, 0x00, 0x52, 0x15, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x6c, 0x65, 0x64, 0x12, 0x5f, 0x0a, 0x10, - 0x6e, 0x65, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4c, 0x6f, + 0x77, 0x48, 0x00, 0x52, 0x09, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x77, 0x12, 0x5c, + 0x0a, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x63, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, + 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, + 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x5f, 0x0a, 0x10, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, - 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x76, 0x65, 0x72, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x6e, 0x65, - 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x64, 0x42, 0x0a, 0x0a, + 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x65, 0x64, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x65, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa3, 0x01, 0x0a, 0x1b, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x6e, 0x54, 0x72, 0x69, 0x61, 0x6c, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, @@ -26746,65 +27331,111 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x25, 0x0a, 0x23, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4e, 0x65, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x64, 0x2a, 0x6e, 0x0a, 0x10, 0x47, 0x69, 0x74, 0x68, 0x75, 0x62, 0x50, - 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x47, 0x49, 0x54, - 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x55, - 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, - 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, - 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x49, 0x54, 0x48, - 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x57, 0x52, - 0x49, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb0, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x6c, 0x6f, 0x79, - 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x45, - 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, + 0x72, 0x69, 0x62, 0x65, 0x64, 0x22, 0xae, 0x01, 0x0a, 0x1d, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x4c, 0x6f, 0x77, 0x12, 0x29, 0x0a, 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, + 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0xb3, 0x01, 0x0a, 0x22, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x43, 0x72, 0x69, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x29, 0x0a, + 0x10, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x52, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x22, 0xc8, 0x01, 0x0a, + 0x23, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x45, 0x78, 0x68, 0x61, 0x75, + 0x73, 0x74, 0x65, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x64, 0x69, + 0x74, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x63, 0x72, 0x65, 0x64, + 0x69, 0x74, 0x45, 0x78, 0x70, 0x69, 0x72, 0x79, 0x12, 0x3d, 0x0a, 0x0c, 0x65, 0x78, 0x68, 0x61, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x65, 0x78, 0x68, 0x61, + 0x75, 0x73, 0x74, 0x65, 0x64, 0x4f, 0x6e, 0x2a, 0x6e, 0x0a, 0x10, 0x47, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x50, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x1d, 0x47, + 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1a, + 0x0a, 0x16, 0x47, 0x49, 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, + 0x49, 0x4f, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x44, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x47, 0x49, + 0x54, 0x48, 0x55, 0x42, 0x5f, 0x50, 0x45, 0x52, 0x4d, 0x49, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x5f, + 0x57, 0x52, 0x49, 0x54, 0x45, 0x10, 0x02, 0x2a, 0xb0, 0x02, 0x0a, 0x10, 0x44, 0x65, 0x70, 0x6c, + 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x21, 0x0a, 0x1d, + 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, + 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, + 0x41, 0x54, 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, + 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, + 0x55, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x44, + 0x53, 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x44, + 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x44, + 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x53, 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, - 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x45, 0x44, 0x10, 0x04, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, - 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, - 0x53, 0x54, 0x4f, 0x50, 0x50, 0x45, 0x44, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, - 0x50, 0x44, 0x41, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, - 0x54, 0x4f, 0x50, 0x50, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x45, 0x50, - 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, - 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x2a, 0xae, 0x01, 0x0a, 0x0f, 0x42, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, 0x0a, 0x1d, - 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, - 0x1b, 0x0a, 0x17, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, - 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, - 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x49, 0x4c, 0x4c, - 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4d, 0x41, - 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x49, 0x4c, 0x4c, 0x49, - 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, 0x4e, 0x54, - 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x04, 0x2a, 0xd0, 0x02, 0x0a, 0x10, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, - 0x0a, 0x1e, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, - 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, - 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, - 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x41, - 0x4c, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, - 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, - 0x45, 0x4e, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x49, 0x4c, 0x4c, 0x49, - 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, - 0x03, 0x12, 0x2a, 0x0a, 0x26, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, - 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x41, - 0x42, 0x4c, 0x45, 0x5f, 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x25, 0x0a, - 0x21, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, - 0x59, 0x50, 0x45, 0x5f, 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, - 0x45, 0x44, 0x10, 0x05, 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, - 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, - 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, - 0x44, 0x10, 0x06, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, - 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, - 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x44, 0x10, 0x07, 0x2a, 0x78, 0x0a, 0x11, + 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x08, 0x12, 0x1d, 0x0a, 0x19, 0x44, + 0x45, 0x50, 0x4c, 0x4f, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, + 0x5f, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x09, 0x2a, 0xe8, 0x01, 0x0a, 0x0f, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, + 0x0a, 0x1d, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, + 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1a, + 0x0a, 0x16, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x54, 0x45, 0x41, 0x4d, 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x49, + 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x44, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x42, 0x49, 0x4c, + 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x45, + 0x4e, 0x54, 0x45, 0x52, 0x50, 0x52, 0x49, 0x53, 0x45, 0x10, 0x04, 0x12, 0x1a, 0x0a, 0x16, 0x42, + 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x46, 0x52, 0x45, 0x45, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x42, 0x49, 0x4c, 0x4c, 0x49, + 0x4e, 0x47, 0x5f, 0x50, 0x4c, 0x41, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x47, 0x52, 0x4f, + 0x57, 0x54, 0x48, 0x10, 0x06, 0x2a, 0xc4, 0x03, 0x0a, 0x10, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x42, 0x49, + 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, + 0x0a, 0x1b, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, + 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4f, 0x4e, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x12, + 0x22, 0x0a, 0x1e, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x54, 0x52, 0x49, 0x41, 0x4c, 0x5f, 0x45, 0x4e, 0x44, 0x45, + 0x44, 0x10, 0x02, 0x12, 0x28, 0x0a, 0x24, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, + 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x50, 0x41, 0x59, + 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x10, 0x03, 0x12, 0x2a, 0x0a, + 0x26, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, + 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, 0x5f, 0x42, 0x49, 0x4c, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x5f, + 0x41, 0x44, 0x44, 0x52, 0x45, 0x53, 0x53, 0x10, 0x04, 0x12, 0x25, 0x0a, 0x21, 0x42, 0x49, 0x4c, + 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x50, 0x41, 0x59, 0x4d, 0x45, 0x4e, 0x54, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x05, + 0x12, 0x2d, 0x0a, 0x29, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, + 0x49, 0x4f, 0x4e, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, 0x10, 0x06, 0x12, + 0x27, 0x0a, 0x23, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x45, 0x56, 0x45, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x53, + 0x43, 0x52, 0x49, 0x42, 0x45, 0x44, 0x10, 0x07, 0x12, 0x21, 0x0a, 0x1d, 0x42, 0x49, 0x4c, 0x4c, + 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, + 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x4c, 0x4f, 0x57, 0x10, 0x08, 0x12, 0x26, 0x0a, 0x22, 0x42, + 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, 0x5f, 0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, + 0x4c, 0x10, 0x09, 0x12, 0x27, 0x0a, 0x23, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, + 0x53, 0x53, 0x55, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x43, 0x52, 0x45, 0x44, 0x49, 0x54, + 0x5f, 0x45, 0x58, 0x48, 0x41, 0x55, 0x53, 0x54, 0x45, 0x44, 0x10, 0x0a, 0x2a, 0x78, 0x0a, 0x11, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x23, 0x0a, 0x1f, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, @@ -26812,7 +27443,7 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x57, 0x41, 0x52, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x53, 0x53, 0x55, 0x45, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x45, - 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xcb, 0xca, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x02, 0x32, 0xde, 0xcb, 0x01, 0x0a, 0x0c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x51, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, @@ -27815,657 +28446,666 @@ var file_rill_admin_v1_api_proto_rawDesc = []byte{ 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x74, 0x72, 0x69, 0x61, 0x6c, - 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0xce, 0x01, 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x38, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x2f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x12, 0x90, 0x01, 0x0a, 0x0e, 0x53, 0x75, 0x64, 0x6f, + 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x41, + 0x64, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x41, 0x64, 0x64, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, + 0x01, 0x2a, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, + 0x72, 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x73, 0x2f, 0x61, 0x64, 0x64, 0x12, 0xce, 0x01, 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x32, 0x28, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x75, 0x73, 0x74, 0x6f, - 0x6d, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0xa1, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, - 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x6e, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, + 0x2a, 0x32, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x2d, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0xa1, 0x01, 0x0a, 0x15, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x32, 0x22, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, - 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xbb, 0x01, 0x0a, - 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, - 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x32, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, - 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, - 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, - 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, - 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xda, 0x01, 0x0a, 0x22, 0x53, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x41, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x3a, 0x01, 0x2a, 0x32, 0x22, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0xbb, 0x01, 0x0a, 0x1c, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, + 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, 0x6e, 0x74, 0x69, 0x6d, + 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x75, + 0x6e, 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, + 0x73, 0x65, 0x72, 0x2f, 0x64, 0x65, 0x70, 0x6c, 0x6f, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0xda, 0x01, + 0x0a, 0x22, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, + 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, + 0x73, 0x73, 0x75, 0x65, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, + 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, - 0x65, 0x12, 0x38, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, - 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x2a, 0x37, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6f, 0x72, - 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, - 0x2f, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 0xa4, 0x01, 0x0a, 0x18, 0x53, 0x75, 0x64, 0x6f, - 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x70, 0x61, 0x69, 0x72, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, - 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x3a, 0x01, 0x2a, - 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, 0x2f, - 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0xc7, - 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, - 0x6e, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, - 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, - 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0xcd, 0x01, 0x0a, 0x1e, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, - 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, - 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x38, - 0x2a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x2f, - 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0xc1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, - 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x39, 0x2a, 0x37, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, 0x65, 0x72, + 0x2f, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x69, 0x73, 0x73, + 0x75, 0x65, 0x73, 0x2f, 0x7b, 0x74, 0x79, 0x70, 0x65, 0x7d, 0x12, 0xa4, 0x01, 0x0a, 0x18, 0x53, + 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x64, 0x6f, 0x54, 0x72, 0x69, 0x67, + 0x67, 0x65, 0x72, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, + 0x3a, 0x01, 0x2a, 0x22, 0x1c, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x75, 0x70, 0x65, 0x72, 0x75, 0x73, + 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x72, 0x65, 0x70, 0x61, 0x69, + 0x72, 0x12, 0xc7, 0x01, 0x0a, 0x1e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, + 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, + 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0xcd, 0x01, 0x0a, 0x1e, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, + 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x34, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, + 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, + 0x61, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x38, 0x2a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, + 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, + 0x65, 0x64, 0x2f, 0x7b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x7d, 0x12, 0xc1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x2d, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, - 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, 0x78, 0x0a, 0x0c, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x22, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, 0x12, 0x17, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, - 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x7e, 0x0a, 0x0d, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x3a, - 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, - 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x79, 0x0a, 0x0a, 0x47, - 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, 0x2a, 0x32, 0x1e, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xc3, - 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x12, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, 0x01, 0x2a, 0x1a, - 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xbd, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, - 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x2a, - 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, - 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xc7, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x33, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, + 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x57, 0x68, + 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, + 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x77, 0x68, 0x69, 0x74, 0x65, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12, + 0x78, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, + 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x19, + 0x12, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x19, 0x4c, 0x69, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x1a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, - 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xbc, - 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x30, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x82, 0x01, - 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x7e, + 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x12, 0x79, + 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x20, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x12, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x85, 0x01, 0x0a, 0x0d, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x3a, 0x01, + 0x2a, 0x32, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0xc3, 0x01, 0x0a, 0x20, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x3a, + 0x01, 0x2a, 0x1a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, + 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xbd, 0x01, 0x0a, 0x1f, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x35, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x25, 0x2a, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x2b, 0x2e, 0x72, + 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0xc7, 0x01, 0x0a, 0x1b, 0x53, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x3a, 0x01, 0x2a, 0x1a, 0x36, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x72, 0x6f, 0x6c, + 0x65, 0x12, 0xbc, 0x01, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x2a, 0x31, 0x2f, + 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, + 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa9, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, + 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, - 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0xac, - 0x01, 0x0a, 0x15, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2f, 0x12, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x67, 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x12, 0xac, 0x01, 0x0a, 0x15, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2b, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, + 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, 0x2a, 0x22, 0x2d, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x9d, 0x01, - 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x1e, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa7, 0x01, - 0x0a, 0x13, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, - 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, - 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, - 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0xa4, 0x01, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, - 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, - 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, - 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x30, 0x12, 0x2e, - 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, - 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0x9d, - 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, - 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x2d, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x94, - 0x01, 0x0a, 0x14, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, - 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x3a, 0x01, + 0x2a, 0x22, 0x2d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, + 0x12, 0x9d, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, + 0x6b, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, + 0x2a, 0x1e, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x73, 0x2f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, + 0x12, 0xa7, 0x01, 0x0a, 0x13, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, + 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, - 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, - 0x67, 0x69, 0x63, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, - 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, - 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x1a, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, - 0x2f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x77, 0x0a, 0x0d, - 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x23, 0x2e, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x73, 0x73, 0x75, 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x3a, 0x01, 0x2a, 0x22, 0x2e, 0x2f, 0x76, 0x31, 0x2f, + 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x12, 0xa4, 0x01, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x73, 0x12, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, - 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x7f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x73, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x36, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x30, 0x12, 0x2e, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, + 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, + 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x6d, 0x61, 0x67, 0x69, + 0x63, 0x12, 0x9d, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2e, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, + 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x20, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x12, 0x18, 0x2f, 0x76, 0x31, 0x2f, 0x6d, 0x61, 0x67, + 0x69, 0x63, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x12, 0x94, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, 0x69, + 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, + 0x65, 0x4d, 0x61, 0x67, 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x76, 0x6f, 0x6b, 0x65, 0x4d, 0x61, 0x67, + 0x69, 0x63, 0x41, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x2a, 0x1b, 0x2f, 0x76, 0x31, + 0x2f, 0x6d, 0x61, 0x67, 0x69, 0x63, 0x2d, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x2f, 0x7b, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x94, 0x01, 0x0a, 0x15, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, + 0x65, 0x73, 0x12, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, + 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x65, 0x66, 0x65, 0x72, + 0x65, 0x6e, 0x63, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x20, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1a, 0x3a, 0x01, 0x2a, 0x1a, 0x15, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x2f, 0x70, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, + 0x77, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, + 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, + 0x72, 0x6b, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x7f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, - 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, - 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x7d, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, - 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, - 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, - 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x7d, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, - 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, - 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, 0x01, 0x2a, 0x1a, - 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, - 0x61, 0x72, 0x6b, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, - 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, - 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, 0x21, 0x2f, 0x76, - 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, - 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, - 0x81, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x12, - 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, + 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0x7d, 0x0a, 0x0e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, + 0x3a, 0x01, 0x2a, 0x22, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, + 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x7d, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x18, 0x3a, + 0x01, 0x2a, 0x1a, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, + 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x73, 0x12, 0x88, 0x01, 0x0a, 0x0e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x2a, + 0x21, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x73, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, + 0x61, 0x72, 0x6b, 0x73, 0x2f, 0x7b, 0x62, 0x6f, 0x6f, 0x6b, 0x6d, 0x61, 0x72, 0x6b, 0x5f, 0x69, + 0x64, 0x7d, 0x12, 0x81, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, + 0x74, 0x61, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x25, 0x12, 0x23, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x6d, - 0x65, 0x74, 0x61, 0x12, 0x90, 0x01, 0x0a, 0x0f, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, - 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x12, 0x26, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x12, 0x92, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x56, 0x69, - 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, - 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x2b, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, - 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x9b, 0x01, 0x0a, 0x11, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, - 0x65, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, - 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, 0x2b, 0x2f, 0x76, - 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, 0x76, 0x69, 0x72, - 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0d, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x23, 0x2e, 0x72, 0x69, - 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x3a, 0x01, - 0x2a, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x25, 0x12, 0x23, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, 0x2a, 0x22, 0x25, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, - 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, - 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x8d, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x0a, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x35, 0x3a, 0x01, 0x2a, 0x1a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x11, 0x55, 0x6e, 0x73, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x27, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x6e, 0x73, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0c, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, + 0x6f, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x90, 0x01, 0x0a, 0x0f, 0x50, 0x75, 0x6c, 0x6c, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x25, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, + 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x65, 0x70, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x28, 0x12, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, + 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x12, 0x92, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x12, 0x24, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2d, 0x12, 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, + 0x6f, 0x2f, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x9b, + 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, + 0x46, 0x69, 0x6c, 0x65, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, + 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30, 0x2f, 0x76, 0x31, 0x2f, - 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0x9f, 0x01, 0x0a, - 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x23, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, - 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x6c, 0x65, 0x74, 0x65, 0x56, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x2a, + 0x2b, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x2f, + 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x2f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x8d, 0x01, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x23, + 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3d, 0x3a, 0x01, 0x2a, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, - 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x12, 0xa6, - 0x01, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, - 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, - 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, - 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, - 0x2f, 0x2d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, - 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, 0x31, 0x2f, 0x6f, - 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, - 0x72, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x09, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, - 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x1a, - 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, - 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, - 0x12, 0xab, 0x01, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, - 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, - 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x3a, 0x01, - 0x2a, 0x22, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, - 0x65, 0x7d, 0x2f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x8d, - 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x21, - 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x2a, 0x2f, 0x2f, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, + 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x2b, 0x3a, 0x01, 0x2a, 0x22, 0x26, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, + 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x89, 0x01, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x22, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x3a, 0x01, + 0x2a, 0x22, 0x25, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, + 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x7d, 0x2f, 0x61, 0x6c, 0x65, + 0x72, 0x74, 0x73, 0x2f, 0x6d, 0x65, 0x74, 0x61, 0x12, 0x8d, 0x01, 0x0a, 0x0c, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x34, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2e, 0x3a, 0x01, 0x2a, 0x22, 0x29, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, - 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xa2, - 0x01, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, - 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, + 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x12, 0x8e, 0x01, 0x0a, 0x0a, 0x45, 0x64, 0x69, + 0x74, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x1a, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, 0xaf, 0x01, 0x0a, 0x11, 0x55, 0x6e, + 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, + 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x3a, 0x01, 0x2a, 0x22, 0x3c, 0x2f, + 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, + 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x91, 0x01, 0x0a, 0x0c, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x22, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x2a, 0x30, 0x2f, + 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, + 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x12, + 0x9f, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x12, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x3d, 0x3a, 0x01, 0x2a, 0x22, 0x38, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, + 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, + 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, + 0x72, 0x12, 0xa6, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x76, + 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, + 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, + 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x8a, 0x01, 0x0a, 0x09, 0x45, 0x64, 0x69, 0x74, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x12, 0x1f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x64, 0x69, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x3a, - 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, + 0x01, 0x2a, 0x1a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x2d, 0x2f, 0x79, - 0x61, 0x6d, 0x6c, 0x12, 0x95, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, - 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, - 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, - 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, + 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, + 0x6d, 0x65, 0x7d, 0x12, 0xab, 0x01, 0x0a, 0x10, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x12, 0x26, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x55, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x40, 0x3a, 0x01, 0x2a, 0x22, 0x3b, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, + 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x75, 0x6e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x12, 0x8d, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, + 0x74, 0x12, 0x21, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x2a, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, + 0x7d, 0x12, 0xa2, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, + 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x34, 0x3a, 0x01, 0x2a, 0x22, 0x2f, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x2f, - 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0xa3, 0x01, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, - 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, - 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x32, 0x24, 0x2f, - 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, + 0x2d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0x95, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x12, 0x22, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x65, 0x72, 0x74, + 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x65, 0x72, 0x74, 0x59, 0x41, 0x4d, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x36, 0x12, 0x34, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, + 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x61, 0x6c, 0x65, 0x72, + 0x74, 0x73, 0x2f, 0x7b, 0x6e, 0x61, 0x6d, 0x65, 0x7d, 0x2f, 0x79, 0x61, 0x6d, 0x6c, 0x12, 0xa3, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, + 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x24, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xaf, 0x01, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, + 0x32, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, + 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x19, 0x43, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x2a, + 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, + 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x2a, 0x24, 0x2f, 0x76, - 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, - 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x12, 0xb2, 0x01, 0x0a, 0x18, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, - 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x50, - 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, - 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, - 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, - 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, - 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, - 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2d, 0x75, 0x72, 0x6c, 0x12, 0x90, 0x01, - 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, - 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, 0x12, 0x11, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6c, 0x61, 0x6e, 0x73, - 0x12, 0xbb, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, + 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, + 0x76, 0x31, 0x2e, 0x52, 0x65, 0x6e, 0x65, 0x77, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x3a, 0x01, 0x2a, 0x22, 0x2a, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, 0x6c, + 0x55, 0x52, 0x4c, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, + 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x50, 0x6f, 0x72, 0x74, 0x61, + 0x6c, 0x55, 0x52, 0x4c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x2a, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, + 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x61, 0x79, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2f, 0x70, 0x6f, 0x72, 0x74, 0x61, 0x6c, 0x2d, 0x75, 0x72, 0x6c, + 0x12, 0x90, 0x01, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, + 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, 0x12, 0x2c, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x50, 0x75, + 0x62, 0x6c, 0x69, 0x63, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x61, 0x6e, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x19, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x13, + 0x12, 0x11, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x70, 0x6c, + 0x61, 0x6e, 0x73, 0x12, 0xbb, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x61, 0x6c, 0x73, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, - 0x73, 0x12, 0x32, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, - 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, - 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2d, 0x70, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x2d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, 0x73, 0x12, 0xac, - 0x01, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, - 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, - 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, 0x76, 0x31, - 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0xa1, 0x01, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, - 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, - 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, - 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, - 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x43, 0x72, 0x65, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x61, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x69, + 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2d, 0x70, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x63, 0x72, 0x65, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x61, 0x6c, + 0x73, 0x12, 0xac, 0x01, 0x0a, 0x14, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, 0x72, 0x69, 0x6c, - 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, - 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, 0x2a, 0x22, 0x27, + 0x6e, 0x73, 0x65, 0x22, 0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, + 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x70, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x7d, 0x2f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0xa1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x72, + 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x21, 0x12, 0x1f, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, + 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xa3, 0x01, 0x0a, 0x14, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, + 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x2a, 0x2e, + 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, + 0x70, 0x72, 0x6f, 0x76, 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, + 0x65, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x3a, 0x01, + 0x2a, 0x22, 0x27, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, + 0x64, 0x7d, 0x2f, 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x11, 0x44, + 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x27, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, + 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, + 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, - 0x61, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x12, 0x97, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6e, 0x79, - 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x27, 0x2e, - 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6e, 0x79, 0x50, 0x72, 0x6f, 0x6a, 0x65, - 0x63, 0x74, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x3a, 0x01, 0x2a, 0x22, 0x24, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x2d, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2d, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x64, 0x65, 0x6e, - 0x79, 0x12, 0xb1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, - 0x75, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, - 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, + 0x64, 0x65, 0x6e, 0x79, 0x12, 0xb1, 0x01, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, - 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x72, 0x67, 0x73, - 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x2f, 0x69, - 0x73, 0x73, 0x75, 0x65, 0x73, 0x42, 0xf7, 0x03, 0x92, 0x41, 0xc6, 0x02, 0x12, 0x8e, 0x02, 0x0a, - 0x0e, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x41, 0x50, 0x49, 0x12, - 0xfb, 0x01, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x41, 0x50, 0x49, - 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, - 0x6d, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x20, 0x6f, 0x66, 0x20, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2c, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2c, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, 0x20, 0x49, 0x74, - 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x2c, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, 0x6e, 0x64, 0x20, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x73, 0x65, 0x20, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x73, 0x20, 0x77, 0x65, 0x6c, - 0x6c, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x20, 0x61, 0x75, - 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, 0x61, 0x6e, 0x64, - 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x72, 0x33, 0x0a, - 0x16, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x50, 0x49, 0x20, 0x44, 0x6f, 0x63, 0x75, 0x6d, 0x65, - 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, - 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x63, - 0x6f, 0x6d, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, - 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x72, 0x69, - 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, - 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x52, 0x41, - 0x58, 0xaa, 0x02, 0x0d, 0x52, 0x69, 0x6c, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x0d, 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x19, 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0f, - 0x52, 0x69, 0x6c, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x12, 0x33, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4f, 0x72, 0x67, 0x61, 0x6e, + 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x49, 0x73, + 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x72, 0x69, + 0x6c, 0x6c, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x4f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x69, 0x6c, 0x6c, + 0x69, 0x6e, 0x67, 0x49, 0x73, 0x73, 0x75, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x76, 0x31, 0x2f, 0x6f, + 0x72, 0x67, 0x73, 0x2f, 0x7b, 0x6f, 0x72, 0x67, 0x7d, 0x2f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, + 0x67, 0x2f, 0x69, 0x73, 0x73, 0x75, 0x65, 0x73, 0x42, 0xf7, 0x03, 0x92, 0x41, 0xc6, 0x02, 0x12, + 0x8e, 0x02, 0x0a, 0x0e, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, 0x41, + 0x50, 0x49, 0x12, 0xfb, 0x01, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x20, + 0x41, 0x50, 0x49, 0x20, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x20, 0x70, 0x72, 0x6f, 0x67, + 0x72, 0x61, 0x6d, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x20, 0x6f, 0x66, 0x20, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x43, 0x6c, 0x6f, 0x75, + 0x64, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x69, 0x6e, 0x63, + 0x6c, 0x75, 0x64, 0x69, 0x6e, 0x67, 0x20, 0x6f, 0x72, 0x67, 0x61, 0x6e, 0x69, 0x7a, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2c, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2c, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x75, 0x73, 0x65, 0x72, 0x20, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x2e, + 0x20, 0x49, 0x74, 0x20, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x73, 0x20, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x20, 0x66, 0x6f, 0x72, 0x20, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x75, 0x70, 0x64, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x2c, 0x20, 0x61, + 0x6e, 0x64, 0x20, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x20, 0x74, 0x68, 0x65, 0x73, + 0x65, 0x20, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2c, 0x20, 0x61, 0x73, 0x20, + 0x77, 0x65, 0x6c, 0x6c, 0x20, 0x61, 0x73, 0x20, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x69, 0x6e, 0x67, + 0x20, 0x61, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x20, + 0x61, 0x6e, 0x64, 0x20, 0x70, 0x65, 0x72, 0x6d, 0x69, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2e, + 0x72, 0x33, 0x0a, 0x16, 0x52, 0x69, 0x6c, 0x6c, 0x20, 0x41, 0x50, 0x49, 0x20, 0x44, 0x6f, 0x63, + 0x75, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x68, 0x74, 0x74, 0x70, + 0x73, 0x3a, 0x2f, 0x2f, 0x64, 0x6f, 0x63, 0x73, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x63, 0x6f, 0x6d, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x2e, 0x72, 0x69, 0x6c, 0x6c, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x41, 0x70, 0x69, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x38, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x64, 0x61, 0x74, 0x61, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x72, 0x69, 0x6c, 0x6c, 0x2f, 0x61, 0x64, + 0x6d, 0x69, 0x6e, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x52, 0x41, 0x58, 0xaa, 0x02, 0x0d, 0x52, 0x69, 0x6c, 0x6c, 0x2e, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x0d, 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x19, 0x52, 0x69, 0x6c, 0x6c, 0x5c, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x0f, 0x52, 0x69, 0x6c, 0x6c, 0x3a, 0x3a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -28481,7 +29121,7 @@ func file_rill_admin_v1_api_proto_rawDescGZIP() []byte { } var file_rill_admin_v1_api_proto_enumTypes = make([]protoimpl.EnumInfo, 5) -var file_rill_admin_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 378) +var file_rill_admin_v1_api_proto_msgTypes = make([]protoimpl.MessageInfo, 384) var file_rill_admin_v1_api_proto_goTypes = []any{ (GithubPermission)(0), // 0: rill.admin.v1.GithubPermission (DeploymentStatus)(0), // 1: rill.admin.v1.DeploymentStatus @@ -28615,805 +29255,823 @@ var file_rill_admin_v1_api_proto_goTypes = []any{ (*SudoUpdateOrganizationBillingCustomerResponse)(nil), // 129: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse (*SudoExtendTrialRequest)(nil), // 130: rill.admin.v1.SudoExtendTrialRequest (*SudoExtendTrialResponse)(nil), // 131: rill.admin.v1.SudoExtendTrialResponse - (*SudoUpdateOrganizationCustomDomainRequest)(nil), // 132: rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest - (*SudoUpdateOrganizationCustomDomainResponse)(nil), // 133: rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse - (*SudoUpdateUserQuotasRequest)(nil), // 134: rill.admin.v1.SudoUpdateUserQuotasRequest - (*SudoUpdateUserQuotasResponse)(nil), // 135: rill.admin.v1.SudoUpdateUserQuotasResponse - (*SudoUpdateAnnotationsRequest)(nil), // 136: rill.admin.v1.SudoUpdateAnnotationsRequest - (*SudoUpdateAnnotationsResponse)(nil), // 137: rill.admin.v1.SudoUpdateAnnotationsResponse - (*SudoIssueRuntimeManagerTokenRequest)(nil), // 138: rill.admin.v1.SudoIssueRuntimeManagerTokenRequest - (*SudoIssueRuntimeManagerTokenResponse)(nil), // 139: rill.admin.v1.SudoIssueRuntimeManagerTokenResponse - (*SudoDeleteOrganizationBillingIssueRequest)(nil), // 140: rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest - (*SudoDeleteOrganizationBillingIssueResponse)(nil), // 141: rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse - (*SudoTriggerBillingRepairRequest)(nil), // 142: rill.admin.v1.SudoTriggerBillingRepairRequest - (*SudoTriggerBillingRepairResponse)(nil), // 143: rill.admin.v1.SudoTriggerBillingRepairResponse - (*ListProjectMemberUsersRequest)(nil), // 144: rill.admin.v1.ListProjectMemberUsersRequest - (*ListProjectMemberUsersResponse)(nil), // 145: rill.admin.v1.ListProjectMemberUsersResponse - (*ListProjectInvitesRequest)(nil), // 146: rill.admin.v1.ListProjectInvitesRequest - (*ListProjectInvitesResponse)(nil), // 147: rill.admin.v1.ListProjectInvitesResponse - (*AddProjectMemberUserRequest)(nil), // 148: rill.admin.v1.AddProjectMemberUserRequest - (*AddProjectMemberUserResponse)(nil), // 149: rill.admin.v1.AddProjectMemberUserResponse - (*RemoveProjectMemberUserRequest)(nil), // 150: rill.admin.v1.RemoveProjectMemberUserRequest - (*RemoveProjectMemberUserResponse)(nil), // 151: rill.admin.v1.RemoveProjectMemberUserResponse - (*SetProjectMemberUserRoleRequest)(nil), // 152: rill.admin.v1.SetProjectMemberUserRoleRequest - (*SetProjectMemberUserRoleResponse)(nil), // 153: rill.admin.v1.SetProjectMemberUserRoleResponse - (*ListUsergroupsForOrganizationAndUserRequest)(nil), // 154: rill.admin.v1.ListUsergroupsForOrganizationAndUserRequest - (*ListUsergroupsForOrganizationAndUserResponse)(nil), // 155: rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse - (*CreateUsergroupRequest)(nil), // 156: rill.admin.v1.CreateUsergroupRequest - (*CreateUsergroupResponse)(nil), // 157: rill.admin.v1.CreateUsergroupResponse - (*GetUsergroupRequest)(nil), // 158: rill.admin.v1.GetUsergroupRequest - (*GetUsergroupResponse)(nil), // 159: rill.admin.v1.GetUsergroupResponse - (*UpdateUsergroupRequest)(nil), // 160: rill.admin.v1.UpdateUsergroupRequest - (*UpdateUsergroupResponse)(nil), // 161: rill.admin.v1.UpdateUsergroupResponse - (*ListOrganizationMemberUsergroupsRequest)(nil), // 162: rill.admin.v1.ListOrganizationMemberUsergroupsRequest - (*ListOrganizationMemberUsergroupsResponse)(nil), // 163: rill.admin.v1.ListOrganizationMemberUsergroupsResponse - (*ListProjectMemberUsergroupsRequest)(nil), // 164: rill.admin.v1.ListProjectMemberUsergroupsRequest - (*ListProjectMemberUsergroupsResponse)(nil), // 165: rill.admin.v1.ListProjectMemberUsergroupsResponse - (*DeleteUsergroupRequest)(nil), // 166: rill.admin.v1.DeleteUsergroupRequest - (*DeleteUsergroupResponse)(nil), // 167: rill.admin.v1.DeleteUsergroupResponse - (*AddOrganizationMemberUsergroupRequest)(nil), // 168: rill.admin.v1.AddOrganizationMemberUsergroupRequest - (*AddOrganizationMemberUsergroupResponse)(nil), // 169: rill.admin.v1.AddOrganizationMemberUsergroupResponse - (*SetOrganizationMemberUsergroupRoleRequest)(nil), // 170: rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest - (*SetOrganizationMemberUsergroupRoleResponse)(nil), // 171: rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse - (*RemoveOrganizationMemberUsergroupRequest)(nil), // 172: rill.admin.v1.RemoveOrganizationMemberUsergroupRequest - (*RemoveOrganizationMemberUsergroupResponse)(nil), // 173: rill.admin.v1.RemoveOrganizationMemberUsergroupResponse - (*AddProjectMemberUsergroupRequest)(nil), // 174: rill.admin.v1.AddProjectMemberUsergroupRequest - (*AddProjectMemberUsergroupResponse)(nil), // 175: rill.admin.v1.AddProjectMemberUsergroupResponse - (*SetProjectMemberUsergroupRoleRequest)(nil), // 176: rill.admin.v1.SetProjectMemberUsergroupRoleRequest - (*SetProjectMemberUsergroupRoleResponse)(nil), // 177: rill.admin.v1.SetProjectMemberUsergroupRoleResponse - (*RemoveProjectMemberUsergroupRequest)(nil), // 178: rill.admin.v1.RemoveProjectMemberUsergroupRequest - (*RemoveProjectMemberUsergroupResponse)(nil), // 179: rill.admin.v1.RemoveProjectMemberUsergroupResponse - (*AddUsergroupMemberUserRequest)(nil), // 180: rill.admin.v1.AddUsergroupMemberUserRequest - (*AddUsergroupMemberUserResponse)(nil), // 181: rill.admin.v1.AddUsergroupMemberUserResponse - (*ListUsergroupMemberUsersRequest)(nil), // 182: rill.admin.v1.ListUsergroupMemberUsersRequest - (*ListUsergroupMemberUsersResponse)(nil), // 183: rill.admin.v1.ListUsergroupMemberUsersResponse - (*RemoveUsergroupMemberUserRequest)(nil), // 184: rill.admin.v1.RemoveUsergroupMemberUserRequest - (*RemoveUsergroupMemberUserResponse)(nil), // 185: rill.admin.v1.RemoveUsergroupMemberUserResponse - (*UserPreferences)(nil), // 186: rill.admin.v1.UserPreferences - (*UpdateUserPreferencesRequest)(nil), // 187: rill.admin.v1.UpdateUserPreferencesRequest - (*UpdateUserPreferencesResponse)(nil), // 188: rill.admin.v1.UpdateUserPreferencesResponse - (*GetUserRequest)(nil), // 189: rill.admin.v1.GetUserRequest - (*GetUserResponse)(nil), // 190: rill.admin.v1.GetUserResponse - (*GetCurrentUserRequest)(nil), // 191: rill.admin.v1.GetCurrentUserRequest - (*GetCurrentUserResponse)(nil), // 192: rill.admin.v1.GetCurrentUserResponse - (*DeleteUserRequest)(nil), // 193: rill.admin.v1.DeleteUserRequest - (*DeleteUserResponse)(nil), // 194: rill.admin.v1.DeleteUserResponse - (*ListUserAuthTokensRequest)(nil), // 195: rill.admin.v1.ListUserAuthTokensRequest - (*ListUserAuthTokensResponse)(nil), // 196: rill.admin.v1.ListUserAuthTokensResponse - (*IssueUserAuthTokenRequest)(nil), // 197: rill.admin.v1.IssueUserAuthTokenRequest - (*IssueUserAuthTokenResponse)(nil), // 198: rill.admin.v1.IssueUserAuthTokenResponse - (*RevokeUserAuthTokenRequest)(nil), // 199: rill.admin.v1.RevokeUserAuthTokenRequest - (*RevokeUserAuthTokenResponse)(nil), // 200: rill.admin.v1.RevokeUserAuthTokenResponse - (*RevokeAllUserAuthTokensRequest)(nil), // 201: rill.admin.v1.RevokeAllUserAuthTokensRequest - (*RevokeAllUserAuthTokensResponse)(nil), // 202: rill.admin.v1.RevokeAllUserAuthTokensResponse - (*RevokeRepresentativeAuthTokensRequest)(nil), // 203: rill.admin.v1.RevokeRepresentativeAuthTokensRequest - (*RevokeRepresentativeAuthTokensResponse)(nil), // 204: rill.admin.v1.RevokeRepresentativeAuthTokensResponse - (*IssueRepresentativeAuthTokenRequest)(nil), // 205: rill.admin.v1.IssueRepresentativeAuthTokenRequest - (*IssueRepresentativeAuthTokenResponse)(nil), // 206: rill.admin.v1.IssueRepresentativeAuthTokenResponse - (*RevokeCurrentAuthTokenRequest)(nil), // 207: rill.admin.v1.RevokeCurrentAuthTokenRequest - (*RevokeCurrentAuthTokenResponse)(nil), // 208: rill.admin.v1.RevokeCurrentAuthTokenResponse - (*ListBookmarksRequest)(nil), // 209: rill.admin.v1.ListBookmarksRequest - (*ListBookmarksResponse)(nil), // 210: rill.admin.v1.ListBookmarksResponse - (*GetBookmarkRequest)(nil), // 211: rill.admin.v1.GetBookmarkRequest - (*GetBookmarkResponse)(nil), // 212: rill.admin.v1.GetBookmarkResponse - (*CreateBookmarkRequest)(nil), // 213: rill.admin.v1.CreateBookmarkRequest - (*CreateBookmarkResponse)(nil), // 214: rill.admin.v1.CreateBookmarkResponse - (*UpdateBookmarkRequest)(nil), // 215: rill.admin.v1.UpdateBookmarkRequest - (*UpdateBookmarkResponse)(nil), // 216: rill.admin.v1.UpdateBookmarkResponse - (*RemoveBookmarkRequest)(nil), // 217: rill.admin.v1.RemoveBookmarkRequest - (*RemoveBookmarkResponse)(nil), // 218: rill.admin.v1.RemoveBookmarkResponse - (*SearchUsersRequest)(nil), // 219: rill.admin.v1.SearchUsersRequest - (*SearchUsersResponse)(nil), // 220: rill.admin.v1.SearchUsersResponse - (*RevokeServiceAuthTokenRequest)(nil), // 221: rill.admin.v1.RevokeServiceAuthTokenRequest - (*RevokeServiceAuthTokenResponse)(nil), // 222: rill.admin.v1.RevokeServiceAuthTokenResponse - (*IssueServiceAuthTokenRequest)(nil), // 223: rill.admin.v1.IssueServiceAuthTokenRequest - (*IssueServiceAuthTokenResponse)(nil), // 224: rill.admin.v1.IssueServiceAuthTokenResponse - (*ListServiceAuthTokensRequest)(nil), // 225: rill.admin.v1.ListServiceAuthTokensRequest - (*ListServiceAuthTokensResponse)(nil), // 226: rill.admin.v1.ListServiceAuthTokensResponse - (*IssueMagicAuthTokenRequest)(nil), // 227: rill.admin.v1.IssueMagicAuthTokenRequest - (*ResourceName)(nil), // 228: rill.admin.v1.ResourceName - (*IssueMagicAuthTokenResponse)(nil), // 229: rill.admin.v1.IssueMagicAuthTokenResponse - (*ListMagicAuthTokensRequest)(nil), // 230: rill.admin.v1.ListMagicAuthTokensRequest - (*ListMagicAuthTokensResponse)(nil), // 231: rill.admin.v1.ListMagicAuthTokensResponse - (*GetCurrentMagicAuthTokenRequest)(nil), // 232: rill.admin.v1.GetCurrentMagicAuthTokenRequest - (*GetCurrentMagicAuthTokenResponse)(nil), // 233: rill.admin.v1.GetCurrentMagicAuthTokenResponse - (*RevokeMagicAuthTokenRequest)(nil), // 234: rill.admin.v1.RevokeMagicAuthTokenRequest - (*RevokeMagicAuthTokenResponse)(nil), // 235: rill.admin.v1.RevokeMagicAuthTokenResponse - (*GetGithubRepoStatusRequest)(nil), // 236: rill.admin.v1.GetGithubRepoStatusRequest - (*GetGithubRepoStatusResponse)(nil), // 237: rill.admin.v1.GetGithubRepoStatusResponse - (*GetGithubUserStatusRequest)(nil), // 238: rill.admin.v1.GetGithubUserStatusRequest - (*GetGithubUserStatusResponse)(nil), // 239: rill.admin.v1.GetGithubUserStatusResponse - (*ListGithubUserReposRequest)(nil), // 240: rill.admin.v1.ListGithubUserReposRequest - (*ListGithubUserReposResponse)(nil), // 241: rill.admin.v1.ListGithubUserReposResponse - (*ConnectProjectToGithubRequest)(nil), // 242: rill.admin.v1.ConnectProjectToGithubRequest - (*ConnectProjectToGithubResponse)(nil), // 243: rill.admin.v1.ConnectProjectToGithubResponse - (*CreateManagedGitRepoRequest)(nil), // 244: rill.admin.v1.CreateManagedGitRepoRequest - (*CreateManagedGitRepoResponse)(nil), // 245: rill.admin.v1.CreateManagedGitRepoResponse - (*GetCloneCredentialsRequest)(nil), // 246: rill.admin.v1.GetCloneCredentialsRequest - (*GetCloneCredentialsResponse)(nil), // 247: rill.admin.v1.GetCloneCredentialsResponse - (*CreateWhitelistedDomainRequest)(nil), // 248: rill.admin.v1.CreateWhitelistedDomainRequest - (*CreateWhitelistedDomainResponse)(nil), // 249: rill.admin.v1.CreateWhitelistedDomainResponse - (*RemoveWhitelistedDomainRequest)(nil), // 250: rill.admin.v1.RemoveWhitelistedDomainRequest - (*RemoveWhitelistedDomainResponse)(nil), // 251: rill.admin.v1.RemoveWhitelistedDomainResponse - (*ListWhitelistedDomainsRequest)(nil), // 252: rill.admin.v1.ListWhitelistedDomainsRequest - (*ListWhitelistedDomainsResponse)(nil), // 253: rill.admin.v1.ListWhitelistedDomainsResponse - (*CreateProjectWhitelistedDomainRequest)(nil), // 254: rill.admin.v1.CreateProjectWhitelistedDomainRequest - (*CreateProjectWhitelistedDomainResponse)(nil), // 255: rill.admin.v1.CreateProjectWhitelistedDomainResponse - (*RemoveProjectWhitelistedDomainRequest)(nil), // 256: rill.admin.v1.RemoveProjectWhitelistedDomainRequest - (*RemoveProjectWhitelistedDomainResponse)(nil), // 257: rill.admin.v1.RemoveProjectWhitelistedDomainResponse - (*ListProjectWhitelistedDomainsRequest)(nil), // 258: rill.admin.v1.ListProjectWhitelistedDomainsRequest - (*ListProjectWhitelistedDomainsResponse)(nil), // 259: rill.admin.v1.ListProjectWhitelistedDomainsResponse - (*GetRepoMetaRequest)(nil), // 260: rill.admin.v1.GetRepoMetaRequest - (*GetRepoMetaResponse)(nil), // 261: rill.admin.v1.GetRepoMetaResponse - (*PullVirtualRepoRequest)(nil), // 262: rill.admin.v1.PullVirtualRepoRequest - (*PullVirtualRepoResponse)(nil), // 263: rill.admin.v1.PullVirtualRepoResponse - (*GetVirtualFileRequest)(nil), // 264: rill.admin.v1.GetVirtualFileRequest - (*GetVirtualFileResponse)(nil), // 265: rill.admin.v1.GetVirtualFileResponse - (*DeleteVirtualFileRequest)(nil), // 266: rill.admin.v1.DeleteVirtualFileRequest - (*DeleteVirtualFileResponse)(nil), // 267: rill.admin.v1.DeleteVirtualFileResponse - (*GetReportMetaRequest)(nil), // 268: rill.admin.v1.GetReportMetaRequest - (*GetReportMetaResponse)(nil), // 269: rill.admin.v1.GetReportMetaResponse - (*GetAlertMetaRequest)(nil), // 270: rill.admin.v1.GetAlertMetaRequest - (*GetAlertMetaResponse)(nil), // 271: rill.admin.v1.GetAlertMetaResponse - (*CreateReportRequest)(nil), // 272: rill.admin.v1.CreateReportRequest - (*CreateReportResponse)(nil), // 273: rill.admin.v1.CreateReportResponse - (*EditReportRequest)(nil), // 274: rill.admin.v1.EditReportRequest - (*EditReportResponse)(nil), // 275: rill.admin.v1.EditReportResponse - (*UnsubscribeReportRequest)(nil), // 276: rill.admin.v1.UnsubscribeReportRequest - (*UnsubscribeReportResponse)(nil), // 277: rill.admin.v1.UnsubscribeReportResponse - (*DeleteReportRequest)(nil), // 278: rill.admin.v1.DeleteReportRequest - (*DeleteReportResponse)(nil), // 279: rill.admin.v1.DeleteReportResponse - (*TriggerReportRequest)(nil), // 280: rill.admin.v1.TriggerReportRequest - (*TriggerReportResponse)(nil), // 281: rill.admin.v1.TriggerReportResponse - (*GenerateReportYAMLRequest)(nil), // 282: rill.admin.v1.GenerateReportYAMLRequest - (*GenerateReportYAMLResponse)(nil), // 283: rill.admin.v1.GenerateReportYAMLResponse - (*CreateAlertRequest)(nil), // 284: rill.admin.v1.CreateAlertRequest - (*CreateAlertResponse)(nil), // 285: rill.admin.v1.CreateAlertResponse - (*EditAlertRequest)(nil), // 286: rill.admin.v1.EditAlertRequest - (*EditAlertResponse)(nil), // 287: rill.admin.v1.EditAlertResponse - (*UnsubscribeAlertRequest)(nil), // 288: rill.admin.v1.UnsubscribeAlertRequest - (*UnsubscribeAlertResponse)(nil), // 289: rill.admin.v1.UnsubscribeAlertResponse - (*DeleteAlertRequest)(nil), // 290: rill.admin.v1.DeleteAlertRequest - (*DeleteAlertResponse)(nil), // 291: rill.admin.v1.DeleteAlertResponse - (*GenerateAlertYAMLRequest)(nil), // 292: rill.admin.v1.GenerateAlertYAMLRequest - (*GenerateAlertYAMLResponse)(nil), // 293: rill.admin.v1.GenerateAlertYAMLResponse - (*GetAlertYAMLRequest)(nil), // 294: rill.admin.v1.GetAlertYAMLRequest - (*GetAlertYAMLResponse)(nil), // 295: rill.admin.v1.GetAlertYAMLResponse - (*GetBillingSubscriptionRequest)(nil), // 296: rill.admin.v1.GetBillingSubscriptionRequest - (*GetBillingSubscriptionResponse)(nil), // 297: rill.admin.v1.GetBillingSubscriptionResponse - (*UpdateBillingSubscriptionRequest)(nil), // 298: rill.admin.v1.UpdateBillingSubscriptionRequest - (*UpdateBillingSubscriptionResponse)(nil), // 299: rill.admin.v1.UpdateBillingSubscriptionResponse - (*CancelBillingSubscriptionRequest)(nil), // 300: rill.admin.v1.CancelBillingSubscriptionRequest - (*CancelBillingSubscriptionResponse)(nil), // 301: rill.admin.v1.CancelBillingSubscriptionResponse - (*RenewBillingSubscriptionRequest)(nil), // 302: rill.admin.v1.RenewBillingSubscriptionRequest - (*RenewBillingSubscriptionResponse)(nil), // 303: rill.admin.v1.RenewBillingSubscriptionResponse - (*GetPaymentsPortalURLRequest)(nil), // 304: rill.admin.v1.GetPaymentsPortalURLRequest - (*GetPaymentsPortalURLResponse)(nil), // 305: rill.admin.v1.GetPaymentsPortalURLResponse - (*ListPublicBillingPlansRequest)(nil), // 306: rill.admin.v1.ListPublicBillingPlansRequest - (*ListPublicBillingPlansResponse)(nil), // 307: rill.admin.v1.ListPublicBillingPlansResponse - (*GetBillingProjectCredentialsRequest)(nil), // 308: rill.admin.v1.GetBillingProjectCredentialsRequest - (*GetBillingProjectCredentialsResponse)(nil), // 309: rill.admin.v1.GetBillingProjectCredentialsResponse - (*TelemetryRequest)(nil), // 310: rill.admin.v1.TelemetryRequest - (*TelemetryResponse)(nil), // 311: rill.admin.v1.TelemetryResponse - (*RequestProjectAccessRequest)(nil), // 312: rill.admin.v1.RequestProjectAccessRequest - (*RequestProjectAccessResponse)(nil), // 313: rill.admin.v1.RequestProjectAccessResponse - (*GetProjectAccessRequestRequest)(nil), // 314: rill.admin.v1.GetProjectAccessRequestRequest - (*GetProjectAccessRequestResponse)(nil), // 315: rill.admin.v1.GetProjectAccessRequestResponse - (*ApproveProjectAccessRequest)(nil), // 316: rill.admin.v1.ApproveProjectAccessRequest - (*ApproveProjectAccessResponse)(nil), // 317: rill.admin.v1.ApproveProjectAccessResponse - (*DenyProjectAccessRequest)(nil), // 318: rill.admin.v1.DenyProjectAccessRequest - (*DenyProjectAccessResponse)(nil), // 319: rill.admin.v1.DenyProjectAccessResponse - (*ListOrganizationBillingIssuesRequest)(nil), // 320: rill.admin.v1.ListOrganizationBillingIssuesRequest - (*ListOrganizationBillingIssuesResponse)(nil), // 321: rill.admin.v1.ListOrganizationBillingIssuesResponse - (*User)(nil), // 322: rill.admin.v1.User - (*Service)(nil), // 323: rill.admin.v1.Service - (*OrganizationMemberService)(nil), // 324: rill.admin.v1.OrganizationMemberService - (*ProjectMemberService)(nil), // 325: rill.admin.v1.ProjectMemberService - (*Organization)(nil), // 326: rill.admin.v1.Organization - (*Subscription)(nil), // 327: rill.admin.v1.Subscription - (*UserQuotas)(nil), // 328: rill.admin.v1.UserQuotas - (*OrganizationQuotas)(nil), // 329: rill.admin.v1.OrganizationQuotas - (*Project)(nil), // 330: rill.admin.v1.Project - (*Deployment)(nil), // 331: rill.admin.v1.Deployment - (*ProvisionerResource)(nil), // 332: rill.admin.v1.ProvisionerResource - (*OrganizationPermissions)(nil), // 333: rill.admin.v1.OrganizationPermissions - (*ProjectPermissions)(nil), // 334: rill.admin.v1.ProjectPermissions - (*OrganizationRole)(nil), // 335: rill.admin.v1.OrganizationRole - (*ProjectRole)(nil), // 336: rill.admin.v1.ProjectRole - (*OrganizationMemberUser)(nil), // 337: rill.admin.v1.OrganizationMemberUser - (*ProjectMemberUser)(nil), // 338: rill.admin.v1.ProjectMemberUser - (*UsergroupMemberUser)(nil), // 339: rill.admin.v1.UsergroupMemberUser - (*OrganizationInvite)(nil), // 340: rill.admin.v1.OrganizationInvite - (*ProjectInvite)(nil), // 341: rill.admin.v1.ProjectInvite - (*WhitelistedDomain)(nil), // 342: rill.admin.v1.WhitelistedDomain - (*Bookmark)(nil), // 343: rill.admin.v1.Bookmark - (*ServiceToken)(nil), // 344: rill.admin.v1.ServiceToken - (*UserAuthToken)(nil), // 345: rill.admin.v1.UserAuthToken - (*MagicAuthToken)(nil), // 346: rill.admin.v1.MagicAuthToken - (*VirtualFile)(nil), // 347: rill.admin.v1.VirtualFile - (*ReportOptions)(nil), // 348: rill.admin.v1.ReportOptions - (*AlertOptions)(nil), // 349: rill.admin.v1.AlertOptions - (*BillingPlan)(nil), // 350: rill.admin.v1.BillingPlan - (*Quotas)(nil), // 351: rill.admin.v1.Quotas - (*Usergroup)(nil), // 352: rill.admin.v1.Usergroup - (*MemberUsergroup)(nil), // 353: rill.admin.v1.MemberUsergroup - (*BillingIssue)(nil), // 354: rill.admin.v1.BillingIssue - (*BillingIssueMetadata)(nil), // 355: rill.admin.v1.BillingIssueMetadata - (*BillingIssueMetadataOnTrial)(nil), // 356: rill.admin.v1.BillingIssueMetadataOnTrial - (*BillingIssueMetadataTrialEnded)(nil), // 357: rill.admin.v1.BillingIssueMetadataTrialEnded - (*BillingIssueMetadataNoPaymentMethod)(nil), // 358: rill.admin.v1.BillingIssueMetadataNoPaymentMethod - (*BillingIssueMetadataNoBillableAddress)(nil), // 359: rill.admin.v1.BillingIssueMetadataNoBillableAddress - (*BillingIssueMetadataPaymentFailed)(nil), // 360: rill.admin.v1.BillingIssueMetadataPaymentFailed - (*BillingIssueMetadataPaymentFailedMeta)(nil), // 361: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta - (*BillingIssueMetadataSubscriptionCancelled)(nil), // 362: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled - (*BillingIssueMetadataNeverSubscribed)(nil), // 363: rill.admin.v1.BillingIssueMetadataNeverSubscribed - nil, // 364: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry - nil, // 365: rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry - nil, // 366: rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry - nil, // 367: rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry - nil, // 368: rill.admin.v1.GetIFrameRequest.QueryEntry - nil, // 369: rill.admin.v1.CreateAssetResponse.SigningHeadersEntry - nil, // 370: rill.admin.v1.GetDeploymentConfigResponse.VariablesEntry - nil, // 371: rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry - nil, // 372: rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry - nil, // 373: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry - nil, // 374: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry - (*ListGithubUserReposResponse_Repo)(nil), // 375: rill.admin.v1.ListGithubUserReposResponse.Repo - (*GetReportMetaResponse_DeliveryMeta)(nil), // 376: rill.admin.v1.GetReportMetaResponse.DeliveryMeta - nil, // 377: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry - nil, // 378: rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry - (*GetAlertMetaResponse_URLs)(nil), // 379: rill.admin.v1.GetAlertMetaResponse.URLs - nil, // 380: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry - nil, // 381: rill.admin.v1.Project.AnnotationsEntry - nil, // 382: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry - (*timestamppb.Timestamp)(nil), // 383: google.protobuf.Timestamp - (*structpb.Struct)(nil), // 384: google.protobuf.Struct - (v1.ExportFormat)(0), // 385: rill.runtime.v1.ExportFormat - (*v1.Expression)(nil), // 386: rill.runtime.v1.Expression + (*SudoAddCreditsRequest)(nil), // 132: rill.admin.v1.SudoAddCreditsRequest + (*SudoAddCreditsResponse)(nil), // 133: rill.admin.v1.SudoAddCreditsResponse + (*SudoUpdateOrganizationCustomDomainRequest)(nil), // 134: rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest + (*SudoUpdateOrganizationCustomDomainResponse)(nil), // 135: rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse + (*SudoUpdateUserQuotasRequest)(nil), // 136: rill.admin.v1.SudoUpdateUserQuotasRequest + (*SudoUpdateUserQuotasResponse)(nil), // 137: rill.admin.v1.SudoUpdateUserQuotasResponse + (*SudoUpdateAnnotationsRequest)(nil), // 138: rill.admin.v1.SudoUpdateAnnotationsRequest + (*SudoUpdateAnnotationsResponse)(nil), // 139: rill.admin.v1.SudoUpdateAnnotationsResponse + (*SudoIssueRuntimeManagerTokenRequest)(nil), // 140: rill.admin.v1.SudoIssueRuntimeManagerTokenRequest + (*SudoIssueRuntimeManagerTokenResponse)(nil), // 141: rill.admin.v1.SudoIssueRuntimeManagerTokenResponse + (*SudoDeleteOrganizationBillingIssueRequest)(nil), // 142: rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest + (*SudoDeleteOrganizationBillingIssueResponse)(nil), // 143: rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse + (*SudoTriggerBillingRepairRequest)(nil), // 144: rill.admin.v1.SudoTriggerBillingRepairRequest + (*SudoTriggerBillingRepairResponse)(nil), // 145: rill.admin.v1.SudoTriggerBillingRepairResponse + (*ListProjectMemberUsersRequest)(nil), // 146: rill.admin.v1.ListProjectMemberUsersRequest + (*ListProjectMemberUsersResponse)(nil), // 147: rill.admin.v1.ListProjectMemberUsersResponse + (*ListProjectInvitesRequest)(nil), // 148: rill.admin.v1.ListProjectInvitesRequest + (*ListProjectInvitesResponse)(nil), // 149: rill.admin.v1.ListProjectInvitesResponse + (*AddProjectMemberUserRequest)(nil), // 150: rill.admin.v1.AddProjectMemberUserRequest + (*AddProjectMemberUserResponse)(nil), // 151: rill.admin.v1.AddProjectMemberUserResponse + (*RemoveProjectMemberUserRequest)(nil), // 152: rill.admin.v1.RemoveProjectMemberUserRequest + (*RemoveProjectMemberUserResponse)(nil), // 153: rill.admin.v1.RemoveProjectMemberUserResponse + (*SetProjectMemberUserRoleRequest)(nil), // 154: rill.admin.v1.SetProjectMemberUserRoleRequest + (*SetProjectMemberUserRoleResponse)(nil), // 155: rill.admin.v1.SetProjectMemberUserRoleResponse + (*ListUsergroupsForOrganizationAndUserRequest)(nil), // 156: rill.admin.v1.ListUsergroupsForOrganizationAndUserRequest + (*ListUsergroupsForOrganizationAndUserResponse)(nil), // 157: rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse + (*CreateUsergroupRequest)(nil), // 158: rill.admin.v1.CreateUsergroupRequest + (*CreateUsergroupResponse)(nil), // 159: rill.admin.v1.CreateUsergroupResponse + (*GetUsergroupRequest)(nil), // 160: rill.admin.v1.GetUsergroupRequest + (*GetUsergroupResponse)(nil), // 161: rill.admin.v1.GetUsergroupResponse + (*UpdateUsergroupRequest)(nil), // 162: rill.admin.v1.UpdateUsergroupRequest + (*UpdateUsergroupResponse)(nil), // 163: rill.admin.v1.UpdateUsergroupResponse + (*ListOrganizationMemberUsergroupsRequest)(nil), // 164: rill.admin.v1.ListOrganizationMemberUsergroupsRequest + (*ListOrganizationMemberUsergroupsResponse)(nil), // 165: rill.admin.v1.ListOrganizationMemberUsergroupsResponse + (*ListProjectMemberUsergroupsRequest)(nil), // 166: rill.admin.v1.ListProjectMemberUsergroupsRequest + (*ListProjectMemberUsergroupsResponse)(nil), // 167: rill.admin.v1.ListProjectMemberUsergroupsResponse + (*DeleteUsergroupRequest)(nil), // 168: rill.admin.v1.DeleteUsergroupRequest + (*DeleteUsergroupResponse)(nil), // 169: rill.admin.v1.DeleteUsergroupResponse + (*AddOrganizationMemberUsergroupRequest)(nil), // 170: rill.admin.v1.AddOrganizationMemberUsergroupRequest + (*AddOrganizationMemberUsergroupResponse)(nil), // 171: rill.admin.v1.AddOrganizationMemberUsergroupResponse + (*SetOrganizationMemberUsergroupRoleRequest)(nil), // 172: rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest + (*SetOrganizationMemberUsergroupRoleResponse)(nil), // 173: rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse + (*RemoveOrganizationMemberUsergroupRequest)(nil), // 174: rill.admin.v1.RemoveOrganizationMemberUsergroupRequest + (*RemoveOrganizationMemberUsergroupResponse)(nil), // 175: rill.admin.v1.RemoveOrganizationMemberUsergroupResponse + (*AddProjectMemberUsergroupRequest)(nil), // 176: rill.admin.v1.AddProjectMemberUsergroupRequest + (*AddProjectMemberUsergroupResponse)(nil), // 177: rill.admin.v1.AddProjectMemberUsergroupResponse + (*SetProjectMemberUsergroupRoleRequest)(nil), // 178: rill.admin.v1.SetProjectMemberUsergroupRoleRequest + (*SetProjectMemberUsergroupRoleResponse)(nil), // 179: rill.admin.v1.SetProjectMemberUsergroupRoleResponse + (*RemoveProjectMemberUsergroupRequest)(nil), // 180: rill.admin.v1.RemoveProjectMemberUsergroupRequest + (*RemoveProjectMemberUsergroupResponse)(nil), // 181: rill.admin.v1.RemoveProjectMemberUsergroupResponse + (*AddUsergroupMemberUserRequest)(nil), // 182: rill.admin.v1.AddUsergroupMemberUserRequest + (*AddUsergroupMemberUserResponse)(nil), // 183: rill.admin.v1.AddUsergroupMemberUserResponse + (*ListUsergroupMemberUsersRequest)(nil), // 184: rill.admin.v1.ListUsergroupMemberUsersRequest + (*ListUsergroupMemberUsersResponse)(nil), // 185: rill.admin.v1.ListUsergroupMemberUsersResponse + (*RemoveUsergroupMemberUserRequest)(nil), // 186: rill.admin.v1.RemoveUsergroupMemberUserRequest + (*RemoveUsergroupMemberUserResponse)(nil), // 187: rill.admin.v1.RemoveUsergroupMemberUserResponse + (*UserPreferences)(nil), // 188: rill.admin.v1.UserPreferences + (*UpdateUserPreferencesRequest)(nil), // 189: rill.admin.v1.UpdateUserPreferencesRequest + (*UpdateUserPreferencesResponse)(nil), // 190: rill.admin.v1.UpdateUserPreferencesResponse + (*GetUserRequest)(nil), // 191: rill.admin.v1.GetUserRequest + (*GetUserResponse)(nil), // 192: rill.admin.v1.GetUserResponse + (*GetCurrentUserRequest)(nil), // 193: rill.admin.v1.GetCurrentUserRequest + (*GetCurrentUserResponse)(nil), // 194: rill.admin.v1.GetCurrentUserResponse + (*DeleteUserRequest)(nil), // 195: rill.admin.v1.DeleteUserRequest + (*DeleteUserResponse)(nil), // 196: rill.admin.v1.DeleteUserResponse + (*ListUserAuthTokensRequest)(nil), // 197: rill.admin.v1.ListUserAuthTokensRequest + (*ListUserAuthTokensResponse)(nil), // 198: rill.admin.v1.ListUserAuthTokensResponse + (*IssueUserAuthTokenRequest)(nil), // 199: rill.admin.v1.IssueUserAuthTokenRequest + (*IssueUserAuthTokenResponse)(nil), // 200: rill.admin.v1.IssueUserAuthTokenResponse + (*RevokeUserAuthTokenRequest)(nil), // 201: rill.admin.v1.RevokeUserAuthTokenRequest + (*RevokeUserAuthTokenResponse)(nil), // 202: rill.admin.v1.RevokeUserAuthTokenResponse + (*RevokeAllUserAuthTokensRequest)(nil), // 203: rill.admin.v1.RevokeAllUserAuthTokensRequest + (*RevokeAllUserAuthTokensResponse)(nil), // 204: rill.admin.v1.RevokeAllUserAuthTokensResponse + (*RevokeRepresentativeAuthTokensRequest)(nil), // 205: rill.admin.v1.RevokeRepresentativeAuthTokensRequest + (*RevokeRepresentativeAuthTokensResponse)(nil), // 206: rill.admin.v1.RevokeRepresentativeAuthTokensResponse + (*IssueRepresentativeAuthTokenRequest)(nil), // 207: rill.admin.v1.IssueRepresentativeAuthTokenRequest + (*IssueRepresentativeAuthTokenResponse)(nil), // 208: rill.admin.v1.IssueRepresentativeAuthTokenResponse + (*RevokeCurrentAuthTokenRequest)(nil), // 209: rill.admin.v1.RevokeCurrentAuthTokenRequest + (*RevokeCurrentAuthTokenResponse)(nil), // 210: rill.admin.v1.RevokeCurrentAuthTokenResponse + (*ListBookmarksRequest)(nil), // 211: rill.admin.v1.ListBookmarksRequest + (*ListBookmarksResponse)(nil), // 212: rill.admin.v1.ListBookmarksResponse + (*GetBookmarkRequest)(nil), // 213: rill.admin.v1.GetBookmarkRequest + (*GetBookmarkResponse)(nil), // 214: rill.admin.v1.GetBookmarkResponse + (*CreateBookmarkRequest)(nil), // 215: rill.admin.v1.CreateBookmarkRequest + (*CreateBookmarkResponse)(nil), // 216: rill.admin.v1.CreateBookmarkResponse + (*UpdateBookmarkRequest)(nil), // 217: rill.admin.v1.UpdateBookmarkRequest + (*UpdateBookmarkResponse)(nil), // 218: rill.admin.v1.UpdateBookmarkResponse + (*RemoveBookmarkRequest)(nil), // 219: rill.admin.v1.RemoveBookmarkRequest + (*RemoveBookmarkResponse)(nil), // 220: rill.admin.v1.RemoveBookmarkResponse + (*SearchUsersRequest)(nil), // 221: rill.admin.v1.SearchUsersRequest + (*SearchUsersResponse)(nil), // 222: rill.admin.v1.SearchUsersResponse + (*RevokeServiceAuthTokenRequest)(nil), // 223: rill.admin.v1.RevokeServiceAuthTokenRequest + (*RevokeServiceAuthTokenResponse)(nil), // 224: rill.admin.v1.RevokeServiceAuthTokenResponse + (*IssueServiceAuthTokenRequest)(nil), // 225: rill.admin.v1.IssueServiceAuthTokenRequest + (*IssueServiceAuthTokenResponse)(nil), // 226: rill.admin.v1.IssueServiceAuthTokenResponse + (*ListServiceAuthTokensRequest)(nil), // 227: rill.admin.v1.ListServiceAuthTokensRequest + (*ListServiceAuthTokensResponse)(nil), // 228: rill.admin.v1.ListServiceAuthTokensResponse + (*IssueMagicAuthTokenRequest)(nil), // 229: rill.admin.v1.IssueMagicAuthTokenRequest + (*ResourceName)(nil), // 230: rill.admin.v1.ResourceName + (*IssueMagicAuthTokenResponse)(nil), // 231: rill.admin.v1.IssueMagicAuthTokenResponse + (*ListMagicAuthTokensRequest)(nil), // 232: rill.admin.v1.ListMagicAuthTokensRequest + (*ListMagicAuthTokensResponse)(nil), // 233: rill.admin.v1.ListMagicAuthTokensResponse + (*GetCurrentMagicAuthTokenRequest)(nil), // 234: rill.admin.v1.GetCurrentMagicAuthTokenRequest + (*GetCurrentMagicAuthTokenResponse)(nil), // 235: rill.admin.v1.GetCurrentMagicAuthTokenResponse + (*RevokeMagicAuthTokenRequest)(nil), // 236: rill.admin.v1.RevokeMagicAuthTokenRequest + (*RevokeMagicAuthTokenResponse)(nil), // 237: rill.admin.v1.RevokeMagicAuthTokenResponse + (*GetGithubRepoStatusRequest)(nil), // 238: rill.admin.v1.GetGithubRepoStatusRequest + (*GetGithubRepoStatusResponse)(nil), // 239: rill.admin.v1.GetGithubRepoStatusResponse + (*GetGithubUserStatusRequest)(nil), // 240: rill.admin.v1.GetGithubUserStatusRequest + (*GetGithubUserStatusResponse)(nil), // 241: rill.admin.v1.GetGithubUserStatusResponse + (*ListGithubUserReposRequest)(nil), // 242: rill.admin.v1.ListGithubUserReposRequest + (*ListGithubUserReposResponse)(nil), // 243: rill.admin.v1.ListGithubUserReposResponse + (*ConnectProjectToGithubRequest)(nil), // 244: rill.admin.v1.ConnectProjectToGithubRequest + (*ConnectProjectToGithubResponse)(nil), // 245: rill.admin.v1.ConnectProjectToGithubResponse + (*CreateManagedGitRepoRequest)(nil), // 246: rill.admin.v1.CreateManagedGitRepoRequest + (*CreateManagedGitRepoResponse)(nil), // 247: rill.admin.v1.CreateManagedGitRepoResponse + (*GetCloneCredentialsRequest)(nil), // 248: rill.admin.v1.GetCloneCredentialsRequest + (*GetCloneCredentialsResponse)(nil), // 249: rill.admin.v1.GetCloneCredentialsResponse + (*CreateWhitelistedDomainRequest)(nil), // 250: rill.admin.v1.CreateWhitelistedDomainRequest + (*CreateWhitelistedDomainResponse)(nil), // 251: rill.admin.v1.CreateWhitelistedDomainResponse + (*RemoveWhitelistedDomainRequest)(nil), // 252: rill.admin.v1.RemoveWhitelistedDomainRequest + (*RemoveWhitelistedDomainResponse)(nil), // 253: rill.admin.v1.RemoveWhitelistedDomainResponse + (*ListWhitelistedDomainsRequest)(nil), // 254: rill.admin.v1.ListWhitelistedDomainsRequest + (*ListWhitelistedDomainsResponse)(nil), // 255: rill.admin.v1.ListWhitelistedDomainsResponse + (*CreateProjectWhitelistedDomainRequest)(nil), // 256: rill.admin.v1.CreateProjectWhitelistedDomainRequest + (*CreateProjectWhitelistedDomainResponse)(nil), // 257: rill.admin.v1.CreateProjectWhitelistedDomainResponse + (*RemoveProjectWhitelistedDomainRequest)(nil), // 258: rill.admin.v1.RemoveProjectWhitelistedDomainRequest + (*RemoveProjectWhitelistedDomainResponse)(nil), // 259: rill.admin.v1.RemoveProjectWhitelistedDomainResponse + (*ListProjectWhitelistedDomainsRequest)(nil), // 260: rill.admin.v1.ListProjectWhitelistedDomainsRequest + (*ListProjectWhitelistedDomainsResponse)(nil), // 261: rill.admin.v1.ListProjectWhitelistedDomainsResponse + (*GetRepoMetaRequest)(nil), // 262: rill.admin.v1.GetRepoMetaRequest + (*GetRepoMetaResponse)(nil), // 263: rill.admin.v1.GetRepoMetaResponse + (*PullVirtualRepoRequest)(nil), // 264: rill.admin.v1.PullVirtualRepoRequest + (*PullVirtualRepoResponse)(nil), // 265: rill.admin.v1.PullVirtualRepoResponse + (*GetVirtualFileRequest)(nil), // 266: rill.admin.v1.GetVirtualFileRequest + (*GetVirtualFileResponse)(nil), // 267: rill.admin.v1.GetVirtualFileResponse + (*DeleteVirtualFileRequest)(nil), // 268: rill.admin.v1.DeleteVirtualFileRequest + (*DeleteVirtualFileResponse)(nil), // 269: rill.admin.v1.DeleteVirtualFileResponse + (*GetReportMetaRequest)(nil), // 270: rill.admin.v1.GetReportMetaRequest + (*GetReportMetaResponse)(nil), // 271: rill.admin.v1.GetReportMetaResponse + (*GetAlertMetaRequest)(nil), // 272: rill.admin.v1.GetAlertMetaRequest + (*GetAlertMetaResponse)(nil), // 273: rill.admin.v1.GetAlertMetaResponse + (*CreateReportRequest)(nil), // 274: rill.admin.v1.CreateReportRequest + (*CreateReportResponse)(nil), // 275: rill.admin.v1.CreateReportResponse + (*EditReportRequest)(nil), // 276: rill.admin.v1.EditReportRequest + (*EditReportResponse)(nil), // 277: rill.admin.v1.EditReportResponse + (*UnsubscribeReportRequest)(nil), // 278: rill.admin.v1.UnsubscribeReportRequest + (*UnsubscribeReportResponse)(nil), // 279: rill.admin.v1.UnsubscribeReportResponse + (*DeleteReportRequest)(nil), // 280: rill.admin.v1.DeleteReportRequest + (*DeleteReportResponse)(nil), // 281: rill.admin.v1.DeleteReportResponse + (*TriggerReportRequest)(nil), // 282: rill.admin.v1.TriggerReportRequest + (*TriggerReportResponse)(nil), // 283: rill.admin.v1.TriggerReportResponse + (*GenerateReportYAMLRequest)(nil), // 284: rill.admin.v1.GenerateReportYAMLRequest + (*GenerateReportYAMLResponse)(nil), // 285: rill.admin.v1.GenerateReportYAMLResponse + (*CreateAlertRequest)(nil), // 286: rill.admin.v1.CreateAlertRequest + (*CreateAlertResponse)(nil), // 287: rill.admin.v1.CreateAlertResponse + (*EditAlertRequest)(nil), // 288: rill.admin.v1.EditAlertRequest + (*EditAlertResponse)(nil), // 289: rill.admin.v1.EditAlertResponse + (*UnsubscribeAlertRequest)(nil), // 290: rill.admin.v1.UnsubscribeAlertRequest + (*UnsubscribeAlertResponse)(nil), // 291: rill.admin.v1.UnsubscribeAlertResponse + (*DeleteAlertRequest)(nil), // 292: rill.admin.v1.DeleteAlertRequest + (*DeleteAlertResponse)(nil), // 293: rill.admin.v1.DeleteAlertResponse + (*GenerateAlertYAMLRequest)(nil), // 294: rill.admin.v1.GenerateAlertYAMLRequest + (*GenerateAlertYAMLResponse)(nil), // 295: rill.admin.v1.GenerateAlertYAMLResponse + (*GetAlertYAMLRequest)(nil), // 296: rill.admin.v1.GetAlertYAMLRequest + (*GetAlertYAMLResponse)(nil), // 297: rill.admin.v1.GetAlertYAMLResponse + (*GetBillingSubscriptionRequest)(nil), // 298: rill.admin.v1.GetBillingSubscriptionRequest + (*GetBillingSubscriptionResponse)(nil), // 299: rill.admin.v1.GetBillingSubscriptionResponse + (*BillingCreditInfo)(nil), // 300: rill.admin.v1.BillingCreditInfo + (*UpdateBillingSubscriptionRequest)(nil), // 301: rill.admin.v1.UpdateBillingSubscriptionRequest + (*UpdateBillingSubscriptionResponse)(nil), // 302: rill.admin.v1.UpdateBillingSubscriptionResponse + (*CancelBillingSubscriptionRequest)(nil), // 303: rill.admin.v1.CancelBillingSubscriptionRequest + (*CancelBillingSubscriptionResponse)(nil), // 304: rill.admin.v1.CancelBillingSubscriptionResponse + (*RenewBillingSubscriptionRequest)(nil), // 305: rill.admin.v1.RenewBillingSubscriptionRequest + (*RenewBillingSubscriptionResponse)(nil), // 306: rill.admin.v1.RenewBillingSubscriptionResponse + (*GetPaymentsPortalURLRequest)(nil), // 307: rill.admin.v1.GetPaymentsPortalURLRequest + (*GetPaymentsPortalURLResponse)(nil), // 308: rill.admin.v1.GetPaymentsPortalURLResponse + (*ListPublicBillingPlansRequest)(nil), // 309: rill.admin.v1.ListPublicBillingPlansRequest + (*ListPublicBillingPlansResponse)(nil), // 310: rill.admin.v1.ListPublicBillingPlansResponse + (*GetBillingProjectCredentialsRequest)(nil), // 311: rill.admin.v1.GetBillingProjectCredentialsRequest + (*GetBillingProjectCredentialsResponse)(nil), // 312: rill.admin.v1.GetBillingProjectCredentialsResponse + (*TelemetryRequest)(nil), // 313: rill.admin.v1.TelemetryRequest + (*TelemetryResponse)(nil), // 314: rill.admin.v1.TelemetryResponse + (*RequestProjectAccessRequest)(nil), // 315: rill.admin.v1.RequestProjectAccessRequest + (*RequestProjectAccessResponse)(nil), // 316: rill.admin.v1.RequestProjectAccessResponse + (*GetProjectAccessRequestRequest)(nil), // 317: rill.admin.v1.GetProjectAccessRequestRequest + (*GetProjectAccessRequestResponse)(nil), // 318: rill.admin.v1.GetProjectAccessRequestResponse + (*ApproveProjectAccessRequest)(nil), // 319: rill.admin.v1.ApproveProjectAccessRequest + (*ApproveProjectAccessResponse)(nil), // 320: rill.admin.v1.ApproveProjectAccessResponse + (*DenyProjectAccessRequest)(nil), // 321: rill.admin.v1.DenyProjectAccessRequest + (*DenyProjectAccessResponse)(nil), // 322: rill.admin.v1.DenyProjectAccessResponse + (*ListOrganizationBillingIssuesRequest)(nil), // 323: rill.admin.v1.ListOrganizationBillingIssuesRequest + (*ListOrganizationBillingIssuesResponse)(nil), // 324: rill.admin.v1.ListOrganizationBillingIssuesResponse + (*User)(nil), // 325: rill.admin.v1.User + (*Service)(nil), // 326: rill.admin.v1.Service + (*OrganizationMemberService)(nil), // 327: rill.admin.v1.OrganizationMemberService + (*ProjectMemberService)(nil), // 328: rill.admin.v1.ProjectMemberService + (*Organization)(nil), // 329: rill.admin.v1.Organization + (*Subscription)(nil), // 330: rill.admin.v1.Subscription + (*UserQuotas)(nil), // 331: rill.admin.v1.UserQuotas + (*OrganizationQuotas)(nil), // 332: rill.admin.v1.OrganizationQuotas + (*Project)(nil), // 333: rill.admin.v1.Project + (*Deployment)(nil), // 334: rill.admin.v1.Deployment + (*ProvisionerResource)(nil), // 335: rill.admin.v1.ProvisionerResource + (*OrganizationPermissions)(nil), // 336: rill.admin.v1.OrganizationPermissions + (*ProjectPermissions)(nil), // 337: rill.admin.v1.ProjectPermissions + (*OrganizationRole)(nil), // 338: rill.admin.v1.OrganizationRole + (*ProjectRole)(nil), // 339: rill.admin.v1.ProjectRole + (*OrganizationMemberUser)(nil), // 340: rill.admin.v1.OrganizationMemberUser + (*ProjectMemberUser)(nil), // 341: rill.admin.v1.ProjectMemberUser + (*UsergroupMemberUser)(nil), // 342: rill.admin.v1.UsergroupMemberUser + (*OrganizationInvite)(nil), // 343: rill.admin.v1.OrganizationInvite + (*ProjectInvite)(nil), // 344: rill.admin.v1.ProjectInvite + (*WhitelistedDomain)(nil), // 345: rill.admin.v1.WhitelistedDomain + (*Bookmark)(nil), // 346: rill.admin.v1.Bookmark + (*ServiceToken)(nil), // 347: rill.admin.v1.ServiceToken + (*UserAuthToken)(nil), // 348: rill.admin.v1.UserAuthToken + (*MagicAuthToken)(nil), // 349: rill.admin.v1.MagicAuthToken + (*VirtualFile)(nil), // 350: rill.admin.v1.VirtualFile + (*ReportOptions)(nil), // 351: rill.admin.v1.ReportOptions + (*AlertOptions)(nil), // 352: rill.admin.v1.AlertOptions + (*BillingPlan)(nil), // 353: rill.admin.v1.BillingPlan + (*Quotas)(nil), // 354: rill.admin.v1.Quotas + (*Usergroup)(nil), // 355: rill.admin.v1.Usergroup + (*MemberUsergroup)(nil), // 356: rill.admin.v1.MemberUsergroup + (*BillingIssue)(nil), // 357: rill.admin.v1.BillingIssue + (*BillingIssueMetadata)(nil), // 358: rill.admin.v1.BillingIssueMetadata + (*BillingIssueMetadataOnTrial)(nil), // 359: rill.admin.v1.BillingIssueMetadataOnTrial + (*BillingIssueMetadataTrialEnded)(nil), // 360: rill.admin.v1.BillingIssueMetadataTrialEnded + (*BillingIssueMetadataNoPaymentMethod)(nil), // 361: rill.admin.v1.BillingIssueMetadataNoPaymentMethod + (*BillingIssueMetadataNoBillableAddress)(nil), // 362: rill.admin.v1.BillingIssueMetadataNoBillableAddress + (*BillingIssueMetadataPaymentFailed)(nil), // 363: rill.admin.v1.BillingIssueMetadataPaymentFailed + (*BillingIssueMetadataPaymentFailedMeta)(nil), // 364: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta + (*BillingIssueMetadataSubscriptionCancelled)(nil), // 365: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled + (*BillingIssueMetadataNeverSubscribed)(nil), // 366: rill.admin.v1.BillingIssueMetadataNeverSubscribed + (*BillingIssueMetadataCreditLow)(nil), // 367: rill.admin.v1.BillingIssueMetadataCreditLow + (*BillingIssueMetadataCreditCritical)(nil), // 368: rill.admin.v1.BillingIssueMetadataCreditCritical + (*BillingIssueMetadataCreditExhausted)(nil), // 369: rill.admin.v1.BillingIssueMetadataCreditExhausted + nil, // 370: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry + nil, // 371: rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry + nil, // 372: rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry + nil, // 373: rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry + nil, // 374: rill.admin.v1.GetIFrameRequest.QueryEntry + nil, // 375: rill.admin.v1.CreateAssetResponse.SigningHeadersEntry + nil, // 376: rill.admin.v1.GetDeploymentConfigResponse.VariablesEntry + nil, // 377: rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry + nil, // 378: rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry + nil, // 379: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry + nil, // 380: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry + (*ListGithubUserReposResponse_Repo)(nil), // 381: rill.admin.v1.ListGithubUserReposResponse.Repo + (*GetReportMetaResponse_DeliveryMeta)(nil), // 382: rill.admin.v1.GetReportMetaResponse.DeliveryMeta + nil, // 383: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry + nil, // 384: rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry + (*GetAlertMetaResponse_URLs)(nil), // 385: rill.admin.v1.GetAlertMetaResponse.URLs + nil, // 386: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry + nil, // 387: rill.admin.v1.Project.AnnotationsEntry + nil, // 388: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry + (*timestamppb.Timestamp)(nil), // 389: google.protobuf.Timestamp + (*structpb.Struct)(nil), // 390: google.protobuf.Struct + (v1.ExportFormat)(0), // 391: rill.runtime.v1.ExportFormat + (*v1.Expression)(nil), // 392: rill.runtime.v1.Expression } var file_rill_admin_v1_api_proto_depIdxs = []int32{ - 383, // 0: rill.admin.v1.PingResponse.time:type_name -> google.protobuf.Timestamp - 326, // 1: rill.admin.v1.ListOrganizationsResponse.organizations:type_name -> rill.admin.v1.Organization - 326, // 2: rill.admin.v1.GetOrganizationResponse.organization:type_name -> rill.admin.v1.Organization - 333, // 3: rill.admin.v1.GetOrganizationResponse.permissions:type_name -> rill.admin.v1.OrganizationPermissions - 326, // 4: rill.admin.v1.CreateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization - 326, // 5: rill.admin.v1.UpdateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization - 331, // 6: rill.admin.v1.ListDeploymentsResponse.deployments:type_name -> rill.admin.v1.Deployment - 331, // 7: rill.admin.v1.CreateDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment - 384, // 8: rill.admin.v1.GetDeploymentRequest.attributes:type_name -> google.protobuf.Struct - 331, // 9: rill.admin.v1.StartDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment - 330, // 10: rill.admin.v1.ListProjectsForOrganizationResponse.projects:type_name -> rill.admin.v1.Project - 330, // 11: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.projects:type_name -> rill.admin.v1.Project - 364, // 12: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.project_roles:type_name -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry - 330, // 13: rill.admin.v1.ListProjectsForFingerprintResponse.projects:type_name -> rill.admin.v1.Project - 330, // 14: rill.admin.v1.GetProjectResponse.project:type_name -> rill.admin.v1.Project - 331, // 15: rill.admin.v1.GetProjectResponse.deployment:type_name -> rill.admin.v1.Deployment - 334, // 16: rill.admin.v1.GetProjectResponse.project_permissions:type_name -> rill.admin.v1.ProjectPermissions - 330, // 17: rill.admin.v1.ListProjectsForUserByNameResponse.projects:type_name -> rill.admin.v1.Project - 330, // 18: rill.admin.v1.GetProjectByIDResponse.project:type_name -> rill.admin.v1.Project - 365, // 19: rill.admin.v1.SearchProjectNamesRequest.annotations:type_name -> rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry + 389, // 0: rill.admin.v1.PingResponse.time:type_name -> google.protobuf.Timestamp + 329, // 1: rill.admin.v1.ListOrganizationsResponse.organizations:type_name -> rill.admin.v1.Organization + 329, // 2: rill.admin.v1.GetOrganizationResponse.organization:type_name -> rill.admin.v1.Organization + 336, // 3: rill.admin.v1.GetOrganizationResponse.permissions:type_name -> rill.admin.v1.OrganizationPermissions + 329, // 4: rill.admin.v1.CreateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization + 329, // 5: rill.admin.v1.UpdateOrganizationResponse.organization:type_name -> rill.admin.v1.Organization + 334, // 6: rill.admin.v1.ListDeploymentsResponse.deployments:type_name -> rill.admin.v1.Deployment + 334, // 7: rill.admin.v1.CreateDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment + 390, // 8: rill.admin.v1.GetDeploymentRequest.attributes:type_name -> google.protobuf.Struct + 334, // 9: rill.admin.v1.StartDeploymentResponse.deployment:type_name -> rill.admin.v1.Deployment + 333, // 10: rill.admin.v1.ListProjectsForOrganizationResponse.projects:type_name -> rill.admin.v1.Project + 333, // 11: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.projects:type_name -> rill.admin.v1.Project + 370, // 12: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.project_roles:type_name -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry + 333, // 13: rill.admin.v1.ListProjectsForFingerprintResponse.projects:type_name -> rill.admin.v1.Project + 333, // 14: rill.admin.v1.GetProjectResponse.project:type_name -> rill.admin.v1.Project + 334, // 15: rill.admin.v1.GetProjectResponse.deployment:type_name -> rill.admin.v1.Deployment + 337, // 16: rill.admin.v1.GetProjectResponse.project_permissions:type_name -> rill.admin.v1.ProjectPermissions + 333, // 17: rill.admin.v1.ListProjectsForUserByNameResponse.projects:type_name -> rill.admin.v1.Project + 333, // 18: rill.admin.v1.GetProjectByIDResponse.project:type_name -> rill.admin.v1.Project + 371, // 19: rill.admin.v1.SearchProjectNamesRequest.annotations:type_name -> rill.admin.v1.SearchProjectNamesRequest.AnnotationsEntry 47, // 20: rill.admin.v1.GetProjectVariablesResponse.variables:type_name -> rill.admin.v1.ProjectVariable - 366, // 21: rill.admin.v1.GetProjectVariablesResponse.variables_map:type_name -> rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry - 383, // 22: rill.admin.v1.ProjectVariable.created_on:type_name -> google.protobuf.Timestamp - 383, // 23: rill.admin.v1.ProjectVariable.updated_on:type_name -> google.protobuf.Timestamp - 367, // 24: rill.admin.v1.UpdateProjectVariablesRequest.variables:type_name -> rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry + 372, // 21: rill.admin.v1.GetProjectVariablesResponse.variables_map:type_name -> rill.admin.v1.GetProjectVariablesResponse.VariablesMapEntry + 389, // 22: rill.admin.v1.ProjectVariable.created_on:type_name -> google.protobuf.Timestamp + 389, // 23: rill.admin.v1.ProjectVariable.updated_on:type_name -> google.protobuf.Timestamp + 373, // 24: rill.admin.v1.UpdateProjectVariablesRequest.variables:type_name -> rill.admin.v1.UpdateProjectVariablesRequest.VariablesEntry 47, // 25: rill.admin.v1.UpdateProjectVariablesResponse.variables:type_name -> rill.admin.v1.ProjectVariable - 322, // 26: rill.admin.v1.SearchProjectUsersResponse.users:type_name -> rill.admin.v1.User - 384, // 27: rill.admin.v1.GetDeploymentCredentialsRequest.attributes:type_name -> google.protobuf.Struct - 384, // 28: rill.admin.v1.GetIFrameRequest.attributes:type_name -> google.protobuf.Struct - 368, // 29: rill.admin.v1.GetIFrameRequest.query:type_name -> rill.admin.v1.GetIFrameRequest.QueryEntry - 324, // 30: rill.admin.v1.ListServicesResponse.services:type_name -> rill.admin.v1.OrganizationMemberService - 325, // 31: rill.admin.v1.ListProjectMemberServicesResponse.services:type_name -> rill.admin.v1.ProjectMemberService - 384, // 32: rill.admin.v1.CreateServiceRequest.attributes:type_name -> google.protobuf.Struct - 323, // 33: rill.admin.v1.CreateServiceResponse.service:type_name -> rill.admin.v1.Service - 324, // 34: rill.admin.v1.GetServiceResponse.service:type_name -> rill.admin.v1.OrganizationMemberService - 325, // 35: rill.admin.v1.GetServiceResponse.project_memberships:type_name -> rill.admin.v1.ProjectMemberService - 384, // 36: rill.admin.v1.UpdateServiceRequest.attributes:type_name -> google.protobuf.Struct - 323, // 37: rill.admin.v1.UpdateServiceResponse.service:type_name -> rill.admin.v1.Service - 323, // 38: rill.admin.v1.DeleteServiceResponse.service:type_name -> rill.admin.v1.Service - 330, // 39: rill.admin.v1.CreateProjectResponse.project:type_name -> rill.admin.v1.Project - 330, // 40: rill.admin.v1.UpdateProjectResponse.project:type_name -> rill.admin.v1.Project - 369, // 41: rill.admin.v1.CreateAssetResponse.signing_headers:type_name -> rill.admin.v1.CreateAssetResponse.SigningHeadersEntry - 384, // 42: rill.admin.v1.ProvisionRequest.args:type_name -> google.protobuf.Struct - 332, // 43: rill.admin.v1.ProvisionResponse.resource:type_name -> rill.admin.v1.ProvisionerResource - 370, // 44: rill.admin.v1.GetDeploymentConfigResponse.variables:type_name -> rill.admin.v1.GetDeploymentConfigResponse.VariablesEntry - 371, // 45: rill.admin.v1.GetDeploymentConfigResponse.annotations:type_name -> rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry - 383, // 46: rill.admin.v1.GetDeploymentConfigResponse.updated_on:type_name -> google.protobuf.Timestamp - 384, // 47: rill.admin.v1.GetDeploymentConfigResponse.duckdb_connector_config:type_name -> google.protobuf.Struct - 335, // 48: rill.admin.v1.ListRolesResponse.organization_roles:type_name -> rill.admin.v1.OrganizationRole - 336, // 49: rill.admin.v1.ListRolesResponse.project_roles:type_name -> rill.admin.v1.ProjectRole - 337, // 50: rill.admin.v1.ListOrganizationMemberUsersResponse.members:type_name -> rill.admin.v1.OrganizationMemberUser - 340, // 51: rill.admin.v1.ListOrganizationInvitesResponse.invites:type_name -> rill.admin.v1.OrganizationInvite - 337, // 52: rill.admin.v1.GetOrganizationMemberUserResponse.member:type_name -> rill.admin.v1.OrganizationMemberUser - 338, // 53: rill.admin.v1.GetProjectMemberUserResponse.member:type_name -> rill.admin.v1.ProjectMemberUser - 353, // 54: rill.admin.v1.ListUsergroupsForProjectAndUserResponse.usergroups:type_name -> rill.admin.v1.MemberUsergroup - 384, // 55: rill.admin.v1.UpdateOrganizationMemberUserAttributesRequest.attributes:type_name -> google.protobuf.Struct - 322, // 56: rill.admin.v1.ListSuperusersResponse.users:type_name -> rill.admin.v1.User - 322, // 57: rill.admin.v1.SudoGetResourceResponse.user:type_name -> rill.admin.v1.User - 326, // 58: rill.admin.v1.SudoGetResourceResponse.org:type_name -> rill.admin.v1.Organization - 330, // 59: rill.admin.v1.SudoGetResourceResponse.project:type_name -> rill.admin.v1.Project - 331, // 60: rill.admin.v1.SudoGetResourceResponse.deployment:type_name -> rill.admin.v1.Deployment - 331, // 61: rill.admin.v1.SudoGetResourceResponse.instance:type_name -> rill.admin.v1.Deployment - 326, // 62: rill.admin.v1.SudoUpdateOrganizationQuotasResponse.organization:type_name -> rill.admin.v1.Organization - 326, // 63: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.organization:type_name -> rill.admin.v1.Organization - 327, // 64: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.subscription:type_name -> rill.admin.v1.Subscription - 383, // 65: rill.admin.v1.SudoExtendTrialResponse.trial_end:type_name -> google.protobuf.Timestamp - 326, // 66: rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse.organization:type_name -> rill.admin.v1.Organization - 322, // 67: rill.admin.v1.SudoUpdateUserQuotasResponse.user:type_name -> rill.admin.v1.User - 372, // 68: rill.admin.v1.SudoUpdateAnnotationsRequest.annotations:type_name -> rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry - 330, // 69: rill.admin.v1.SudoUpdateAnnotationsResponse.project:type_name -> rill.admin.v1.Project - 3, // 70: rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest.type:type_name -> rill.admin.v1.BillingIssueType - 338, // 71: rill.admin.v1.ListProjectMemberUsersResponse.members:type_name -> rill.admin.v1.ProjectMemberUser - 341, // 72: rill.admin.v1.ListProjectInvitesResponse.invites:type_name -> rill.admin.v1.ProjectInvite - 228, // 73: rill.admin.v1.AddProjectMemberUserRequest.resources:type_name -> rill.admin.v1.ResourceName - 228, // 74: rill.admin.v1.SetProjectMemberUserRoleRequest.resources:type_name -> rill.admin.v1.ResourceName - 352, // 75: rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse.usergroups:type_name -> rill.admin.v1.Usergroup - 352, // 76: rill.admin.v1.CreateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup - 352, // 77: rill.admin.v1.GetUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup - 352, // 78: rill.admin.v1.UpdateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup - 353, // 79: rill.admin.v1.ListOrganizationMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup - 353, // 80: rill.admin.v1.ListProjectMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup - 228, // 81: rill.admin.v1.AddProjectMemberUsergroupRequest.resources:type_name -> rill.admin.v1.ResourceName - 228, // 82: rill.admin.v1.SetProjectMemberUsergroupRoleRequest.resources:type_name -> rill.admin.v1.ResourceName - 339, // 83: rill.admin.v1.ListUsergroupMemberUsersResponse.members:type_name -> rill.admin.v1.UsergroupMemberUser - 186, // 84: rill.admin.v1.UpdateUserPreferencesRequest.preferences:type_name -> rill.admin.v1.UserPreferences - 186, // 85: rill.admin.v1.UpdateUserPreferencesResponse.preferences:type_name -> rill.admin.v1.UserPreferences - 322, // 86: rill.admin.v1.GetUserResponse.user:type_name -> rill.admin.v1.User - 322, // 87: rill.admin.v1.GetCurrentUserResponse.user:type_name -> rill.admin.v1.User - 186, // 88: rill.admin.v1.GetCurrentUserResponse.preferences:type_name -> rill.admin.v1.UserPreferences - 345, // 89: rill.admin.v1.ListUserAuthTokensResponse.tokens:type_name -> rill.admin.v1.UserAuthToken - 343, // 90: rill.admin.v1.ListBookmarksResponse.bookmarks:type_name -> rill.admin.v1.Bookmark - 343, // 91: rill.admin.v1.GetBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark - 343, // 92: rill.admin.v1.CreateBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark - 322, // 93: rill.admin.v1.SearchUsersResponse.users:type_name -> rill.admin.v1.User - 344, // 94: rill.admin.v1.ListServiceAuthTokensResponse.tokens:type_name -> rill.admin.v1.ServiceToken - 373, // 95: rill.admin.v1.IssueMagicAuthTokenRequest.metrics_view_filters:type_name -> rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry - 228, // 96: rill.admin.v1.IssueMagicAuthTokenRequest.resources:type_name -> rill.admin.v1.ResourceName - 346, // 97: rill.admin.v1.ListMagicAuthTokensResponse.tokens:type_name -> rill.admin.v1.MagicAuthToken - 346, // 98: rill.admin.v1.GetCurrentMagicAuthTokenResponse.token:type_name -> rill.admin.v1.MagicAuthToken - 0, // 99: rill.admin.v1.GetGithubUserStatusResponse.user_installation_permission:type_name -> rill.admin.v1.GithubPermission - 374, // 100: rill.admin.v1.GetGithubUserStatusResponse.organization_installation_permissions:type_name -> rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry - 375, // 101: rill.admin.v1.ListGithubUserReposResponse.repos:type_name -> rill.admin.v1.ListGithubUserReposResponse.Repo - 383, // 102: rill.admin.v1.CreateManagedGitRepoResponse.password_expires_at:type_name -> google.protobuf.Timestamp - 383, // 103: rill.admin.v1.GetCloneCredentialsResponse.git_password_expires_at:type_name -> google.protobuf.Timestamp - 342, // 104: rill.admin.v1.ListWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain - 342, // 105: rill.admin.v1.ListProjectWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain - 383, // 106: rill.admin.v1.GetRepoMetaResponse.expires_on:type_name -> google.protobuf.Timestamp - 383, // 107: rill.admin.v1.GetRepoMetaResponse.last_updated_on:type_name -> google.protobuf.Timestamp - 383, // 108: rill.admin.v1.GetRepoMetaResponse.archive_created_on:type_name -> google.protobuf.Timestamp - 347, // 109: rill.admin.v1.PullVirtualRepoResponse.files:type_name -> rill.admin.v1.VirtualFile - 347, // 110: rill.admin.v1.GetVirtualFileResponse.file:type_name -> rill.admin.v1.VirtualFile - 383, // 111: rill.admin.v1.GetReportMetaRequest.execution_time:type_name -> google.protobuf.Timestamp - 228, // 112: rill.admin.v1.GetReportMetaRequest.resources:type_name -> rill.admin.v1.ResourceName - 377, // 113: rill.admin.v1.GetReportMetaResponse.delivery_meta:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry - 378, // 114: rill.admin.v1.GetAlertMetaRequest.annotations:type_name -> rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry - 380, // 115: rill.admin.v1.GetAlertMetaResponse.recipient_urls:type_name -> rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry - 384, // 116: rill.admin.v1.GetAlertMetaResponse.query_for_attributes:type_name -> google.protobuf.Struct - 348, // 117: rill.admin.v1.CreateReportRequest.options:type_name -> rill.admin.v1.ReportOptions - 348, // 118: rill.admin.v1.EditReportRequest.options:type_name -> rill.admin.v1.ReportOptions - 348, // 119: rill.admin.v1.GenerateReportYAMLRequest.options:type_name -> rill.admin.v1.ReportOptions - 349, // 120: rill.admin.v1.CreateAlertRequest.options:type_name -> rill.admin.v1.AlertOptions - 349, // 121: rill.admin.v1.EditAlertRequest.options:type_name -> rill.admin.v1.AlertOptions - 349, // 122: rill.admin.v1.GenerateAlertYAMLRequest.options:type_name -> rill.admin.v1.AlertOptions - 326, // 123: rill.admin.v1.GetBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization - 327, // 124: rill.admin.v1.GetBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription - 326, // 125: rill.admin.v1.UpdateBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization - 327, // 126: rill.admin.v1.UpdateBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription - 326, // 127: rill.admin.v1.RenewBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization - 327, // 128: rill.admin.v1.RenewBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription - 350, // 129: rill.admin.v1.ListPublicBillingPlansResponse.plans:type_name -> rill.admin.v1.BillingPlan - 384, // 130: rill.admin.v1.TelemetryRequest.event:type_name -> google.protobuf.Struct - 354, // 131: rill.admin.v1.ListOrganizationBillingIssuesResponse.issues:type_name -> rill.admin.v1.BillingIssue - 328, // 132: rill.admin.v1.User.quotas:type_name -> rill.admin.v1.UserQuotas - 383, // 133: rill.admin.v1.User.created_on:type_name -> google.protobuf.Timestamp - 383, // 134: rill.admin.v1.User.updated_on:type_name -> google.protobuf.Timestamp - 384, // 135: rill.admin.v1.Service.attributes:type_name -> google.protobuf.Struct - 383, // 136: rill.admin.v1.Service.created_on:type_name -> google.protobuf.Timestamp - 383, // 137: rill.admin.v1.Service.updated_on:type_name -> google.protobuf.Timestamp - 384, // 138: rill.admin.v1.OrganizationMemberService.attributes:type_name -> google.protobuf.Struct - 383, // 139: rill.admin.v1.OrganizationMemberService.created_on:type_name -> google.protobuf.Timestamp - 383, // 140: rill.admin.v1.OrganizationMemberService.updated_on:type_name -> google.protobuf.Timestamp - 384, // 141: rill.admin.v1.ProjectMemberService.attributes:type_name -> google.protobuf.Struct - 383, // 142: rill.admin.v1.ProjectMemberService.created_on:type_name -> google.protobuf.Timestamp - 383, // 143: rill.admin.v1.ProjectMemberService.updated_on:type_name -> google.protobuf.Timestamp - 329, // 144: rill.admin.v1.Organization.quotas:type_name -> rill.admin.v1.OrganizationQuotas - 383, // 145: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp - 383, // 146: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp - 350, // 147: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan - 383, // 148: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp - 383, // 149: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp - 383, // 150: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp - 383, // 151: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp - 383, // 152: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp - 381, // 153: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry - 383, // 154: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp - 383, // 155: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp - 1, // 156: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus - 383, // 157: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp - 383, // 158: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp - 384, // 159: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct - 384, // 160: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct - 333, // 161: rill.admin.v1.OrganizationRole.permissions:type_name -> rill.admin.v1.OrganizationPermissions - 334, // 162: rill.admin.v1.ProjectRole.permissions:type_name -> rill.admin.v1.ProjectPermissions - 384, // 163: rill.admin.v1.OrganizationMemberUser.attributes:type_name -> google.protobuf.Struct - 383, // 164: rill.admin.v1.OrganizationMemberUser.created_on:type_name -> google.protobuf.Timestamp - 383, // 165: rill.admin.v1.OrganizationMemberUser.updated_on:type_name -> google.protobuf.Timestamp - 383, // 166: rill.admin.v1.ProjectMemberUser.created_on:type_name -> google.protobuf.Timestamp - 383, // 167: rill.admin.v1.ProjectMemberUser.updated_on:type_name -> google.protobuf.Timestamp - 228, // 168: rill.admin.v1.ProjectMemberUser.resources:type_name -> rill.admin.v1.ResourceName - 383, // 169: rill.admin.v1.UsergroupMemberUser.created_on:type_name -> google.protobuf.Timestamp - 383, // 170: rill.admin.v1.UsergroupMemberUser.updated_on:type_name -> google.protobuf.Timestamp - 228, // 171: rill.admin.v1.ProjectInvite.resources:type_name -> rill.admin.v1.ResourceName - 383, // 172: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp - 383, // 173: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp - 383, // 174: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp - 383, // 175: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp - 384, // 176: rill.admin.v1.UserAuthToken.attributes:type_name -> google.protobuf.Struct - 383, // 177: rill.admin.v1.UserAuthToken.created_on:type_name -> google.protobuf.Timestamp - 383, // 178: rill.admin.v1.UserAuthToken.expires_on:type_name -> google.protobuf.Timestamp - 383, // 179: rill.admin.v1.UserAuthToken.used_on:type_name -> google.protobuf.Timestamp - 383, // 180: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp - 383, // 181: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp - 383, // 182: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp - 384, // 183: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct - 228, // 184: rill.admin.v1.MagicAuthToken.resources:type_name -> rill.admin.v1.ResourceName - 382, // 185: rill.admin.v1.MagicAuthToken.metrics_view_filters:type_name -> rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry - 383, // 186: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp - 384, // 187: rill.admin.v1.ReportOptions.resolver_properties:type_name -> google.protobuf.Struct - 385, // 188: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat - 384, // 189: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct - 2, // 190: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType - 351, // 191: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas - 383, // 192: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp - 383, // 193: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp - 383, // 194: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp - 383, // 195: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp - 228, // 196: rill.admin.v1.MemberUsergroup.resources:type_name -> rill.admin.v1.ResourceName - 3, // 197: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType - 4, // 198: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel - 355, // 199: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata - 383, // 200: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp - 383, // 201: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp - 356, // 202: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial - 357, // 203: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded - 358, // 204: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod - 359, // 205: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress - 360, // 206: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed - 362, // 207: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled - 363, // 208: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed - 383, // 209: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp - 383, // 210: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp - 383, // 211: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp - 383, // 212: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp - 361, // 213: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta - 383, // 214: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp - 383, // 215: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp - 383, // 216: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp - 383, // 217: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp - 338, // 218: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry.value:type_name -> rill.admin.v1.ProjectMemberUser - 386, // 219: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression - 0, // 220: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission - 384, // 221: rill.admin.v1.GetReportMetaResponse.DeliveryMeta.user_attrs:type_name -> google.protobuf.Struct - 376, // 222: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMeta - 379, // 223: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetAlertMetaResponse.URLs - 386, // 224: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression - 5, // 225: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest - 7, // 226: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest - 9, // 227: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest - 11, // 228: rill.admin.v1.AdminService.GetOrganizationNameForDomain:input_type -> rill.admin.v1.GetOrganizationNameForDomainRequest - 13, // 229: rill.admin.v1.AdminService.CreateOrganization:input_type -> rill.admin.v1.CreateOrganizationRequest - 15, // 230: rill.admin.v1.AdminService.DeleteOrganization:input_type -> rill.admin.v1.DeleteOrganizationRequest - 17, // 231: rill.admin.v1.AdminService.UpdateOrganization:input_type -> rill.admin.v1.UpdateOrganizationRequest - 19, // 232: rill.admin.v1.AdminService.ListProjectsForOrganization:input_type -> rill.admin.v1.ListProjectsForOrganizationRequest - 33, // 233: rill.admin.v1.AdminService.ListProjectsForOrganizationAndUser:input_type -> rill.admin.v1.ListProjectsForOrganizationAndUserRequest - 35, // 234: rill.admin.v1.AdminService.ListProjectsForFingerprint:input_type -> rill.admin.v1.ListProjectsForFingerprintRequest - 37, // 235: rill.admin.v1.AdminService.GetProject:input_type -> rill.admin.v1.GetProjectRequest - 39, // 236: rill.admin.v1.AdminService.ListProjectsForUserByName:input_type -> rill.admin.v1.ListProjectsForUserByNameRequest - 41, // 237: rill.admin.v1.AdminService.GetProjectByID:input_type -> rill.admin.v1.GetProjectByIDRequest - 43, // 238: rill.admin.v1.AdminService.SearchProjectNames:input_type -> rill.admin.v1.SearchProjectNamesRequest - 76, // 239: rill.admin.v1.AdminService.CreateProject:input_type -> rill.admin.v1.CreateProjectRequest - 78, // 240: rill.admin.v1.AdminService.DeleteProject:input_type -> rill.admin.v1.DeleteProjectRequest - 80, // 241: rill.admin.v1.AdminService.UpdateProject:input_type -> rill.admin.v1.UpdateProjectRequest - 45, // 242: rill.admin.v1.AdminService.GetProjectVariables:input_type -> rill.admin.v1.GetProjectVariablesRequest - 48, // 243: rill.admin.v1.AdminService.UpdateProjectVariables:input_type -> rill.admin.v1.UpdateProjectVariablesRequest - 82, // 244: rill.admin.v1.AdminService.CreateAsset:input_type -> rill.admin.v1.CreateAssetRequest - 84, // 245: rill.admin.v1.AdminService.RedeployProject:input_type -> rill.admin.v1.RedeployProjectRequest - 86, // 246: rill.admin.v1.AdminService.HibernateProject:input_type -> rill.admin.v1.HibernateProjectRequest - 20, // 247: rill.admin.v1.AdminService.ListDeployments:input_type -> rill.admin.v1.ListDeploymentsRequest - 22, // 248: rill.admin.v1.AdminService.CreateDeployment:input_type -> rill.admin.v1.CreateDeploymentRequest - 24, // 249: rill.admin.v1.AdminService.GetDeployment:input_type -> rill.admin.v1.GetDeploymentRequest - 26, // 250: rill.admin.v1.AdminService.StartDeployment:input_type -> rill.admin.v1.StartDeploymentRequest - 28, // 251: rill.admin.v1.AdminService.StopDeployment:input_type -> rill.admin.v1.StopDeploymentRequest - 30, // 252: rill.admin.v1.AdminService.DeleteDeployment:input_type -> rill.admin.v1.DeleteDeploymentRequest - 88, // 253: rill.admin.v1.AdminService.TriggerReconcile:input_type -> rill.admin.v1.TriggerReconcileRequest - 90, // 254: rill.admin.v1.AdminService.TriggerRefreshSources:input_type -> rill.admin.v1.TriggerRefreshSourcesRequest - 92, // 255: rill.admin.v1.AdminService.TriggerRedeploy:input_type -> rill.admin.v1.TriggerRedeployRequest - 94, // 256: rill.admin.v1.AdminService.Provision:input_type -> rill.admin.v1.ProvisionRequest - 96, // 257: rill.admin.v1.AdminService.GetDeploymentConfig:input_type -> rill.admin.v1.GetDeploymentConfigRequest - 98, // 258: rill.admin.v1.AdminService.ListRoles:input_type -> rill.admin.v1.ListRolesRequest - 100, // 259: rill.admin.v1.AdminService.ListOrganizationMemberUsers:input_type -> rill.admin.v1.ListOrganizationMemberUsersRequest - 102, // 260: rill.admin.v1.AdminService.ListOrganizationInvites:input_type -> rill.admin.v1.ListOrganizationInvitesRequest - 104, // 261: rill.admin.v1.AdminService.AddOrganizationMemberUser:input_type -> rill.admin.v1.AddOrganizationMemberUserRequest - 106, // 262: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:input_type -> rill.admin.v1.RemoveOrganizationMemberUserRequest - 108, // 263: rill.admin.v1.AdminService.LeaveOrganization:input_type -> rill.admin.v1.LeaveOrganizationRequest - 110, // 264: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:input_type -> rill.admin.v1.SetOrganizationMemberUserRoleRequest - 112, // 265: rill.admin.v1.AdminService.GetOrganizationMemberUser:input_type -> rill.admin.v1.GetOrganizationMemberUserRequest - 116, // 266: rill.admin.v1.AdminService.ListUsergroupsForProjectAndUser:input_type -> rill.admin.v1.ListUsergroupsForProjectAndUserRequest - 118, // 267: rill.admin.v1.AdminService.UpdateOrganizationMemberUserAttributes:input_type -> rill.admin.v1.UpdateOrganizationMemberUserAttributesRequest - 144, // 268: rill.admin.v1.AdminService.ListProjectMemberUsers:input_type -> rill.admin.v1.ListProjectMemberUsersRequest - 146, // 269: rill.admin.v1.AdminService.ListProjectInvites:input_type -> rill.admin.v1.ListProjectInvitesRequest - 148, // 270: rill.admin.v1.AdminService.AddProjectMemberUser:input_type -> rill.admin.v1.AddProjectMemberUserRequest - 150, // 271: rill.admin.v1.AdminService.RemoveProjectMemberUser:input_type -> rill.admin.v1.RemoveProjectMemberUserRequest - 152, // 272: rill.admin.v1.AdminService.SetProjectMemberUserRole:input_type -> rill.admin.v1.SetProjectMemberUserRoleRequest - 114, // 273: rill.admin.v1.AdminService.GetProjectMemberUser:input_type -> rill.admin.v1.GetProjectMemberUserRequest - 154, // 274: rill.admin.v1.AdminService.ListUsergroupsForOrganizationAndUser:input_type -> rill.admin.v1.ListUsergroupsForOrganizationAndUserRequest - 156, // 275: rill.admin.v1.AdminService.CreateUsergroup:input_type -> rill.admin.v1.CreateUsergroupRequest - 158, // 276: rill.admin.v1.AdminService.GetUsergroup:input_type -> rill.admin.v1.GetUsergroupRequest - 160, // 277: rill.admin.v1.AdminService.UpdateUsergroup:input_type -> rill.admin.v1.UpdateUsergroupRequest - 162, // 278: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:input_type -> rill.admin.v1.ListOrganizationMemberUsergroupsRequest - 164, // 279: rill.admin.v1.AdminService.ListProjectMemberUsergroups:input_type -> rill.admin.v1.ListProjectMemberUsergroupsRequest - 166, // 280: rill.admin.v1.AdminService.DeleteUsergroup:input_type -> rill.admin.v1.DeleteUsergroupRequest - 168, // 281: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:input_type -> rill.admin.v1.AddOrganizationMemberUsergroupRequest - 170, // 282: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:input_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest - 172, // 283: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:input_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupRequest - 174, // 284: rill.admin.v1.AdminService.AddProjectMemberUsergroup:input_type -> rill.admin.v1.AddProjectMemberUsergroupRequest - 176, // 285: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:input_type -> rill.admin.v1.SetProjectMemberUsergroupRoleRequest - 178, // 286: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:input_type -> rill.admin.v1.RemoveProjectMemberUsergroupRequest - 180, // 287: rill.admin.v1.AdminService.AddUsergroupMemberUser:input_type -> rill.admin.v1.AddUsergroupMemberUserRequest - 182, // 288: rill.admin.v1.AdminService.ListUsergroupMemberUsers:input_type -> rill.admin.v1.ListUsergroupMemberUsersRequest - 184, // 289: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:input_type -> rill.admin.v1.RemoveUsergroupMemberUserRequest - 189, // 290: rill.admin.v1.AdminService.GetUser:input_type -> rill.admin.v1.GetUserRequest - 191, // 291: rill.admin.v1.AdminService.GetCurrentUser:input_type -> rill.admin.v1.GetCurrentUserRequest - 193, // 292: rill.admin.v1.AdminService.DeleteUser:input_type -> rill.admin.v1.DeleteUserRequest - 195, // 293: rill.admin.v1.AdminService.ListUserAuthTokens:input_type -> rill.admin.v1.ListUserAuthTokensRequest - 197, // 294: rill.admin.v1.AdminService.IssueUserAuthToken:input_type -> rill.admin.v1.IssueUserAuthTokenRequest - 199, // 295: rill.admin.v1.AdminService.RevokeUserAuthToken:input_type -> rill.admin.v1.RevokeUserAuthTokenRequest - 201, // 296: rill.admin.v1.AdminService.RevokeAllUserAuthTokens:input_type -> rill.admin.v1.RevokeAllUserAuthTokensRequest - 203, // 297: rill.admin.v1.AdminService.RevokeRepresentativeAuthTokens:input_type -> rill.admin.v1.RevokeRepresentativeAuthTokensRequest - 205, // 298: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:input_type -> rill.admin.v1.IssueRepresentativeAuthTokenRequest - 207, // 299: rill.admin.v1.AdminService.RevokeCurrentAuthToken:input_type -> rill.admin.v1.RevokeCurrentAuthTokenRequest - 236, // 300: rill.admin.v1.AdminService.GetGithubRepoStatus:input_type -> rill.admin.v1.GetGithubRepoStatusRequest - 238, // 301: rill.admin.v1.AdminService.GetGithubUserStatus:input_type -> rill.admin.v1.GetGithubUserStatusRequest - 240, // 302: rill.admin.v1.AdminService.ListGithubUserRepos:input_type -> rill.admin.v1.ListGithubUserReposRequest - 242, // 303: rill.admin.v1.AdminService.ConnectProjectToGithub:input_type -> rill.admin.v1.ConnectProjectToGithubRequest - 244, // 304: rill.admin.v1.AdminService.CreateManagedGitRepo:input_type -> rill.admin.v1.CreateManagedGitRepoRequest - 246, // 305: rill.admin.v1.AdminService.GetCloneCredentials:input_type -> rill.admin.v1.GetCloneCredentialsRequest - 248, // 306: rill.admin.v1.AdminService.CreateWhitelistedDomain:input_type -> rill.admin.v1.CreateWhitelistedDomainRequest - 250, // 307: rill.admin.v1.AdminService.RemoveWhitelistedDomain:input_type -> rill.admin.v1.RemoveWhitelistedDomainRequest - 252, // 308: rill.admin.v1.AdminService.ListWhitelistedDomains:input_type -> rill.admin.v1.ListWhitelistedDomainsRequest - 219, // 309: rill.admin.v1.AdminService.SearchUsers:input_type -> rill.admin.v1.SearchUsersRequest - 50, // 310: rill.admin.v1.AdminService.SearchProjectUsers:input_type -> rill.admin.v1.SearchProjectUsersRequest - 120, // 311: rill.admin.v1.AdminService.ListSuperusers:input_type -> rill.admin.v1.ListSuperusersRequest - 52, // 312: rill.admin.v1.AdminService.GetDeploymentCredentials:input_type -> rill.admin.v1.GetDeploymentCredentialsRequest - 54, // 313: rill.admin.v1.AdminService.GetIFrame:input_type -> rill.admin.v1.GetIFrameRequest - 122, // 314: rill.admin.v1.AdminService.SetSuperuser:input_type -> rill.admin.v1.SetSuperuserRequest - 124, // 315: rill.admin.v1.AdminService.SudoGetResource:input_type -> rill.admin.v1.SudoGetResourceRequest - 134, // 316: rill.admin.v1.AdminService.SudoUpdateUserQuotas:input_type -> rill.admin.v1.SudoUpdateUserQuotasRequest - 126, // 317: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:input_type -> rill.admin.v1.SudoUpdateOrganizationQuotasRequest - 128, // 318: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:input_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerRequest - 130, // 319: rill.admin.v1.AdminService.SudoExtendTrial:input_type -> rill.admin.v1.SudoExtendTrialRequest - 132, // 320: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:input_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest - 136, // 321: rill.admin.v1.AdminService.SudoUpdateAnnotations:input_type -> rill.admin.v1.SudoUpdateAnnotationsRequest - 138, // 322: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:input_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenRequest - 140, // 323: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:input_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest - 142, // 324: rill.admin.v1.AdminService.SudoTriggerBillingRepair:input_type -> rill.admin.v1.SudoTriggerBillingRepairRequest - 254, // 325: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:input_type -> rill.admin.v1.CreateProjectWhitelistedDomainRequest - 256, // 326: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:input_type -> rill.admin.v1.RemoveProjectWhitelistedDomainRequest - 258, // 327: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:input_type -> rill.admin.v1.ListProjectWhitelistedDomainsRequest - 56, // 328: rill.admin.v1.AdminService.ListServices:input_type -> rill.admin.v1.ListServicesRequest - 58, // 329: rill.admin.v1.AdminService.ListProjectMemberServices:input_type -> rill.admin.v1.ListProjectMemberServicesRequest - 60, // 330: rill.admin.v1.AdminService.CreateService:input_type -> rill.admin.v1.CreateServiceRequest - 62, // 331: rill.admin.v1.AdminService.GetService:input_type -> rill.admin.v1.GetServiceRequest - 64, // 332: rill.admin.v1.AdminService.UpdateService:input_type -> rill.admin.v1.UpdateServiceRequest - 66, // 333: rill.admin.v1.AdminService.SetOrganizationMemberServiceRole:input_type -> rill.admin.v1.SetOrganizationMemberServiceRoleRequest - 68, // 334: rill.admin.v1.AdminService.RemoveOrganizationMemberService:input_type -> rill.admin.v1.RemoveOrganizationMemberServiceRequest - 72, // 335: rill.admin.v1.AdminService.SetProjectMemberServiceRole:input_type -> rill.admin.v1.SetProjectMemberServiceRoleRequest - 70, // 336: rill.admin.v1.AdminService.RemoveProjectMemberService:input_type -> rill.admin.v1.RemoveProjectMemberServiceRequest - 74, // 337: rill.admin.v1.AdminService.DeleteService:input_type -> rill.admin.v1.DeleteServiceRequest - 225, // 338: rill.admin.v1.AdminService.ListServiceAuthTokens:input_type -> rill.admin.v1.ListServiceAuthTokensRequest - 223, // 339: rill.admin.v1.AdminService.IssueServiceAuthToken:input_type -> rill.admin.v1.IssueServiceAuthTokenRequest - 221, // 340: rill.admin.v1.AdminService.RevokeServiceAuthToken:input_type -> rill.admin.v1.RevokeServiceAuthTokenRequest - 227, // 341: rill.admin.v1.AdminService.IssueMagicAuthToken:input_type -> rill.admin.v1.IssueMagicAuthTokenRequest - 230, // 342: rill.admin.v1.AdminService.ListMagicAuthTokens:input_type -> rill.admin.v1.ListMagicAuthTokensRequest - 232, // 343: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:input_type -> rill.admin.v1.GetCurrentMagicAuthTokenRequest - 234, // 344: rill.admin.v1.AdminService.RevokeMagicAuthToken:input_type -> rill.admin.v1.RevokeMagicAuthTokenRequest - 187, // 345: rill.admin.v1.AdminService.UpdateUserPreferences:input_type -> rill.admin.v1.UpdateUserPreferencesRequest - 209, // 346: rill.admin.v1.AdminService.ListBookmarks:input_type -> rill.admin.v1.ListBookmarksRequest - 211, // 347: rill.admin.v1.AdminService.GetBookmark:input_type -> rill.admin.v1.GetBookmarkRequest - 213, // 348: rill.admin.v1.AdminService.CreateBookmark:input_type -> rill.admin.v1.CreateBookmarkRequest - 215, // 349: rill.admin.v1.AdminService.UpdateBookmark:input_type -> rill.admin.v1.UpdateBookmarkRequest - 217, // 350: rill.admin.v1.AdminService.RemoveBookmark:input_type -> rill.admin.v1.RemoveBookmarkRequest - 260, // 351: rill.admin.v1.AdminService.GetRepoMeta:input_type -> rill.admin.v1.GetRepoMetaRequest - 262, // 352: rill.admin.v1.AdminService.PullVirtualRepo:input_type -> rill.admin.v1.PullVirtualRepoRequest - 264, // 353: rill.admin.v1.AdminService.GetVirtualFile:input_type -> rill.admin.v1.GetVirtualFileRequest - 266, // 354: rill.admin.v1.AdminService.DeleteVirtualFile:input_type -> rill.admin.v1.DeleteVirtualFileRequest - 268, // 355: rill.admin.v1.AdminService.GetReportMeta:input_type -> rill.admin.v1.GetReportMetaRequest - 270, // 356: rill.admin.v1.AdminService.GetAlertMeta:input_type -> rill.admin.v1.GetAlertMetaRequest - 272, // 357: rill.admin.v1.AdminService.CreateReport:input_type -> rill.admin.v1.CreateReportRequest - 274, // 358: rill.admin.v1.AdminService.EditReport:input_type -> rill.admin.v1.EditReportRequest - 276, // 359: rill.admin.v1.AdminService.UnsubscribeReport:input_type -> rill.admin.v1.UnsubscribeReportRequest - 278, // 360: rill.admin.v1.AdminService.DeleteReport:input_type -> rill.admin.v1.DeleteReportRequest - 280, // 361: rill.admin.v1.AdminService.TriggerReport:input_type -> rill.admin.v1.TriggerReportRequest - 282, // 362: rill.admin.v1.AdminService.GenerateReportYAML:input_type -> rill.admin.v1.GenerateReportYAMLRequest - 284, // 363: rill.admin.v1.AdminService.CreateAlert:input_type -> rill.admin.v1.CreateAlertRequest - 286, // 364: rill.admin.v1.AdminService.EditAlert:input_type -> rill.admin.v1.EditAlertRequest - 288, // 365: rill.admin.v1.AdminService.UnsubscribeAlert:input_type -> rill.admin.v1.UnsubscribeAlertRequest - 290, // 366: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest - 292, // 367: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest - 294, // 368: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest - 296, // 369: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest - 298, // 370: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest - 300, // 371: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest - 302, // 372: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest - 304, // 373: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest - 306, // 374: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest - 308, // 375: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest - 312, // 376: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest - 314, // 377: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest - 316, // 378: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest - 318, // 379: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest - 320, // 380: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest - 6, // 381: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse - 8, // 382: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse - 10, // 383: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse - 12, // 384: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse - 14, // 385: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse - 16, // 386: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse - 18, // 387: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse - 32, // 388: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse - 34, // 389: rill.admin.v1.AdminService.ListProjectsForOrganizationAndUser:output_type -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse - 36, // 390: rill.admin.v1.AdminService.ListProjectsForFingerprint:output_type -> rill.admin.v1.ListProjectsForFingerprintResponse - 38, // 391: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse - 40, // 392: rill.admin.v1.AdminService.ListProjectsForUserByName:output_type -> rill.admin.v1.ListProjectsForUserByNameResponse - 42, // 393: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse - 44, // 394: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse - 77, // 395: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse - 79, // 396: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse - 81, // 397: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse - 46, // 398: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse - 49, // 399: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse - 83, // 400: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse - 85, // 401: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse - 87, // 402: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse - 21, // 403: rill.admin.v1.AdminService.ListDeployments:output_type -> rill.admin.v1.ListDeploymentsResponse - 23, // 404: rill.admin.v1.AdminService.CreateDeployment:output_type -> rill.admin.v1.CreateDeploymentResponse - 25, // 405: rill.admin.v1.AdminService.GetDeployment:output_type -> rill.admin.v1.GetDeploymentResponse - 27, // 406: rill.admin.v1.AdminService.StartDeployment:output_type -> rill.admin.v1.StartDeploymentResponse - 29, // 407: rill.admin.v1.AdminService.StopDeployment:output_type -> rill.admin.v1.StopDeploymentResponse - 31, // 408: rill.admin.v1.AdminService.DeleteDeployment:output_type -> rill.admin.v1.DeleteDeploymentResponse - 89, // 409: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse - 91, // 410: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse - 93, // 411: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse - 95, // 412: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse - 97, // 413: rill.admin.v1.AdminService.GetDeploymentConfig:output_type -> rill.admin.v1.GetDeploymentConfigResponse - 99, // 414: rill.admin.v1.AdminService.ListRoles:output_type -> rill.admin.v1.ListRolesResponse - 101, // 415: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse - 103, // 416: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse - 105, // 417: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse - 107, // 418: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse - 109, // 419: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse - 111, // 420: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse - 113, // 421: rill.admin.v1.AdminService.GetOrganizationMemberUser:output_type -> rill.admin.v1.GetOrganizationMemberUserResponse - 117, // 422: rill.admin.v1.AdminService.ListUsergroupsForProjectAndUser:output_type -> rill.admin.v1.ListUsergroupsForProjectAndUserResponse - 119, // 423: rill.admin.v1.AdminService.UpdateOrganizationMemberUserAttributes:output_type -> rill.admin.v1.UpdateOrganizationMemberUserAttributesResponse - 145, // 424: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse - 147, // 425: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse - 149, // 426: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse - 151, // 427: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse - 153, // 428: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse - 115, // 429: rill.admin.v1.AdminService.GetProjectMemberUser:output_type -> rill.admin.v1.GetProjectMemberUserResponse - 155, // 430: rill.admin.v1.AdminService.ListUsergroupsForOrganizationAndUser:output_type -> rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse - 157, // 431: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse - 159, // 432: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse - 161, // 433: rill.admin.v1.AdminService.UpdateUsergroup:output_type -> rill.admin.v1.UpdateUsergroupResponse - 163, // 434: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse - 165, // 435: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse - 167, // 436: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse - 169, // 437: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse - 171, // 438: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse - 173, // 439: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse - 175, // 440: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse - 177, // 441: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse - 179, // 442: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse - 181, // 443: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse - 183, // 444: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse - 185, // 445: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse - 190, // 446: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse - 192, // 447: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse - 194, // 448: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse - 196, // 449: rill.admin.v1.AdminService.ListUserAuthTokens:output_type -> rill.admin.v1.ListUserAuthTokensResponse - 198, // 450: rill.admin.v1.AdminService.IssueUserAuthToken:output_type -> rill.admin.v1.IssueUserAuthTokenResponse - 200, // 451: rill.admin.v1.AdminService.RevokeUserAuthToken:output_type -> rill.admin.v1.RevokeUserAuthTokenResponse - 202, // 452: rill.admin.v1.AdminService.RevokeAllUserAuthTokens:output_type -> rill.admin.v1.RevokeAllUserAuthTokensResponse - 204, // 453: rill.admin.v1.AdminService.RevokeRepresentativeAuthTokens:output_type -> rill.admin.v1.RevokeRepresentativeAuthTokensResponse - 206, // 454: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse - 208, // 455: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse - 237, // 456: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse - 239, // 457: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse - 241, // 458: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse - 243, // 459: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse - 245, // 460: rill.admin.v1.AdminService.CreateManagedGitRepo:output_type -> rill.admin.v1.CreateManagedGitRepoResponse - 247, // 461: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse - 249, // 462: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse - 251, // 463: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse - 253, // 464: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse - 220, // 465: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse - 51, // 466: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse - 121, // 467: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse - 53, // 468: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse - 55, // 469: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse - 123, // 470: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse - 125, // 471: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse - 135, // 472: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse - 127, // 473: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse - 129, // 474: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse - 131, // 475: rill.admin.v1.AdminService.SudoExtendTrial:output_type -> rill.admin.v1.SudoExtendTrialResponse - 133, // 476: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse - 137, // 477: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse - 139, // 478: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse - 141, // 479: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse - 143, // 480: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse - 255, // 481: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse - 257, // 482: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse - 259, // 483: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse - 57, // 484: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse - 59, // 485: rill.admin.v1.AdminService.ListProjectMemberServices:output_type -> rill.admin.v1.ListProjectMemberServicesResponse - 61, // 486: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse - 63, // 487: rill.admin.v1.AdminService.GetService:output_type -> rill.admin.v1.GetServiceResponse - 65, // 488: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse - 67, // 489: rill.admin.v1.AdminService.SetOrganizationMemberServiceRole:output_type -> rill.admin.v1.SetOrganizationMemberServiceRoleResponse - 69, // 490: rill.admin.v1.AdminService.RemoveOrganizationMemberService:output_type -> rill.admin.v1.RemoveOrganizationMemberServiceResponse - 73, // 491: rill.admin.v1.AdminService.SetProjectMemberServiceRole:output_type -> rill.admin.v1.SetProjectMemberServiceRoleResponse - 71, // 492: rill.admin.v1.AdminService.RemoveProjectMemberService:output_type -> rill.admin.v1.RemoveProjectMemberServiceResponse - 75, // 493: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse - 226, // 494: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse - 224, // 495: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse - 222, // 496: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse - 229, // 497: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse - 231, // 498: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse - 233, // 499: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse - 235, // 500: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse - 188, // 501: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse - 210, // 502: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse - 212, // 503: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse - 214, // 504: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse - 216, // 505: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse - 218, // 506: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse - 261, // 507: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse - 263, // 508: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse - 265, // 509: rill.admin.v1.AdminService.GetVirtualFile:output_type -> rill.admin.v1.GetVirtualFileResponse - 267, // 510: rill.admin.v1.AdminService.DeleteVirtualFile:output_type -> rill.admin.v1.DeleteVirtualFileResponse - 269, // 511: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse - 271, // 512: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse - 273, // 513: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse - 275, // 514: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse - 277, // 515: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse - 279, // 516: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse - 281, // 517: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse - 283, // 518: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse - 285, // 519: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse - 287, // 520: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse - 289, // 521: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse - 291, // 522: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse - 293, // 523: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse - 295, // 524: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse - 297, // 525: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse - 299, // 526: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse - 301, // 527: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse - 303, // 528: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse - 305, // 529: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse - 307, // 530: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse - 309, // 531: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse - 313, // 532: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse - 315, // 533: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse - 317, // 534: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse - 319, // 535: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse - 321, // 536: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse - 381, // [381:537] is the sub-list for method output_type - 225, // [225:381] is the sub-list for method input_type - 225, // [225:225] is the sub-list for extension type_name - 225, // [225:225] is the sub-list for extension extendee - 0, // [0:225] is the sub-list for field type_name + 325, // 26: rill.admin.v1.SearchProjectUsersResponse.users:type_name -> rill.admin.v1.User + 390, // 27: rill.admin.v1.GetDeploymentCredentialsRequest.attributes:type_name -> google.protobuf.Struct + 390, // 28: rill.admin.v1.GetIFrameRequest.attributes:type_name -> google.protobuf.Struct + 374, // 29: rill.admin.v1.GetIFrameRequest.query:type_name -> rill.admin.v1.GetIFrameRequest.QueryEntry + 327, // 30: rill.admin.v1.ListServicesResponse.services:type_name -> rill.admin.v1.OrganizationMemberService + 328, // 31: rill.admin.v1.ListProjectMemberServicesResponse.services:type_name -> rill.admin.v1.ProjectMemberService + 390, // 32: rill.admin.v1.CreateServiceRequest.attributes:type_name -> google.protobuf.Struct + 326, // 33: rill.admin.v1.CreateServiceResponse.service:type_name -> rill.admin.v1.Service + 327, // 34: rill.admin.v1.GetServiceResponse.service:type_name -> rill.admin.v1.OrganizationMemberService + 328, // 35: rill.admin.v1.GetServiceResponse.project_memberships:type_name -> rill.admin.v1.ProjectMemberService + 390, // 36: rill.admin.v1.UpdateServiceRequest.attributes:type_name -> google.protobuf.Struct + 326, // 37: rill.admin.v1.UpdateServiceResponse.service:type_name -> rill.admin.v1.Service + 326, // 38: rill.admin.v1.DeleteServiceResponse.service:type_name -> rill.admin.v1.Service + 333, // 39: rill.admin.v1.CreateProjectResponse.project:type_name -> rill.admin.v1.Project + 333, // 40: rill.admin.v1.UpdateProjectResponse.project:type_name -> rill.admin.v1.Project + 375, // 41: rill.admin.v1.CreateAssetResponse.signing_headers:type_name -> rill.admin.v1.CreateAssetResponse.SigningHeadersEntry + 390, // 42: rill.admin.v1.ProvisionRequest.args:type_name -> google.protobuf.Struct + 335, // 43: rill.admin.v1.ProvisionResponse.resource:type_name -> rill.admin.v1.ProvisionerResource + 376, // 44: rill.admin.v1.GetDeploymentConfigResponse.variables:type_name -> rill.admin.v1.GetDeploymentConfigResponse.VariablesEntry + 377, // 45: rill.admin.v1.GetDeploymentConfigResponse.annotations:type_name -> rill.admin.v1.GetDeploymentConfigResponse.AnnotationsEntry + 389, // 46: rill.admin.v1.GetDeploymentConfigResponse.updated_on:type_name -> google.protobuf.Timestamp + 390, // 47: rill.admin.v1.GetDeploymentConfigResponse.duckdb_connector_config:type_name -> google.protobuf.Struct + 338, // 48: rill.admin.v1.ListRolesResponse.organization_roles:type_name -> rill.admin.v1.OrganizationRole + 339, // 49: rill.admin.v1.ListRolesResponse.project_roles:type_name -> rill.admin.v1.ProjectRole + 340, // 50: rill.admin.v1.ListOrganizationMemberUsersResponse.members:type_name -> rill.admin.v1.OrganizationMemberUser + 343, // 51: rill.admin.v1.ListOrganizationInvitesResponse.invites:type_name -> rill.admin.v1.OrganizationInvite + 340, // 52: rill.admin.v1.GetOrganizationMemberUserResponse.member:type_name -> rill.admin.v1.OrganizationMemberUser + 341, // 53: rill.admin.v1.GetProjectMemberUserResponse.member:type_name -> rill.admin.v1.ProjectMemberUser + 356, // 54: rill.admin.v1.ListUsergroupsForProjectAndUserResponse.usergroups:type_name -> rill.admin.v1.MemberUsergroup + 390, // 55: rill.admin.v1.UpdateOrganizationMemberUserAttributesRequest.attributes:type_name -> google.protobuf.Struct + 325, // 56: rill.admin.v1.ListSuperusersResponse.users:type_name -> rill.admin.v1.User + 325, // 57: rill.admin.v1.SudoGetResourceResponse.user:type_name -> rill.admin.v1.User + 329, // 58: rill.admin.v1.SudoGetResourceResponse.org:type_name -> rill.admin.v1.Organization + 333, // 59: rill.admin.v1.SudoGetResourceResponse.project:type_name -> rill.admin.v1.Project + 334, // 60: rill.admin.v1.SudoGetResourceResponse.deployment:type_name -> rill.admin.v1.Deployment + 334, // 61: rill.admin.v1.SudoGetResourceResponse.instance:type_name -> rill.admin.v1.Deployment + 329, // 62: rill.admin.v1.SudoUpdateOrganizationQuotasResponse.organization:type_name -> rill.admin.v1.Organization + 329, // 63: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.organization:type_name -> rill.admin.v1.Organization + 330, // 64: rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse.subscription:type_name -> rill.admin.v1.Subscription + 389, // 65: rill.admin.v1.SudoExtendTrialResponse.trial_end:type_name -> google.protobuf.Timestamp + 300, // 66: rill.admin.v1.SudoAddCreditsResponse.credit_info:type_name -> rill.admin.v1.BillingCreditInfo + 329, // 67: rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse.organization:type_name -> rill.admin.v1.Organization + 325, // 68: rill.admin.v1.SudoUpdateUserQuotasResponse.user:type_name -> rill.admin.v1.User + 378, // 69: rill.admin.v1.SudoUpdateAnnotationsRequest.annotations:type_name -> rill.admin.v1.SudoUpdateAnnotationsRequest.AnnotationsEntry + 333, // 70: rill.admin.v1.SudoUpdateAnnotationsResponse.project:type_name -> rill.admin.v1.Project + 3, // 71: rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest.type:type_name -> rill.admin.v1.BillingIssueType + 341, // 72: rill.admin.v1.ListProjectMemberUsersResponse.members:type_name -> rill.admin.v1.ProjectMemberUser + 344, // 73: rill.admin.v1.ListProjectInvitesResponse.invites:type_name -> rill.admin.v1.ProjectInvite + 230, // 74: rill.admin.v1.AddProjectMemberUserRequest.resources:type_name -> rill.admin.v1.ResourceName + 230, // 75: rill.admin.v1.SetProjectMemberUserRoleRequest.resources:type_name -> rill.admin.v1.ResourceName + 355, // 76: rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse.usergroups:type_name -> rill.admin.v1.Usergroup + 355, // 77: rill.admin.v1.CreateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup + 355, // 78: rill.admin.v1.GetUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup + 355, // 79: rill.admin.v1.UpdateUsergroupResponse.usergroup:type_name -> rill.admin.v1.Usergroup + 356, // 80: rill.admin.v1.ListOrganizationMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup + 356, // 81: rill.admin.v1.ListProjectMemberUsergroupsResponse.members:type_name -> rill.admin.v1.MemberUsergroup + 230, // 82: rill.admin.v1.AddProjectMemberUsergroupRequest.resources:type_name -> rill.admin.v1.ResourceName + 230, // 83: rill.admin.v1.SetProjectMemberUsergroupRoleRequest.resources:type_name -> rill.admin.v1.ResourceName + 342, // 84: rill.admin.v1.ListUsergroupMemberUsersResponse.members:type_name -> rill.admin.v1.UsergroupMemberUser + 188, // 85: rill.admin.v1.UpdateUserPreferencesRequest.preferences:type_name -> rill.admin.v1.UserPreferences + 188, // 86: rill.admin.v1.UpdateUserPreferencesResponse.preferences:type_name -> rill.admin.v1.UserPreferences + 325, // 87: rill.admin.v1.GetUserResponse.user:type_name -> rill.admin.v1.User + 325, // 88: rill.admin.v1.GetCurrentUserResponse.user:type_name -> rill.admin.v1.User + 188, // 89: rill.admin.v1.GetCurrentUserResponse.preferences:type_name -> rill.admin.v1.UserPreferences + 348, // 90: rill.admin.v1.ListUserAuthTokensResponse.tokens:type_name -> rill.admin.v1.UserAuthToken + 346, // 91: rill.admin.v1.ListBookmarksResponse.bookmarks:type_name -> rill.admin.v1.Bookmark + 346, // 92: rill.admin.v1.GetBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark + 346, // 93: rill.admin.v1.CreateBookmarkResponse.bookmark:type_name -> rill.admin.v1.Bookmark + 325, // 94: rill.admin.v1.SearchUsersResponse.users:type_name -> rill.admin.v1.User + 347, // 95: rill.admin.v1.ListServiceAuthTokensResponse.tokens:type_name -> rill.admin.v1.ServiceToken + 379, // 96: rill.admin.v1.IssueMagicAuthTokenRequest.metrics_view_filters:type_name -> rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry + 230, // 97: rill.admin.v1.IssueMagicAuthTokenRequest.resources:type_name -> rill.admin.v1.ResourceName + 349, // 98: rill.admin.v1.ListMagicAuthTokensResponse.tokens:type_name -> rill.admin.v1.MagicAuthToken + 349, // 99: rill.admin.v1.GetCurrentMagicAuthTokenResponse.token:type_name -> rill.admin.v1.MagicAuthToken + 0, // 100: rill.admin.v1.GetGithubUserStatusResponse.user_installation_permission:type_name -> rill.admin.v1.GithubPermission + 380, // 101: rill.admin.v1.GetGithubUserStatusResponse.organization_installation_permissions:type_name -> rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry + 381, // 102: rill.admin.v1.ListGithubUserReposResponse.repos:type_name -> rill.admin.v1.ListGithubUserReposResponse.Repo + 389, // 103: rill.admin.v1.CreateManagedGitRepoResponse.password_expires_at:type_name -> google.protobuf.Timestamp + 389, // 104: rill.admin.v1.GetCloneCredentialsResponse.git_password_expires_at:type_name -> google.protobuf.Timestamp + 345, // 105: rill.admin.v1.ListWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain + 345, // 106: rill.admin.v1.ListProjectWhitelistedDomainsResponse.domains:type_name -> rill.admin.v1.WhitelistedDomain + 389, // 107: rill.admin.v1.GetRepoMetaResponse.expires_on:type_name -> google.protobuf.Timestamp + 389, // 108: rill.admin.v1.GetRepoMetaResponse.last_updated_on:type_name -> google.protobuf.Timestamp + 389, // 109: rill.admin.v1.GetRepoMetaResponse.archive_created_on:type_name -> google.protobuf.Timestamp + 350, // 110: rill.admin.v1.PullVirtualRepoResponse.files:type_name -> rill.admin.v1.VirtualFile + 350, // 111: rill.admin.v1.GetVirtualFileResponse.file:type_name -> rill.admin.v1.VirtualFile + 389, // 112: rill.admin.v1.GetReportMetaRequest.execution_time:type_name -> google.protobuf.Timestamp + 230, // 113: rill.admin.v1.GetReportMetaRequest.resources:type_name -> rill.admin.v1.ResourceName + 383, // 114: rill.admin.v1.GetReportMetaResponse.delivery_meta:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry + 384, // 115: rill.admin.v1.GetAlertMetaRequest.annotations:type_name -> rill.admin.v1.GetAlertMetaRequest.AnnotationsEntry + 386, // 116: rill.admin.v1.GetAlertMetaResponse.recipient_urls:type_name -> rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry + 390, // 117: rill.admin.v1.GetAlertMetaResponse.query_for_attributes:type_name -> google.protobuf.Struct + 351, // 118: rill.admin.v1.CreateReportRequest.options:type_name -> rill.admin.v1.ReportOptions + 351, // 119: rill.admin.v1.EditReportRequest.options:type_name -> rill.admin.v1.ReportOptions + 351, // 120: rill.admin.v1.GenerateReportYAMLRequest.options:type_name -> rill.admin.v1.ReportOptions + 352, // 121: rill.admin.v1.CreateAlertRequest.options:type_name -> rill.admin.v1.AlertOptions + 352, // 122: rill.admin.v1.EditAlertRequest.options:type_name -> rill.admin.v1.AlertOptions + 352, // 123: rill.admin.v1.GenerateAlertYAMLRequest.options:type_name -> rill.admin.v1.AlertOptions + 329, // 124: rill.admin.v1.GetBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization + 330, // 125: rill.admin.v1.GetBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription + 300, // 126: rill.admin.v1.GetBillingSubscriptionResponse.credit_info:type_name -> rill.admin.v1.BillingCreditInfo + 389, // 127: rill.admin.v1.BillingCreditInfo.credit_expiry:type_name -> google.protobuf.Timestamp + 329, // 128: rill.admin.v1.UpdateBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization + 330, // 129: rill.admin.v1.UpdateBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription + 329, // 130: rill.admin.v1.RenewBillingSubscriptionResponse.organization:type_name -> rill.admin.v1.Organization + 330, // 131: rill.admin.v1.RenewBillingSubscriptionResponse.subscription:type_name -> rill.admin.v1.Subscription + 353, // 132: rill.admin.v1.ListPublicBillingPlansResponse.plans:type_name -> rill.admin.v1.BillingPlan + 390, // 133: rill.admin.v1.TelemetryRequest.event:type_name -> google.protobuf.Struct + 357, // 134: rill.admin.v1.ListOrganizationBillingIssuesResponse.issues:type_name -> rill.admin.v1.BillingIssue + 331, // 135: rill.admin.v1.User.quotas:type_name -> rill.admin.v1.UserQuotas + 389, // 136: rill.admin.v1.User.created_on:type_name -> google.protobuf.Timestamp + 389, // 137: rill.admin.v1.User.updated_on:type_name -> google.protobuf.Timestamp + 390, // 138: rill.admin.v1.Service.attributes:type_name -> google.protobuf.Struct + 389, // 139: rill.admin.v1.Service.created_on:type_name -> google.protobuf.Timestamp + 389, // 140: rill.admin.v1.Service.updated_on:type_name -> google.protobuf.Timestamp + 390, // 141: rill.admin.v1.OrganizationMemberService.attributes:type_name -> google.protobuf.Struct + 389, // 142: rill.admin.v1.OrganizationMemberService.created_on:type_name -> google.protobuf.Timestamp + 389, // 143: rill.admin.v1.OrganizationMemberService.updated_on:type_name -> google.protobuf.Timestamp + 390, // 144: rill.admin.v1.ProjectMemberService.attributes:type_name -> google.protobuf.Struct + 389, // 145: rill.admin.v1.ProjectMemberService.created_on:type_name -> google.protobuf.Timestamp + 389, // 146: rill.admin.v1.ProjectMemberService.updated_on:type_name -> google.protobuf.Timestamp + 332, // 147: rill.admin.v1.Organization.quotas:type_name -> rill.admin.v1.OrganizationQuotas + 389, // 148: rill.admin.v1.Organization.created_on:type_name -> google.protobuf.Timestamp + 389, // 149: rill.admin.v1.Organization.updated_on:type_name -> google.protobuf.Timestamp + 353, // 150: rill.admin.v1.Subscription.plan:type_name -> rill.admin.v1.BillingPlan + 389, // 151: rill.admin.v1.Subscription.start_date:type_name -> google.protobuf.Timestamp + 389, // 152: rill.admin.v1.Subscription.end_date:type_name -> google.protobuf.Timestamp + 389, // 153: rill.admin.v1.Subscription.current_billing_cycle_start_date:type_name -> google.protobuf.Timestamp + 389, // 154: rill.admin.v1.Subscription.current_billing_cycle_end_date:type_name -> google.protobuf.Timestamp + 389, // 155: rill.admin.v1.Subscription.trial_end_date:type_name -> google.protobuf.Timestamp + 387, // 156: rill.admin.v1.Project.annotations:type_name -> rill.admin.v1.Project.AnnotationsEntry + 389, // 157: rill.admin.v1.Project.created_on:type_name -> google.protobuf.Timestamp + 389, // 158: rill.admin.v1.Project.updated_on:type_name -> google.protobuf.Timestamp + 1, // 159: rill.admin.v1.Deployment.status:type_name -> rill.admin.v1.DeploymentStatus + 389, // 160: rill.admin.v1.Deployment.created_on:type_name -> google.protobuf.Timestamp + 389, // 161: rill.admin.v1.Deployment.updated_on:type_name -> google.protobuf.Timestamp + 390, // 162: rill.admin.v1.ProvisionerResource.args:type_name -> google.protobuf.Struct + 390, // 163: rill.admin.v1.ProvisionerResource.config:type_name -> google.protobuf.Struct + 336, // 164: rill.admin.v1.OrganizationRole.permissions:type_name -> rill.admin.v1.OrganizationPermissions + 337, // 165: rill.admin.v1.ProjectRole.permissions:type_name -> rill.admin.v1.ProjectPermissions + 390, // 166: rill.admin.v1.OrganizationMemberUser.attributes:type_name -> google.protobuf.Struct + 389, // 167: rill.admin.v1.OrganizationMemberUser.created_on:type_name -> google.protobuf.Timestamp + 389, // 168: rill.admin.v1.OrganizationMemberUser.updated_on:type_name -> google.protobuf.Timestamp + 389, // 169: rill.admin.v1.ProjectMemberUser.created_on:type_name -> google.protobuf.Timestamp + 389, // 170: rill.admin.v1.ProjectMemberUser.updated_on:type_name -> google.protobuf.Timestamp + 230, // 171: rill.admin.v1.ProjectMemberUser.resources:type_name -> rill.admin.v1.ResourceName + 389, // 172: rill.admin.v1.UsergroupMemberUser.created_on:type_name -> google.protobuf.Timestamp + 389, // 173: rill.admin.v1.UsergroupMemberUser.updated_on:type_name -> google.protobuf.Timestamp + 230, // 174: rill.admin.v1.ProjectInvite.resources:type_name -> rill.admin.v1.ResourceName + 389, // 175: rill.admin.v1.Bookmark.created_on:type_name -> google.protobuf.Timestamp + 389, // 176: rill.admin.v1.Bookmark.updated_on:type_name -> google.protobuf.Timestamp + 389, // 177: rill.admin.v1.ServiceToken.created_on:type_name -> google.protobuf.Timestamp + 389, // 178: rill.admin.v1.ServiceToken.expires_on:type_name -> google.protobuf.Timestamp + 390, // 179: rill.admin.v1.UserAuthToken.attributes:type_name -> google.protobuf.Struct + 389, // 180: rill.admin.v1.UserAuthToken.created_on:type_name -> google.protobuf.Timestamp + 389, // 181: rill.admin.v1.UserAuthToken.expires_on:type_name -> google.protobuf.Timestamp + 389, // 182: rill.admin.v1.UserAuthToken.used_on:type_name -> google.protobuf.Timestamp + 389, // 183: rill.admin.v1.MagicAuthToken.created_on:type_name -> google.protobuf.Timestamp + 389, // 184: rill.admin.v1.MagicAuthToken.expires_on:type_name -> google.protobuf.Timestamp + 389, // 185: rill.admin.v1.MagicAuthToken.used_on:type_name -> google.protobuf.Timestamp + 390, // 186: rill.admin.v1.MagicAuthToken.attributes:type_name -> google.protobuf.Struct + 230, // 187: rill.admin.v1.MagicAuthToken.resources:type_name -> rill.admin.v1.ResourceName + 388, // 188: rill.admin.v1.MagicAuthToken.metrics_view_filters:type_name -> rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry + 389, // 189: rill.admin.v1.VirtualFile.updated_on:type_name -> google.protobuf.Timestamp + 390, // 190: rill.admin.v1.ReportOptions.resolver_properties:type_name -> google.protobuf.Struct + 391, // 191: rill.admin.v1.ReportOptions.export_format:type_name -> rill.runtime.v1.ExportFormat + 390, // 192: rill.admin.v1.AlertOptions.resolver_properties:type_name -> google.protobuf.Struct + 2, // 193: rill.admin.v1.BillingPlan.plan_type:type_name -> rill.admin.v1.BillingPlanType + 354, // 194: rill.admin.v1.BillingPlan.quotas:type_name -> rill.admin.v1.Quotas + 389, // 195: rill.admin.v1.Usergroup.created_on:type_name -> google.protobuf.Timestamp + 389, // 196: rill.admin.v1.Usergroup.updated_on:type_name -> google.protobuf.Timestamp + 389, // 197: rill.admin.v1.MemberUsergroup.created_on:type_name -> google.protobuf.Timestamp + 389, // 198: rill.admin.v1.MemberUsergroup.updated_on:type_name -> google.protobuf.Timestamp + 230, // 199: rill.admin.v1.MemberUsergroup.resources:type_name -> rill.admin.v1.ResourceName + 3, // 200: rill.admin.v1.BillingIssue.type:type_name -> rill.admin.v1.BillingIssueType + 4, // 201: rill.admin.v1.BillingIssue.level:type_name -> rill.admin.v1.BillingIssueLevel + 358, // 202: rill.admin.v1.BillingIssue.metadata:type_name -> rill.admin.v1.BillingIssueMetadata + 389, // 203: rill.admin.v1.BillingIssue.event_time:type_name -> google.protobuf.Timestamp + 389, // 204: rill.admin.v1.BillingIssue.created_on:type_name -> google.protobuf.Timestamp + 359, // 205: rill.admin.v1.BillingIssueMetadata.on_trial:type_name -> rill.admin.v1.BillingIssueMetadataOnTrial + 360, // 206: rill.admin.v1.BillingIssueMetadata.trial_ended:type_name -> rill.admin.v1.BillingIssueMetadataTrialEnded + 361, // 207: rill.admin.v1.BillingIssueMetadata.no_payment_method:type_name -> rill.admin.v1.BillingIssueMetadataNoPaymentMethod + 362, // 208: rill.admin.v1.BillingIssueMetadata.no_billable_address:type_name -> rill.admin.v1.BillingIssueMetadataNoBillableAddress + 363, // 209: rill.admin.v1.BillingIssueMetadata.payment_failed:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailed + 365, // 210: rill.admin.v1.BillingIssueMetadata.subscription_cancelled:type_name -> rill.admin.v1.BillingIssueMetadataSubscriptionCancelled + 366, // 211: rill.admin.v1.BillingIssueMetadata.never_subscribed:type_name -> rill.admin.v1.BillingIssueMetadataNeverSubscribed + 367, // 212: rill.admin.v1.BillingIssueMetadata.credit_low:type_name -> rill.admin.v1.BillingIssueMetadataCreditLow + 368, // 213: rill.admin.v1.BillingIssueMetadata.credit_critical:type_name -> rill.admin.v1.BillingIssueMetadataCreditCritical + 369, // 214: rill.admin.v1.BillingIssueMetadata.credit_exhausted:type_name -> rill.admin.v1.BillingIssueMetadataCreditExhausted + 389, // 215: rill.admin.v1.BillingIssueMetadataOnTrial.end_date:type_name -> google.protobuf.Timestamp + 389, // 216: rill.admin.v1.BillingIssueMetadataOnTrial.grace_period_end_date:type_name -> google.protobuf.Timestamp + 389, // 217: rill.admin.v1.BillingIssueMetadataTrialEnded.end_date:type_name -> google.protobuf.Timestamp + 389, // 218: rill.admin.v1.BillingIssueMetadataTrialEnded.grace_period_end_date:type_name -> google.protobuf.Timestamp + 364, // 219: rill.admin.v1.BillingIssueMetadataPaymentFailed.invoices:type_name -> rill.admin.v1.BillingIssueMetadataPaymentFailedMeta + 389, // 220: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.due_date:type_name -> google.protobuf.Timestamp + 389, // 221: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.failed_on:type_name -> google.protobuf.Timestamp + 389, // 222: rill.admin.v1.BillingIssueMetadataPaymentFailedMeta.grace_period_end_date:type_name -> google.protobuf.Timestamp + 389, // 223: rill.admin.v1.BillingIssueMetadataSubscriptionCancelled.end_date:type_name -> google.protobuf.Timestamp + 389, // 224: rill.admin.v1.BillingIssueMetadataCreditLow.credit_expiry:type_name -> google.protobuf.Timestamp + 389, // 225: rill.admin.v1.BillingIssueMetadataCreditCritical.credit_expiry:type_name -> google.protobuf.Timestamp + 389, // 226: rill.admin.v1.BillingIssueMetadataCreditExhausted.credit_expiry:type_name -> google.protobuf.Timestamp + 389, // 227: rill.admin.v1.BillingIssueMetadataCreditExhausted.exhausted_on:type_name -> google.protobuf.Timestamp + 341, // 228: rill.admin.v1.ListProjectsForOrganizationAndUserResponse.ProjectRolesEntry.value:type_name -> rill.admin.v1.ProjectMemberUser + 392, // 229: rill.admin.v1.IssueMagicAuthTokenRequest.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression + 0, // 230: rill.admin.v1.GetGithubUserStatusResponse.OrganizationInstallationPermissionsEntry.value:type_name -> rill.admin.v1.GithubPermission + 390, // 231: rill.admin.v1.GetReportMetaResponse.DeliveryMeta.user_attrs:type_name -> google.protobuf.Struct + 382, // 232: rill.admin.v1.GetReportMetaResponse.DeliveryMetaEntry.value:type_name -> rill.admin.v1.GetReportMetaResponse.DeliveryMeta + 385, // 233: rill.admin.v1.GetAlertMetaResponse.RecipientUrlsEntry.value:type_name -> rill.admin.v1.GetAlertMetaResponse.URLs + 392, // 234: rill.admin.v1.MagicAuthToken.MetricsViewFiltersEntry.value:type_name -> rill.runtime.v1.Expression + 5, // 235: rill.admin.v1.AdminService.Ping:input_type -> rill.admin.v1.PingRequest + 7, // 236: rill.admin.v1.AdminService.ListOrganizations:input_type -> rill.admin.v1.ListOrganizationsRequest + 9, // 237: rill.admin.v1.AdminService.GetOrganization:input_type -> rill.admin.v1.GetOrganizationRequest + 11, // 238: rill.admin.v1.AdminService.GetOrganizationNameForDomain:input_type -> rill.admin.v1.GetOrganizationNameForDomainRequest + 13, // 239: rill.admin.v1.AdminService.CreateOrganization:input_type -> rill.admin.v1.CreateOrganizationRequest + 15, // 240: rill.admin.v1.AdminService.DeleteOrganization:input_type -> rill.admin.v1.DeleteOrganizationRequest + 17, // 241: rill.admin.v1.AdminService.UpdateOrganization:input_type -> rill.admin.v1.UpdateOrganizationRequest + 19, // 242: rill.admin.v1.AdminService.ListProjectsForOrganization:input_type -> rill.admin.v1.ListProjectsForOrganizationRequest + 33, // 243: rill.admin.v1.AdminService.ListProjectsForOrganizationAndUser:input_type -> rill.admin.v1.ListProjectsForOrganizationAndUserRequest + 35, // 244: rill.admin.v1.AdminService.ListProjectsForFingerprint:input_type -> rill.admin.v1.ListProjectsForFingerprintRequest + 37, // 245: rill.admin.v1.AdminService.GetProject:input_type -> rill.admin.v1.GetProjectRequest + 39, // 246: rill.admin.v1.AdminService.ListProjectsForUserByName:input_type -> rill.admin.v1.ListProjectsForUserByNameRequest + 41, // 247: rill.admin.v1.AdminService.GetProjectByID:input_type -> rill.admin.v1.GetProjectByIDRequest + 43, // 248: rill.admin.v1.AdminService.SearchProjectNames:input_type -> rill.admin.v1.SearchProjectNamesRequest + 76, // 249: rill.admin.v1.AdminService.CreateProject:input_type -> rill.admin.v1.CreateProjectRequest + 78, // 250: rill.admin.v1.AdminService.DeleteProject:input_type -> rill.admin.v1.DeleteProjectRequest + 80, // 251: rill.admin.v1.AdminService.UpdateProject:input_type -> rill.admin.v1.UpdateProjectRequest + 45, // 252: rill.admin.v1.AdminService.GetProjectVariables:input_type -> rill.admin.v1.GetProjectVariablesRequest + 48, // 253: rill.admin.v1.AdminService.UpdateProjectVariables:input_type -> rill.admin.v1.UpdateProjectVariablesRequest + 82, // 254: rill.admin.v1.AdminService.CreateAsset:input_type -> rill.admin.v1.CreateAssetRequest + 84, // 255: rill.admin.v1.AdminService.RedeployProject:input_type -> rill.admin.v1.RedeployProjectRequest + 86, // 256: rill.admin.v1.AdminService.HibernateProject:input_type -> rill.admin.v1.HibernateProjectRequest + 20, // 257: rill.admin.v1.AdminService.ListDeployments:input_type -> rill.admin.v1.ListDeploymentsRequest + 22, // 258: rill.admin.v1.AdminService.CreateDeployment:input_type -> rill.admin.v1.CreateDeploymentRequest + 24, // 259: rill.admin.v1.AdminService.GetDeployment:input_type -> rill.admin.v1.GetDeploymentRequest + 26, // 260: rill.admin.v1.AdminService.StartDeployment:input_type -> rill.admin.v1.StartDeploymentRequest + 28, // 261: rill.admin.v1.AdminService.StopDeployment:input_type -> rill.admin.v1.StopDeploymentRequest + 30, // 262: rill.admin.v1.AdminService.DeleteDeployment:input_type -> rill.admin.v1.DeleteDeploymentRequest + 88, // 263: rill.admin.v1.AdminService.TriggerReconcile:input_type -> rill.admin.v1.TriggerReconcileRequest + 90, // 264: rill.admin.v1.AdminService.TriggerRefreshSources:input_type -> rill.admin.v1.TriggerRefreshSourcesRequest + 92, // 265: rill.admin.v1.AdminService.TriggerRedeploy:input_type -> rill.admin.v1.TriggerRedeployRequest + 94, // 266: rill.admin.v1.AdminService.Provision:input_type -> rill.admin.v1.ProvisionRequest + 96, // 267: rill.admin.v1.AdminService.GetDeploymentConfig:input_type -> rill.admin.v1.GetDeploymentConfigRequest + 98, // 268: rill.admin.v1.AdminService.ListRoles:input_type -> rill.admin.v1.ListRolesRequest + 100, // 269: rill.admin.v1.AdminService.ListOrganizationMemberUsers:input_type -> rill.admin.v1.ListOrganizationMemberUsersRequest + 102, // 270: rill.admin.v1.AdminService.ListOrganizationInvites:input_type -> rill.admin.v1.ListOrganizationInvitesRequest + 104, // 271: rill.admin.v1.AdminService.AddOrganizationMemberUser:input_type -> rill.admin.v1.AddOrganizationMemberUserRequest + 106, // 272: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:input_type -> rill.admin.v1.RemoveOrganizationMemberUserRequest + 108, // 273: rill.admin.v1.AdminService.LeaveOrganization:input_type -> rill.admin.v1.LeaveOrganizationRequest + 110, // 274: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:input_type -> rill.admin.v1.SetOrganizationMemberUserRoleRequest + 112, // 275: rill.admin.v1.AdminService.GetOrganizationMemberUser:input_type -> rill.admin.v1.GetOrganizationMemberUserRequest + 116, // 276: rill.admin.v1.AdminService.ListUsergroupsForProjectAndUser:input_type -> rill.admin.v1.ListUsergroupsForProjectAndUserRequest + 118, // 277: rill.admin.v1.AdminService.UpdateOrganizationMemberUserAttributes:input_type -> rill.admin.v1.UpdateOrganizationMemberUserAttributesRequest + 146, // 278: rill.admin.v1.AdminService.ListProjectMemberUsers:input_type -> rill.admin.v1.ListProjectMemberUsersRequest + 148, // 279: rill.admin.v1.AdminService.ListProjectInvites:input_type -> rill.admin.v1.ListProjectInvitesRequest + 150, // 280: rill.admin.v1.AdminService.AddProjectMemberUser:input_type -> rill.admin.v1.AddProjectMemberUserRequest + 152, // 281: rill.admin.v1.AdminService.RemoveProjectMemberUser:input_type -> rill.admin.v1.RemoveProjectMemberUserRequest + 154, // 282: rill.admin.v1.AdminService.SetProjectMemberUserRole:input_type -> rill.admin.v1.SetProjectMemberUserRoleRequest + 114, // 283: rill.admin.v1.AdminService.GetProjectMemberUser:input_type -> rill.admin.v1.GetProjectMemberUserRequest + 156, // 284: rill.admin.v1.AdminService.ListUsergroupsForOrganizationAndUser:input_type -> rill.admin.v1.ListUsergroupsForOrganizationAndUserRequest + 158, // 285: rill.admin.v1.AdminService.CreateUsergroup:input_type -> rill.admin.v1.CreateUsergroupRequest + 160, // 286: rill.admin.v1.AdminService.GetUsergroup:input_type -> rill.admin.v1.GetUsergroupRequest + 162, // 287: rill.admin.v1.AdminService.UpdateUsergroup:input_type -> rill.admin.v1.UpdateUsergroupRequest + 164, // 288: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:input_type -> rill.admin.v1.ListOrganizationMemberUsergroupsRequest + 166, // 289: rill.admin.v1.AdminService.ListProjectMemberUsergroups:input_type -> rill.admin.v1.ListProjectMemberUsergroupsRequest + 168, // 290: rill.admin.v1.AdminService.DeleteUsergroup:input_type -> rill.admin.v1.DeleteUsergroupRequest + 170, // 291: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:input_type -> rill.admin.v1.AddOrganizationMemberUsergroupRequest + 172, // 292: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:input_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleRequest + 174, // 293: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:input_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupRequest + 176, // 294: rill.admin.v1.AdminService.AddProjectMemberUsergroup:input_type -> rill.admin.v1.AddProjectMemberUsergroupRequest + 178, // 295: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:input_type -> rill.admin.v1.SetProjectMemberUsergroupRoleRequest + 180, // 296: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:input_type -> rill.admin.v1.RemoveProjectMemberUsergroupRequest + 182, // 297: rill.admin.v1.AdminService.AddUsergroupMemberUser:input_type -> rill.admin.v1.AddUsergroupMemberUserRequest + 184, // 298: rill.admin.v1.AdminService.ListUsergroupMemberUsers:input_type -> rill.admin.v1.ListUsergroupMemberUsersRequest + 186, // 299: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:input_type -> rill.admin.v1.RemoveUsergroupMemberUserRequest + 191, // 300: rill.admin.v1.AdminService.GetUser:input_type -> rill.admin.v1.GetUserRequest + 193, // 301: rill.admin.v1.AdminService.GetCurrentUser:input_type -> rill.admin.v1.GetCurrentUserRequest + 195, // 302: rill.admin.v1.AdminService.DeleteUser:input_type -> rill.admin.v1.DeleteUserRequest + 197, // 303: rill.admin.v1.AdminService.ListUserAuthTokens:input_type -> rill.admin.v1.ListUserAuthTokensRequest + 199, // 304: rill.admin.v1.AdminService.IssueUserAuthToken:input_type -> rill.admin.v1.IssueUserAuthTokenRequest + 201, // 305: rill.admin.v1.AdminService.RevokeUserAuthToken:input_type -> rill.admin.v1.RevokeUserAuthTokenRequest + 203, // 306: rill.admin.v1.AdminService.RevokeAllUserAuthTokens:input_type -> rill.admin.v1.RevokeAllUserAuthTokensRequest + 205, // 307: rill.admin.v1.AdminService.RevokeRepresentativeAuthTokens:input_type -> rill.admin.v1.RevokeRepresentativeAuthTokensRequest + 207, // 308: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:input_type -> rill.admin.v1.IssueRepresentativeAuthTokenRequest + 209, // 309: rill.admin.v1.AdminService.RevokeCurrentAuthToken:input_type -> rill.admin.v1.RevokeCurrentAuthTokenRequest + 238, // 310: rill.admin.v1.AdminService.GetGithubRepoStatus:input_type -> rill.admin.v1.GetGithubRepoStatusRequest + 240, // 311: rill.admin.v1.AdminService.GetGithubUserStatus:input_type -> rill.admin.v1.GetGithubUserStatusRequest + 242, // 312: rill.admin.v1.AdminService.ListGithubUserRepos:input_type -> rill.admin.v1.ListGithubUserReposRequest + 244, // 313: rill.admin.v1.AdminService.ConnectProjectToGithub:input_type -> rill.admin.v1.ConnectProjectToGithubRequest + 246, // 314: rill.admin.v1.AdminService.CreateManagedGitRepo:input_type -> rill.admin.v1.CreateManagedGitRepoRequest + 248, // 315: rill.admin.v1.AdminService.GetCloneCredentials:input_type -> rill.admin.v1.GetCloneCredentialsRequest + 250, // 316: rill.admin.v1.AdminService.CreateWhitelistedDomain:input_type -> rill.admin.v1.CreateWhitelistedDomainRequest + 252, // 317: rill.admin.v1.AdminService.RemoveWhitelistedDomain:input_type -> rill.admin.v1.RemoveWhitelistedDomainRequest + 254, // 318: rill.admin.v1.AdminService.ListWhitelistedDomains:input_type -> rill.admin.v1.ListWhitelistedDomainsRequest + 221, // 319: rill.admin.v1.AdminService.SearchUsers:input_type -> rill.admin.v1.SearchUsersRequest + 50, // 320: rill.admin.v1.AdminService.SearchProjectUsers:input_type -> rill.admin.v1.SearchProjectUsersRequest + 120, // 321: rill.admin.v1.AdminService.ListSuperusers:input_type -> rill.admin.v1.ListSuperusersRequest + 52, // 322: rill.admin.v1.AdminService.GetDeploymentCredentials:input_type -> rill.admin.v1.GetDeploymentCredentialsRequest + 54, // 323: rill.admin.v1.AdminService.GetIFrame:input_type -> rill.admin.v1.GetIFrameRequest + 122, // 324: rill.admin.v1.AdminService.SetSuperuser:input_type -> rill.admin.v1.SetSuperuserRequest + 124, // 325: rill.admin.v1.AdminService.SudoGetResource:input_type -> rill.admin.v1.SudoGetResourceRequest + 136, // 326: rill.admin.v1.AdminService.SudoUpdateUserQuotas:input_type -> rill.admin.v1.SudoUpdateUserQuotasRequest + 126, // 327: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:input_type -> rill.admin.v1.SudoUpdateOrganizationQuotasRequest + 128, // 328: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:input_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerRequest + 130, // 329: rill.admin.v1.AdminService.SudoExtendTrial:input_type -> rill.admin.v1.SudoExtendTrialRequest + 132, // 330: rill.admin.v1.AdminService.SudoAddCredits:input_type -> rill.admin.v1.SudoAddCreditsRequest + 134, // 331: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:input_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest + 138, // 332: rill.admin.v1.AdminService.SudoUpdateAnnotations:input_type -> rill.admin.v1.SudoUpdateAnnotationsRequest + 140, // 333: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:input_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenRequest + 142, // 334: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:input_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueRequest + 144, // 335: rill.admin.v1.AdminService.SudoTriggerBillingRepair:input_type -> rill.admin.v1.SudoTriggerBillingRepairRequest + 256, // 336: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:input_type -> rill.admin.v1.CreateProjectWhitelistedDomainRequest + 258, // 337: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:input_type -> rill.admin.v1.RemoveProjectWhitelistedDomainRequest + 260, // 338: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:input_type -> rill.admin.v1.ListProjectWhitelistedDomainsRequest + 56, // 339: rill.admin.v1.AdminService.ListServices:input_type -> rill.admin.v1.ListServicesRequest + 58, // 340: rill.admin.v1.AdminService.ListProjectMemberServices:input_type -> rill.admin.v1.ListProjectMemberServicesRequest + 60, // 341: rill.admin.v1.AdminService.CreateService:input_type -> rill.admin.v1.CreateServiceRequest + 62, // 342: rill.admin.v1.AdminService.GetService:input_type -> rill.admin.v1.GetServiceRequest + 64, // 343: rill.admin.v1.AdminService.UpdateService:input_type -> rill.admin.v1.UpdateServiceRequest + 66, // 344: rill.admin.v1.AdminService.SetOrganizationMemberServiceRole:input_type -> rill.admin.v1.SetOrganizationMemberServiceRoleRequest + 68, // 345: rill.admin.v1.AdminService.RemoveOrganizationMemberService:input_type -> rill.admin.v1.RemoveOrganizationMemberServiceRequest + 72, // 346: rill.admin.v1.AdminService.SetProjectMemberServiceRole:input_type -> rill.admin.v1.SetProjectMemberServiceRoleRequest + 70, // 347: rill.admin.v1.AdminService.RemoveProjectMemberService:input_type -> rill.admin.v1.RemoveProjectMemberServiceRequest + 74, // 348: rill.admin.v1.AdminService.DeleteService:input_type -> rill.admin.v1.DeleteServiceRequest + 227, // 349: rill.admin.v1.AdminService.ListServiceAuthTokens:input_type -> rill.admin.v1.ListServiceAuthTokensRequest + 225, // 350: rill.admin.v1.AdminService.IssueServiceAuthToken:input_type -> rill.admin.v1.IssueServiceAuthTokenRequest + 223, // 351: rill.admin.v1.AdminService.RevokeServiceAuthToken:input_type -> rill.admin.v1.RevokeServiceAuthTokenRequest + 229, // 352: rill.admin.v1.AdminService.IssueMagicAuthToken:input_type -> rill.admin.v1.IssueMagicAuthTokenRequest + 232, // 353: rill.admin.v1.AdminService.ListMagicAuthTokens:input_type -> rill.admin.v1.ListMagicAuthTokensRequest + 234, // 354: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:input_type -> rill.admin.v1.GetCurrentMagicAuthTokenRequest + 236, // 355: rill.admin.v1.AdminService.RevokeMagicAuthToken:input_type -> rill.admin.v1.RevokeMagicAuthTokenRequest + 189, // 356: rill.admin.v1.AdminService.UpdateUserPreferences:input_type -> rill.admin.v1.UpdateUserPreferencesRequest + 211, // 357: rill.admin.v1.AdminService.ListBookmarks:input_type -> rill.admin.v1.ListBookmarksRequest + 213, // 358: rill.admin.v1.AdminService.GetBookmark:input_type -> rill.admin.v1.GetBookmarkRequest + 215, // 359: rill.admin.v1.AdminService.CreateBookmark:input_type -> rill.admin.v1.CreateBookmarkRequest + 217, // 360: rill.admin.v1.AdminService.UpdateBookmark:input_type -> rill.admin.v1.UpdateBookmarkRequest + 219, // 361: rill.admin.v1.AdminService.RemoveBookmark:input_type -> rill.admin.v1.RemoveBookmarkRequest + 262, // 362: rill.admin.v1.AdminService.GetRepoMeta:input_type -> rill.admin.v1.GetRepoMetaRequest + 264, // 363: rill.admin.v1.AdminService.PullVirtualRepo:input_type -> rill.admin.v1.PullVirtualRepoRequest + 266, // 364: rill.admin.v1.AdminService.GetVirtualFile:input_type -> rill.admin.v1.GetVirtualFileRequest + 268, // 365: rill.admin.v1.AdminService.DeleteVirtualFile:input_type -> rill.admin.v1.DeleteVirtualFileRequest + 270, // 366: rill.admin.v1.AdminService.GetReportMeta:input_type -> rill.admin.v1.GetReportMetaRequest + 272, // 367: rill.admin.v1.AdminService.GetAlertMeta:input_type -> rill.admin.v1.GetAlertMetaRequest + 274, // 368: rill.admin.v1.AdminService.CreateReport:input_type -> rill.admin.v1.CreateReportRequest + 276, // 369: rill.admin.v1.AdminService.EditReport:input_type -> rill.admin.v1.EditReportRequest + 278, // 370: rill.admin.v1.AdminService.UnsubscribeReport:input_type -> rill.admin.v1.UnsubscribeReportRequest + 280, // 371: rill.admin.v1.AdminService.DeleteReport:input_type -> rill.admin.v1.DeleteReportRequest + 282, // 372: rill.admin.v1.AdminService.TriggerReport:input_type -> rill.admin.v1.TriggerReportRequest + 284, // 373: rill.admin.v1.AdminService.GenerateReportYAML:input_type -> rill.admin.v1.GenerateReportYAMLRequest + 286, // 374: rill.admin.v1.AdminService.CreateAlert:input_type -> rill.admin.v1.CreateAlertRequest + 288, // 375: rill.admin.v1.AdminService.EditAlert:input_type -> rill.admin.v1.EditAlertRequest + 290, // 376: rill.admin.v1.AdminService.UnsubscribeAlert:input_type -> rill.admin.v1.UnsubscribeAlertRequest + 292, // 377: rill.admin.v1.AdminService.DeleteAlert:input_type -> rill.admin.v1.DeleteAlertRequest + 294, // 378: rill.admin.v1.AdminService.GenerateAlertYAML:input_type -> rill.admin.v1.GenerateAlertYAMLRequest + 296, // 379: rill.admin.v1.AdminService.GetAlertYAML:input_type -> rill.admin.v1.GetAlertYAMLRequest + 298, // 380: rill.admin.v1.AdminService.GetBillingSubscription:input_type -> rill.admin.v1.GetBillingSubscriptionRequest + 301, // 381: rill.admin.v1.AdminService.UpdateBillingSubscription:input_type -> rill.admin.v1.UpdateBillingSubscriptionRequest + 303, // 382: rill.admin.v1.AdminService.CancelBillingSubscription:input_type -> rill.admin.v1.CancelBillingSubscriptionRequest + 305, // 383: rill.admin.v1.AdminService.RenewBillingSubscription:input_type -> rill.admin.v1.RenewBillingSubscriptionRequest + 307, // 384: rill.admin.v1.AdminService.GetPaymentsPortalURL:input_type -> rill.admin.v1.GetPaymentsPortalURLRequest + 309, // 385: rill.admin.v1.AdminService.ListPublicBillingPlans:input_type -> rill.admin.v1.ListPublicBillingPlansRequest + 311, // 386: rill.admin.v1.AdminService.GetBillingProjectCredentials:input_type -> rill.admin.v1.GetBillingProjectCredentialsRequest + 315, // 387: rill.admin.v1.AdminService.RequestProjectAccess:input_type -> rill.admin.v1.RequestProjectAccessRequest + 317, // 388: rill.admin.v1.AdminService.GetProjectAccessRequest:input_type -> rill.admin.v1.GetProjectAccessRequestRequest + 319, // 389: rill.admin.v1.AdminService.ApproveProjectAccess:input_type -> rill.admin.v1.ApproveProjectAccessRequest + 321, // 390: rill.admin.v1.AdminService.DenyProjectAccess:input_type -> rill.admin.v1.DenyProjectAccessRequest + 323, // 391: rill.admin.v1.AdminService.ListOrganizationBillingIssues:input_type -> rill.admin.v1.ListOrganizationBillingIssuesRequest + 6, // 392: rill.admin.v1.AdminService.Ping:output_type -> rill.admin.v1.PingResponse + 8, // 393: rill.admin.v1.AdminService.ListOrganizations:output_type -> rill.admin.v1.ListOrganizationsResponse + 10, // 394: rill.admin.v1.AdminService.GetOrganization:output_type -> rill.admin.v1.GetOrganizationResponse + 12, // 395: rill.admin.v1.AdminService.GetOrganizationNameForDomain:output_type -> rill.admin.v1.GetOrganizationNameForDomainResponse + 14, // 396: rill.admin.v1.AdminService.CreateOrganization:output_type -> rill.admin.v1.CreateOrganizationResponse + 16, // 397: rill.admin.v1.AdminService.DeleteOrganization:output_type -> rill.admin.v1.DeleteOrganizationResponse + 18, // 398: rill.admin.v1.AdminService.UpdateOrganization:output_type -> rill.admin.v1.UpdateOrganizationResponse + 32, // 399: rill.admin.v1.AdminService.ListProjectsForOrganization:output_type -> rill.admin.v1.ListProjectsForOrganizationResponse + 34, // 400: rill.admin.v1.AdminService.ListProjectsForOrganizationAndUser:output_type -> rill.admin.v1.ListProjectsForOrganizationAndUserResponse + 36, // 401: rill.admin.v1.AdminService.ListProjectsForFingerprint:output_type -> rill.admin.v1.ListProjectsForFingerprintResponse + 38, // 402: rill.admin.v1.AdminService.GetProject:output_type -> rill.admin.v1.GetProjectResponse + 40, // 403: rill.admin.v1.AdminService.ListProjectsForUserByName:output_type -> rill.admin.v1.ListProjectsForUserByNameResponse + 42, // 404: rill.admin.v1.AdminService.GetProjectByID:output_type -> rill.admin.v1.GetProjectByIDResponse + 44, // 405: rill.admin.v1.AdminService.SearchProjectNames:output_type -> rill.admin.v1.SearchProjectNamesResponse + 77, // 406: rill.admin.v1.AdminService.CreateProject:output_type -> rill.admin.v1.CreateProjectResponse + 79, // 407: rill.admin.v1.AdminService.DeleteProject:output_type -> rill.admin.v1.DeleteProjectResponse + 81, // 408: rill.admin.v1.AdminService.UpdateProject:output_type -> rill.admin.v1.UpdateProjectResponse + 46, // 409: rill.admin.v1.AdminService.GetProjectVariables:output_type -> rill.admin.v1.GetProjectVariablesResponse + 49, // 410: rill.admin.v1.AdminService.UpdateProjectVariables:output_type -> rill.admin.v1.UpdateProjectVariablesResponse + 83, // 411: rill.admin.v1.AdminService.CreateAsset:output_type -> rill.admin.v1.CreateAssetResponse + 85, // 412: rill.admin.v1.AdminService.RedeployProject:output_type -> rill.admin.v1.RedeployProjectResponse + 87, // 413: rill.admin.v1.AdminService.HibernateProject:output_type -> rill.admin.v1.HibernateProjectResponse + 21, // 414: rill.admin.v1.AdminService.ListDeployments:output_type -> rill.admin.v1.ListDeploymentsResponse + 23, // 415: rill.admin.v1.AdminService.CreateDeployment:output_type -> rill.admin.v1.CreateDeploymentResponse + 25, // 416: rill.admin.v1.AdminService.GetDeployment:output_type -> rill.admin.v1.GetDeploymentResponse + 27, // 417: rill.admin.v1.AdminService.StartDeployment:output_type -> rill.admin.v1.StartDeploymentResponse + 29, // 418: rill.admin.v1.AdminService.StopDeployment:output_type -> rill.admin.v1.StopDeploymentResponse + 31, // 419: rill.admin.v1.AdminService.DeleteDeployment:output_type -> rill.admin.v1.DeleteDeploymentResponse + 89, // 420: rill.admin.v1.AdminService.TriggerReconcile:output_type -> rill.admin.v1.TriggerReconcileResponse + 91, // 421: rill.admin.v1.AdminService.TriggerRefreshSources:output_type -> rill.admin.v1.TriggerRefreshSourcesResponse + 93, // 422: rill.admin.v1.AdminService.TriggerRedeploy:output_type -> rill.admin.v1.TriggerRedeployResponse + 95, // 423: rill.admin.v1.AdminService.Provision:output_type -> rill.admin.v1.ProvisionResponse + 97, // 424: rill.admin.v1.AdminService.GetDeploymentConfig:output_type -> rill.admin.v1.GetDeploymentConfigResponse + 99, // 425: rill.admin.v1.AdminService.ListRoles:output_type -> rill.admin.v1.ListRolesResponse + 101, // 426: rill.admin.v1.AdminService.ListOrganizationMemberUsers:output_type -> rill.admin.v1.ListOrganizationMemberUsersResponse + 103, // 427: rill.admin.v1.AdminService.ListOrganizationInvites:output_type -> rill.admin.v1.ListOrganizationInvitesResponse + 105, // 428: rill.admin.v1.AdminService.AddOrganizationMemberUser:output_type -> rill.admin.v1.AddOrganizationMemberUserResponse + 107, // 429: rill.admin.v1.AdminService.RemoveOrganizationMemberUser:output_type -> rill.admin.v1.RemoveOrganizationMemberUserResponse + 109, // 430: rill.admin.v1.AdminService.LeaveOrganization:output_type -> rill.admin.v1.LeaveOrganizationResponse + 111, // 431: rill.admin.v1.AdminService.SetOrganizationMemberUserRole:output_type -> rill.admin.v1.SetOrganizationMemberUserRoleResponse + 113, // 432: rill.admin.v1.AdminService.GetOrganizationMemberUser:output_type -> rill.admin.v1.GetOrganizationMemberUserResponse + 117, // 433: rill.admin.v1.AdminService.ListUsergroupsForProjectAndUser:output_type -> rill.admin.v1.ListUsergroupsForProjectAndUserResponse + 119, // 434: rill.admin.v1.AdminService.UpdateOrganizationMemberUserAttributes:output_type -> rill.admin.v1.UpdateOrganizationMemberUserAttributesResponse + 147, // 435: rill.admin.v1.AdminService.ListProjectMemberUsers:output_type -> rill.admin.v1.ListProjectMemberUsersResponse + 149, // 436: rill.admin.v1.AdminService.ListProjectInvites:output_type -> rill.admin.v1.ListProjectInvitesResponse + 151, // 437: rill.admin.v1.AdminService.AddProjectMemberUser:output_type -> rill.admin.v1.AddProjectMemberUserResponse + 153, // 438: rill.admin.v1.AdminService.RemoveProjectMemberUser:output_type -> rill.admin.v1.RemoveProjectMemberUserResponse + 155, // 439: rill.admin.v1.AdminService.SetProjectMemberUserRole:output_type -> rill.admin.v1.SetProjectMemberUserRoleResponse + 115, // 440: rill.admin.v1.AdminService.GetProjectMemberUser:output_type -> rill.admin.v1.GetProjectMemberUserResponse + 157, // 441: rill.admin.v1.AdminService.ListUsergroupsForOrganizationAndUser:output_type -> rill.admin.v1.ListUsergroupsForOrganizationAndUserResponse + 159, // 442: rill.admin.v1.AdminService.CreateUsergroup:output_type -> rill.admin.v1.CreateUsergroupResponse + 161, // 443: rill.admin.v1.AdminService.GetUsergroup:output_type -> rill.admin.v1.GetUsergroupResponse + 163, // 444: rill.admin.v1.AdminService.UpdateUsergroup:output_type -> rill.admin.v1.UpdateUsergroupResponse + 165, // 445: rill.admin.v1.AdminService.ListOrganizationMemberUsergroups:output_type -> rill.admin.v1.ListOrganizationMemberUsergroupsResponse + 167, // 446: rill.admin.v1.AdminService.ListProjectMemberUsergroups:output_type -> rill.admin.v1.ListProjectMemberUsergroupsResponse + 169, // 447: rill.admin.v1.AdminService.DeleteUsergroup:output_type -> rill.admin.v1.DeleteUsergroupResponse + 171, // 448: rill.admin.v1.AdminService.AddOrganizationMemberUsergroup:output_type -> rill.admin.v1.AddOrganizationMemberUsergroupResponse + 173, // 449: rill.admin.v1.AdminService.SetOrganizationMemberUsergroupRole:output_type -> rill.admin.v1.SetOrganizationMemberUsergroupRoleResponse + 175, // 450: rill.admin.v1.AdminService.RemoveOrganizationMemberUsergroup:output_type -> rill.admin.v1.RemoveOrganizationMemberUsergroupResponse + 177, // 451: rill.admin.v1.AdminService.AddProjectMemberUsergroup:output_type -> rill.admin.v1.AddProjectMemberUsergroupResponse + 179, // 452: rill.admin.v1.AdminService.SetProjectMemberUsergroupRole:output_type -> rill.admin.v1.SetProjectMemberUsergroupRoleResponse + 181, // 453: rill.admin.v1.AdminService.RemoveProjectMemberUsergroup:output_type -> rill.admin.v1.RemoveProjectMemberUsergroupResponse + 183, // 454: rill.admin.v1.AdminService.AddUsergroupMemberUser:output_type -> rill.admin.v1.AddUsergroupMemberUserResponse + 185, // 455: rill.admin.v1.AdminService.ListUsergroupMemberUsers:output_type -> rill.admin.v1.ListUsergroupMemberUsersResponse + 187, // 456: rill.admin.v1.AdminService.RemoveUsergroupMemberUser:output_type -> rill.admin.v1.RemoveUsergroupMemberUserResponse + 192, // 457: rill.admin.v1.AdminService.GetUser:output_type -> rill.admin.v1.GetUserResponse + 194, // 458: rill.admin.v1.AdminService.GetCurrentUser:output_type -> rill.admin.v1.GetCurrentUserResponse + 196, // 459: rill.admin.v1.AdminService.DeleteUser:output_type -> rill.admin.v1.DeleteUserResponse + 198, // 460: rill.admin.v1.AdminService.ListUserAuthTokens:output_type -> rill.admin.v1.ListUserAuthTokensResponse + 200, // 461: rill.admin.v1.AdminService.IssueUserAuthToken:output_type -> rill.admin.v1.IssueUserAuthTokenResponse + 202, // 462: rill.admin.v1.AdminService.RevokeUserAuthToken:output_type -> rill.admin.v1.RevokeUserAuthTokenResponse + 204, // 463: rill.admin.v1.AdminService.RevokeAllUserAuthTokens:output_type -> rill.admin.v1.RevokeAllUserAuthTokensResponse + 206, // 464: rill.admin.v1.AdminService.RevokeRepresentativeAuthTokens:output_type -> rill.admin.v1.RevokeRepresentativeAuthTokensResponse + 208, // 465: rill.admin.v1.AdminService.IssueRepresentativeAuthToken:output_type -> rill.admin.v1.IssueRepresentativeAuthTokenResponse + 210, // 466: rill.admin.v1.AdminService.RevokeCurrentAuthToken:output_type -> rill.admin.v1.RevokeCurrentAuthTokenResponse + 239, // 467: rill.admin.v1.AdminService.GetGithubRepoStatus:output_type -> rill.admin.v1.GetGithubRepoStatusResponse + 241, // 468: rill.admin.v1.AdminService.GetGithubUserStatus:output_type -> rill.admin.v1.GetGithubUserStatusResponse + 243, // 469: rill.admin.v1.AdminService.ListGithubUserRepos:output_type -> rill.admin.v1.ListGithubUserReposResponse + 245, // 470: rill.admin.v1.AdminService.ConnectProjectToGithub:output_type -> rill.admin.v1.ConnectProjectToGithubResponse + 247, // 471: rill.admin.v1.AdminService.CreateManagedGitRepo:output_type -> rill.admin.v1.CreateManagedGitRepoResponse + 249, // 472: rill.admin.v1.AdminService.GetCloneCredentials:output_type -> rill.admin.v1.GetCloneCredentialsResponse + 251, // 473: rill.admin.v1.AdminService.CreateWhitelistedDomain:output_type -> rill.admin.v1.CreateWhitelistedDomainResponse + 253, // 474: rill.admin.v1.AdminService.RemoveWhitelistedDomain:output_type -> rill.admin.v1.RemoveWhitelistedDomainResponse + 255, // 475: rill.admin.v1.AdminService.ListWhitelistedDomains:output_type -> rill.admin.v1.ListWhitelistedDomainsResponse + 222, // 476: rill.admin.v1.AdminService.SearchUsers:output_type -> rill.admin.v1.SearchUsersResponse + 51, // 477: rill.admin.v1.AdminService.SearchProjectUsers:output_type -> rill.admin.v1.SearchProjectUsersResponse + 121, // 478: rill.admin.v1.AdminService.ListSuperusers:output_type -> rill.admin.v1.ListSuperusersResponse + 53, // 479: rill.admin.v1.AdminService.GetDeploymentCredentials:output_type -> rill.admin.v1.GetDeploymentCredentialsResponse + 55, // 480: rill.admin.v1.AdminService.GetIFrame:output_type -> rill.admin.v1.GetIFrameResponse + 123, // 481: rill.admin.v1.AdminService.SetSuperuser:output_type -> rill.admin.v1.SetSuperuserResponse + 125, // 482: rill.admin.v1.AdminService.SudoGetResource:output_type -> rill.admin.v1.SudoGetResourceResponse + 137, // 483: rill.admin.v1.AdminService.SudoUpdateUserQuotas:output_type -> rill.admin.v1.SudoUpdateUserQuotasResponse + 127, // 484: rill.admin.v1.AdminService.SudoUpdateOrganizationQuotas:output_type -> rill.admin.v1.SudoUpdateOrganizationQuotasResponse + 129, // 485: rill.admin.v1.AdminService.SudoUpdateOrganizationBillingCustomer:output_type -> rill.admin.v1.SudoUpdateOrganizationBillingCustomerResponse + 131, // 486: rill.admin.v1.AdminService.SudoExtendTrial:output_type -> rill.admin.v1.SudoExtendTrialResponse + 133, // 487: rill.admin.v1.AdminService.SudoAddCredits:output_type -> rill.admin.v1.SudoAddCreditsResponse + 135, // 488: rill.admin.v1.AdminService.SudoUpdateOrganizationCustomDomain:output_type -> rill.admin.v1.SudoUpdateOrganizationCustomDomainResponse + 139, // 489: rill.admin.v1.AdminService.SudoUpdateAnnotations:output_type -> rill.admin.v1.SudoUpdateAnnotationsResponse + 141, // 490: rill.admin.v1.AdminService.SudoIssueRuntimeManagerToken:output_type -> rill.admin.v1.SudoIssueRuntimeManagerTokenResponse + 143, // 491: rill.admin.v1.AdminService.SudoDeleteOrganizationBillingIssue:output_type -> rill.admin.v1.SudoDeleteOrganizationBillingIssueResponse + 145, // 492: rill.admin.v1.AdminService.SudoTriggerBillingRepair:output_type -> rill.admin.v1.SudoTriggerBillingRepairResponse + 257, // 493: rill.admin.v1.AdminService.CreateProjectWhitelistedDomain:output_type -> rill.admin.v1.CreateProjectWhitelistedDomainResponse + 259, // 494: rill.admin.v1.AdminService.RemoveProjectWhitelistedDomain:output_type -> rill.admin.v1.RemoveProjectWhitelistedDomainResponse + 261, // 495: rill.admin.v1.AdminService.ListProjectWhitelistedDomains:output_type -> rill.admin.v1.ListProjectWhitelistedDomainsResponse + 57, // 496: rill.admin.v1.AdminService.ListServices:output_type -> rill.admin.v1.ListServicesResponse + 59, // 497: rill.admin.v1.AdminService.ListProjectMemberServices:output_type -> rill.admin.v1.ListProjectMemberServicesResponse + 61, // 498: rill.admin.v1.AdminService.CreateService:output_type -> rill.admin.v1.CreateServiceResponse + 63, // 499: rill.admin.v1.AdminService.GetService:output_type -> rill.admin.v1.GetServiceResponse + 65, // 500: rill.admin.v1.AdminService.UpdateService:output_type -> rill.admin.v1.UpdateServiceResponse + 67, // 501: rill.admin.v1.AdminService.SetOrganizationMemberServiceRole:output_type -> rill.admin.v1.SetOrganizationMemberServiceRoleResponse + 69, // 502: rill.admin.v1.AdminService.RemoveOrganizationMemberService:output_type -> rill.admin.v1.RemoveOrganizationMemberServiceResponse + 73, // 503: rill.admin.v1.AdminService.SetProjectMemberServiceRole:output_type -> rill.admin.v1.SetProjectMemberServiceRoleResponse + 71, // 504: rill.admin.v1.AdminService.RemoveProjectMemberService:output_type -> rill.admin.v1.RemoveProjectMemberServiceResponse + 75, // 505: rill.admin.v1.AdminService.DeleteService:output_type -> rill.admin.v1.DeleteServiceResponse + 228, // 506: rill.admin.v1.AdminService.ListServiceAuthTokens:output_type -> rill.admin.v1.ListServiceAuthTokensResponse + 226, // 507: rill.admin.v1.AdminService.IssueServiceAuthToken:output_type -> rill.admin.v1.IssueServiceAuthTokenResponse + 224, // 508: rill.admin.v1.AdminService.RevokeServiceAuthToken:output_type -> rill.admin.v1.RevokeServiceAuthTokenResponse + 231, // 509: rill.admin.v1.AdminService.IssueMagicAuthToken:output_type -> rill.admin.v1.IssueMagicAuthTokenResponse + 233, // 510: rill.admin.v1.AdminService.ListMagicAuthTokens:output_type -> rill.admin.v1.ListMagicAuthTokensResponse + 235, // 511: rill.admin.v1.AdminService.GetCurrentMagicAuthToken:output_type -> rill.admin.v1.GetCurrentMagicAuthTokenResponse + 237, // 512: rill.admin.v1.AdminService.RevokeMagicAuthToken:output_type -> rill.admin.v1.RevokeMagicAuthTokenResponse + 190, // 513: rill.admin.v1.AdminService.UpdateUserPreferences:output_type -> rill.admin.v1.UpdateUserPreferencesResponse + 212, // 514: rill.admin.v1.AdminService.ListBookmarks:output_type -> rill.admin.v1.ListBookmarksResponse + 214, // 515: rill.admin.v1.AdminService.GetBookmark:output_type -> rill.admin.v1.GetBookmarkResponse + 216, // 516: rill.admin.v1.AdminService.CreateBookmark:output_type -> rill.admin.v1.CreateBookmarkResponse + 218, // 517: rill.admin.v1.AdminService.UpdateBookmark:output_type -> rill.admin.v1.UpdateBookmarkResponse + 220, // 518: rill.admin.v1.AdminService.RemoveBookmark:output_type -> rill.admin.v1.RemoveBookmarkResponse + 263, // 519: rill.admin.v1.AdminService.GetRepoMeta:output_type -> rill.admin.v1.GetRepoMetaResponse + 265, // 520: rill.admin.v1.AdminService.PullVirtualRepo:output_type -> rill.admin.v1.PullVirtualRepoResponse + 267, // 521: rill.admin.v1.AdminService.GetVirtualFile:output_type -> rill.admin.v1.GetVirtualFileResponse + 269, // 522: rill.admin.v1.AdminService.DeleteVirtualFile:output_type -> rill.admin.v1.DeleteVirtualFileResponse + 271, // 523: rill.admin.v1.AdminService.GetReportMeta:output_type -> rill.admin.v1.GetReportMetaResponse + 273, // 524: rill.admin.v1.AdminService.GetAlertMeta:output_type -> rill.admin.v1.GetAlertMetaResponse + 275, // 525: rill.admin.v1.AdminService.CreateReport:output_type -> rill.admin.v1.CreateReportResponse + 277, // 526: rill.admin.v1.AdminService.EditReport:output_type -> rill.admin.v1.EditReportResponse + 279, // 527: rill.admin.v1.AdminService.UnsubscribeReport:output_type -> rill.admin.v1.UnsubscribeReportResponse + 281, // 528: rill.admin.v1.AdminService.DeleteReport:output_type -> rill.admin.v1.DeleteReportResponse + 283, // 529: rill.admin.v1.AdminService.TriggerReport:output_type -> rill.admin.v1.TriggerReportResponse + 285, // 530: rill.admin.v1.AdminService.GenerateReportYAML:output_type -> rill.admin.v1.GenerateReportYAMLResponse + 287, // 531: rill.admin.v1.AdminService.CreateAlert:output_type -> rill.admin.v1.CreateAlertResponse + 289, // 532: rill.admin.v1.AdminService.EditAlert:output_type -> rill.admin.v1.EditAlertResponse + 291, // 533: rill.admin.v1.AdminService.UnsubscribeAlert:output_type -> rill.admin.v1.UnsubscribeAlertResponse + 293, // 534: rill.admin.v1.AdminService.DeleteAlert:output_type -> rill.admin.v1.DeleteAlertResponse + 295, // 535: rill.admin.v1.AdminService.GenerateAlertYAML:output_type -> rill.admin.v1.GenerateAlertYAMLResponse + 297, // 536: rill.admin.v1.AdminService.GetAlertYAML:output_type -> rill.admin.v1.GetAlertYAMLResponse + 299, // 537: rill.admin.v1.AdminService.GetBillingSubscription:output_type -> rill.admin.v1.GetBillingSubscriptionResponse + 302, // 538: rill.admin.v1.AdminService.UpdateBillingSubscription:output_type -> rill.admin.v1.UpdateBillingSubscriptionResponse + 304, // 539: rill.admin.v1.AdminService.CancelBillingSubscription:output_type -> rill.admin.v1.CancelBillingSubscriptionResponse + 306, // 540: rill.admin.v1.AdminService.RenewBillingSubscription:output_type -> rill.admin.v1.RenewBillingSubscriptionResponse + 308, // 541: rill.admin.v1.AdminService.GetPaymentsPortalURL:output_type -> rill.admin.v1.GetPaymentsPortalURLResponse + 310, // 542: rill.admin.v1.AdminService.ListPublicBillingPlans:output_type -> rill.admin.v1.ListPublicBillingPlansResponse + 312, // 543: rill.admin.v1.AdminService.GetBillingProjectCredentials:output_type -> rill.admin.v1.GetBillingProjectCredentialsResponse + 316, // 544: rill.admin.v1.AdminService.RequestProjectAccess:output_type -> rill.admin.v1.RequestProjectAccessResponse + 318, // 545: rill.admin.v1.AdminService.GetProjectAccessRequest:output_type -> rill.admin.v1.GetProjectAccessRequestResponse + 320, // 546: rill.admin.v1.AdminService.ApproveProjectAccess:output_type -> rill.admin.v1.ApproveProjectAccessResponse + 322, // 547: rill.admin.v1.AdminService.DenyProjectAccess:output_type -> rill.admin.v1.DenyProjectAccessResponse + 324, // 548: rill.admin.v1.AdminService.ListOrganizationBillingIssues:output_type -> rill.admin.v1.ListOrganizationBillingIssuesResponse + 392, // [392:549] is the sub-list for method output_type + 235, // [235:392] is the sub-list for method input_type + 235, // [235:235] is the sub-list for extension type_name + 235, // [235:235] is the sub-list for extension extendee + 0, // [0:235] is the sub-list for field type_name } func init() { file_rill_admin_v1_api_proto_init() } @@ -30910,8 +31568,32 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[124].Exporter = func(v any, i int) any { - switch v := v.(*SudoUpdateOrganizationBillingCustomerResponse); i { + file_rill_admin_v1_api_proto_msgTypes[124].Exporter = func(v any, i int) any { + switch v := v.(*SudoUpdateOrganizationBillingCustomerResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[125].Exporter = func(v any, i int) any { + switch v := v.(*SudoExtendTrialRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[126].Exporter = func(v any, i int) any { + switch v := v.(*SudoExtendTrialResponse); i { case 0: return &v.state case 1: @@ -30922,8 +31604,8 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[125].Exporter = func(v any, i int) any { - switch v := v.(*SudoExtendTrialRequest); i { + file_rill_admin_v1_api_proto_msgTypes[127].Exporter = func(v any, i int) any { + switch v := v.(*SudoAddCreditsRequest); i { case 0: return &v.state case 1: @@ -30934,8 +31616,8 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[126].Exporter = func(v any, i int) any { - switch v := v.(*SudoExtendTrialResponse); i { + file_rill_admin_v1_api_proto_msgTypes[128].Exporter = func(v any, i int) any { + switch v := v.(*SudoAddCreditsResponse); i { case 0: return &v.state case 1: @@ -30946,7 +31628,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[127].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[129].Exporter = func(v any, i int) any { switch v := v.(*SudoUpdateOrganizationCustomDomainRequest); i { case 0: return &v.state @@ -30958,7 +31640,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[128].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[130].Exporter = func(v any, i int) any { switch v := v.(*SudoUpdateOrganizationCustomDomainResponse); i { case 0: return &v.state @@ -30970,7 +31652,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[129].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[131].Exporter = func(v any, i int) any { switch v := v.(*SudoUpdateUserQuotasRequest); i { case 0: return &v.state @@ -30982,7 +31664,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[130].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[132].Exporter = func(v any, i int) any { switch v := v.(*SudoUpdateUserQuotasResponse); i { case 0: return &v.state @@ -30994,7 +31676,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[131].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[133].Exporter = func(v any, i int) any { switch v := v.(*SudoUpdateAnnotationsRequest); i { case 0: return &v.state @@ -31006,7 +31688,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[132].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[134].Exporter = func(v any, i int) any { switch v := v.(*SudoUpdateAnnotationsResponse); i { case 0: return &v.state @@ -31018,7 +31700,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[133].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[135].Exporter = func(v any, i int) any { switch v := v.(*SudoIssueRuntimeManagerTokenRequest); i { case 0: return &v.state @@ -31030,7 +31712,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[134].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[136].Exporter = func(v any, i int) any { switch v := v.(*SudoIssueRuntimeManagerTokenResponse); i { case 0: return &v.state @@ -31042,7 +31724,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[135].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[137].Exporter = func(v any, i int) any { switch v := v.(*SudoDeleteOrganizationBillingIssueRequest); i { case 0: return &v.state @@ -31054,7 +31736,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[136].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[138].Exporter = func(v any, i int) any { switch v := v.(*SudoDeleteOrganizationBillingIssueResponse); i { case 0: return &v.state @@ -31066,7 +31748,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[137].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[139].Exporter = func(v any, i int) any { switch v := v.(*SudoTriggerBillingRepairRequest); i { case 0: return &v.state @@ -31078,7 +31760,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[138].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[140].Exporter = func(v any, i int) any { switch v := v.(*SudoTriggerBillingRepairResponse); i { case 0: return &v.state @@ -31090,7 +31772,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[139].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[141].Exporter = func(v any, i int) any { switch v := v.(*ListProjectMemberUsersRequest); i { case 0: return &v.state @@ -31102,7 +31784,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[140].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[142].Exporter = func(v any, i int) any { switch v := v.(*ListProjectMemberUsersResponse); i { case 0: return &v.state @@ -31114,7 +31796,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[141].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[143].Exporter = func(v any, i int) any { switch v := v.(*ListProjectInvitesRequest); i { case 0: return &v.state @@ -31126,7 +31808,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[142].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[144].Exporter = func(v any, i int) any { switch v := v.(*ListProjectInvitesResponse); i { case 0: return &v.state @@ -31138,7 +31820,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[143].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[145].Exporter = func(v any, i int) any { switch v := v.(*AddProjectMemberUserRequest); i { case 0: return &v.state @@ -31150,7 +31832,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[144].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[146].Exporter = func(v any, i int) any { switch v := v.(*AddProjectMemberUserResponse); i { case 0: return &v.state @@ -31162,7 +31844,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[145].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[147].Exporter = func(v any, i int) any { switch v := v.(*RemoveProjectMemberUserRequest); i { case 0: return &v.state @@ -31174,7 +31856,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[146].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[148].Exporter = func(v any, i int) any { switch v := v.(*RemoveProjectMemberUserResponse); i { case 0: return &v.state @@ -31186,7 +31868,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[147].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[149].Exporter = func(v any, i int) any { switch v := v.(*SetProjectMemberUserRoleRequest); i { case 0: return &v.state @@ -31198,7 +31880,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[148].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[150].Exporter = func(v any, i int) any { switch v := v.(*SetProjectMemberUserRoleResponse); i { case 0: return &v.state @@ -31210,7 +31892,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[149].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[151].Exporter = func(v any, i int) any { switch v := v.(*ListUsergroupsForOrganizationAndUserRequest); i { case 0: return &v.state @@ -31222,7 +31904,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[150].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[152].Exporter = func(v any, i int) any { switch v := v.(*ListUsergroupsForOrganizationAndUserResponse); i { case 0: return &v.state @@ -31234,7 +31916,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[151].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[153].Exporter = func(v any, i int) any { switch v := v.(*CreateUsergroupRequest); i { case 0: return &v.state @@ -31246,7 +31928,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[152].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[154].Exporter = func(v any, i int) any { switch v := v.(*CreateUsergroupResponse); i { case 0: return &v.state @@ -31258,7 +31940,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[153].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[155].Exporter = func(v any, i int) any { switch v := v.(*GetUsergroupRequest); i { case 0: return &v.state @@ -31270,7 +31952,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[154].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[156].Exporter = func(v any, i int) any { switch v := v.(*GetUsergroupResponse); i { case 0: return &v.state @@ -31282,7 +31964,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[155].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[157].Exporter = func(v any, i int) any { switch v := v.(*UpdateUsergroupRequest); i { case 0: return &v.state @@ -31294,7 +31976,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[156].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[158].Exporter = func(v any, i int) any { switch v := v.(*UpdateUsergroupResponse); i { case 0: return &v.state @@ -31306,7 +31988,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[157].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[159].Exporter = func(v any, i int) any { switch v := v.(*ListOrganizationMemberUsergroupsRequest); i { case 0: return &v.state @@ -31318,7 +32000,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[158].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[160].Exporter = func(v any, i int) any { switch v := v.(*ListOrganizationMemberUsergroupsResponse); i { case 0: return &v.state @@ -31330,7 +32012,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[159].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[161].Exporter = func(v any, i int) any { switch v := v.(*ListProjectMemberUsergroupsRequest); i { case 0: return &v.state @@ -31342,7 +32024,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[160].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[162].Exporter = func(v any, i int) any { switch v := v.(*ListProjectMemberUsergroupsResponse); i { case 0: return &v.state @@ -31354,7 +32036,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[161].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[163].Exporter = func(v any, i int) any { switch v := v.(*DeleteUsergroupRequest); i { case 0: return &v.state @@ -31366,7 +32048,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[162].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[164].Exporter = func(v any, i int) any { switch v := v.(*DeleteUsergroupResponse); i { case 0: return &v.state @@ -31378,7 +32060,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[163].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[165].Exporter = func(v any, i int) any { switch v := v.(*AddOrganizationMemberUsergroupRequest); i { case 0: return &v.state @@ -31390,7 +32072,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[164].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[166].Exporter = func(v any, i int) any { switch v := v.(*AddOrganizationMemberUsergroupResponse); i { case 0: return &v.state @@ -31402,7 +32084,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[165].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[167].Exporter = func(v any, i int) any { switch v := v.(*SetOrganizationMemberUsergroupRoleRequest); i { case 0: return &v.state @@ -31414,7 +32096,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[166].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[168].Exporter = func(v any, i int) any { switch v := v.(*SetOrganizationMemberUsergroupRoleResponse); i { case 0: return &v.state @@ -31426,7 +32108,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[167].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[169].Exporter = func(v any, i int) any { switch v := v.(*RemoveOrganizationMemberUsergroupRequest); i { case 0: return &v.state @@ -31438,7 +32120,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[168].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[170].Exporter = func(v any, i int) any { switch v := v.(*RemoveOrganizationMemberUsergroupResponse); i { case 0: return &v.state @@ -31450,7 +32132,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[169].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[171].Exporter = func(v any, i int) any { switch v := v.(*AddProjectMemberUsergroupRequest); i { case 0: return &v.state @@ -31462,7 +32144,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[170].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[172].Exporter = func(v any, i int) any { switch v := v.(*AddProjectMemberUsergroupResponse); i { case 0: return &v.state @@ -31474,7 +32156,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[171].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[173].Exporter = func(v any, i int) any { switch v := v.(*SetProjectMemberUsergroupRoleRequest); i { case 0: return &v.state @@ -31486,7 +32168,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[172].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[174].Exporter = func(v any, i int) any { switch v := v.(*SetProjectMemberUsergroupRoleResponse); i { case 0: return &v.state @@ -31498,7 +32180,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[173].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[175].Exporter = func(v any, i int) any { switch v := v.(*RemoveProjectMemberUsergroupRequest); i { case 0: return &v.state @@ -31510,7 +32192,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[174].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[176].Exporter = func(v any, i int) any { switch v := v.(*RemoveProjectMemberUsergroupResponse); i { case 0: return &v.state @@ -31522,7 +32204,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[175].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[177].Exporter = func(v any, i int) any { switch v := v.(*AddUsergroupMemberUserRequest); i { case 0: return &v.state @@ -31534,7 +32216,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[176].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[178].Exporter = func(v any, i int) any { switch v := v.(*AddUsergroupMemberUserResponse); i { case 0: return &v.state @@ -31546,7 +32228,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[177].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[179].Exporter = func(v any, i int) any { switch v := v.(*ListUsergroupMemberUsersRequest); i { case 0: return &v.state @@ -31558,7 +32240,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[178].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[180].Exporter = func(v any, i int) any { switch v := v.(*ListUsergroupMemberUsersResponse); i { case 0: return &v.state @@ -31570,7 +32252,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[179].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[181].Exporter = func(v any, i int) any { switch v := v.(*RemoveUsergroupMemberUserRequest); i { case 0: return &v.state @@ -31582,7 +32264,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[180].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[182].Exporter = func(v any, i int) any { switch v := v.(*RemoveUsergroupMemberUserResponse); i { case 0: return &v.state @@ -31594,7 +32276,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[181].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[183].Exporter = func(v any, i int) any { switch v := v.(*UserPreferences); i { case 0: return &v.state @@ -31606,7 +32288,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[182].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[184].Exporter = func(v any, i int) any { switch v := v.(*UpdateUserPreferencesRequest); i { case 0: return &v.state @@ -31618,7 +32300,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[183].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[185].Exporter = func(v any, i int) any { switch v := v.(*UpdateUserPreferencesResponse); i { case 0: return &v.state @@ -31630,7 +32312,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[184].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[186].Exporter = func(v any, i int) any { switch v := v.(*GetUserRequest); i { case 0: return &v.state @@ -31642,7 +32324,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[185].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[187].Exporter = func(v any, i int) any { switch v := v.(*GetUserResponse); i { case 0: return &v.state @@ -31654,7 +32336,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[186].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[188].Exporter = func(v any, i int) any { switch v := v.(*GetCurrentUserRequest); i { case 0: return &v.state @@ -31666,7 +32348,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[187].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[189].Exporter = func(v any, i int) any { switch v := v.(*GetCurrentUserResponse); i { case 0: return &v.state @@ -31678,7 +32360,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[188].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[190].Exporter = func(v any, i int) any { switch v := v.(*DeleteUserRequest); i { case 0: return &v.state @@ -31690,7 +32372,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[189].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[191].Exporter = func(v any, i int) any { switch v := v.(*DeleteUserResponse); i { case 0: return &v.state @@ -31702,7 +32384,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[190].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[192].Exporter = func(v any, i int) any { switch v := v.(*ListUserAuthTokensRequest); i { case 0: return &v.state @@ -31714,7 +32396,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[191].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[193].Exporter = func(v any, i int) any { switch v := v.(*ListUserAuthTokensResponse); i { case 0: return &v.state @@ -31726,7 +32408,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[192].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[194].Exporter = func(v any, i int) any { switch v := v.(*IssueUserAuthTokenRequest); i { case 0: return &v.state @@ -31738,7 +32420,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[193].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[195].Exporter = func(v any, i int) any { switch v := v.(*IssueUserAuthTokenResponse); i { case 0: return &v.state @@ -31750,7 +32432,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[194].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[196].Exporter = func(v any, i int) any { switch v := v.(*RevokeUserAuthTokenRequest); i { case 0: return &v.state @@ -31762,7 +32444,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[195].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[197].Exporter = func(v any, i int) any { switch v := v.(*RevokeUserAuthTokenResponse); i { case 0: return &v.state @@ -31774,7 +32456,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[196].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[198].Exporter = func(v any, i int) any { switch v := v.(*RevokeAllUserAuthTokensRequest); i { case 0: return &v.state @@ -31786,7 +32468,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[197].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[199].Exporter = func(v any, i int) any { switch v := v.(*RevokeAllUserAuthTokensResponse); i { case 0: return &v.state @@ -31798,7 +32480,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[198].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[200].Exporter = func(v any, i int) any { switch v := v.(*RevokeRepresentativeAuthTokensRequest); i { case 0: return &v.state @@ -31810,7 +32492,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[199].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[201].Exporter = func(v any, i int) any { switch v := v.(*RevokeRepresentativeAuthTokensResponse); i { case 0: return &v.state @@ -31822,7 +32504,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[200].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[202].Exporter = func(v any, i int) any { switch v := v.(*IssueRepresentativeAuthTokenRequest); i { case 0: return &v.state @@ -31834,7 +32516,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[201].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[203].Exporter = func(v any, i int) any { switch v := v.(*IssueRepresentativeAuthTokenResponse); i { case 0: return &v.state @@ -31846,7 +32528,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[202].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[204].Exporter = func(v any, i int) any { switch v := v.(*RevokeCurrentAuthTokenRequest); i { case 0: return &v.state @@ -31858,7 +32540,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[203].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[205].Exporter = func(v any, i int) any { switch v := v.(*RevokeCurrentAuthTokenResponse); i { case 0: return &v.state @@ -31870,7 +32552,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[204].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[206].Exporter = func(v any, i int) any { switch v := v.(*ListBookmarksRequest); i { case 0: return &v.state @@ -31882,7 +32564,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[205].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[207].Exporter = func(v any, i int) any { switch v := v.(*ListBookmarksResponse); i { case 0: return &v.state @@ -31894,7 +32576,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[206].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[208].Exporter = func(v any, i int) any { switch v := v.(*GetBookmarkRequest); i { case 0: return &v.state @@ -31906,7 +32588,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[207].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[209].Exporter = func(v any, i int) any { switch v := v.(*GetBookmarkResponse); i { case 0: return &v.state @@ -31918,7 +32600,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[208].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[210].Exporter = func(v any, i int) any { switch v := v.(*CreateBookmarkRequest); i { case 0: return &v.state @@ -31930,7 +32612,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[209].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[211].Exporter = func(v any, i int) any { switch v := v.(*CreateBookmarkResponse); i { case 0: return &v.state @@ -31942,7 +32624,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[210].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[212].Exporter = func(v any, i int) any { switch v := v.(*UpdateBookmarkRequest); i { case 0: return &v.state @@ -31954,7 +32636,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[211].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[213].Exporter = func(v any, i int) any { switch v := v.(*UpdateBookmarkResponse); i { case 0: return &v.state @@ -31966,7 +32648,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[212].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[214].Exporter = func(v any, i int) any { switch v := v.(*RemoveBookmarkRequest); i { case 0: return &v.state @@ -31978,7 +32660,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[213].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[215].Exporter = func(v any, i int) any { switch v := v.(*RemoveBookmarkResponse); i { case 0: return &v.state @@ -31990,7 +32672,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[214].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[216].Exporter = func(v any, i int) any { switch v := v.(*SearchUsersRequest); i { case 0: return &v.state @@ -32002,7 +32684,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[215].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[217].Exporter = func(v any, i int) any { switch v := v.(*SearchUsersResponse); i { case 0: return &v.state @@ -32014,7 +32696,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[216].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[218].Exporter = func(v any, i int) any { switch v := v.(*RevokeServiceAuthTokenRequest); i { case 0: return &v.state @@ -32026,7 +32708,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[217].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[219].Exporter = func(v any, i int) any { switch v := v.(*RevokeServiceAuthTokenResponse); i { case 0: return &v.state @@ -32038,7 +32720,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[218].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[220].Exporter = func(v any, i int) any { switch v := v.(*IssueServiceAuthTokenRequest); i { case 0: return &v.state @@ -32050,7 +32732,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[219].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[221].Exporter = func(v any, i int) any { switch v := v.(*IssueServiceAuthTokenResponse); i { case 0: return &v.state @@ -32062,7 +32744,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[220].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[222].Exporter = func(v any, i int) any { switch v := v.(*ListServiceAuthTokensRequest); i { case 0: return &v.state @@ -32074,7 +32756,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[221].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[223].Exporter = func(v any, i int) any { switch v := v.(*ListServiceAuthTokensResponse); i { case 0: return &v.state @@ -32086,7 +32768,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[222].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[224].Exporter = func(v any, i int) any { switch v := v.(*IssueMagicAuthTokenRequest); i { case 0: return &v.state @@ -32098,7 +32780,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[223].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[225].Exporter = func(v any, i int) any { switch v := v.(*ResourceName); i { case 0: return &v.state @@ -32110,7 +32792,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[224].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[226].Exporter = func(v any, i int) any { switch v := v.(*IssueMagicAuthTokenResponse); i { case 0: return &v.state @@ -32122,7 +32804,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[225].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[227].Exporter = func(v any, i int) any { switch v := v.(*ListMagicAuthTokensRequest); i { case 0: return &v.state @@ -32134,7 +32816,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[226].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[228].Exporter = func(v any, i int) any { switch v := v.(*ListMagicAuthTokensResponse); i { case 0: return &v.state @@ -32146,7 +32828,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[227].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[229].Exporter = func(v any, i int) any { switch v := v.(*GetCurrentMagicAuthTokenRequest); i { case 0: return &v.state @@ -32158,7 +32840,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[228].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[230].Exporter = func(v any, i int) any { switch v := v.(*GetCurrentMagicAuthTokenResponse); i { case 0: return &v.state @@ -32170,7 +32852,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[229].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[231].Exporter = func(v any, i int) any { switch v := v.(*RevokeMagicAuthTokenRequest); i { case 0: return &v.state @@ -32182,7 +32864,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[230].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[232].Exporter = func(v any, i int) any { switch v := v.(*RevokeMagicAuthTokenResponse); i { case 0: return &v.state @@ -32194,7 +32876,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[231].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[233].Exporter = func(v any, i int) any { switch v := v.(*GetGithubRepoStatusRequest); i { case 0: return &v.state @@ -32206,7 +32888,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[232].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[234].Exporter = func(v any, i int) any { switch v := v.(*GetGithubRepoStatusResponse); i { case 0: return &v.state @@ -32218,7 +32900,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[233].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[235].Exporter = func(v any, i int) any { switch v := v.(*GetGithubUserStatusRequest); i { case 0: return &v.state @@ -32230,7 +32912,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[234].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[236].Exporter = func(v any, i int) any { switch v := v.(*GetGithubUserStatusResponse); i { case 0: return &v.state @@ -32242,7 +32924,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[235].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[237].Exporter = func(v any, i int) any { switch v := v.(*ListGithubUserReposRequest); i { case 0: return &v.state @@ -32254,7 +32936,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[236].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[238].Exporter = func(v any, i int) any { switch v := v.(*ListGithubUserReposResponse); i { case 0: return &v.state @@ -32266,7 +32948,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[237].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[239].Exporter = func(v any, i int) any { switch v := v.(*ConnectProjectToGithubRequest); i { case 0: return &v.state @@ -32278,7 +32960,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[238].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[240].Exporter = func(v any, i int) any { switch v := v.(*ConnectProjectToGithubResponse); i { case 0: return &v.state @@ -32290,7 +32972,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[239].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[241].Exporter = func(v any, i int) any { switch v := v.(*CreateManagedGitRepoRequest); i { case 0: return &v.state @@ -32302,7 +32984,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[240].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[242].Exporter = func(v any, i int) any { switch v := v.(*CreateManagedGitRepoResponse); i { case 0: return &v.state @@ -32314,7 +32996,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[241].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[243].Exporter = func(v any, i int) any { switch v := v.(*GetCloneCredentialsRequest); i { case 0: return &v.state @@ -32326,7 +33008,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[242].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[244].Exporter = func(v any, i int) any { switch v := v.(*GetCloneCredentialsResponse); i { case 0: return &v.state @@ -32338,7 +33020,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[243].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[245].Exporter = func(v any, i int) any { switch v := v.(*CreateWhitelistedDomainRequest); i { case 0: return &v.state @@ -32350,7 +33032,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[244].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[246].Exporter = func(v any, i int) any { switch v := v.(*CreateWhitelistedDomainResponse); i { case 0: return &v.state @@ -32362,7 +33044,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[245].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[247].Exporter = func(v any, i int) any { switch v := v.(*RemoveWhitelistedDomainRequest); i { case 0: return &v.state @@ -32374,7 +33056,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[246].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[248].Exporter = func(v any, i int) any { switch v := v.(*RemoveWhitelistedDomainResponse); i { case 0: return &v.state @@ -32386,7 +33068,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[247].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[249].Exporter = func(v any, i int) any { switch v := v.(*ListWhitelistedDomainsRequest); i { case 0: return &v.state @@ -32398,7 +33080,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[248].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[250].Exporter = func(v any, i int) any { switch v := v.(*ListWhitelistedDomainsResponse); i { case 0: return &v.state @@ -32410,7 +33092,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[249].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[251].Exporter = func(v any, i int) any { switch v := v.(*CreateProjectWhitelistedDomainRequest); i { case 0: return &v.state @@ -32422,7 +33104,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[250].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[252].Exporter = func(v any, i int) any { switch v := v.(*CreateProjectWhitelistedDomainResponse); i { case 0: return &v.state @@ -32434,7 +33116,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[251].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[253].Exporter = func(v any, i int) any { switch v := v.(*RemoveProjectWhitelistedDomainRequest); i { case 0: return &v.state @@ -32446,7 +33128,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[252].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[254].Exporter = func(v any, i int) any { switch v := v.(*RemoveProjectWhitelistedDomainResponse); i { case 0: return &v.state @@ -32458,7 +33140,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[253].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[255].Exporter = func(v any, i int) any { switch v := v.(*ListProjectWhitelistedDomainsRequest); i { case 0: return &v.state @@ -32470,7 +33152,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[254].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[256].Exporter = func(v any, i int) any { switch v := v.(*ListProjectWhitelistedDomainsResponse); i { case 0: return &v.state @@ -32482,7 +33164,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[255].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[257].Exporter = func(v any, i int) any { switch v := v.(*GetRepoMetaRequest); i { case 0: return &v.state @@ -32494,7 +33176,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[256].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[258].Exporter = func(v any, i int) any { switch v := v.(*GetRepoMetaResponse); i { case 0: return &v.state @@ -32506,7 +33188,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[257].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[259].Exporter = func(v any, i int) any { switch v := v.(*PullVirtualRepoRequest); i { case 0: return &v.state @@ -32518,7 +33200,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[258].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[260].Exporter = func(v any, i int) any { switch v := v.(*PullVirtualRepoResponse); i { case 0: return &v.state @@ -32530,7 +33212,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[259].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[261].Exporter = func(v any, i int) any { switch v := v.(*GetVirtualFileRequest); i { case 0: return &v.state @@ -32542,7 +33224,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[260].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[262].Exporter = func(v any, i int) any { switch v := v.(*GetVirtualFileResponse); i { case 0: return &v.state @@ -32554,7 +33236,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[261].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[263].Exporter = func(v any, i int) any { switch v := v.(*DeleteVirtualFileRequest); i { case 0: return &v.state @@ -32566,7 +33248,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[262].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[264].Exporter = func(v any, i int) any { switch v := v.(*DeleteVirtualFileResponse); i { case 0: return &v.state @@ -32578,7 +33260,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[263].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[265].Exporter = func(v any, i int) any { switch v := v.(*GetReportMetaRequest); i { case 0: return &v.state @@ -32590,7 +33272,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[264].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[266].Exporter = func(v any, i int) any { switch v := v.(*GetReportMetaResponse); i { case 0: return &v.state @@ -32602,7 +33284,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[265].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[267].Exporter = func(v any, i int) any { switch v := v.(*GetAlertMetaRequest); i { case 0: return &v.state @@ -32614,7 +33296,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[266].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[268].Exporter = func(v any, i int) any { switch v := v.(*GetAlertMetaResponse); i { case 0: return &v.state @@ -32626,7 +33308,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[267].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[269].Exporter = func(v any, i int) any { switch v := v.(*CreateReportRequest); i { case 0: return &v.state @@ -32638,7 +33320,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[268].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[270].Exporter = func(v any, i int) any { switch v := v.(*CreateReportResponse); i { case 0: return &v.state @@ -32650,7 +33332,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[269].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[271].Exporter = func(v any, i int) any { switch v := v.(*EditReportRequest); i { case 0: return &v.state @@ -32662,7 +33344,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[270].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[272].Exporter = func(v any, i int) any { switch v := v.(*EditReportResponse); i { case 0: return &v.state @@ -32674,7 +33356,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[271].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[273].Exporter = func(v any, i int) any { switch v := v.(*UnsubscribeReportRequest); i { case 0: return &v.state @@ -32686,7 +33368,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[272].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[274].Exporter = func(v any, i int) any { switch v := v.(*UnsubscribeReportResponse); i { case 0: return &v.state @@ -32698,7 +33380,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[273].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[275].Exporter = func(v any, i int) any { switch v := v.(*DeleteReportRequest); i { case 0: return &v.state @@ -32710,7 +33392,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[274].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[276].Exporter = func(v any, i int) any { switch v := v.(*DeleteReportResponse); i { case 0: return &v.state @@ -32722,7 +33404,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[275].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[277].Exporter = func(v any, i int) any { switch v := v.(*TriggerReportRequest); i { case 0: return &v.state @@ -32734,7 +33416,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[276].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[278].Exporter = func(v any, i int) any { switch v := v.(*TriggerReportResponse); i { case 0: return &v.state @@ -32746,7 +33428,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[277].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[279].Exporter = func(v any, i int) any { switch v := v.(*GenerateReportYAMLRequest); i { case 0: return &v.state @@ -32758,7 +33440,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[278].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[280].Exporter = func(v any, i int) any { switch v := v.(*GenerateReportYAMLResponse); i { case 0: return &v.state @@ -32770,7 +33452,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[279].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[281].Exporter = func(v any, i int) any { switch v := v.(*CreateAlertRequest); i { case 0: return &v.state @@ -32782,7 +33464,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[280].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[282].Exporter = func(v any, i int) any { switch v := v.(*CreateAlertResponse); i { case 0: return &v.state @@ -32794,7 +33476,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[281].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[283].Exporter = func(v any, i int) any { switch v := v.(*EditAlertRequest); i { case 0: return &v.state @@ -32806,7 +33488,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[282].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[284].Exporter = func(v any, i int) any { switch v := v.(*EditAlertResponse); i { case 0: return &v.state @@ -32818,7 +33500,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[283].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[285].Exporter = func(v any, i int) any { switch v := v.(*UnsubscribeAlertRequest); i { case 0: return &v.state @@ -32830,7 +33512,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[284].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[286].Exporter = func(v any, i int) any { switch v := v.(*UnsubscribeAlertResponse); i { case 0: return &v.state @@ -32842,7 +33524,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[285].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[287].Exporter = func(v any, i int) any { switch v := v.(*DeleteAlertRequest); i { case 0: return &v.state @@ -32854,7 +33536,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[286].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[288].Exporter = func(v any, i int) any { switch v := v.(*DeleteAlertResponse); i { case 0: return &v.state @@ -32866,7 +33548,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[287].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[289].Exporter = func(v any, i int) any { switch v := v.(*GenerateAlertYAMLRequest); i { case 0: return &v.state @@ -32878,7 +33560,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[288].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[290].Exporter = func(v any, i int) any { switch v := v.(*GenerateAlertYAMLResponse); i { case 0: return &v.state @@ -32890,7 +33572,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[289].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[291].Exporter = func(v any, i int) any { switch v := v.(*GetAlertYAMLRequest); i { case 0: return &v.state @@ -32902,7 +33584,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[290].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[292].Exporter = func(v any, i int) any { switch v := v.(*GetAlertYAMLResponse); i { case 0: return &v.state @@ -32914,7 +33596,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[291].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[293].Exporter = func(v any, i int) any { switch v := v.(*GetBillingSubscriptionRequest); i { case 0: return &v.state @@ -32926,7 +33608,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[292].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[294].Exporter = func(v any, i int) any { switch v := v.(*GetBillingSubscriptionResponse); i { case 0: return &v.state @@ -32938,7 +33620,19 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[293].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[295].Exporter = func(v any, i int) any { + switch v := v.(*BillingCreditInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[296].Exporter = func(v any, i int) any { switch v := v.(*UpdateBillingSubscriptionRequest); i { case 0: return &v.state @@ -32950,7 +33644,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[294].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[297].Exporter = func(v any, i int) any { switch v := v.(*UpdateBillingSubscriptionResponse); i { case 0: return &v.state @@ -32962,7 +33656,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[295].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[298].Exporter = func(v any, i int) any { switch v := v.(*CancelBillingSubscriptionRequest); i { case 0: return &v.state @@ -32974,7 +33668,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[296].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[299].Exporter = func(v any, i int) any { switch v := v.(*CancelBillingSubscriptionResponse); i { case 0: return &v.state @@ -32986,7 +33680,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[297].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[300].Exporter = func(v any, i int) any { switch v := v.(*RenewBillingSubscriptionRequest); i { case 0: return &v.state @@ -32998,7 +33692,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[298].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[301].Exporter = func(v any, i int) any { switch v := v.(*RenewBillingSubscriptionResponse); i { case 0: return &v.state @@ -33010,7 +33704,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[299].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[302].Exporter = func(v any, i int) any { switch v := v.(*GetPaymentsPortalURLRequest); i { case 0: return &v.state @@ -33022,7 +33716,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[300].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[303].Exporter = func(v any, i int) any { switch v := v.(*GetPaymentsPortalURLResponse); i { case 0: return &v.state @@ -33034,7 +33728,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[301].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[304].Exporter = func(v any, i int) any { switch v := v.(*ListPublicBillingPlansRequest); i { case 0: return &v.state @@ -33046,7 +33740,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[302].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[305].Exporter = func(v any, i int) any { switch v := v.(*ListPublicBillingPlansResponse); i { case 0: return &v.state @@ -33058,7 +33752,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[303].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[306].Exporter = func(v any, i int) any { switch v := v.(*GetBillingProjectCredentialsRequest); i { case 0: return &v.state @@ -33070,7 +33764,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[304].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[307].Exporter = func(v any, i int) any { switch v := v.(*GetBillingProjectCredentialsResponse); i { case 0: return &v.state @@ -33082,7 +33776,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[305].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[308].Exporter = func(v any, i int) any { switch v := v.(*TelemetryRequest); i { case 0: return &v.state @@ -33094,7 +33788,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[306].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[309].Exporter = func(v any, i int) any { switch v := v.(*TelemetryResponse); i { case 0: return &v.state @@ -33106,7 +33800,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[307].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[310].Exporter = func(v any, i int) any { switch v := v.(*RequestProjectAccessRequest); i { case 0: return &v.state @@ -33118,7 +33812,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[308].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[311].Exporter = func(v any, i int) any { switch v := v.(*RequestProjectAccessResponse); i { case 0: return &v.state @@ -33130,7 +33824,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[309].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[312].Exporter = func(v any, i int) any { switch v := v.(*GetProjectAccessRequestRequest); i { case 0: return &v.state @@ -33142,7 +33836,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[310].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[313].Exporter = func(v any, i int) any { switch v := v.(*GetProjectAccessRequestResponse); i { case 0: return &v.state @@ -33154,7 +33848,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[311].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[314].Exporter = func(v any, i int) any { switch v := v.(*ApproveProjectAccessRequest); i { case 0: return &v.state @@ -33166,7 +33860,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[312].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[315].Exporter = func(v any, i int) any { switch v := v.(*ApproveProjectAccessResponse); i { case 0: return &v.state @@ -33178,7 +33872,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[313].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[316].Exporter = func(v any, i int) any { switch v := v.(*DenyProjectAccessRequest); i { case 0: return &v.state @@ -33190,7 +33884,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[314].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[317].Exporter = func(v any, i int) any { switch v := v.(*DenyProjectAccessResponse); i { case 0: return &v.state @@ -33202,7 +33896,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[315].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[318].Exporter = func(v any, i int) any { switch v := v.(*ListOrganizationBillingIssuesRequest); i { case 0: return &v.state @@ -33214,7 +33908,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[316].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[319].Exporter = func(v any, i int) any { switch v := v.(*ListOrganizationBillingIssuesResponse); i { case 0: return &v.state @@ -33226,7 +33920,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[317].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[320].Exporter = func(v any, i int) any { switch v := v.(*User); i { case 0: return &v.state @@ -33238,7 +33932,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[318].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[321].Exporter = func(v any, i int) any { switch v := v.(*Service); i { case 0: return &v.state @@ -33250,7 +33944,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[319].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[322].Exporter = func(v any, i int) any { switch v := v.(*OrganizationMemberService); i { case 0: return &v.state @@ -33262,7 +33956,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[320].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[323].Exporter = func(v any, i int) any { switch v := v.(*ProjectMemberService); i { case 0: return &v.state @@ -33274,7 +33968,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[321].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[324].Exporter = func(v any, i int) any { switch v := v.(*Organization); i { case 0: return &v.state @@ -33286,7 +33980,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[322].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[325].Exporter = func(v any, i int) any { switch v := v.(*Subscription); i { case 0: return &v.state @@ -33298,7 +33992,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[323].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[326].Exporter = func(v any, i int) any { switch v := v.(*UserQuotas); i { case 0: return &v.state @@ -33310,7 +34004,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[324].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[327].Exporter = func(v any, i int) any { switch v := v.(*OrganizationQuotas); i { case 0: return &v.state @@ -33322,7 +34016,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[325].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[328].Exporter = func(v any, i int) any { switch v := v.(*Project); i { case 0: return &v.state @@ -33334,7 +34028,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[326].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[329].Exporter = func(v any, i int) any { switch v := v.(*Deployment); i { case 0: return &v.state @@ -33346,7 +34040,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[327].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[330].Exporter = func(v any, i int) any { switch v := v.(*ProvisionerResource); i { case 0: return &v.state @@ -33358,7 +34052,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[328].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[331].Exporter = func(v any, i int) any { switch v := v.(*OrganizationPermissions); i { case 0: return &v.state @@ -33370,7 +34064,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[329].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[332].Exporter = func(v any, i int) any { switch v := v.(*ProjectPermissions); i { case 0: return &v.state @@ -33382,7 +34076,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[330].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[333].Exporter = func(v any, i int) any { switch v := v.(*OrganizationRole); i { case 0: return &v.state @@ -33394,7 +34088,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[331].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[334].Exporter = func(v any, i int) any { switch v := v.(*ProjectRole); i { case 0: return &v.state @@ -33406,7 +34100,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[332].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[335].Exporter = func(v any, i int) any { switch v := v.(*OrganizationMemberUser); i { case 0: return &v.state @@ -33418,7 +34112,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[333].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[336].Exporter = func(v any, i int) any { switch v := v.(*ProjectMemberUser); i { case 0: return &v.state @@ -33430,7 +34124,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[334].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[337].Exporter = func(v any, i int) any { switch v := v.(*UsergroupMemberUser); i { case 0: return &v.state @@ -33442,7 +34136,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[335].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[338].Exporter = func(v any, i int) any { switch v := v.(*OrganizationInvite); i { case 0: return &v.state @@ -33454,7 +34148,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[336].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[339].Exporter = func(v any, i int) any { switch v := v.(*ProjectInvite); i { case 0: return &v.state @@ -33466,7 +34160,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[337].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[340].Exporter = func(v any, i int) any { switch v := v.(*WhitelistedDomain); i { case 0: return &v.state @@ -33478,7 +34172,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[338].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[341].Exporter = func(v any, i int) any { switch v := v.(*Bookmark); i { case 0: return &v.state @@ -33490,7 +34184,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[339].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[342].Exporter = func(v any, i int) any { switch v := v.(*ServiceToken); i { case 0: return &v.state @@ -33502,7 +34196,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[340].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[343].Exporter = func(v any, i int) any { switch v := v.(*UserAuthToken); i { case 0: return &v.state @@ -33514,7 +34208,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[341].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[344].Exporter = func(v any, i int) any { switch v := v.(*MagicAuthToken); i { case 0: return &v.state @@ -33526,7 +34220,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[342].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[345].Exporter = func(v any, i int) any { switch v := v.(*VirtualFile); i { case 0: return &v.state @@ -33538,7 +34232,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[343].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[346].Exporter = func(v any, i int) any { switch v := v.(*ReportOptions); i { case 0: return &v.state @@ -33550,7 +34244,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[344].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[347].Exporter = func(v any, i int) any { switch v := v.(*AlertOptions); i { case 0: return &v.state @@ -33562,7 +34256,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[345].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[348].Exporter = func(v any, i int) any { switch v := v.(*BillingPlan); i { case 0: return &v.state @@ -33574,7 +34268,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[346].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[349].Exporter = func(v any, i int) any { switch v := v.(*Quotas); i { case 0: return &v.state @@ -33586,7 +34280,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[347].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[350].Exporter = func(v any, i int) any { switch v := v.(*Usergroup); i { case 0: return &v.state @@ -33598,7 +34292,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[348].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[351].Exporter = func(v any, i int) any { switch v := v.(*MemberUsergroup); i { case 0: return &v.state @@ -33610,7 +34304,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[349].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[352].Exporter = func(v any, i int) any { switch v := v.(*BillingIssue); i { case 0: return &v.state @@ -33622,7 +34316,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[350].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[353].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadata); i { case 0: return &v.state @@ -33634,7 +34328,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[351].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[354].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataOnTrial); i { case 0: return &v.state @@ -33646,7 +34340,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[352].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[355].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataTrialEnded); i { case 0: return &v.state @@ -33658,7 +34352,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[353].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[356].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataNoPaymentMethod); i { case 0: return &v.state @@ -33670,7 +34364,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[354].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[357].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataNoBillableAddress); i { case 0: return &v.state @@ -33682,7 +34376,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[355].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[358].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataPaymentFailed); i { case 0: return &v.state @@ -33694,7 +34388,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[356].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[359].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataPaymentFailedMeta); i { case 0: return &v.state @@ -33706,7 +34400,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[357].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[360].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataSubscriptionCancelled); i { case 0: return &v.state @@ -33718,7 +34412,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[358].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[361].Exporter = func(v any, i int) any { switch v := v.(*BillingIssueMetadataNeverSubscribed); i { case 0: return &v.state @@ -33730,7 +34424,43 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[370].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[362].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataCreditLow); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[363].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataCreditCritical); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[364].Exporter = func(v any, i int) any { + switch v := v.(*BillingIssueMetadataCreditExhausted); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_rill_admin_v1_api_proto_msgTypes[376].Exporter = func(v any, i int) any { switch v := v.(*ListGithubUserReposResponse_Repo); i { case 0: return &v.state @@ -33742,7 +34472,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[371].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[377].Exporter = func(v any, i int) any { switch v := v.(*GetReportMetaResponse_DeliveryMeta); i { case 0: return &v.state @@ -33754,7 +34484,7 @@ func file_rill_admin_v1_api_proto_init() { return nil } } - file_rill_admin_v1_api_proto_msgTypes[374].Exporter = func(v any, i int) any { + file_rill_admin_v1_api_proto_msgTypes[380].Exporter = func(v any, i int) any { switch v := v.(*GetAlertMetaResponse_URLs); i { case 0: return &v.state @@ -33802,20 +34532,21 @@ func file_rill_admin_v1_api_proto_init() { } file_rill_admin_v1_api_proto_msgTypes[121].OneofWrappers = []any{} file_rill_admin_v1_api_proto_msgTypes[123].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[129].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[143].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[147].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[155].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[169].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[131].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[145].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[149].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[157].OneofWrappers = []any{} file_rill_admin_v1_api_proto_msgTypes[171].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[181].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[190].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[265].OneofWrappers = []any{ + file_rill_admin_v1_api_proto_msgTypes[173].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[183].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[192].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[267].OneofWrappers = []any{ (*GetAlertMetaRequest_QueryForUserId)(nil), (*GetAlertMetaRequest_QueryForUserEmail)(nil), } - file_rill_admin_v1_api_proto_msgTypes[321].OneofWrappers = []any{} - file_rill_admin_v1_api_proto_msgTypes[350].OneofWrappers = []any{ + file_rill_admin_v1_api_proto_msgTypes[324].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[328].OneofWrappers = []any{} + file_rill_admin_v1_api_proto_msgTypes[353].OneofWrappers = []any{ (*BillingIssueMetadata_OnTrial)(nil), (*BillingIssueMetadata_TrialEnded)(nil), (*BillingIssueMetadata_NoPaymentMethod)(nil), @@ -33823,6 +34554,9 @@ func file_rill_admin_v1_api_proto_init() { (*BillingIssueMetadata_PaymentFailed)(nil), (*BillingIssueMetadata_SubscriptionCancelled)(nil), (*BillingIssueMetadata_NeverSubscribed)(nil), + (*BillingIssueMetadata_CreditLow)(nil), + (*BillingIssueMetadata_CreditCritical)(nil), + (*BillingIssueMetadata_CreditExhausted)(nil), } type x struct{} out := protoimpl.TypeBuilder{ @@ -33830,7 +34564,7 @@ func file_rill_admin_v1_api_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rill_admin_v1_api_proto_rawDesc, NumEnums: 5, - NumMessages: 378, + NumMessages: 384, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/gen/rill/admin/v1/api.pb.gw.go b/proto/gen/rill/admin/v1/api.pb.gw.go index fcbb401c3b8..231b534438e 100644 --- a/proto/gen/rill/admin/v1/api.pb.gw.go +++ b/proto/gen/rill/admin/v1/api.pb.gw.go @@ -6011,6 +6011,32 @@ func local_request_AdminService_SudoExtendTrial_0(ctx context.Context, marshaler } +func request_AdminService_SudoAddCredits_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SudoAddCreditsRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.SudoAddCredits(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AdminService_SudoAddCredits_0(ctx context.Context, marshaler runtime.Marshaler, server AdminServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq SudoAddCreditsRequest + var metadata runtime.ServerMetadata + + if err := marshaler.NewDecoder(req.Body).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.SudoAddCredits(ctx, &protoReq) + return msg, metadata, err + +} + func request_AdminService_SudoUpdateOrganizationCustomDomain_0(ctx context.Context, marshaler runtime.Marshaler, client AdminServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq SudoUpdateOrganizationCustomDomainRequest var metadata runtime.ServerMetadata @@ -12407,6 +12433,31 @@ func RegisterAdminServiceHandlerServer(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_SudoAddCredits_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/rill.admin.v1.AdminService/SudoAddCredits", runtime.WithHTTPPathPattern("/v1/superuser/organization/credits/add")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AdminService_SudoAddCredits_0(annotatedContext, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_SudoAddCredits_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("PATCH", pattern_AdminService_SudoUpdateOrganizationCustomDomain_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -16063,6 +16114,28 @@ func RegisterAdminServiceHandlerClient(ctx context.Context, mux *runtime.ServeMu }) + mux.Handle("POST", pattern_AdminService_SudoAddCredits_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + var annotatedContext context.Context + annotatedContext, err = runtime.AnnotateContext(ctx, mux, req, "/rill.admin.v1.AdminService/SudoAddCredits", runtime.WithHTTPPathPattern("/v1/superuser/organization/credits/add")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AdminService_SudoAddCredits_0(annotatedContext, inboundMarshaler, client, req, pathParams) + annotatedContext = runtime.NewServerMetadataContext(annotatedContext, md) + if err != nil { + runtime.HTTPError(annotatedContext, mux, outboundMarshaler, w, req, err) + return + } + + forward_AdminService_SudoAddCredits_0(annotatedContext, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("PATCH", pattern_AdminService_SudoUpdateOrganizationCustomDomain_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -17599,6 +17672,8 @@ var ( pattern_AdminService_SudoExtendTrial_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"v1", "superuser", "organization", "trial", "extend"}, "")) + pattern_AdminService_SudoAddCredits_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3, 2, 4}, []string{"v1", "superuser", "organization", "credits", "add"}, "")) + pattern_AdminService_SudoUpdateOrganizationCustomDomain_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "superuser", "organization", "custom-domain"}, "")) pattern_AdminService_SudoUpdateAnnotations_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "superuser", "projects", "annotations"}, "")) @@ -17913,6 +17988,8 @@ var ( forward_AdminService_SudoExtendTrial_0 = runtime.ForwardResponseMessage + forward_AdminService_SudoAddCredits_0 = runtime.ForwardResponseMessage + forward_AdminService_SudoUpdateOrganizationCustomDomain_0 = runtime.ForwardResponseMessage forward_AdminService_SudoUpdateAnnotations_0 = runtime.ForwardResponseMessage diff --git a/proto/gen/rill/admin/v1/api.pb.validate.go b/proto/gen/rill/admin/v1/api.pb.validate.go index 24719d3d71a..3735f08b793 100644 --- a/proto/gen/rill/admin/v1/api.pb.validate.go +++ b/proto/gen/rill/admin/v1/api.pb.validate.go @@ -10152,6 +10152,14 @@ func (m *UpdateProjectRequest) validate(all bool) error { // no validation rules for ProdVersion } + if m.InfraSlots != nil { + // no validation rules for InfraSlots + } + + if m.ClusterSlots != nil { + // no validation rules for ClusterSlots + } + if len(errors) > 0 { return UpdateProjectRequestMultiError(errors) } @@ -17119,6 +17127,265 @@ var _ interface { ErrorName() string } = SudoExtendTrialResponseValidationError{} +// Validate checks the field values on SudoAddCreditsRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *SudoAddCreditsRequest) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SudoAddCreditsRequest with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SudoAddCreditsRequestMultiError, or nil if none found. +func (m *SudoAddCreditsRequest) ValidateAll() error { + return m.validate(true) +} + +func (m *SudoAddCreditsRequest) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if utf8.RuneCountInString(m.GetOrg()) < 1 { + err := SudoAddCreditsRequestValidationError{ + field: "Org", + reason: "value length must be at least 1 runes", + } + if !all { + return err + } + errors = append(errors, err) + } + + if m.GetAmount() <= 0 { + err := SudoAddCreditsRequestValidationError{ + field: "Amount", + reason: "value must be greater than 0", + } + if !all { + return err + } + errors = append(errors, err) + } + + // no validation rules for ExpiryDays + + // no validation rules for Description + + if len(errors) > 0 { + return SudoAddCreditsRequestMultiError(errors) + } + + return nil +} + +// SudoAddCreditsRequestMultiError is an error wrapping multiple validation +// errors returned by SudoAddCreditsRequest.ValidateAll() if the designated +// constraints aren't met. +type SudoAddCreditsRequestMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SudoAddCreditsRequestMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SudoAddCreditsRequestMultiError) AllErrors() []error { return m } + +// SudoAddCreditsRequestValidationError is the validation error returned by +// SudoAddCreditsRequest.Validate if the designated constraints aren't met. +type SudoAddCreditsRequestValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SudoAddCreditsRequestValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SudoAddCreditsRequestValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SudoAddCreditsRequestValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SudoAddCreditsRequestValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SudoAddCreditsRequestValidationError) ErrorName() string { + return "SudoAddCreditsRequestValidationError" +} + +// Error satisfies the builtin error interface +func (e SudoAddCreditsRequestValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSudoAddCreditsRequest.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SudoAddCreditsRequestValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SudoAddCreditsRequestValidationError{} + +// Validate checks the field values on SudoAddCreditsResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *SudoAddCreditsResponse) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on SudoAddCreditsResponse with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// SudoAddCreditsResponseMultiError, or nil if none found. +func (m *SudoAddCreditsResponse) ValidateAll() error { + return m.validate(true) +} + +func (m *SudoAddCreditsResponse) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + if all { + switch v := interface{}(m.GetCreditInfo()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, SudoAddCreditsResponseValidationError{ + field: "CreditInfo", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, SudoAddCreditsResponseValidationError{ + field: "CreditInfo", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditInfo()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return SudoAddCreditsResponseValidationError{ + field: "CreditInfo", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return SudoAddCreditsResponseMultiError(errors) + } + + return nil +} + +// SudoAddCreditsResponseMultiError is an error wrapping multiple validation +// errors returned by SudoAddCreditsResponse.ValidateAll() if the designated +// constraints aren't met. +type SudoAddCreditsResponseMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m SudoAddCreditsResponseMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m SudoAddCreditsResponseMultiError) AllErrors() []error { return m } + +// SudoAddCreditsResponseValidationError is the validation error returned by +// SudoAddCreditsResponse.Validate if the designated constraints aren't met. +type SudoAddCreditsResponseValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e SudoAddCreditsResponseValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e SudoAddCreditsResponseValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e SudoAddCreditsResponseValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e SudoAddCreditsResponseValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e SudoAddCreditsResponseValidationError) ErrorName() string { + return "SudoAddCreditsResponseValidationError" +} + +// Error satisfies the builtin error interface +func (e SudoAddCreditsResponseValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sSudoAddCreditsResponse.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = SudoAddCreditsResponseValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = SudoAddCreditsResponseValidationError{} + // Validate checks the field values on // SudoUpdateOrganizationCustomDomainRequest with the rules defined in the // proto definition for this message. If any rules are violated, the first @@ -38212,6 +38479,35 @@ func (m *GetBillingSubscriptionResponse) validate(all bool) error { // no validation rules for BillingPortalUrl + if all { + switch v := interface{}(m.GetCreditInfo()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, GetBillingSubscriptionResponseValidationError{ + field: "CreditInfo", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, GetBillingSubscriptionResponseValidationError{ + field: "CreditInfo", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditInfo()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return GetBillingSubscriptionResponseValidationError{ + field: "CreditInfo", + reason: "embedded message failed validation", + cause: err, + } + } + } + if len(errors) > 0 { return GetBillingSubscriptionResponseMultiError(errors) } @@ -38293,6 +38589,145 @@ var _ interface { ErrorName() string } = GetBillingSubscriptionResponseValidationError{} +// Validate checks the field values on BillingCreditInfo with the rules defined +// in the proto definition for this message. If any rules are violated, the +// first error encountered is returned, or nil if there are no violations. +func (m *BillingCreditInfo) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BillingCreditInfo with the rules +// defined in the proto definition for this message. If any rules are +// violated, the result is a list of violation errors wrapped in +// BillingCreditInfoMultiError, or nil if none found. +func (m *BillingCreditInfo) ValidateAll() error { + return m.validate(true) +} + +func (m *BillingCreditInfo) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for TotalCredit + + // no validation rules for UsedCredit + + // no validation rules for RemainingCredit + + if all { + switch v := interface{}(m.GetCreditExpiry()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingCreditInfoValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingCreditInfoValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditExpiry()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingCreditInfoValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + } + } + } + + // no validation rules for BurnRatePerDay + + if len(errors) > 0 { + return BillingCreditInfoMultiError(errors) + } + + return nil +} + +// BillingCreditInfoMultiError is an error wrapping multiple validation errors +// returned by BillingCreditInfo.ValidateAll() if the designated constraints +// aren't met. +type BillingCreditInfoMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BillingCreditInfoMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BillingCreditInfoMultiError) AllErrors() []error { return m } + +// BillingCreditInfoValidationError is the validation error returned by +// BillingCreditInfo.Validate if the designated constraints aren't met. +type BillingCreditInfoValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BillingCreditInfoValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BillingCreditInfoValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BillingCreditInfoValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BillingCreditInfoValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BillingCreditInfoValidationError) ErrorName() string { + return "BillingCreditInfoValidationError" +} + +// Error satisfies the builtin error interface +func (e BillingCreditInfoValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBillingCreditInfo.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BillingCreditInfoValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BillingCreditInfoValidationError{} + // Validate checks the field values on UpdateBillingSubscriptionRequest with // the rules defined in the proto definition for this message. If any rules // are violated, the first error encountered is returned, or nil if there are @@ -42740,6 +43175,20 @@ func (m *Project) validate(all bool) error { } } + // no validation rules for OlapConnector + + if m.ChcClusterSize != nil { + // no validation rules for ChcClusterSize + } + + if m.ClusterSlots != nil { + // no validation rules for ClusterSlots + } + + if m.InfraSlots != nil { + // no validation rules for InfraSlots + } + if len(errors) > 0 { return ProjectMultiError(errors) } @@ -47088,6 +47537,129 @@ func (m *BillingIssueMetadata) validate(all bool) error { } } + case *BillingIssueMetadata_CreditLow: + if v == nil { + err := BillingIssueMetadataValidationError{ + field: "Metadata", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetCreditLow()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataValidationError{ + field: "CreditLow", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataValidationError{ + field: "CreditLow", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditLow()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataValidationError{ + field: "CreditLow", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *BillingIssueMetadata_CreditCritical: + if v == nil { + err := BillingIssueMetadataValidationError{ + field: "Metadata", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetCreditCritical()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataValidationError{ + field: "CreditCritical", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataValidationError{ + field: "CreditCritical", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditCritical()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataValidationError{ + field: "CreditCritical", + reason: "embedded message failed validation", + cause: err, + } + } + } + + case *BillingIssueMetadata_CreditExhausted: + if v == nil { + err := BillingIssueMetadataValidationError{ + field: "Metadata", + reason: "oneof value cannot be a typed-nil", + } + if !all { + return err + } + errors = append(errors, err) + } + + if all { + switch v := interface{}(m.GetCreditExhausted()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataValidationError{ + field: "CreditExhausted", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataValidationError{ + field: "CreditExhausted", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditExhausted()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataValidationError{ + field: "CreditExhausted", + reason: "embedded message failed validation", + cause: err, + } + } + } + default: _ = v // ensures v is used } @@ -48285,6 +48857,445 @@ var _ interface { ErrorName() string } = BillingIssueMetadataNeverSubscribedValidationError{} +// Validate checks the field values on BillingIssueMetadataCreditLow with the +// rules defined in the proto definition for this message. If any rules are +// violated, the first error encountered is returned, or nil if there are no violations. +func (m *BillingIssueMetadataCreditLow) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BillingIssueMetadataCreditLow with +// the rules defined in the proto definition for this message. If any rules +// are violated, the result is a list of violation errors wrapped in +// BillingIssueMetadataCreditLowMultiError, or nil if none found. +func (m *BillingIssueMetadataCreditLow) ValidateAll() error { + return m.validate(true) +} + +func (m *BillingIssueMetadataCreditLow) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for CreditRemaining + + // no validation rules for CreditTotal + + if all { + switch v := interface{}(m.GetCreditExpiry()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataCreditLowValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataCreditLowValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditExpiry()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataCreditLowValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return BillingIssueMetadataCreditLowMultiError(errors) + } + + return nil +} + +// BillingIssueMetadataCreditLowMultiError is an error wrapping multiple +// validation errors returned by BillingIssueMetadataCreditLow.ValidateAll() +// if the designated constraints aren't met. +type BillingIssueMetadataCreditLowMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BillingIssueMetadataCreditLowMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BillingIssueMetadataCreditLowMultiError) AllErrors() []error { return m } + +// BillingIssueMetadataCreditLowValidationError is the validation error +// returned by BillingIssueMetadataCreditLow.Validate if the designated +// constraints aren't met. +type BillingIssueMetadataCreditLowValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BillingIssueMetadataCreditLowValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BillingIssueMetadataCreditLowValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BillingIssueMetadataCreditLowValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BillingIssueMetadataCreditLowValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BillingIssueMetadataCreditLowValidationError) ErrorName() string { + return "BillingIssueMetadataCreditLowValidationError" +} + +// Error satisfies the builtin error interface +func (e BillingIssueMetadataCreditLowValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBillingIssueMetadataCreditLow.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BillingIssueMetadataCreditLowValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BillingIssueMetadataCreditLowValidationError{} + +// Validate checks the field values on BillingIssueMetadataCreditCritical with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *BillingIssueMetadataCreditCritical) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BillingIssueMetadataCreditCritical +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// BillingIssueMetadataCreditCriticalMultiError, or nil if none found. +func (m *BillingIssueMetadataCreditCritical) ValidateAll() error { + return m.validate(true) +} + +func (m *BillingIssueMetadataCreditCritical) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for CreditRemaining + + // no validation rules for CreditTotal + + if all { + switch v := interface{}(m.GetCreditExpiry()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataCreditCriticalValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataCreditCriticalValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditExpiry()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataCreditCriticalValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return BillingIssueMetadataCreditCriticalMultiError(errors) + } + + return nil +} + +// BillingIssueMetadataCreditCriticalMultiError is an error wrapping multiple +// validation errors returned by +// BillingIssueMetadataCreditCritical.ValidateAll() if the designated +// constraints aren't met. +type BillingIssueMetadataCreditCriticalMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BillingIssueMetadataCreditCriticalMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BillingIssueMetadataCreditCriticalMultiError) AllErrors() []error { return m } + +// BillingIssueMetadataCreditCriticalValidationError is the validation error +// returned by BillingIssueMetadataCreditCritical.Validate if the designated +// constraints aren't met. +type BillingIssueMetadataCreditCriticalValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BillingIssueMetadataCreditCriticalValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BillingIssueMetadataCreditCriticalValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BillingIssueMetadataCreditCriticalValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BillingIssueMetadataCreditCriticalValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BillingIssueMetadataCreditCriticalValidationError) ErrorName() string { + return "BillingIssueMetadataCreditCriticalValidationError" +} + +// Error satisfies the builtin error interface +func (e BillingIssueMetadataCreditCriticalValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBillingIssueMetadataCreditCritical.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BillingIssueMetadataCreditCriticalValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BillingIssueMetadataCreditCriticalValidationError{} + +// Validate checks the field values on BillingIssueMetadataCreditExhausted with +// the rules defined in the proto definition for this message. If any rules +// are violated, the first error encountered is returned, or nil if there are +// no violations. +func (m *BillingIssueMetadataCreditExhausted) Validate() error { + return m.validate(false) +} + +// ValidateAll checks the field values on BillingIssueMetadataCreditExhausted +// with the rules defined in the proto definition for this message. If any +// rules are violated, the result is a list of violation errors wrapped in +// BillingIssueMetadataCreditExhaustedMultiError, or nil if none found. +func (m *BillingIssueMetadataCreditExhausted) ValidateAll() error { + return m.validate(true) +} + +func (m *BillingIssueMetadataCreditExhausted) validate(all bool) error { + if m == nil { + return nil + } + + var errors []error + + // no validation rules for CreditTotal + + if all { + switch v := interface{}(m.GetCreditExpiry()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataCreditExhaustedValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataCreditExhaustedValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetCreditExpiry()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataCreditExhaustedValidationError{ + field: "CreditExpiry", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if all { + switch v := interface{}(m.GetExhaustedOn()).(type) { + case interface{ ValidateAll() error }: + if err := v.ValidateAll(); err != nil { + errors = append(errors, BillingIssueMetadataCreditExhaustedValidationError{ + field: "ExhaustedOn", + reason: "embedded message failed validation", + cause: err, + }) + } + case interface{ Validate() error }: + if err := v.Validate(); err != nil { + errors = append(errors, BillingIssueMetadataCreditExhaustedValidationError{ + field: "ExhaustedOn", + reason: "embedded message failed validation", + cause: err, + }) + } + } + } else if v, ok := interface{}(m.GetExhaustedOn()).(interface{ Validate() error }); ok { + if err := v.Validate(); err != nil { + return BillingIssueMetadataCreditExhaustedValidationError{ + field: "ExhaustedOn", + reason: "embedded message failed validation", + cause: err, + } + } + } + + if len(errors) > 0 { + return BillingIssueMetadataCreditExhaustedMultiError(errors) + } + + return nil +} + +// BillingIssueMetadataCreditExhaustedMultiError is an error wrapping multiple +// validation errors returned by +// BillingIssueMetadataCreditExhausted.ValidateAll() if the designated +// constraints aren't met. +type BillingIssueMetadataCreditExhaustedMultiError []error + +// Error returns a concatenation of all the error messages it wraps. +func (m BillingIssueMetadataCreditExhaustedMultiError) Error() string { + var msgs []string + for _, err := range m { + msgs = append(msgs, err.Error()) + } + return strings.Join(msgs, "; ") +} + +// AllErrors returns a list of validation violation errors. +func (m BillingIssueMetadataCreditExhaustedMultiError) AllErrors() []error { return m } + +// BillingIssueMetadataCreditExhaustedValidationError is the validation error +// returned by BillingIssueMetadataCreditExhausted.Validate if the designated +// constraints aren't met. +type BillingIssueMetadataCreditExhaustedValidationError struct { + field string + reason string + cause error + key bool +} + +// Field function returns field value. +func (e BillingIssueMetadataCreditExhaustedValidationError) Field() string { return e.field } + +// Reason function returns reason value. +func (e BillingIssueMetadataCreditExhaustedValidationError) Reason() string { return e.reason } + +// Cause function returns cause value. +func (e BillingIssueMetadataCreditExhaustedValidationError) Cause() error { return e.cause } + +// Key function returns key value. +func (e BillingIssueMetadataCreditExhaustedValidationError) Key() bool { return e.key } + +// ErrorName returns error name. +func (e BillingIssueMetadataCreditExhaustedValidationError) ErrorName() string { + return "BillingIssueMetadataCreditExhaustedValidationError" +} + +// Error satisfies the builtin error interface +func (e BillingIssueMetadataCreditExhaustedValidationError) Error() string { + cause := "" + if e.cause != nil { + cause = fmt.Sprintf(" | caused by: %v", e.cause) + } + + key := "" + if e.key { + key = "key for " + } + + return fmt.Sprintf( + "invalid %sBillingIssueMetadataCreditExhausted.%s: %s%s", + key, + e.field, + e.reason, + cause) +} + +var _ error = BillingIssueMetadataCreditExhaustedValidationError{} + +var _ interface { + Field() string + Reason() string + Key() bool + Cause() error + ErrorName() string +} = BillingIssueMetadataCreditExhaustedValidationError{} + // Validate checks the field values on ListGithubUserReposResponse_Repo with // the rules defined in the proto definition for this message. If any rules // are violated, the first error encountered is returned, or nil if there are diff --git a/proto/gen/rill/admin/v1/api_grpc.pb.go b/proto/gen/rill/admin/v1/api_grpc.pb.go index 969360a581f..8d9105fd28c 100644 --- a/proto/gen/rill/admin/v1/api_grpc.pb.go +++ b/proto/gen/rill/admin/v1/api_grpc.pb.go @@ -114,6 +114,7 @@ const ( AdminService_SudoUpdateOrganizationQuotas_FullMethodName = "/rill.admin.v1.AdminService/SudoUpdateOrganizationQuotas" AdminService_SudoUpdateOrganizationBillingCustomer_FullMethodName = "/rill.admin.v1.AdminService/SudoUpdateOrganizationBillingCustomer" AdminService_SudoExtendTrial_FullMethodName = "/rill.admin.v1.AdminService/SudoExtendTrial" + AdminService_SudoAddCredits_FullMethodName = "/rill.admin.v1.AdminService/SudoAddCredits" AdminService_SudoUpdateOrganizationCustomDomain_FullMethodName = "/rill.admin.v1.AdminService/SudoUpdateOrganizationCustomDomain" AdminService_SudoUpdateAnnotations_FullMethodName = "/rill.admin.v1.AdminService/SudoUpdateAnnotations" AdminService_SudoIssueRuntimeManagerToken_FullMethodName = "/rill.admin.v1.AdminService/SudoIssueRuntimeManagerToken" @@ -392,6 +393,8 @@ type AdminServiceClient interface { SudoUpdateOrganizationBillingCustomer(ctx context.Context, in *SudoUpdateOrganizationBillingCustomerRequest, opts ...grpc.CallOption) (*SudoUpdateOrganizationBillingCustomerResponse, error) // SudoExtendTrial extends the trial period for an organization SudoExtendTrial(ctx context.Context, in *SudoExtendTrialRequest, opts ...grpc.CallOption) (*SudoExtendTrialResponse, error) + // SudoAddCredits adds billing credits to an organization + SudoAddCredits(ctx context.Context, in *SudoAddCreditsRequest, opts ...grpc.CallOption) (*SudoAddCreditsResponse, error) // SudoUpdateOrganizationCustomDomain updates the custom domain for an organization. // It only updates the custom domain in the database, which is used to ensure correct redirects. // The DNS records and ingress TLS must be configured separately. @@ -1472,6 +1475,16 @@ func (c *adminServiceClient) SudoExtendTrial(ctx context.Context, in *SudoExtend return out, nil } +func (c *adminServiceClient) SudoAddCredits(ctx context.Context, in *SudoAddCreditsRequest, opts ...grpc.CallOption) (*SudoAddCreditsResponse, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(SudoAddCreditsResponse) + err := c.cc.Invoke(ctx, AdminService_SudoAddCredits_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *adminServiceClient) SudoUpdateOrganizationCustomDomain(ctx context.Context, in *SudoUpdateOrganizationCustomDomainRequest, opts ...grpc.CallOption) (*SudoUpdateOrganizationCustomDomainResponse, error) { cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) out := new(SudoUpdateOrganizationCustomDomainResponse) @@ -2297,6 +2310,8 @@ type AdminServiceServer interface { SudoUpdateOrganizationBillingCustomer(context.Context, *SudoUpdateOrganizationBillingCustomerRequest) (*SudoUpdateOrganizationBillingCustomerResponse, error) // SudoExtendTrial extends the trial period for an organization SudoExtendTrial(context.Context, *SudoExtendTrialRequest) (*SudoExtendTrialResponse, error) + // SudoAddCredits adds billing credits to an organization + SudoAddCredits(context.Context, *SudoAddCreditsRequest) (*SudoAddCreditsResponse, error) // SudoUpdateOrganizationCustomDomain updates the custom domain for an organization. // It only updates the custom domain in the database, which is used to ensure correct redirects. // The DNS records and ingress TLS must be configured separately. @@ -2712,6 +2727,9 @@ func (UnimplementedAdminServiceServer) SudoUpdateOrganizationBillingCustomer(con func (UnimplementedAdminServiceServer) SudoExtendTrial(context.Context, *SudoExtendTrialRequest) (*SudoExtendTrialResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SudoExtendTrial not implemented") } +func (UnimplementedAdminServiceServer) SudoAddCredits(context.Context, *SudoAddCreditsRequest) (*SudoAddCreditsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method SudoAddCredits not implemented") +} func (UnimplementedAdminServiceServer) SudoUpdateOrganizationCustomDomain(context.Context, *SudoUpdateOrganizationCustomDomainRequest) (*SudoUpdateOrganizationCustomDomainResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SudoUpdateOrganizationCustomDomain not implemented") } @@ -4626,6 +4644,24 @@ func _AdminService_SudoExtendTrial_Handler(srv interface{}, ctx context.Context, return interceptor(ctx, in, info, handler) } +func _AdminService_SudoAddCredits_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SudoAddCreditsRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminServiceServer).SudoAddCredits(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: AdminService_SudoAddCredits_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminServiceServer).SudoAddCredits(ctx, req.(*SudoAddCreditsRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AdminService_SudoUpdateOrganizationCustomDomain_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SudoUpdateOrganizationCustomDomainRequest) if err := dec(in); err != nil { @@ -6111,6 +6147,10 @@ var AdminService_ServiceDesc = grpc.ServiceDesc{ MethodName: "SudoExtendTrial", Handler: _AdminService_SudoExtendTrial_Handler, }, + { + MethodName: "SudoAddCredits", + Handler: _AdminService_SudoAddCredits_Handler, + }, { MethodName: "SudoUpdateOrganizationCustomDomain", Handler: _AdminService_SudoUpdateOrganizationCustomDomain_Handler, diff --git a/proto/gen/rill/admin/v1/openapi.yaml b/proto/gen/rill/admin/v1/openapi.yaml index 46df4c90e61..99b8729d355 100644 --- a/proto/gen/rill/admin/v1/openapi.yaml +++ b/proto/gen/rill/admin/v1/openapi.yaml @@ -154,6 +154,25 @@ components: type: object v1ApproveProjectAccessResponse: type: object + v1BillingCreditInfo: + description: BillingCreditInfo contains credit balance information for free-tier organizations. + properties: + burnRatePerDay: + format: double + type: number + creditExpiry: + format: date-time + type: string + remainingCredit: + format: double + type: number + totalCredit: + format: double + type: number + usedCredit: + format: double + type: number + type: object v1BillingIssue: properties: createdOn: @@ -180,6 +199,12 @@ components: type: string v1BillingIssueMetadata: properties: + creditCritical: + $ref: '#/components/schemas/v1BillingIssueMetadataCreditCritical' + creditExhausted: + $ref: '#/components/schemas/v1BillingIssueMetadataCreditExhausted' + creditLow: + $ref: '#/components/schemas/v1BillingIssueMetadataCreditLow' neverSubscribed: $ref: '#/components/schemas/v1BillingIssueMetadataNeverSubscribed' noBillableAddress: @@ -195,6 +220,42 @@ components: trialEnded: $ref: '#/components/schemas/v1BillingIssueMetadataTrialEnded' type: object + v1BillingIssueMetadataCreditCritical: + properties: + creditExpiry: + format: date-time + type: string + creditRemaining: + format: double + type: number + creditTotal: + format: double + type: number + type: object + v1BillingIssueMetadataCreditExhausted: + properties: + creditExpiry: + format: date-time + type: string + creditTotal: + format: double + type: number + exhaustedOn: + format: date-time + type: string + type: object + v1BillingIssueMetadataCreditLow: + properties: + creditExpiry: + format: date-time + type: string + creditRemaining: + format: double + type: number + creditTotal: + format: double + type: number + type: object v1BillingIssueMetadataNeverSubscribed: type: object v1BillingIssueMetadataNoBillableAddress: @@ -265,6 +326,9 @@ components: - BILLING_ISSUE_TYPE_PAYMENT_FAILED - BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED - BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED + - BILLING_ISSUE_TYPE_CREDIT_LOW + - BILLING_ISSUE_TYPE_CREDIT_CRITICAL + - BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED type: string v1BillingPlan: properties: @@ -297,6 +361,8 @@ components: - BILLING_PLAN_TYPE_TEAM - BILLING_PLAN_TYPE_MANAGED - BILLING_PLAN_TYPE_ENTERPRISE + - BILLING_PLAN_TYPE_FREE + - BILLING_PLAN_TYPE_GROWTH type: string v1Bookmark: properties: @@ -630,6 +696,8 @@ components: properties: billingPortalUrl: type: string + creditInfo: + $ref: '#/components/schemas/v1BillingCreditInfo' organization: $ref: '#/components/schemas/v1Organization' subscription: @@ -1434,6 +1502,10 @@ components: type: object archiveAssetId: type: string + chcClusterSize: + description: ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + format: double + type: number createdByUserId: type: string createdOn: @@ -1453,12 +1525,23 @@ components: type: string id: type: string + infraSlots: + description: |- + InfraSlots is the Rill infrastructure overhead slot allocation for the project. + Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. + format: int64 + type: string managedGitId: description: managed_git_id is set if the project is connected to a rill-managed git repo. type: string name: title: Unique in organization type: string + olapConnector: + description: |- + OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + Persisted so the frontend can show the correct engine label even when the project is hibernated. + type: string orgId: type: string orgName: @@ -1479,6 +1562,12 @@ components: type: string public: type: boolean + clusterSlots: + description: |- + ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + For Live Connect projects, this represents the base slots from the BYOLAP cluster. + format: int64 + type: string subpath: type: string updatedOn: @@ -1937,6 +2026,25 @@ components: format: date-time type: string type: object + v1SudoAddCreditsRequest: + properties: + amount: + format: double + type: number + description: + type: string + expiryDays: + format: int32 + title: Number of days until credits expire; defaults to 365 + type: integer + org: + type: string + type: object + v1SudoAddCreditsResponse: + properties: + creditInfo: + $ref: '#/components/schemas/v1BillingCreditInfo' + type: object v1SudoDeleteOrganizationBillingIssueResponse: type: object v1SudoExtendTrialRequest: @@ -2321,7 +2429,7 @@ externalDocs: info: description: Rill Admin API enables programmatic management of Rill Cloud resources, including organizations, projects, and user access. It provides endpoints for creating, updating, and deleting these resources, as well as managing authentication and permissions. title: Rill Admin API - version: v0.83.6 + version: v0.83.8 openapi: 3.0.3 paths: /v1/ai/complete: @@ -3711,12 +3819,24 @@ paths: properties: archiveAssetId: type: string + clusterSlots: + description: |- + ClusterSlots overrides the cluster slot allocation (stored as rill_min_slots in DB). + Adjustable by Rill staff. Derived from the OLAP cluster size. + format: int64 + type: string description: type: string directoryName: type: string gitRemote: type: string + infraSlots: + description: |- + InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. + Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. + format: int64 + type: string newName: type: string primaryBranch: @@ -6944,6 +7064,30 @@ paths: $ref: '#/components/schemas/rpcStatus' description: An unexpected error response. summary: SudoUpdateOrganizationBillingCustomer update the billing customer for the organization + /v1/superuser/organization/credits/add: + post: + operationId: AdminService_SudoAddCredits + requestBody: + content: + application/json: + schema: + $ref: '#/components/schemas/v1SudoAddCreditsRequest' + required: true + x-originalParamName: body + responses: + "200": + content: + application/json: + schema: + $ref: '#/components/schemas/v1SudoAddCreditsResponse' + description: A successful response. + default: + content: + application/json: + schema: + $ref: '#/components/schemas/rpcStatus' + description: An unexpected error response. + summary: SudoAddCredits adds billing credits to an organization /v1/superuser/organization/custom-domain: patch: operationId: AdminService_SudoUpdateOrganizationCustomDomain @@ -7017,6 +7161,9 @@ paths: - BILLING_ISSUE_TYPE_PAYMENT_FAILED - BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED - BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED + - BILLING_ISSUE_TYPE_CREDIT_LOW + - BILLING_ISSUE_TYPE_CREDIT_CRITICAL + - BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED type: string responses: "200": diff --git a/proto/gen/rill/admin/v1/public.openapi.yaml b/proto/gen/rill/admin/v1/public.openapi.yaml index 1bc1abd3905..7e33317ff7e 100644 --- a/proto/gen/rill/admin/v1/public.openapi.yaml +++ b/proto/gen/rill/admin/v1/public.openapi.yaml @@ -154,6 +154,25 @@ components: type: object v1ApproveProjectAccessResponse: type: object + v1BillingCreditInfo: + description: BillingCreditInfo contains credit balance information for free-tier organizations. + properties: + burnRatePerDay: + format: double + type: number + creditExpiry: + format: date-time + type: string + remainingCredit: + format: double + type: number + totalCredit: + format: double + type: number + usedCredit: + format: double + type: number + type: object v1BillingIssue: properties: createdOn: @@ -180,6 +199,12 @@ components: type: string v1BillingIssueMetadata: properties: + creditCritical: + $ref: '#/components/schemas/v1BillingIssueMetadataCreditCritical' + creditExhausted: + $ref: '#/components/schemas/v1BillingIssueMetadataCreditExhausted' + creditLow: + $ref: '#/components/schemas/v1BillingIssueMetadataCreditLow' neverSubscribed: $ref: '#/components/schemas/v1BillingIssueMetadataNeverSubscribed' noBillableAddress: @@ -195,6 +220,42 @@ components: trialEnded: $ref: '#/components/schemas/v1BillingIssueMetadataTrialEnded' type: object + v1BillingIssueMetadataCreditCritical: + properties: + creditExpiry: + format: date-time + type: string + creditRemaining: + format: double + type: number + creditTotal: + format: double + type: number + type: object + v1BillingIssueMetadataCreditExhausted: + properties: + creditExpiry: + format: date-time + type: string + creditTotal: + format: double + type: number + exhaustedOn: + format: date-time + type: string + type: object + v1BillingIssueMetadataCreditLow: + properties: + creditExpiry: + format: date-time + type: string + creditRemaining: + format: double + type: number + creditTotal: + format: double + type: number + type: object v1BillingIssueMetadataNeverSubscribed: type: object v1BillingIssueMetadataNoBillableAddress: @@ -265,6 +326,9 @@ components: - BILLING_ISSUE_TYPE_PAYMENT_FAILED - BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED - BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED + - BILLING_ISSUE_TYPE_CREDIT_LOW + - BILLING_ISSUE_TYPE_CREDIT_CRITICAL + - BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED type: string v1BillingPlan: properties: @@ -297,6 +361,8 @@ components: - BILLING_PLAN_TYPE_TEAM - BILLING_PLAN_TYPE_MANAGED - BILLING_PLAN_TYPE_ENTERPRISE + - BILLING_PLAN_TYPE_FREE + - BILLING_PLAN_TYPE_GROWTH type: string v1Bookmark: properties: @@ -630,6 +696,8 @@ components: properties: billingPortalUrl: type: string + creditInfo: + $ref: '#/components/schemas/v1BillingCreditInfo' organization: $ref: '#/components/schemas/v1Organization' subscription: @@ -1434,6 +1502,10 @@ components: type: object archiveAssetId: type: string + chcClusterSize: + description: ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + format: double + type: number createdByUserId: type: string createdOn: @@ -1453,12 +1525,23 @@ components: type: string id: type: string + infraSlots: + description: |- + InfraSlots is the Rill infrastructure overhead slot allocation for the project. + Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. + format: int64 + type: string managedGitId: description: managed_git_id is set if the project is connected to a rill-managed git repo. type: string name: title: Unique in organization type: string + olapConnector: + description: |- + OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + Persisted so the frontend can show the correct engine label even when the project is hibernated. + type: string orgId: type: string orgName: @@ -1479,6 +1562,12 @@ components: type: string public: type: boolean + clusterSlots: + description: |- + ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + For Live Connect projects, this represents the base slots from the BYOLAP cluster. + format: int64 + type: string subpath: type: string updatedOn: @@ -1937,6 +2026,25 @@ components: format: date-time type: string type: object + v1SudoAddCreditsRequest: + properties: + amount: + format: double + type: number + description: + type: string + expiryDays: + format: int32 + title: Number of days until credits expire; defaults to 365 + type: integer + org: + type: string + type: object + v1SudoAddCreditsResponse: + properties: + creditInfo: + $ref: '#/components/schemas/v1BillingCreditInfo' + type: object v1SudoDeleteOrganizationBillingIssueResponse: type: object v1SudoExtendTrialRequest: @@ -2321,7 +2429,7 @@ externalDocs: info: description: Rill Admin API enables programmatic management of Rill Cloud resources, including organizations, projects, and user access. It provides endpoints for creating, updating, and deleting these resources, as well as managing authentication and permissions. title: Rill Admin API - version: v0.83.6 + version: v0.83.8 openapi: 3.0.3 paths: /v1/ai/complete: {} @@ -2845,12 +2953,24 @@ paths: properties: archiveAssetId: type: string + clusterSlots: + description: |- + ClusterSlots overrides the cluster slot allocation (stored as rill_min_slots in DB). + Adjustable by Rill staff. Derived from the OLAP cluster size. + format: int64 + type: string description: type: string directoryName: type: string gitRemote: type: string + infraSlots: + description: |- + InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. + Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. + format: int64 + type: string newName: type: string primaryBranch: @@ -3708,6 +3828,7 @@ paths: /v1/superuser/deployments/manager-token: {} /v1/superuser/members: {} /v1/superuser/organization/billing/customer_id: {} + /v1/superuser/organization/credits/add: {} /v1/superuser/organization/custom-domain: {} /v1/superuser/organization/trial/extend: {} /v1/superuser/organizations/{org}/billing/issues/{type}: {} diff --git a/proto/rill/admin/v1/api.proto b/proto/rill/admin/v1/api.proto index e92d672b239..a4b2091f642 100644 --- a/proto/rill/admin/v1/api.proto +++ b/proto/rill/admin/v1/api.proto @@ -907,6 +907,14 @@ service AdminService { }; } + // SudoAddCredits adds billing credits to an organization + rpc SudoAddCredits(SudoAddCreditsRequest) returns (SudoAddCreditsResponse) { + option (google.api.http) = { + post: "/v1/superuser/organization/credits/add", + body: "*" + }; + } + // SudoUpdateOrganizationCustomDomain updates the custom domain for an organization. // It only updates the custom domain in the database, which is used to ensure correct redirects. // The DNS records and ingress TLS must be configured separately. @@ -1817,6 +1825,12 @@ message UpdateProjectRequest { optional int64 prod_ttl_seconds = 10; optional string prod_version = 11; bool superuser_force_access = 14; + // InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. + // Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. + optional int64 infra_slots = 16; + // ClusterSlots overrides the cluster slot allocation. + // Adjustable by Rill staff. Derived from the OLAP cluster size. + optional int64 cluster_slots = 17; } message UpdateProjectResponse { @@ -2085,6 +2099,18 @@ message SudoExtendTrialResponse { google.protobuf.Timestamp trial_end = 1; } +message SudoAddCreditsRequest { + string org = 1 [(validate.rules).string.min_len = 1]; + double amount = 2 [(validate.rules).double.gt = 0]; + // Number of days until credits expire; defaults to 365 + int32 expiry_days = 3; + string description = 4; +} + +message SudoAddCreditsResponse { + BillingCreditInfo credit_info = 1; +} + message SudoUpdateOrganizationCustomDomainRequest { string name = 1; string custom_domain = 2; @@ -3010,6 +3036,16 @@ message GetBillingSubscriptionResponse { Organization organization = 1; Subscription subscription = 2; string billing_portal_url = 3; + BillingCreditInfo credit_info = 4; +} + +// BillingCreditInfo contains credit balance information for free-tier organizations. +message BillingCreditInfo { + double total_credit = 1; + double used_credit = 2; + double remaining_credit = 3; + google.protobuf.Timestamp credit_expiry = 4; + double burn_rate_per_day = 5; } message UpdateBillingSubscriptionRequest { @@ -3235,6 +3271,17 @@ message Project { string prod_version = 21; google.protobuf.Timestamp created_on = 14; google.protobuf.Timestamp updated_on = 15; + // ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + optional double chc_cluster_size = 27; + // ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + // For Live Connect projects, this represents the base slots from the BYOLAP cluster. + optional int64 cluster_slots = 28; + // InfraSlots is the Rill infrastructure overhead slot allocation for the project. + // Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. + optional int64 infra_slots = 29; + // OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + // Persisted so the frontend can show the correct engine label even when the project is hibernated. + string olap_connector = 30; // Reserved for backwards compatibility (prod_olap_driver and prod_olap_dsn) reserved 10, 11; } @@ -3502,6 +3549,8 @@ enum BillingPlanType { BILLING_PLAN_TYPE_TEAM = 2; BILLING_PLAN_TYPE_MANAGED = 3; BILLING_PLAN_TYPE_ENTERPRISE = 4; + BILLING_PLAN_TYPE_FREE = 5; + BILLING_PLAN_TYPE_GROWTH = 6; } message BillingPlan { @@ -3556,6 +3605,9 @@ enum BillingIssueType { BILLING_ISSUE_TYPE_PAYMENT_FAILED = 5; BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED = 6; BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED = 7; + BILLING_ISSUE_TYPE_CREDIT_LOW = 8; + BILLING_ISSUE_TYPE_CREDIT_CRITICAL = 9; + BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED = 10; } enum BillingIssueLevel { @@ -3582,6 +3634,9 @@ message BillingIssueMetadata { BillingIssueMetadataPaymentFailed payment_failed = 5; BillingIssueMetadataSubscriptionCancelled subscription_cancelled = 6; BillingIssueMetadataNeverSubscribed never_subscribed = 7; + BillingIssueMetadataCreditLow credit_low = 8; + BillingIssueMetadataCreditCritical credit_critical = 9; + BillingIssueMetadataCreditExhausted credit_exhausted = 10; } } @@ -3619,3 +3674,21 @@ message BillingIssueMetadataSubscriptionCancelled { } message BillingIssueMetadataNeverSubscribed {} + +message BillingIssueMetadataCreditLow { + double credit_remaining = 1; + double credit_total = 2; + google.protobuf.Timestamp credit_expiry = 3; +} + +message BillingIssueMetadataCreditCritical { + double credit_remaining = 1; + double credit_total = 2; + google.protobuf.Timestamp credit_expiry = 3; +} + +message BillingIssueMetadataCreditExhausted { + double credit_total = 1; + google.protobuf.Timestamp credit_expiry = 2; + google.protobuf.Timestamp exhausted_on = 3; +} diff --git a/runtime/connections.go b/runtime/connections.go index 1e2751aa0ed..89113bbf2c4 100644 --- a/runtime/connections.go +++ b/runtime/connections.go @@ -290,6 +290,12 @@ func (r *Runtime) ConnectorConfig(ctx context.Context, instanceID, name string) } } + // ClickHouse Cloud API keys: map root-level variables regardless of connector name + if res.Driver == "clickhouse" { + res.setPreset("clickhouse_cloud_api_key_id", vars["clickhouse_cloud_api_key_id"], false) + res.setPreset("clickhouse_cloud_api_key_secret", vars["clickhouse_cloud_api_key_secret"], false) + } + // Apply built-in system-wide config res.setPreset("allow_host_access", strconv.FormatBool(r.opts.AllowHostAccess), true) diff --git a/runtime/drivers/clickhouse/clickhouse.go b/runtime/drivers/clickhouse/clickhouse.go index 9818fdba1a6..6379b7cefb6 100644 --- a/runtime/drivers/clickhouse/clickhouse.go +++ b/runtime/drivers/clickhouse/clickhouse.go @@ -199,6 +199,10 @@ type configProperties struct { ConnMaxLifetime string `mapstructure:"conn_max_lifetime"` // ReadTimeout is the maximum amount of time a connection may be reused. Default is 300s. ReadTimeout string `mapstructure:"read_timeout"` + // ClickHouseCloudAPIKeyID is the key ID for the ClickHouse Cloud Admin API. + ClickHouseCloudAPIKeyID string `mapstructure:"clickhouse_cloud_api_key_id"` + // ClickHouseCloudAPIKeySecret is the key secret for the ClickHouse Cloud Admin API. + ClickHouseCloudAPIKeySecret string `mapstructure:"clickhouse_cloud_api_key_secret"` } func (c *configProperties) validate() error { @@ -462,6 +466,11 @@ func (c *Connection) Driver() string { func (c *Connection) Config() map[string]any { m := make(map[string]any, 0) _ = mapstructure.Decode(c.config, &m) + // Inject ClickHouse Cloud info if available (for frontend consumption) + m["is_clickhouse_cloud"] = c.isClickHouseCloud() + if host := c.resolvedHost(); host != "" { + m["resolved_host"] = host + } return m } @@ -596,6 +605,59 @@ func (c *Connection) lastUsedOn() time.Time { return time.Unix(c.lastUsedUnixTime.Load(), 0) } +// isClickHouseCloud returns true if the connected host looks like a ClickHouse Cloud endpoint. +func (c *Connection) isClickHouseCloud() bool { + host := c.resolvedHost() + return strings.HasSuffix(strings.ToLower(host), ".clickhouse.cloud") +} + +// resolvedHost returns the host this connection targets, checking config, parsed opts, and DSN. +func (c *Connection) resolvedHost() string { + if c.config.Host != "" { + return c.config.Host + } + // Try parsed opts (populated after Open via ParseDSN or manual config) + if c.opts != nil && len(c.opts.Addr) > 0 { + host, _, err := net.SplitHostPort(c.opts.Addr[0]) + if err == nil && host != "" { + return host + } + return c.opts.Addr[0] + } + // Fallback: parse DSN directly (handles https:// and clickhouse:// schemes) + if c.config.DSN != "" { + return hostFromDSN(c.config.DSN) + } + return "" +} + +// hostFromDSN extracts the hostname from a DSN string. +// Handles schemes like clickhouse://, https://, http://. +func hostFromDSN(dsn string) string { + // Strip scheme + if idx := strings.Index(dsn, "://"); idx >= 0 { + dsn = dsn[idx+3:] + } + // Strip userinfo + if idx := strings.Index(dsn, "@"); idx >= 0 { + dsn = dsn[idx+1:] + } + // Strip query params + if idx := strings.Index(dsn, "?"); idx >= 0 { + dsn = dsn[:idx] + } + // Strip path + if idx := strings.Index(dsn, "/"); idx >= 0 { + dsn = dsn[:idx] + } + // Strip port + host, _, err := net.SplitHostPort(dsn) + if err == nil && host != "" { + return host + } + return dsn +} + // Periodically collects stats about the database and emit them as activity events. func (c *Connection) periodicallyEmitStats() { if c.activity == nil { diff --git a/runtime/server/instances.go b/runtime/server/instances.go index da9883b5774..d9806bdeef1 100644 --- a/runtime/server/instances.go +++ b/runtime/server/instances.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "strings" runtimev1 "github.com/rilldata/rill/proto/gen/rill/runtime/v1" "github.com/rilldata/rill/runtime" @@ -14,6 +15,7 @@ import ( "go.uber.org/zap" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" + "google.golang.org/protobuf/types/known/structpb" "google.golang.org/protobuf/types/known/timestamppb" ) @@ -76,8 +78,15 @@ func (s *Server) GetInstance(ctx context.Context, req *runtimev1.GetInstanceRequ return nil, status.Error(codes.InvalidArgument, err.Error()) } + pb := instanceToPB(inst, featureFlags, req.Sensitive) + + // Enrich OLAP connector with runtime metadata (e.g. ClickHouse Cloud info) + if req.Sensitive && pb.OlapConnector != "" { + s.enrichConnectorWithRuntimeMetadata(ctx, req.InstanceId, pb) + } + return &runtimev1.GetInstanceResponse{ - Instance: instanceToPB(inst, featureFlags, req.Sensitive), + Instance: pb, }, nil } @@ -300,6 +309,99 @@ func (s *Server) ReloadConfig(ctx context.Context, req *runtimev1.ReloadConfigRe return &runtimev1.ReloadConfigResponse{}, nil } +// enrichConnectorWithRuntimeMetadata merges dynamic fields from the live OLAP connector handle +// into the proto connector config. This lets the frontend access runtime-derived metadata +// (e.g. ClickHouse Cloud service info) that isn't in the static YAML config. +func (s *Server) enrichConnectorWithRuntimeMetadata(ctx context.Context, instanceID string, pb *runtimev1.Instance) { + handle, release, err := s.runtime.AcquireHandle(ctx, instanceID, pb.OlapConnector) + if err != nil { + // Handle not available (e.g. CHC is stopped and Open() failed). + // Fall back to deriving is_clickhouse_cloud from the resolved connector config. + s.enrichConnectorFromResolvedConfig(ctx, instanceID, pb) + return + } + defer release() + + runtimeConfig := handle.Config() + + // Find the OLAP connector in ProjectConnectors and merge runtime-derived fields + for _, conn := range pb.ProjectConnectors { + if conn.Name != pb.OlapConnector { + continue + } + if conn.Config == nil { + conn.Config = &structpb.Struct{Fields: make(map[string]*structpb.Value)} + } + for k, v := range runtimeConfig { + if k != "is_clickhouse_cloud" && k != "resolved_host" { + continue + } + switch val := v.(type) { + case bool: + conn.Config.Fields[k] = structpb.NewBoolValue(val) + case string: + conn.Config.Fields[k] = structpb.NewStringValue(val) + } + } + break + } +} + +// enrichConnectorFromResolvedConfig derives is_clickhouse_cloud from the resolved connector config +// (with variables substituted) when the OLAP handle is unavailable (e.g. CHC is stopped). +// It also calls the CHC Cloud API to get live service status when possible. +func (s *Server) enrichConnectorFromResolvedConfig(ctx context.Context, instanceID string, pb *runtimev1.Instance) { + // Resolve the connector config (substitutes template variables) + cfg, err := s.runtime.ConnectorConfig(ctx, instanceID, pb.OlapConnector) + if err != nil { + return + } + resolved := cfg.Resolve() + + // Extract host from resolved config + host, _ := resolved["host"].(string) + dsn, _ := resolved["dsn"].(string) + + isChc := strings.HasSuffix(strings.ToLower(host), ".clickhouse.cloud") || + strings.Contains(strings.ToLower(dsn), ".clickhouse.cloud") + + // If host is empty but DSN contains a clickhouse.cloud URL, try to extract the host + resolvedHost := host + if resolvedHost == "" && isChc { + h := dsn + if idx := strings.Index(h, "://"); idx >= 0 { + h = h[idx+3:] + } + if idx := strings.IndexAny(h, "/?"); idx >= 0 { + h = h[:idx] + } + if idx := strings.Index(h, ":"); idx >= 0 { + h = h[:idx] + } + resolvedHost = h + } + + // Find the OLAP connector proto to inject fields into + var conn *runtimev1.Connector + for _, c := range pb.ProjectConnectors { + if c.Name == pb.OlapConnector { + conn = c + break + } + } + if conn == nil { + return + } + if conn.Config == nil { + conn.Config = &structpb.Struct{Fields: make(map[string]*structpb.Value)} + } + + conn.Config.Fields["is_clickhouse_cloud"] = structpb.NewBoolValue(isChc) + if resolvedHost != "" { + conn.Config.Fields["resolved_host"] = structpb.NewStringValue(resolvedHost) + } +} + func instanceToPB(inst *drivers.Instance, featureFlags map[string]bool, sensitive bool) *runtimev1.Instance { pb := &runtimev1.Instance{ InstanceId: inst.ID, diff --git a/web-admin/src/client/gen/default/default.ts b/web-admin/src/client/gen/default/default.ts index 1f3e088e94e..4f998371760 100644 --- a/web-admin/src/client/gen/default/default.ts +++ b/web-admin/src/client/gen/default/default.ts @@ -240,6 +240,8 @@ import type { V1SetSuperuserResponse, V1StartDeploymentResponse, V1StopDeploymentResponse, + V1SudoAddCreditsRequest, + V1SudoAddCreditsResponse, V1SudoDeleteOrganizationBillingIssueResponse, V1SudoExtendTrialRequest, V1SudoExtendTrialResponse, @@ -13419,6 +13421,91 @@ export const createAdminServiceSudoUpdateOrganizationBillingCustomer = < return createMutation(mutationOptions, queryClient); }; +/** + * @summary SudoAddCredits adds billing credits to an organization + */ +export const adminServiceSudoAddCredits = ( + v1SudoAddCreditsRequest: V1SudoAddCreditsRequest, + signal?: AbortSignal, +) => { + return httpClient({ + url: `/v1/superuser/organization/credits/add`, + method: "POST", + headers: { "Content-Type": "application/json" }, + data: v1SudoAddCreditsRequest, + signal, + }); +}; + +export const getAdminServiceSudoAddCreditsMutationOptions = < + TError = RpcStatus, + TContext = unknown, +>(options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { data: V1SudoAddCreditsRequest }, + TContext + >; +}): CreateMutationOptions< + Awaited>, + TError, + { data: V1SudoAddCreditsRequest }, + TContext +> => { + const mutationKey = ["adminServiceSudoAddCredits"]; + const { mutation: mutationOptions } = options + ? options.mutation && + "mutationKey" in options.mutation && + options.mutation.mutationKey + ? options + : { ...options, mutation: { ...options.mutation, mutationKey } } + : { mutation: { mutationKey } }; + + const mutationFn: MutationFunction< + Awaited>, + { data: V1SudoAddCreditsRequest } + > = (props) => { + const { data } = props ?? {}; + + return adminServiceSudoAddCredits(data); + }; + + return { mutationFn, ...mutationOptions }; +}; + +export type AdminServiceSudoAddCreditsMutationResult = NonNullable< + Awaited> +>; +export type AdminServiceSudoAddCreditsMutationBody = V1SudoAddCreditsRequest; +export type AdminServiceSudoAddCreditsMutationError = RpcStatus; + +/** + * @summary SudoAddCredits adds billing credits to an organization + */ +export const createAdminServiceSudoAddCredits = < + TError = RpcStatus, + TContext = unknown, +>( + options?: { + mutation?: CreateMutationOptions< + Awaited>, + TError, + { data: V1SudoAddCreditsRequest }, + TContext + >; + }, + queryClient?: QueryClient, +): CreateMutationResult< + Awaited>, + TError, + { data: V1SudoAddCreditsRequest }, + TContext +> => { + const mutationOptions = getAdminServiceSudoAddCreditsMutationOptions(options); + + return createMutation(mutationOptions, queryClient); +}; /** * @summary SudoUpdateOrganizationCustomDomain updates the custom domain for an organization. It only updates the custom domain in the database, which is used to ensure correct redirects. @@ -13613,7 +13700,10 @@ export const adminServiceSudoDeleteOrganizationBillingIssue = ( | "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS" | "BILLING_ISSUE_TYPE_PAYMENT_FAILED" | "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" - | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED", + | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" + | "BILLING_ISSUE_TYPE_CREDIT_LOW" + | "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" + | "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED", ) => { return httpClient({ url: `/v1/superuser/organizations/${org}/billing/issues/${type}`, @@ -13638,7 +13728,10 @@ export const getAdminServiceSudoDeleteOrganizationBillingIssueMutationOptions = | "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS" | "BILLING_ISSUE_TYPE_PAYMENT_FAILED" | "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" - | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED"; + | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" + | "BILLING_ISSUE_TYPE_CREDIT_LOW" + | "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" + | "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED"; }, TContext >; @@ -13655,7 +13748,10 @@ export const getAdminServiceSudoDeleteOrganizationBillingIssueMutationOptions = | "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS" | "BILLING_ISSUE_TYPE_PAYMENT_FAILED" | "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" - | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED"; + | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" + | "BILLING_ISSUE_TYPE_CREDIT_LOW" + | "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" + | "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED"; }, TContext > => { @@ -13682,7 +13778,10 @@ export const getAdminServiceSudoDeleteOrganizationBillingIssueMutationOptions = | "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS" | "BILLING_ISSUE_TYPE_PAYMENT_FAILED" | "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" - | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED"; + | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" + | "BILLING_ISSUE_TYPE_CREDIT_LOW" + | "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" + | "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED"; } > = (props) => { const { org, type } = props ?? {}; @@ -13724,7 +13823,10 @@ export const createAdminServiceSudoDeleteOrganizationBillingIssue = < | "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS" | "BILLING_ISSUE_TYPE_PAYMENT_FAILED" | "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" - | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED"; + | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" + | "BILLING_ISSUE_TYPE_CREDIT_LOW" + | "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" + | "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED"; }, TContext >; @@ -13743,7 +13845,10 @@ export const createAdminServiceSudoDeleteOrganizationBillingIssue = < | "BILLING_ISSUE_TYPE_NO_BILLABLE_ADDRESS" | "BILLING_ISSUE_TYPE_PAYMENT_FAILED" | "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" - | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED"; + | "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" + | "BILLING_ISSUE_TYPE_CREDIT_LOW" + | "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" + | "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED"; }, TContext > => { diff --git a/web-admin/src/client/gen/index.schemas.ts b/web-admin/src/client/gen/index.schemas.ts index 720a37c4798..414208fb989 100644 --- a/web-admin/src/client/gen/index.schemas.ts +++ b/web-admin/src/client/gen/index.schemas.ts @@ -130,6 +130,17 @@ export interface V1ApproveProjectAccessResponse { [key: string]: unknown; } +/** + * BillingCreditInfo contains credit balance information for free-tier organizations. + */ +export interface V1BillingCreditInfo { + totalCredit?: number; + usedCredit?: number; + remainingCredit?: number; + creditExpiry?: string; + burnRatePerDay?: number; +} + export interface V1BillingIssue { org?: string; type?: V1BillingIssueType; @@ -157,6 +168,27 @@ export interface V1BillingIssueMetadata { paymentFailed?: V1BillingIssueMetadataPaymentFailed; subscriptionCancelled?: V1BillingIssueMetadataSubscriptionCancelled; neverSubscribed?: V1BillingIssueMetadataNeverSubscribed; + creditLow?: V1BillingIssueMetadataCreditLow; + creditCritical?: V1BillingIssueMetadataCreditCritical; + creditExhausted?: V1BillingIssueMetadataCreditExhausted; +} + +export interface V1BillingIssueMetadataCreditCritical { + creditRemaining?: number; + creditTotal?: number; + creditExpiry?: string; +} + +export interface V1BillingIssueMetadataCreditExhausted { + creditTotal?: number; + creditExpiry?: string; + exhaustedOn?: string; +} + +export interface V1BillingIssueMetadataCreditLow { + creditRemaining?: number; + creditTotal?: number; + creditExpiry?: string; } export interface V1BillingIssueMetadataNeverSubscribed { @@ -215,6 +247,9 @@ export const V1BillingIssueType = { BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED: "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED", BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED: "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED", + BILLING_ISSUE_TYPE_CREDIT_LOW: "BILLING_ISSUE_TYPE_CREDIT_LOW", + BILLING_ISSUE_TYPE_CREDIT_CRITICAL: "BILLING_ISSUE_TYPE_CREDIT_CRITICAL", + BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED: "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED", } as const; export interface V1BillingPlan { @@ -239,6 +274,8 @@ export const V1BillingPlanType = { BILLING_PLAN_TYPE_TEAM: "BILLING_PLAN_TYPE_TEAM", BILLING_PLAN_TYPE_MANAGED: "BILLING_PLAN_TYPE_MANAGED", BILLING_PLAN_TYPE_ENTERPRISE: "BILLING_PLAN_TYPE_ENTERPRISE", + BILLING_PLAN_TYPE_FREE: "BILLING_PLAN_TYPE_FREE", + BILLING_PLAN_TYPE_GROWTH: "BILLING_PLAN_TYPE_GROWTH", } as const; export interface V1Bookmark { @@ -507,6 +544,7 @@ export interface V1GetBillingSubscriptionResponse { organization?: V1Organization; subscription?: V1Subscription; billingPortalUrl?: string; + creditInfo?: V1BillingCreditInfo; } export interface V1GetBookmarkResponse { @@ -1039,6 +1077,17 @@ export interface V1Project { prodVersion?: string; createdOn?: string; updatedOn?: string; + /** ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). */ + chcClusterSize?: number; + /** ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. +For Live Connect projects, this represents the base slots from the BYOLAP cluster. */ + clusterSlots?: string; + /** InfraSlots is the Rill infrastructure overhead slot allocation for the project. +Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. */ + infraSlots?: string; + /** OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). +Persisted so the frontend can show the correct engine label even when the project is hibernated. */ + olapConnector?: string; } export interface V1ProjectInvite { @@ -1373,6 +1422,17 @@ export interface V1Subscription { trialEndDate?: string; } +export interface V1SudoAddCreditsRequest { + org?: string; + amount?: number; + expiryDays?: number; + description?: string; +} + +export interface V1SudoAddCreditsResponse { + creditInfo?: V1BillingCreditInfo; +} + export interface V1SudoDeleteOrganizationBillingIssueResponse { [key: string]: unknown; } @@ -1871,6 +1931,12 @@ export type AdminServiceUpdateProjectBody = { prodTtlSeconds?: string; prodVersion?: string; superuserForceAccess?: boolean; + /** InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. +Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. */ + infraSlots?: string; + /** ClusterSlots overrides the cluster slot allocation (stored as rill_min_slots in DB). +Adjustable by Rill staff. Derived from the OLAP cluster size. */ + clusterSlots?: string; }; export type AdminServiceGetCloneCredentialsParams = { diff --git a/web-admin/src/features/billing/BillingCTAHandler.ts b/web-admin/src/features/billing/BillingCTAHandler.ts index 10802d6ed6b..db5702e1f84 100644 --- a/web-admin/src/features/billing/BillingCTAHandler.ts +++ b/web-admin/src/features/billing/BillingCTAHandler.ts @@ -2,7 +2,9 @@ import { needsPaymentSetup } from "@rilldata/web-admin/features/billing/issues/g import type { BillingIssueMessage } from "@rilldata/web-admin/features/billing/issues/useBillingIssueMessage"; import { fetchPaymentsPortalURL } from "@rilldata/web-admin/features/billing/plans/selectors"; import { fetchOrganizationBillingIssues } from "@rilldata/web-admin/features/billing/selectors"; -import type { TeamPlanDialogTypes } from "@rilldata/web-admin/features/billing/plans/types"; +import type { + GrowthPlanDialogTypes, +} from "@rilldata/web-admin/features/billing/plans/types"; import { wakeAllProjects } from "@rilldata/web-admin/features/organizations/hibernating/wakeAllProjects"; import { BillingBannerID, @@ -13,9 +15,8 @@ import { writable } from "svelte/store"; import { getRpcErrorMessage } from "@rilldata/web-admin/components/errors/error-utils.ts"; export class BillingCTAHandler { - public showStartTeamPlanDialog = writable(false); - public startTeamPlanType = writable("base"); - public teamPlanEndDate = writable(""); + public showStartGrowthPlanDialog = writable(false); + public startGrowthPlanType = writable("base"); public wakingProjects = writable(false); private static instances = new Map(); @@ -39,11 +40,10 @@ export class BillingCTAHandler { if (!issueMessage.cta) return; switch (issueMessage.cta.type) { case "upgrade": - this.showStartTeamPlanDialog.set(true); - this.startTeamPlanType.set( - issueMessage.cta.teamPlanDialogType ?? "base", + this.showStartGrowthPlanDialog.set(true); + this.startGrowthPlanType.set( + issueMessage.cta.growthPlanDialogType ?? "base", ); - this.teamPlanEndDate.set(issueMessage.cta.teamPlanEndDate ?? ""); break; case "payment": { diff --git a/web-admin/src/features/billing/Payment.svelte b/web-admin/src/features/billing/Payment.svelte index 4291a703ca8..5b8795aaaae 100644 --- a/web-admin/src/features/billing/Payment.svelte +++ b/web-admin/src/features/billing/Payment.svelte @@ -12,7 +12,7 @@ import SettingsContainer from "@rilldata/web-admin/features/organizations/settings/SettingsContainer.svelte"; import { Button } from "@rilldata/web-common/components/button"; import CancelCircle from "@rilldata/web-common/components/icons/CancelCircle.svelte"; - import { isEnterprisePlan, isManagedPlan } from "./plans/utils"; + import { isEnterprisePlan, isFreePlan, isManagedPlan } from "./plans/utils"; export let organization: string; @@ -25,11 +25,13 @@ $: onTrial = !!$categorisedIssues.data?.trial; $: onManagedPlan = plan && isManagedPlan(plan.name); $: onEnterprisePlan = plan && isEnterprisePlan(plan.name); + $: onFreePlan = plan && isFreePlan(plan.name); // For enterprise and managed orgs, hide when payment details haven't been // entered yet (setup done via CLI). Once set up, show the Manage button. - // neverSubscribed orgs are always hidden since the billing page is not shown. + // neverSubscribed and free-plan orgs are always hidden. $: pendingSetup = neverSubscribed || + onFreePlan || ((onManagedPlan || onEnterprisePlan) && needsPaymentSetup(paymentIssues ?? [])); diff --git a/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte b/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte index 13c4c06ba51..88a02ee9cd4 100644 --- a/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte +++ b/web-admin/src/features/billing/banner/BillingBannerManagerForAdmins.svelte @@ -4,7 +4,7 @@ type BillingIssueMessage, useBillingIssueMessage, } from "@rilldata/web-admin/features/billing/issues/useBillingIssueMessage"; - import StartTeamPlanDialog from "@rilldata/web-admin/features/billing/plans/StartTeamPlanDialog.svelte"; + import StartGrowthPlanDialog from "@rilldata/web-admin/features/billing/plans/StartGrowthPlanDialog.svelte"; import { BillingBannerID, BillingBannerPriority, @@ -15,8 +15,7 @@ $: billingIssueMessage = useBillingIssueMessage(organization); $: billingCTAHandler = new BillingCTAHandler(organization); - $: ({ showStartTeamPlanDialog, startTeamPlanType, teamPlanEndDate } = - billingCTAHandler); + $: ({ showStartGrowthPlanDialog, startGrowthPlanType } = billingCTAHandler); function showBillingIssueBanner(message: BillingIssueMessage | undefined) { if (!message) { @@ -49,9 +48,8 @@ $: showBillingIssueBanner($billingIssueMessage.data); - diff --git a/web-admin/src/features/billing/issues/getMessageForCancelledIssue.ts b/web-admin/src/features/billing/issues/getMessageForCancelledIssue.ts index 1d735255ad6..690b7a358ff 100644 --- a/web-admin/src/features/billing/issues/getMessageForCancelledIssue.ts +++ b/web-admin/src/features/billing/issues/getMessageForCancelledIssue.ts @@ -40,9 +40,7 @@ export function getMessageForCancelledIssue(cancelledSubIssue: V1BillingIssue) { cta: { text: "Renew", type: "upgrade", - teamPlanDialogType: "renew", - teamPlanEndDate: - cancelledSubIssue.metadata?.subscriptionCancelled?.endDate, + growthPlanDialogType: "renew", }, }; } diff --git a/web-admin/src/features/billing/issues/getMessageForCreditIssues.ts b/web-admin/src/features/billing/issues/getMessageForCreditIssues.ts new file mode 100644 index 00000000000..cdcb92de04e --- /dev/null +++ b/web-admin/src/features/billing/issues/getMessageForCreditIssues.ts @@ -0,0 +1,82 @@ +import { + type V1BillingIssue, + V1BillingIssueType, +} from "@rilldata/web-admin/client"; +import type { BillingIssueMessage } from "@rilldata/web-admin/features/billing/issues/useBillingIssueMessage"; + +export function getCreditIssue(issues: V1BillingIssue[]) { + return { + creditLow: issues.find( + (i) => + i.type === V1BillingIssueType.BILLING_ISSUE_TYPE_CREDIT_LOW, + ), + creditCritical: issues.find( + (i) => + i.type === V1BillingIssueType.BILLING_ISSUE_TYPE_CREDIT_CRITICAL, + ), + creditExhausted: issues.find( + (i) => + i.type === V1BillingIssueType.BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED, + ), + }; +} + +export function getMessageForCreditIssue( + issue: V1BillingIssue, +): BillingIssueMessage { + switch (issue.type) { + case V1BillingIssueType.BILLING_ISSUE_TYPE_CREDIT_LOW: { + const remaining = issue.metadata?.creditLow?.creditRemaining ?? 0; + const total = issue.metadata?.creditLow?.creditTotal ?? 250; + const pct = Math.round(((total - remaining) / total) * 100); + return { + type: "warning", + iconType: "alert", + title: `You've used ${pct}% of your $${total} free credit.`, + description: `$${remaining.toFixed(0)} remaining — upgrade to Growth to keep your projects running.`, + cta: { + type: "upgrade", + text: "Upgrade to Growth", + growthPlanDialogType: "credit-low", + }, + }; + } + + case V1BillingIssueType.BILLING_ISSUE_TYPE_CREDIT_CRITICAL: { + const remaining = issue.metadata?.creditCritical?.creditRemaining ?? 0; + return { + type: "warning", + iconType: "alert", + title: "Your free credit is almost exhausted.", + description: `$${remaining.toFixed(0)} remaining — upgrade now to avoid project hibernation.`, + cta: { + type: "upgrade", + text: "Upgrade to Growth", + growthPlanDialogType: "credit-low", + }, + }; + } + + case V1BillingIssueType.BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED: + return { + type: "error", + iconType: "alert", + title: + "Your free credit is exhausted and your projects have been hibernated.", + description: "Upgrade to Growth to wake your projects and resume access.", + cta: { + type: "upgrade", + text: "Upgrade to Growth", + growthPlanDialogType: "credit-exhausted", + }, + }; + + default: + return { + type: "default", + iconType: "alert", + title: "", + description: "", + }; + } +} diff --git a/web-admin/src/features/billing/issues/getMessageForTrialPlan.ts b/web-admin/src/features/billing/issues/getMessageForTrialPlan.ts index fc3d16472d1..9e537482697 100644 --- a/web-admin/src/features/billing/issues/getMessageForTrialPlan.ts +++ b/web-admin/src/features/billing/issues/getMessageForTrialPlan.ts @@ -32,7 +32,7 @@ export function getMessageForTrialPlan( cta: { text: "Upgrade", type: "upgrade", - teamPlanDialogType: "base", + growthPlanDialogType: "base", }, }; @@ -66,7 +66,7 @@ export function getMessageForTrialPlan( "Your trial has expired and this org’s projects are now hibernating."; message.description = "Upgrade to wake projects and regain full access."; message.type = "error"; - message.cta.teamPlanDialogType = "trial-expired"; + message.cta.growthPlanDialogType = "credit-exhausted"; } } diff --git a/web-admin/src/features/billing/issues/useBillingIssueMessage.ts b/web-admin/src/features/billing/issues/useBillingIssueMessage.ts index 0db81e87c03..22b9e30cc83 100644 --- a/web-admin/src/features/billing/issues/useBillingIssueMessage.ts +++ b/web-admin/src/features/billing/issues/useBillingIssueMessage.ts @@ -1,8 +1,11 @@ import { createAdminServiceGetOrganization } from "@rilldata/web-admin/client"; +import { getMessageForCreditIssue } from "@rilldata/web-admin/features/billing/issues/getMessageForCreditIssues"; import { getMessageForPaymentIssues } from "@rilldata/web-admin/features/billing/issues/getMessageForPaymentIssues"; import { getMessageForCancelledIssue } from "@rilldata/web-admin/features/billing/issues/getMessageForCancelledIssue"; import { getMessageForTrialPlan } from "@rilldata/web-admin/features/billing/issues/getMessageForTrialPlan"; -import type { TeamPlanDialogTypes } from "@rilldata/web-admin/features/billing/plans/types"; +import type { + GrowthPlanDialogTypes, +} from "@rilldata/web-admin/features/billing/plans/types"; import { isTeamPlan } from "@rilldata/web-admin/features/billing/plans/utils"; import { useCategorisedOrganizationBillingIssues } from "@rilldata/web-admin/features/billing/selectors"; import { areAllProjectsHibernating } from "@rilldata/web-admin/features/organizations/selectors"; @@ -20,8 +23,7 @@ export type BillingIssueMessageCTA = { type: "upgrade" | "payment" | "contact" | "wake-projects"; text: string; - teamPlanDialogType?: TeamPlanDialogTypes; - teamPlanEndDate?: string; + growthPlanDialogType?: GrowthPlanDialogTypes; }; export function useBillingIssueMessage(organization: string) { @@ -58,6 +60,38 @@ export function useBillingIssueMessage(organization: string) { }; } + // Credit issues take priority (free-tier orgs) + if (categorisedIssuesResp.data?.creditExhausted) { + return { + isFetching: false, + isLoading: false, + error: undefined, + data: getMessageForCreditIssue( + categorisedIssuesResp.data.creditExhausted, + ), + }; + } + if (categorisedIssuesResp.data?.creditCritical) { + return { + isFetching: false, + isLoading: false, + error: undefined, + data: getMessageForCreditIssue( + categorisedIssuesResp.data.creditCritical, + ), + }; + } + if (categorisedIssuesResp.data?.creditLow) { + return { + isFetching: false, + isLoading: false, + error: undefined, + data: getMessageForCreditIssue( + categorisedIssuesResp.data.creditLow, + ), + }; + } + if (categorisedIssuesResp.data?.cancelled) { return { isFetching: false, diff --git a/web-admin/src/features/billing/plans/FreePlan.svelte b/web-admin/src/features/billing/plans/FreePlan.svelte new file mode 100644 index 00000000000..ddfff1aaee4 --- /dev/null +++ b/web-admin/src/features/billing/plans/FreePlan.svelte @@ -0,0 +1,85 @@ + + + +
+
+
+ ${remaining.toFixed(0)} of + ${total.toFixed(0)} credit remaining ({pctUsed}% used) +
+ +
+
= 80 && pctUsed < 95} + class:bg-red-500={pctUsed >= 95} + style="width: {Math.min(pctUsed, 100)}%" + /> +
+ + {#if daysRemaining !== undefined} +
+ At current usage, credit runs out in ~{daysRemaining} days +
+ {/if} + + See pricing details -> + + {#if plan} + + {/if} +
+
+ + For custom enterprise needs, + + + + + + +{#if !$categorisedIssues.isLoading} + +{/if} diff --git a/web-admin/src/features/billing/plans/GrowthPlan.svelte b/web-admin/src/features/billing/plans/GrowthPlan.svelte new file mode 100644 index 00000000000..f970cb68b19 --- /dev/null +++ b/web-admin/src/features/billing/plans/GrowthPlan.svelte @@ -0,0 +1,105 @@ + + + +
+
+ Usage-based billing, no base fee. Next billing cycle starts on + {getNextBillingCycleDate(subscription.currentBillingCycleEndDate ?? "")}. +
+ See pricing details -> + +
+ + For any questions, + + + + + + + + + + Are you sure you want to cancel? + + + If you cancel your plan, you'll still be able to access your account + through {currentBillingCycleEndDate}. + + + {#if error} +
+ {error} +
+ {/if} +
+ + + + +
+
+
diff --git a/web-admin/src/features/billing/plans/Plan.svelte b/web-admin/src/features/billing/plans/Plan.svelte index ce9c2192e3c..49046e78ee2 100644 --- a/web-admin/src/features/billing/plans/Plan.svelte +++ b/web-admin/src/features/billing/plans/Plan.svelte @@ -2,10 +2,13 @@ import { createAdminServiceGetBillingSubscription } from "@rilldata/web-admin/client"; import CancelledTeamPlan from "@rilldata/web-admin/features/billing/plans/CancelledTeamPlan.svelte"; import EnterprisePlan from "@rilldata/web-admin/features/billing/plans/EnterprisePlan.svelte"; + import FreePlan from "@rilldata/web-admin/features/billing/plans/FreePlan.svelte"; + import GrowthPlan from "@rilldata/web-admin/features/billing/plans/GrowthPlan.svelte"; import POCPlan from "@rilldata/web-admin/features/billing/plans/POCPlan.svelte"; import TeamPlan from "@rilldata/web-admin/features/billing/plans/TeamPlan.svelte"; - import TrialPlan from "@rilldata/web-admin/features/billing/plans/TrialPlan.svelte"; import { + isFreePlan, + isGrowthPlan, isManagedPlan, isTeamPlan, } from "@rilldata/web-admin/features/billing/plans/utils"; @@ -16,9 +19,21 @@ $: subscriptionQuery = createAdminServiceGetBillingSubscription(organization); $: subscription = $subscriptionQuery?.data?.subscription; + $: creditInfo = $subscriptionQuery?.data?.creditInfo; $: hasPayment = !!$subscriptionQuery?.data?.organization?.paymentCustomerId; $: plan = subscription?.plan; + // DEBUG: log full subscription response to browser console + $: if ($subscriptionQuery?.data) { + console.log("[Billing DEBUG] subscription response:", { + planName: plan?.name, + planType: plan?.planType, + creditInfo, + billingPortalUrl: $subscriptionQuery.data.billingPortalUrl, + orgBillingCustomerId: $subscriptionQuery.data.organization?.billingCustomerId, + }); + } + $: categorisedIssues = useCategorisedOrganizationBillingIssues(organization); // fresh orgs will have a never subscribed issue associated with it @@ -27,16 +42,25 @@ $: isTrial = !!$categorisedIssues.data?.trial; // ended subscription will have a cancelled issue associated with it $: subHasEnded = !!$categorisedIssues.data?.cancelled; - $: subIsTeamPlan = plan && isTeamPlan(plan.name); - $: subIsManagedPlan = plan && isManagedPlan(plan.name); + $: subIsFreePlan = plan && isFreePlan(plan.name ?? ""); + $: subIsGrowthPlan = plan && isGrowthPlan(plan.name ?? ""); + $: subIsTeamPlan = plan && isTeamPlan(plan.name ?? ""); + $: subIsManagedPlan = plan && isManagedPlan(plan.name ?? ""); $: subIsEnterprisePlan = - plan && !isTrial && !subIsTeamPlan && !subIsManagedPlan; + plan && + !isTrial && + !subIsFreePlan && + !subIsGrowthPlan && + !subIsTeamPlan && + !subIsManagedPlan; {#if neverSubbed} -{:else if isTrial} - +{:else if subIsFreePlan || isTrial} + +{:else if subIsGrowthPlan} + {:else if subHasEnded} {:else if subIsTeamPlan} diff --git a/web-admin/src/features/billing/plans/StartGrowthPlanDialog.svelte b/web-admin/src/features/billing/plans/StartGrowthPlanDialog.svelte new file mode 100644 index 00000000000..2ecf93cec25 --- /dev/null +++ b/web-admin/src/features/billing/plans/StartGrowthPlanDialog.svelte @@ -0,0 +1,189 @@ + + + + + + + + + {title} + + +
+ {description} + + See pricing details -> + + +
    +
  • Pure usage-based billing, no base fee
  • +
  • Managed: $0.15/slot/hr + $1/GB/month storage above 1GB
  • +
  • Live Connect: Cluster Slots $0.06/hr + Rill Slots $0.15/hr
  • +
+
+
+ + {#if $allStatus.isError || fetchError} +
+ {#if fetchError} +
{fetchError}
+ {/if} + {#each $allStatus.errors as e} +
{e}
+ {/each} +
+ {/if} +
+ + + + +
+
diff --git a/web-admin/src/features/billing/plans/TrialPlan.svelte b/web-admin/src/features/billing/plans/TrialPlan.svelte index a6e4b58be7c..04840b46737 100644 --- a/web-admin/src/features/billing/plans/TrialPlan.svelte +++ b/web-admin/src/features/billing/plans/TrialPlan.svelte @@ -7,8 +7,8 @@ import ContactUs from "@rilldata/web-admin/features/billing/ContactUs.svelte"; import { getTrialMessageForDays } from "@rilldata/web-admin/features/billing/issues/getMessageForTrialPlan"; import PlanQuotas from "@rilldata/web-admin/features/billing/plans/PlanQuotas.svelte"; - import StartTeamPlanDialog from "@rilldata/web-admin/features/billing/plans/StartTeamPlanDialog.svelte"; - import type { TeamPlanDialogTypes } from "@rilldata/web-admin/features/billing/plans/types"; + import StartGrowthPlanDialog from "@rilldata/web-admin/features/billing/plans/StartGrowthPlanDialog.svelte"; + import type { GrowthPlanDialogTypes } from "@rilldata/web-admin/features/billing/plans/types"; import { useCategorisedOrganizationBillingIssues } from "@rilldata/web-admin/features/billing/selectors"; import SettingsContainer from "@rilldata/web-admin/features/organizations/settings/SettingsContainer.svelte"; import { Button } from "@rilldata/web-common/components/button"; @@ -46,7 +46,7 @@ (plan?.displayName || "Trial plan") + (trialEnded ? " expired" : ""); let open = showUpgradeDialog; - $: type = (trialEnded ? "trial-expired" : "base") as TeamPlanDialogTypes; + $: type = (trialEnded ? "credit-exhausted" : "base") as GrowthPlanDialogTypes; @@ -71,13 +71,13 @@ {#if !$categorisedIssues.isLoading} - + {/if} diff --git a/web-admin/src/features/billing/plans/selectors.ts b/web-admin/src/features/billing/plans/selectors.ts index b6043d61b95..9bf52c2fc97 100644 --- a/web-admin/src/features/billing/plans/selectors.ts +++ b/web-admin/src/features/billing/plans/selectors.ts @@ -6,7 +6,10 @@ import { getAdminServiceGetPaymentsPortalURLQueryKey, getAdminServiceListPublicBillingPlansQueryKey, } from "@rilldata/web-admin/client"; -import { isTeamPlan } from "@rilldata/web-admin/features/billing/plans/utils"; +import { + isGrowthPlan, + isTeamPlan, +} from "@rilldata/web-admin/features/billing/plans/utils"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; import type { Page } from "@sveltejs/kit"; import type { CreateQueryResult } from "@tanstack/svelte-query"; @@ -22,6 +25,15 @@ export async function fetchTeamPlan() { return plansResp.plans?.find((p) => isTeamPlan(p.name ?? "")); } +export async function fetchGrowthPlan() { + const plansResp = await queryClient.fetchQuery({ + queryKey: getAdminServiceListPublicBillingPlansQueryKey(), + queryFn: () => adminServiceListPublicBillingPlans(), + }); + + return plansResp.plans?.find((p) => isGrowthPlan(p.name ?? "")); +} + /** * We cannot prefetch this since the url is short-lived and single use for security purposes. * So we fetch just when we need it. diff --git a/web-admin/src/features/billing/plans/types.ts b/web-admin/src/features/billing/plans/types.ts index ebd95149f8c..3992ca1522b 100644 --- a/web-admin/src/features/billing/plans/types.ts +++ b/web-admin/src/features/billing/plans/types.ts @@ -13,3 +13,16 @@ export type TeamPlanDialogTypes = | "proj" | "renew" | "trial-expired"; + +/** + * Growth plan dialog variants (PRD v10): + * 1. base - Free → Growth upgrade + * 2. credit-low - Credit warning (80% used) upgrade prompt + * 3. credit-exhausted - Credit exhausted, projects hibernated + * 4. renew - Cancelled Growth plan renewal + */ +export type GrowthPlanDialogTypes = + | "base" + | "credit-low" + | "credit-exhausted" + | "renew"; diff --git a/web-admin/src/features/billing/plans/utils.ts b/web-admin/src/features/billing/plans/utils.ts index 8cad4b1d396..96c67dfd58b 100644 --- a/web-admin/src/features/billing/plans/utils.ts +++ b/web-admin/src/features/billing/plans/utils.ts @@ -33,9 +33,21 @@ export function isManagedPlan(planName: string) { return planName === "managed"; } +export function isFreePlan(planName: string) { + return planName === "free-plan"; +} + +export function isGrowthPlan(planName: string) { + return planName === "growth-plan"; +} + export function isEnterprisePlan(planName: string) { return ( - !isTrialPlan(planName) && !isTeamPlan(planName) && !isManagedPlan(planName) + !isTrialPlan(planName) && + !isTeamPlan(planName) && + !isManagedPlan(planName) && + !isFreePlan(planName) && + !isGrowthPlan(planName) ); } diff --git a/web-admin/src/features/billing/selectors.ts b/web-admin/src/features/billing/selectors.ts index 1812849b76a..7a539645164 100644 --- a/web-admin/src/features/billing/selectors.ts +++ b/web-admin/src/features/billing/selectors.ts @@ -15,6 +15,7 @@ import { getTrialIssue, trialHasPastGracePeriod, } from "@rilldata/web-admin/features/billing/issues/getMessageForTrialPlan"; +import { getCreditIssue } from "@rilldata/web-admin/features/billing/issues/getMessageForCreditIssues"; import { queryClient } from "@rilldata/web-common/lib/svelte-query/globalQueryClient"; export async function fetchOrganizationBillingIssues(organization: string) { @@ -32,6 +33,9 @@ export type CategorisedOrganizationBillingIssues = { trial?: V1BillingIssue; cancelled?: V1BillingIssue; payment: V1BillingIssue[]; + creditLow?: V1BillingIssue; + creditCritical?: V1BillingIssue; + creditExhausted?: V1BillingIssue; }; export function useCategorisedOrganizationBillingIssues(organization: string) { return createAdminServiceListOrganizationBillingIssues( @@ -41,11 +45,15 @@ export function useCategorisedOrganizationBillingIssues(organization: string) { query: { select: (data) => { const issues = data.issues ?? []; + const credit = getCreditIssue(issues); return { neverSubscribed: getNeverSubscribedIssue(issues), trial: getTrialIssue(issues), cancelled: getCancelledIssue(issues), payment: getPaymentIssues(issues), + creditLow: credit.creditLow, + creditCritical: credit.creditCritical, + creditExhausted: credit.creditExhausted, }; }, }, @@ -54,6 +62,10 @@ export function useCategorisedOrganizationBillingIssues(organization: string) { } export function hasBlockerIssues(issues: V1BillingIssue[]) { + // Credit exhaustion is a blocker + const credit = getCreditIssue(issues); + if (credit.creditExhausted) return true; + const trialIssue = getTrialIssue(issues); if (trialIssue) { return ( diff --git a/web-admin/src/features/organizations/hibernating/OrganizationHibernatingForAdmins.svelte b/web-admin/src/features/organizations/hibernating/OrganizationHibernatingForAdmins.svelte index 4c81a225b53..bdb11e20bf6 100644 --- a/web-admin/src/features/organizations/hibernating/OrganizationHibernatingForAdmins.svelte +++ b/web-admin/src/features/organizations/hibernating/OrganizationHibernatingForAdmins.svelte @@ -4,7 +4,7 @@ type BillingIssueMessage, useBillingIssueMessage, } from "@rilldata/web-admin/features/billing/issues/useBillingIssueMessage"; - import StartTeamPlanDialog from "@rilldata/web-admin/features/billing/plans/StartTeamPlanDialog.svelte"; + import StartGrowthPlanDialog from "@rilldata/web-admin/features/billing/plans/StartGrowthPlanDialog.svelte"; import { Button } from "@rilldata/web-common/components/button"; import CTAHeader from "@rilldata/web-common/components/calls-to-action/CTAHeader.svelte"; import CTAMessage from "@rilldata/web-common/components/calls-to-action/CTAMessage.svelte"; @@ -19,9 +19,8 @@ $: billingIssueMessage = useBillingIssueMessage(organization); $: billingCTAHandler = new BillingCTAHandler(organization); $: ({ - showStartTeamPlanDialog, - startTeamPlanType, - teamPlanEndDate, + showStartGrowthPlanDialog, + startGrowthPlanType, wakingProjects, } = billingCTAHandler); let issueForHibernation: BillingIssueMessage; @@ -94,9 +93,8 @@
{/if} - diff --git a/web-admin/src/features/projects/status/deployments/DeploymentsPage.svelte b/web-admin/src/features/projects/status/deployments/DeploymentsPage.svelte new file mode 100644 index 00000000000..86dc866422e --- /dev/null +++ b/web-admin/src/features/projects/status/deployments/DeploymentsPage.svelte @@ -0,0 +1,454 @@ + + +
+ + + + +
+
+ Provisioned Slots + {provisionedSlots} + + ~${totalMonthlyCost.toLocaleString()}/mo + +
+ + {#if !isRillManaged} +
+
+ Cluster Slots + +
+ {clusterSlots} + + @ ${CLUSTER_SLOT_RATE_PER_HR}/slot/hr + (~${clusterMonthlyCost.toLocaleString()}/mo) + +
+ {/if} + +
+ Rill Slots + {rillSlots} + + @ ${rillSlotRate}/slot/hr + (~${rillMonthlyCost.toLocaleString()}/mo) + +
+
+ + +
+

Slot Breakdown

+
+
+ Type + Slots + Rate + Est. Monthly + Source +
+ + {#if !isRillManaged} +
+ + Cluster Slots + + {clusterSlots} + ${CLUSTER_SLOT_RATE_PER_HR}/slot/hr + ~${clusterMonthlyCost.toLocaleString()} + + + {#if detectedClusterSlots} + Auto-detected + {:else if projectData?.clusterSlots} + Backend override + {:else} + Default ({MIN_INFRA_SLOTS}) + {/if} + + +
+ {/if} + +
+ + Rill Slots + + {rillSlots} + ${rillSlotRate}/slot/hr + ~${rillMonthlyCost.toLocaleString()} + + User-configured + +
+ +
+ Total + {provisionedSlots} + + ~${totalMonthlyCost.toLocaleString()} + +
+
+
+ + +
+

Slot Usage Over Time

+
+
+
+ {#each Array(12) as _, i} +
+ {/each} +
+
+
+

+ Slot usage analytics coming soon. This will show provisioned slots, cluster slots, and rill slots over time. +

+
+
+ +
+ + + + diff --git a/web-admin/src/features/projects/status/display-utils.ts b/web-admin/src/features/projects/status/display-utils.ts index 7b4bd133f07..a88ee5b9643 100644 --- a/web-admin/src/features/projects/status/display-utils.ts +++ b/web-admin/src/features/projects/status/display-utils.ts @@ -107,16 +107,31 @@ export function getOlapEngineLabel(connector: V1Connector | undefined): string { isDuckDB && (String(connector.config?.path ?? "").startsWith("md:") || !!connector.config?.token); + const chcHostFields = ["host", "resolved_host", "dsn"]; + const isClickHouseCloud = + connector.type === "clickhouse" && + chcHostFields.some((field) => + String((connector.config as Record)?.[field] ?? "") + .toLowerCase() + .includes(".clickhouse.cloud"), + ); - const name = formatConnectorName( - isMotherDuck ? "motherduck" : connector.type, - ); + let connectorTypeName = connector.type; + if (isMotherDuck) connectorTypeName = "motherduck"; + const name = formatConnectorName(connectorTypeName); // Show management suffix for non-default-DuckDB connectors - const showSuffix = connector.provision || isMotherDuck || !isDuckDB; + const showSuffix = connector.provision || isMotherDuck || isClickHouseCloud || !isDuckDB; if (!showSuffix) return name; - const suffix = connector.provision ? "Rill-managed" : "Self-managed"; + let suffix: string; + if (connector.provision) { + suffix = "Rill-managed"; + } else if (isClickHouseCloud) { + suffix = "Cloud"; + } else { + suffix = "Self-managed"; + } return `${name} (${suffix})`; } diff --git a/web-admin/src/features/projects/status/overview/DeploymentSection.svelte b/web-admin/src/features/projects/status/overview/DeploymentSection.svelte index 92d67e9535f..bb7dde5a666 100644 --- a/web-admin/src/features/projects/status/overview/DeploymentSection.svelte +++ b/web-admin/src/features/projects/status/overview/DeploymentSection.svelte @@ -1,8 +1,14 @@ - +
+ {#if canManage && isFree && !$subscriptionQuery?.isLoading} + + Upgrade to Growth + + {/if} + +
@@ -140,7 +205,9 @@
OLAP Engine - {olapEngineLabel} + + {olapEngineLabel} +
@@ -155,9 +222,25 @@ {/if}
+ + {#if !$subscriptionQuery?.isLoading && !isEnterprise} +
+ Provisioned Slots + + + {provisionedSlots} + View details + + +
+ {/if}
+ diff --git a/web-admin/src/features/projects/status/overview/ManageSlotsModal.svelte b/web-admin/src/features/projects/status/overview/ManageSlotsModal.svelte new file mode 100644 index 00000000000..4efafb091bf --- /dev/null +++ b/web-admin/src/features/projects/status/overview/ManageSlotsModal.svelte @@ -0,0 +1,434 @@ + + + { + open = isOpen; + }} +> + + + Manage Slots + + {#if viewOnly} + Based on your OLAP cluster, we recommend the following slot + configuration. Upgrade to Growth to customize your slot allocation. + {:else if isRillManaged} + Rill-managed projects are billed at ${managedRate}/slot/hr.{#if useNewPricing} Storage is ${STORAGE_RATE_PER_GB_PER_MONTH}/GB/month above {INCLUDED_STORAGE_GB}GB included.{:else} Data + storage is charged separately based on usage.{/if} Monthly estimates assume + ~{HOURS_PER_MONTH} hours/month. + {:else if useNewPricing} + Add Rill Slots at ${RILL_SLOT_RATE_PER_HR}/slot/hr for extra performance or dev environments. + Cluster Slots are auto-detected from your OLAP cluster and shown on the Deployments page. + {:else} + Choose the slot tier that matches your OLAP cluster's resources. We + auto-detect the minimum tier from your cluster configuration. You can + increase slots if needed but cannot go below the detected minimum. + {/if} + + + + {#if isRillManaged && projectUsageBytes > 0} +
+ Data usage + {formatMemorySize(projectUsageBytes)} +
+ {/if} + + {#if isRillManaged} + +
+
+ Slots + $/slot/hr + Est. $/mo +
+
+ {#each visibleRillManaged as tier} + + {/each} +
+
+ {#if !viewOnly} + + {/if} + {:else if useNewPricing} + +
+
+ Rill Slots + $/slot/hr + Est. $/mo +
+
+ + + {#each RILL_SLOT_TIERS.filter((t) => showAllSizes || POPULAR_SLOTS.includes(t.slots)) as tier} + + {/each} +
+
+ + {:else} + +
+
+ Cluster Size + Rill Slots + Estimated Rill $/mo +
+
+ {#each visibleLiveConnect as tier} + + {/each} +
+
+ {#if !viewOnly} + + {/if} +

+ Estimated costs are calculated at a full month. Billing is charged at + compute/hr, therefore variable based on your needs. Select the tier that best + matches your cluster's memory and vCPU allocation. +

+ {/if} + + +
+
+ + diff --git a/web-admin/src/features/projects/status/overview/olapInfo.ts b/web-admin/src/features/projects/status/overview/olapInfo.ts new file mode 100644 index 00000000000..6ca5244f446 --- /dev/null +++ b/web-admin/src/features/projects/status/overview/olapInfo.ts @@ -0,0 +1,98 @@ +import type { V1Connector } from "@rilldata/web-common/runtime-client"; +import type { RuntimeClient } from "@rilldata/web-common/runtime-client/v2"; +import { queryServiceQuery } from "@rilldata/web-common/runtime-client/v2/gen/query-service"; +import { createQuery } from "@tanstack/svelte-query"; + +export interface OlapInfo { + replicas: number; + vcpus: number; + memory: string; +} + +// Standardized columns: replicas, vcpus, memory +const MOTHERDUCK_SQL = ` +SELECT + 1 AS replicas, + MAX(CASE WHEN name = 'threads' THEN CAST(value AS INT) END) AS vcpus, + MAX(CASE WHEN name = 'memory_limit' THEN value END) AS memory +FROM duckdb_settings() +WHERE name IN ('threads', 'memory_limit') +`.trim(); + +// Self-managed ClickHouse +const SELF_MANAGED_CLICKHOUSE_SQL = ` +SELECT + replicas, + if(cgroup_cpu > 0, cgroup_cpu, os_cpu) AS vcpus, + formatReadableSize(if(server_mem > 0, server_mem, os_mem)) AS memory +FROM ( + SELECT + (SELECT value FROM system.asynchronous_metrics WHERE metric = 'CGroupMaxCPU') AS cgroup_cpu, + (SELECT value FROM system.asynchronous_metrics WHERE metric = 'OSProcessorCount') AS os_cpu, + (SELECT toUInt64(value) FROM system.server_settings WHERE name = 'max_server_memory_usage') AS server_mem, + (SELECT toUInt64(value) FROM system.asynchronous_metrics WHERE metric = 'OSPhysicalMemoryTotal') AS os_mem +) AS hw +CROSS JOIN (SELECT count() AS replicas FROM system.clusters WHERE cluster = 'default') AS cl +`.trim(); + +// ClickHouse Cloud — same query for now; update when CHC-specific SQL is confirmed +const CLICKHOUSE_CLOUD_SQL = SELF_MANAGED_CLICKHOUSE_SQL; + +export function isMotherDuck(connector: V1Connector): boolean { + return ( + connector.type === "duckdb" && + (String(connector.config?.path ?? "").startsWith("md:") || + !!connector.config?.token) + ); +} + +export function isClickHouseCloud(connector: V1Connector): boolean { + if (connector.type !== "clickhouse") return false; + const cfg = connector.config as Record | undefined; + return ["host", "resolved_host", "dsn"].some((field) => + String(cfg?.[field] ?? "") + .toLowerCase() + .includes(".clickhouse.cloud"), + ); +} + +function getOlapInfoSQL(connector: V1Connector | undefined): string | null { + if (!connector) return null; + if (isMotherDuck(connector)) return MOTHERDUCK_SQL; + if (connector.type === "clickhouse") { + return isClickHouseCloud(connector) + ? CLICKHOUSE_CLOUD_SQL + : SELF_MANAGED_CLICKHOUSE_SQL; + } + return null; +} + +export function useOlapInfo( + client: RuntimeClient, + connector: V1Connector | undefined, +) { + const sql = getOlapInfoSQL(connector); + const connectorName = connector?.name; + + return createQuery({ + queryKey: ["olap-info", client.instanceId, connectorName], + queryFn: async ({ signal }) => { + if (!sql || !connectorName) return null; + const res = await queryServiceQuery( + client, + { connector: connectorName, sql, priority: -1, limit: 0 }, + { signal }, + ); + const row = res.data?.[0]; + if (!row) return null; + return { + replicas: Number(row["replicas"] ?? 1), + vcpus: Number(row["vcpus"] ?? 0), + memory: String(row["memory"] ?? ""), + } as OlapInfo; + }, + enabled: !!sql && !!client.instanceId, + staleTime: Infinity, + refetchOnWindowFocus: false, + }); +} diff --git a/web-admin/src/features/projects/status/overview/slots-utils.test.ts b/web-admin/src/features/projects/status/overview/slots-utils.test.ts new file mode 100644 index 00000000000..9e99971b3cb --- /dev/null +++ b/web-admin/src/features/projects/status/overview/slots-utils.test.ts @@ -0,0 +1,56 @@ +import { describe, it, expect } from "vitest"; +import { + detectTierSlots, + LIVE_CONNECT_TIERS, + POPULAR_LIVE_CONNECT_TIERS, +} from "./slots-utils"; + +describe("detectTierSlots", () => { + it("returns undefined for undefined input", () => { + expect(detectTierSlots(undefined)).toBeUndefined(); + }); + + it("returns undefined for 0", () => { + expect(detectTierSlots(0)).toBeUndefined(); + }); + + it("matches exact tier memories", () => { + // Each tier's memory = slots * 4 + expect(detectTierSlots(8)).toBe(2); // 2 slots * 4 = 8 GB + expect(detectTierSlots(12)).toBe(3); // 3 slots * 4 = 12 GB + expect(detectTierSlots(16)).toBe(4); + expect(detectTierSlots(32)).toBe(8); + expect(detectTierSlots(64)).toBe(16); + expect(detectTierSlots(120)).toBe(30); + }); + + it("rounds to the closest tier", () => { + // Tier memories (slots * 4): 8, 12, 16, 20, 24, 28, 32, 40, 48, 56, 64, ... + // 10 GB: |10-8|=2, |10-12|=2 → tie, keeps first (2 slots) + expect(detectTierSlots(10)).toBe(2); + // 11 GB: |11-8|=3, |11-12|=1 → 3 slots + expect(detectTierSlots(11)).toBe(3); + // 14 GB: |14-12|=2, |14-16|=2 → tie, keeps 3 slots + expect(detectTierSlots(14)).toBe(3); + // 15 GB: |15-12|=3, |15-16|=1 → 4 slots + expect(detectTierSlots(15)).toBe(4); + }); + + it("handles memory below smallest tier", () => { + expect(detectTierSlots(4)).toBe(2); + expect(detectTierSlots(1)).toBe(2); + }); + + it("handles memory above largest tier", () => { + expect(detectTierSlots(200)).toBe(30); + expect(detectTierSlots(500)).toBe(30); + }); + + it("all tiers list has expected entries", () => { + expect(LIVE_CONNECT_TIERS).toHaveLength(15); + }); + + it("popular tiers list has expected entries", () => { + expect(POPULAR_LIVE_CONNECT_TIERS).toHaveLength(6); + }); +}); diff --git a/web-admin/src/features/projects/status/overview/slots-utils.ts b/web-admin/src/features/projects/status/overview/slots-utils.ts new file mode 100644 index 00000000000..19ace4b4d1a --- /dev/null +++ b/web-admin/src/features/projects/status/overview/slots-utils.ts @@ -0,0 +1,62 @@ +// Legacy rate for existing Team plan customers +export const SLOT_RATE_PER_HR = 0.06; +export const HOURS_PER_MONTH = 730; + +// New pricing rates (PRD v10) +export const MANAGED_SLOT_RATE_PER_HR = 0.15; +export const CLUSTER_SLOT_RATE_PER_HR = 0.06; +export const RILL_SLOT_RATE_PER_HR = 0.15; +export const STORAGE_RATE_PER_GB_PER_MONTH = 1.0; +export const INCLUDED_STORAGE_GB = 1; +// Minimum infra slots always assigned to Live Connect projects; not billed separately +export const MIN_INFRA_SLOTS = 4; + +export interface SlotTier { + slots: number; + instance: string; + rillBill: number; +} + +function tier(slots: number, rate = SLOT_RATE_PER_HR): SlotTier { + return { + slots, + instance: `${slots * 4}GiB / ${slots}vCPU`, + rillBill: Math.round(slots * rate * HOURS_PER_MONTH), + }; +} + +// Popular slot values shown by default +export const POPULAR_SLOTS = [2, 3, 4, 8, 16, 30]; + +// All available slot values including intermediate sizes +export const ALL_SLOTS = [2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 20, 24, 28, 30]; + +// Legacy tiers at $0.06/slot/hr (for existing Team plan customers) +export const POPULAR_LIVE_CONNECT_TIERS: SlotTier[] = POPULAR_SLOTS.map((s) => + tier(s), +); +export const LIVE_CONNECT_TIERS: SlotTier[] = ALL_SLOTS.map((s) => tier(s)); + +// Rill Slots at $0.15/hr (user-controlled for Live Connect) +export const RILL_SLOT_TIERS: SlotTier[] = ALL_SLOTS.map((s) => + tier(s, RILL_SLOT_RATE_PER_HR), +); + +/** + * Given detected cluster memory (GB per replica), return the matching tier's slot count. + * Picks the tier whose memory (slots * 4 GB) is closest to the detected value. + */ +export function detectTierSlots( + detectedMemoryGb: number | undefined, +): number | undefined { + if (!detectedMemoryGb) return undefined; + const match = LIVE_CONNECT_TIERS.reduce((best, tier) => { + const tierMemory = tier.slots * 4; + const bestMemory = best.slots * 4; + return Math.abs(tierMemory - detectedMemoryGb) < + Math.abs(bestMemory - detectedMemoryGb) + ? tier + : best; + }); + return match.slots; +} diff --git a/web-admin/src/routes/[organization]/-/upgrade-callback/+page.svelte b/web-admin/src/routes/[organization]/-/upgrade-callback/+page.svelte index 2f4999a0ba4..829968c706d 100644 --- a/web-admin/src/routes/[organization]/-/upgrade-callback/+page.svelte +++ b/web-admin/src/routes/[organization]/-/upgrade-callback/+page.svelte @@ -12,10 +12,13 @@ } from "@rilldata/web-admin/features/billing/issues/getMessageForPaymentIssues"; import { fetchPaymentsPortalURL, - fetchTeamPlan, + fetchGrowthPlan, getBillingUpgradeUrl, } from "@rilldata/web-admin/features/billing/plans/selectors"; - import { showWelcomeToRillDialog } from "@rilldata/web-admin/features/billing/plans/utils"; + import { + isFreePlan, + showWelcomeToRillDialog, + } from "@rilldata/web-admin/features/billing/plans/utils"; import CtaContentContainer from "@rilldata/web-common/components/calls-to-action/CTAContentContainer.svelte"; import CtaHeader from "@rilldata/web-common/components/calls-to-action/CTAHeader.svelte"; import CtaLayoutContainer from "@rilldata/web-common/components/calls-to-action/CTALayoutContainer.svelte"; @@ -31,8 +34,9 @@ $: redirect = $page.url.searchParams.get("redirect"); /** - * Landing page to upgrade a user to team plan. + * Landing page to upgrade a user to a paid plan. * Is set as a return url on stripe portal. + * Always upgrades to Growth plan. */ $: organization = $page.params.organization; @@ -59,28 +63,29 @@ }); return goto(`/${organization}/-/settings/billing`); } - const teamPlan = await fetchTeamPlan(); + + const targetPlan = await fetchGrowthPlan(); + const planLabel = "Growth"; + try { if (cancelled) { await $planRenewer.mutateAsync({ org: organization, data: { - planName: teamPlan.name, + planName: targetPlan?.name, }, }); eventBus.emit("notification", { type: "success", - message: "Your Team plan was renewed", + message: `Your ${planLabel} plan was renewed`, }); } else { await $planUpdater.mutateAsync({ org: organization, data: { - planName: teamPlan.name, + planName: targetPlan?.name, }, }); - // if redirect is set then this page won't be active. - // so this will lead to pop-in of the modal before navigating away if (!redirect) { showWelcomeToRillDialog.set(true); } @@ -90,8 +95,6 @@ // TODO } if (redirect) { - // redirect param could be on a different domain like the rill developer instance - // so using goto won't work window.open(redirect, "_self"); } else { return goto(`/${organization}`); @@ -108,9 +111,9 @@
{#if cancelled} - Renewing team plan... + Renewing Growth plan... {:else} - Upgrading to team plan... + Upgrading to Growth plan... {/if} diff --git a/web-admin/src/routes/[organization]/[project]/-/status/+layout.svelte b/web-admin/src/routes/[organization]/[project]/-/status/+layout.svelte index 2167242ec2d..fa0e8bd3f51 100644 --- a/web-admin/src/routes/[organization]/[project]/-/status/+layout.svelte +++ b/web-admin/src/routes/[organization]/[project]/-/status/+layout.svelte @@ -13,6 +13,11 @@ route: "", hasPermission: true, }, + { + label: "Deployments", + route: "/deployments", + hasPermission: true, + }, { label: "Resources", route: "/resources", diff --git a/web-admin/src/routes/[organization]/[project]/-/status/deployments/+page.svelte b/web-admin/src/routes/[organization]/[project]/-/status/deployments/+page.svelte new file mode 100644 index 00000000000..0c1b63c78db --- /dev/null +++ b/web-admin/src/routes/[organization]/[project]/-/status/deployments/+page.svelte @@ -0,0 +1,11 @@ + + +
+ +
diff --git a/web-common/src/features/billing/PricingDetails.svelte b/web-common/src/features/billing/PricingDetails.svelte index 34b32d3708e..4244e2fa76e 100644 --- a/web-common/src/features/billing/PricingDetails.svelte +++ b/web-common/src/features/billing/PricingDetails.svelte @@ -1,9 +1,18 @@
- {extraText} Pricing is based on amount of data ingested (and compressed) into Rill. + {extraText} + {#if mode === "legacy"} + Pricing is based on amount of data ingested (and compressed) into Rill. + {:else if mode === "managed"} + Pure usage-based billing with no base fee. + {:else} + Cluster Slots are auto-calculated from your OLAP cluster. Add Rill Slots for extra performance. + {/if}
    -
  • Starts at $250/month with 10 GB included, $25/GB thereafter
  • -
  • Unlimited projects, limited to 50 GB each
  • + {#if mode === "legacy"} +
  • Starts at $250/month with 10 GB included, $25/GB thereafter
  • +
  • Unlimited projects, limited to 50 GB each
  • + {:else if mode === "managed"} +
  • $0.15/slot/hr (~$110/slot/month always-on)
  • +
  • $1/GB/month storage above 1GB included
  • +
  • Minimum 2 slots once over 1GB
  • + {:else} +
  • Cluster Slots: $0.06/slot/hr (auto-calculated from your OLAP cluster)
  • +
  • Rill Slots: $0.15/slot/hr (user-controlled, starts at 0)
  • + {/if}
diff --git a/web-common/src/proto/gen/rill/admin/v1/api_pb.ts b/web-common/src/proto/gen/rill/admin/v1/api_pb.ts index 76b670ece37..ed0a9577504 100644 --- a/web-common/src/proto/gen/rill/admin/v1/api_pb.ts +++ b/web-common/src/proto/gen/rill/admin/v1/api_pb.ts @@ -124,6 +124,16 @@ export enum BillingPlanType { * @generated from enum value: BILLING_PLAN_TYPE_ENTERPRISE = 4; */ ENTERPRISE = 4, + + /** + * @generated from enum value: BILLING_PLAN_TYPE_FREE = 5; + */ + FREE = 5, + + /** + * @generated from enum value: BILLING_PLAN_TYPE_GROWTH = 6; + */ + GROWTH = 6, } // Retrieve enum metadata with: proto3.getEnumType(BillingPlanType) proto3.util.setEnumType(BillingPlanType, "rill.admin.v1.BillingPlanType", [ @@ -132,6 +142,8 @@ proto3.util.setEnumType(BillingPlanType, "rill.admin.v1.BillingPlanType", [ { no: 2, name: "BILLING_PLAN_TYPE_TEAM" }, { no: 3, name: "BILLING_PLAN_TYPE_MANAGED" }, { no: 4, name: "BILLING_PLAN_TYPE_ENTERPRISE" }, + { no: 5, name: "BILLING_PLAN_TYPE_FREE" }, + { no: 6, name: "BILLING_PLAN_TYPE_GROWTH" }, ]); /** @@ -177,6 +189,21 @@ export enum BillingIssueType { * @generated from enum value: BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED = 7; */ NEVER_SUBSCRIBED = 7, + + /** + * @generated from enum value: BILLING_ISSUE_TYPE_CREDIT_LOW = 8; + */ + CREDIT_LOW = 8, + + /** + * @generated from enum value: BILLING_ISSUE_TYPE_CREDIT_CRITICAL = 9; + */ + CREDIT_CRITICAL = 9, + + /** + * @generated from enum value: BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED = 10; + */ + CREDIT_EXHAUSTED = 10, } // Retrieve enum metadata with: proto3.getEnumType(BillingIssueType) proto3.util.setEnumType(BillingIssueType, "rill.admin.v1.BillingIssueType", [ @@ -188,6 +215,9 @@ proto3.util.setEnumType(BillingIssueType, "rill.admin.v1.BillingIssueType", [ { no: 5, name: "BILLING_ISSUE_TYPE_PAYMENT_FAILED" }, { no: 6, name: "BILLING_ISSUE_TYPE_SUBSCRIPTION_CANCELLED" }, { no: 7, name: "BILLING_ISSUE_TYPE_NEVER_SUBSCRIBED" }, + { no: 8, name: "BILLING_ISSUE_TYPE_CREDIT_LOW" }, + { no: 9, name: "BILLING_ISSUE_TYPE_CREDIT_CRITICAL" }, + { no: 10, name: "BILLING_ISSUE_TYPE_CREDIT_EXHAUSTED" }, ]); /** @@ -3984,6 +4014,22 @@ export class UpdateProjectRequest extends Message { */ superuserForceAccess = false; + /** + * InfraSlots overrides the Rill infrastructure overhead slot allocation for this project. + * Adjustable by Rill staff. Defaults to 4 for Live Connect, 0 for Rill Managed. + * + * @generated from field: optional int64 infra_slots = 16; + */ + infraSlots?: bigint; + + /** + * ClusterSlots overrides the cluster slot allocation (stored as rill_min_slots in DB). + * Adjustable by Rill staff. Derived from the OLAP cluster size. + * + * @generated from field: optional int64 cluster_slots = 17; + */ + clusterSlots?: bigint; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -4007,6 +4053,8 @@ export class UpdateProjectRequest extends Message { { no: 10, name: "prod_ttl_seconds", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, { no: 11, name: "prod_version", kind: "scalar", T: 9 /* ScalarType.STRING */, opt: true }, { no: 14, name: "superuser_force_access", kind: "scalar", T: 8 /* ScalarType.BOOL */ }, + { no: 16, name: "infra_slots", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, + { no: 17, name: "cluster_slots", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): UpdateProjectRequest { @@ -6308,6 +6356,100 @@ export class SudoExtendTrialResponse extends Message { } } +/** + * @generated from message rill.admin.v1.SudoAddCreditsRequest + */ +export class SudoAddCreditsRequest extends Message { + /** + * @generated from field: string org = 1; + */ + org = ""; + + /** + * @generated from field: double amount = 2; + */ + amount = 0; + + /** + * Number of days until credits expire; defaults to 365 + * + * @generated from field: int32 expiry_days = 3; + */ + expiryDays = 0; + + /** + * @generated from field: string description = 4; + */ + description = ""; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "rill.admin.v1.SudoAddCreditsRequest"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "org", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + { no: 2, name: "amount", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 3, name: "expiry_days", kind: "scalar", T: 5 /* ScalarType.INT32 */ }, + { no: 4, name: "description", kind: "scalar", T: 9 /* ScalarType.STRING */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SudoAddCreditsRequest { + return new SudoAddCreditsRequest().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SudoAddCreditsRequest { + return new SudoAddCreditsRequest().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SudoAddCreditsRequest { + return new SudoAddCreditsRequest().fromJsonString(jsonString, options); + } + + static equals(a: SudoAddCreditsRequest | PlainMessage | undefined, b: SudoAddCreditsRequest | PlainMessage | undefined): boolean { + return proto3.util.equals(SudoAddCreditsRequest, a, b); + } +} + +/** + * @generated from message rill.admin.v1.SudoAddCreditsResponse + */ +export class SudoAddCreditsResponse extends Message { + /** + * @generated from field: rill.admin.v1.BillingCreditInfo credit_info = 1; + */ + creditInfo?: BillingCreditInfo; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "rill.admin.v1.SudoAddCreditsResponse"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "credit_info", kind: "message", T: BillingCreditInfo }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): SudoAddCreditsResponse { + return new SudoAddCreditsResponse().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): SudoAddCreditsResponse { + return new SudoAddCreditsResponse().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): SudoAddCreditsResponse { + return new SudoAddCreditsResponse().fromJsonString(jsonString, options); + } + + static equals(a: SudoAddCreditsResponse | PlainMessage | undefined, b: SudoAddCreditsResponse | PlainMessage | undefined): boolean { + return proto3.util.equals(SudoAddCreditsResponse, a, b); + } +} + /** * @generated from message rill.admin.v1.SudoUpdateOrganizationCustomDomainRequest */ @@ -13894,6 +14036,11 @@ export class GetBillingSubscriptionResponse extends Message) { super(); proto3.util.initPartial(data, this); @@ -13905,6 +14052,7 @@ export class GetBillingSubscriptionResponse extends Message): GetBillingSubscriptionResponse { @@ -13924,6 +14072,69 @@ export class GetBillingSubscriptionResponse extends Message { + /** + * @generated from field: double total_credit = 1; + */ + totalCredit = 0; + + /** + * @generated from field: double used_credit = 2; + */ + usedCredit = 0; + + /** + * @generated from field: double remaining_credit = 3; + */ + remainingCredit = 0; + + /** + * @generated from field: google.protobuf.Timestamp credit_expiry = 4; + */ + creditExpiry?: Timestamp; + + /** + * @generated from field: double burn_rate_per_day = 5; + */ + burnRatePerDay = 0; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "rill.admin.v1.BillingCreditInfo"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "total_credit", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 2, name: "used_credit", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 3, name: "remaining_credit", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 4, name: "credit_expiry", kind: "message", T: Timestamp }, + { no: 5, name: "burn_rate_per_day", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): BillingCreditInfo { + return new BillingCreditInfo().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): BillingCreditInfo { + return new BillingCreditInfo().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): BillingCreditInfo { + return new BillingCreditInfo().fromJsonString(jsonString, options); + } + + static equals(a: BillingCreditInfo | PlainMessage | undefined, b: BillingCreditInfo | PlainMessage | undefined): boolean { + return proto3.util.equals(BillingCreditInfo, a, b); + } +} + /** * @generated from message rill.admin.v1.UpdateBillingSubscriptionRequest */ @@ -15683,6 +15894,37 @@ export class Project extends Message { */ updatedOn?: Timestamp; + /** + * ChcClusterSize is the detected ClickHouse Cloud cluster memory in GB (per replica). + * + * @generated from field: optional double chc_cluster_size = 27; + */ + chcClusterSize?: number; + + /** + * ClusterSlots is the cluster slot allocation, derived from the OLAP cluster size. + * For Live Connect projects, this represents the base slots from the BYOLAP cluster. + * + * @generated from field: optional int64 cluster_slots = 28; + */ + clusterSlots?: bigint; + + /** + * InfraSlots is the Rill infrastructure overhead slot allocation for the project. + * Adjustable by Rill staff; NULL defaults to 4 for Live Connect, 0 for Rill Managed. + * + * @generated from field: optional int64 infra_slots = 29; + */ + infraSlots?: bigint; + + /** + * OlapConnector is the cached OLAP connector driver name (e.g. "clickhouse", "duckdb"). + * Persisted so the frontend can show the correct engine label even when the project is hibernated. + * + * @generated from field: string olap_connector = 30; + */ + olapConnector = ""; + constructor(data?: PartialMessage) { super(); proto3.util.initPartial(data, this); @@ -15714,6 +15956,10 @@ export class Project extends Message { { no: 21, name: "prod_version", kind: "scalar", T: 9 /* ScalarType.STRING */ }, { no: 14, name: "created_on", kind: "message", T: Timestamp }, { no: 15, name: "updated_on", kind: "message", T: Timestamp }, + { no: 27, name: "chc_cluster_size", kind: "scalar", T: 1 /* ScalarType.DOUBLE */, opt: true }, + { no: 28, name: "cluster_slots", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, + { no: 29, name: "infra_slots", kind: "scalar", T: 3 /* ScalarType.INT64 */, opt: true }, + { no: 30, name: "olap_connector", kind: "scalar", T: 9 /* ScalarType.STRING */ }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): Project { @@ -17845,6 +18091,24 @@ export class BillingIssueMetadata extends Message { */ value: BillingIssueMetadataNeverSubscribed; case: "neverSubscribed"; + } | { + /** + * @generated from field: rill.admin.v1.BillingIssueMetadataCreditLow credit_low = 8; + */ + value: BillingIssueMetadataCreditLow; + case: "creditLow"; + } | { + /** + * @generated from field: rill.admin.v1.BillingIssueMetadataCreditCritical credit_critical = 9; + */ + value: BillingIssueMetadataCreditCritical; + case: "creditCritical"; + } | { + /** + * @generated from field: rill.admin.v1.BillingIssueMetadataCreditExhausted credit_exhausted = 10; + */ + value: BillingIssueMetadataCreditExhausted; + case: "creditExhausted"; } | { case: undefined; value?: undefined } = { case: undefined }; constructor(data?: PartialMessage) { @@ -17862,6 +18126,9 @@ export class BillingIssueMetadata extends Message { { no: 5, name: "payment_failed", kind: "message", T: BillingIssueMetadataPaymentFailed, oneof: "metadata" }, { no: 6, name: "subscription_cancelled", kind: "message", T: BillingIssueMetadataSubscriptionCancelled, oneof: "metadata" }, { no: 7, name: "never_subscribed", kind: "message", T: BillingIssueMetadataNeverSubscribed, oneof: "metadata" }, + { no: 8, name: "credit_low", kind: "message", T: BillingIssueMetadataCreditLow, oneof: "metadata" }, + { no: 9, name: "credit_critical", kind: "message", T: BillingIssueMetadataCreditCritical, oneof: "metadata" }, + { no: 10, name: "credit_exhausted", kind: "message", T: BillingIssueMetadataCreditExhausted, oneof: "metadata" }, ]); static fromBinary(bytes: Uint8Array, options?: Partial): BillingIssueMetadata { @@ -18213,3 +18480,150 @@ export class BillingIssueMetadataNeverSubscribed extends Message { + /** + * @generated from field: double credit_remaining = 1; + */ + creditRemaining = 0; + + /** + * @generated from field: double credit_total = 2; + */ + creditTotal = 0; + + /** + * @generated from field: google.protobuf.Timestamp credit_expiry = 3; + */ + creditExpiry?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "rill.admin.v1.BillingIssueMetadataCreditLow"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "credit_remaining", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 2, name: "credit_total", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 3, name: "credit_expiry", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): BillingIssueMetadataCreditLow { + return new BillingIssueMetadataCreditLow().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): BillingIssueMetadataCreditLow { + return new BillingIssueMetadataCreditLow().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): BillingIssueMetadataCreditLow { + return new BillingIssueMetadataCreditLow().fromJsonString(jsonString, options); + } + + static equals(a: BillingIssueMetadataCreditLow | PlainMessage | undefined, b: BillingIssueMetadataCreditLow | PlainMessage | undefined): boolean { + return proto3.util.equals(BillingIssueMetadataCreditLow, a, b); + } +} + +/** + * @generated from message rill.admin.v1.BillingIssueMetadataCreditCritical + */ +export class BillingIssueMetadataCreditCritical extends Message { + /** + * @generated from field: double credit_remaining = 1; + */ + creditRemaining = 0; + + /** + * @generated from field: double credit_total = 2; + */ + creditTotal = 0; + + /** + * @generated from field: google.protobuf.Timestamp credit_expiry = 3; + */ + creditExpiry?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "rill.admin.v1.BillingIssueMetadataCreditCritical"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "credit_remaining", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 2, name: "credit_total", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 3, name: "credit_expiry", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): BillingIssueMetadataCreditCritical { + return new BillingIssueMetadataCreditCritical().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): BillingIssueMetadataCreditCritical { + return new BillingIssueMetadataCreditCritical().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): BillingIssueMetadataCreditCritical { + return new BillingIssueMetadataCreditCritical().fromJsonString(jsonString, options); + } + + static equals(a: BillingIssueMetadataCreditCritical | PlainMessage | undefined, b: BillingIssueMetadataCreditCritical | PlainMessage | undefined): boolean { + return proto3.util.equals(BillingIssueMetadataCreditCritical, a, b); + } +} + +/** + * @generated from message rill.admin.v1.BillingIssueMetadataCreditExhausted + */ +export class BillingIssueMetadataCreditExhausted extends Message { + /** + * @generated from field: double credit_total = 1; + */ + creditTotal = 0; + + /** + * @generated from field: google.protobuf.Timestamp credit_expiry = 2; + */ + creditExpiry?: Timestamp; + + /** + * @generated from field: google.protobuf.Timestamp exhausted_on = 3; + */ + exhaustedOn?: Timestamp; + + constructor(data?: PartialMessage) { + super(); + proto3.util.initPartial(data, this); + } + + static readonly runtime: typeof proto3 = proto3; + static readonly typeName = "rill.admin.v1.BillingIssueMetadataCreditExhausted"; + static readonly fields: FieldList = proto3.util.newFieldList(() => [ + { no: 1, name: "credit_total", kind: "scalar", T: 1 /* ScalarType.DOUBLE */ }, + { no: 2, name: "credit_expiry", kind: "message", T: Timestamp }, + { no: 3, name: "exhausted_on", kind: "message", T: Timestamp }, + ]); + + static fromBinary(bytes: Uint8Array, options?: Partial): BillingIssueMetadataCreditExhausted { + return new BillingIssueMetadataCreditExhausted().fromBinary(bytes, options); + } + + static fromJson(jsonValue: JsonValue, options?: Partial): BillingIssueMetadataCreditExhausted { + return new BillingIssueMetadataCreditExhausted().fromJson(jsonValue, options); + } + + static fromJsonString(jsonString: string, options?: Partial): BillingIssueMetadataCreditExhausted { + return new BillingIssueMetadataCreditExhausted().fromJsonString(jsonString, options); + } + + static equals(a: BillingIssueMetadataCreditExhausted | PlainMessage | undefined, b: BillingIssueMetadataCreditExhausted | PlainMessage | undefined): boolean { + return proto3.util.equals(BillingIssueMetadataCreditExhausted, a, b); + } +} +