From f558df2d77dbd50d8a84a9bd3f5867c0f5a9ff9a Mon Sep 17 00:00:00 2001 From: Dmitrii Okunev Date: Mon, 5 Aug 2024 23:08:57 +0100 Subject: [PATCH] Initial commit, pt. 75 --- cmd/streamcli/commands/commands.go | 18 +- cmd/streampanel/FyneApp.toml | 2 +- pkg/streamd/client/client.go | 1530 +++---- pkg/streamd/client/dummy_closer.go | 11 + pkg/streamd/client/options.go | 98 + .../grpc/go/streamd_grpc/streamd.pb.go | 3868 +++++++++-------- .../grpc/go/streamd_grpc/streamd_grpc.pb.go | 36 + pkg/streamd/grpc/streamd.proto | 11 + pkg/streamd/server/grpc.go | 18 + pkg/streampanel/panel.go | 13 +- 10 files changed, 2985 insertions(+), 2620 deletions(-) create mode 100644 pkg/streamd/client/dummy_closer.go create mode 100644 pkg/streamd/client/options.go diff --git a/cmd/streamcli/commands/commands.go b/cmd/streamcli/commands/commands.go index 12684e6..af3ca13 100644 --- a/cmd/streamcli/commands/commands.go +++ b/cmd/streamcli/commands/commands.go @@ -118,7 +118,8 @@ func streamSetup(cmd *cobra.Command, args []string) { remoteAddr, err := cmd.Flags().GetString("remote-addr") assertNoError(ctx, err) - streamD := client.New(remoteAddr) + streamD, err := client.New(remoteAddr) + assertNoError(ctx, err) title, err := cmd.Flags().GetString("title") assertNoError(ctx, err) description, err := cmd.Flags().GetString("description") @@ -160,7 +161,8 @@ func streamStatus(cmd *cobra.Command, args []string) { remoteAddr, err := cmd.Flags().GetString("remote-addr") assertNoError(ctx, err) - streamD := client.New(remoteAddr) + streamD, err := client.New(remoteAddr) + assertNoError(ctx, err) for _, platID := range []streamcontrol.PlatformName{ obs.ID, twitch.ID, youtube.ID, @@ -188,7 +190,8 @@ func variablesGet(cmd *cobra.Command, args []string) { remoteAddr, err := cmd.Flags().GetString("remote-addr") assertNoError(ctx, err) - streamD := client.New(remoteAddr) + streamD, err := client.New(remoteAddr) + assertNoError(ctx, err) b, err := streamD.GetVariable(ctx, consts.VarKey(variableKey)) assertNoError(ctx, err) @@ -203,7 +206,8 @@ func variablesGetHash(cmd *cobra.Command, args []string) { remoteAddr, err := cmd.Flags().GetString("remote-addr") assertNoError(ctx, err) - streamD := client.New(remoteAddr) + streamD, err := client.New(remoteAddr) + assertNoError(ctx, err) b, err := streamD.GetVariableHash(ctx, consts.VarKey(variableKey), crypto.SHA1) assertNoError(ctx, err) @@ -217,7 +221,8 @@ func variablesSet(cmd *cobra.Command, args []string) { remoteAddr, err := cmd.Flags().GetString("remote-addr") assertNoError(ctx, err) - streamD := client.New(remoteAddr) + streamD, err := client.New(remoteAddr) + assertNoError(ctx, err) value, err := io.ReadAll(os.Stdin) assertNoError(ctx, err) @@ -231,7 +236,8 @@ func configGet(cmd *cobra.Command, args []string) { remoteAddr, err := cmd.Flags().GetString("remote-addr") assertNoError(ctx, err) - streamD := client.New(remoteAddr) + streamD, err := client.New(remoteAddr) + assertNoError(ctx, err) cfg, err := streamD.GetConfig(ctx) assertNoError(ctx, err) diff --git a/cmd/streampanel/FyneApp.toml b/cmd/streampanel/FyneApp.toml index e27d3fe..45384fd 100644 --- a/cmd/streampanel/FyneApp.toml +++ b/cmd/streampanel/FyneApp.toml @@ -5,4 +5,4 @@ Website = "https://github.com/xaionaro/streamctl" Name = "streampanel" ID = "center.dx.streampanel" Version = "0.1.0" - Build = 88 + Build = 91 diff --git a/pkg/streamd/client/client.go b/pkg/streamd/client/client.go index b8a1fbc..513b90f 100644 --- a/pkg/streamd/client/client.go +++ b/pkg/streamd/client/client.go @@ -10,6 +10,7 @@ import ( "io" "runtime" "strings" + "sync" "time" "github.com/andreykaipov/goobs/api/requests/scenes" @@ -17,6 +18,7 @@ import ( "github.com/facebookincubator/go-belt" "github.com/facebookincubator/go-belt/tool/logger" "github.com/goccy/go-yaml" + "github.com/hashicorp/go-multierror" "github.com/xaionaro-go/streamctl/pkg/observability" "github.com/xaionaro-go/streamctl/pkg/player" "github.com/xaionaro-go/streamctl/pkg/player/protobuf/go/player_grpc" @@ -25,7 +27,7 @@ import ( twitch "github.com/xaionaro-go/streamctl/pkg/streamcontrol/twitch/types" youtube "github.com/xaionaro-go/streamctl/pkg/streamcontrol/youtube/types" "github.com/xaionaro-go/streamctl/pkg/streamd/api" - "github.com/xaionaro-go/streamctl/pkg/streamd/config" + streamdconfig "github.com/xaionaro-go/streamctl/pkg/streamd/config" "github.com/xaionaro-go/streamctl/pkg/streamd/grpc/go/streamd_grpc" "github.com/xaionaro-go/streamctl/pkg/streamd/grpc/goconv" "github.com/xaionaro-go/streamctl/pkg/streampanel/consts" @@ -38,15 +40,86 @@ import ( type Client struct { Target string + Config Config + + PersistentConnectionLocker sync.Mutex + PersistentConnection *grpc.ClientConn + PersistentClient streamd_grpc.StreamDClient } var _ api.StreamD = (*Client)(nil) -func New(target string) *Client { - return &Client{Target: target} +func New( + target string, + opts ...Option, +) (*Client, error) { + c := &Client{ + Target: target, + Config: Options(opts).Config(), + } + if err := c.init(); err != nil { + return nil, err + } + return c, nil } -func (c *Client) grpcClient() (streamd_grpc.StreamDClient, *grpc.ClientConn, error) { +func (c *Client) init() error { + var result *multierror.Error + if c.Config.UsePersistentConnection { + result = multierror.Append(result, c.initPersistentConnection()) + } + return result.ErrorOrNil() +} + +func (c *Client) initPersistentConnection() error { + return c.connect(context.TODO()) +} + +func (c *Client) connect(ctx context.Context) error { + wrapper := c.Config.ConnectWrapper + if wrapper == nil { + return c.doConnect(ctx) + } + + return wrapper(ctx, func(ctx context.Context) error { + return c.doConnect(ctx) + }) +} + +func (c *Client) doConnect(ctx context.Context) error { + delay := c.Config.Reconnect.InitialInterval + for { + select { + case <-ctx.Done(): + return ctx.Err() + default: + } + logger.Debugf(ctx, "trying to (re-)connect") + client, conn, err := c.grpcNewClient() + if err == nil { + logger.Debugf(ctx, "successfully (re-)connected") + c.PersistentClient = client + c.PersistentConnection = conn + return nil + } + logger.Debugf(ctx, "(re-)connection failed: %v; sleeping %v before the next try", err, delay) + time.Sleep(delay) + delay = time.Duration(float64(delay) * c.Config.Reconnect.IntervalMultiplier) + if delay > c.Config.Reconnect.MaximalInterval { + delay = c.Config.Reconnect.MaximalInterval + } + } +} + +func (c *Client) grpcClient() (streamd_grpc.StreamDClient, io.Closer, error) { + if c.Config.UsePersistentConnection { + return c.grpcPersistentClient() + } else { + return c.grpcNewClient() + } +} + +func (c *Client) grpcNewClient() (streamd_grpc.StreamDClient, *grpc.ClientConn, error) { conn, err := grpc.NewClient( c.Target, grpc.WithTransportCredentials(insecure.NewCredentials()), @@ -59,67 +132,133 @@ func (c *Client) grpcClient() (streamd_grpc.StreamDClient, *grpc.ClientConn, err return client, conn, nil } +func (c *Client) grpcPersistentClient() (streamd_grpc.StreamDClient, dummyCloser, error) { + c.PersistentConnectionLocker.Lock() + defer c.PersistentConnectionLocker.Unlock() + return c.PersistentClient, dummyCloser{}, nil +} + func (c *Client) Run(ctx context.Context) error { return nil } -func (c *Client) FetchConfig(ctx context.Context) error { +func callWrapper[REQ any, REPLY any]( + ctx context.Context, + c *Client, + fn func(context.Context, *REQ, ...grpc.CallOption) (*REPLY, error), + req *REQ, + opts ...grpc.CallOption, +) (*REPLY, error) { + wrapper := c.Config.CallWrapper + if wrapper == nil { + return fn(ctx, req, opts...) + } + + var reply *REPLY + err := wrapper(ctx, req, func(ctx context.Context, opts ...grpc.CallOption) error { + var err error + reply, err = fn(ctx, req, opts...) + return err + }, opts...) + return reply, err +} + +func (c *Client) Ping( + ctx context.Context, + beforeSend func(context.Context, *streamd_grpc.PingRequest), +) error { client, conn, err := c.grpcClient() if err != nil { return err } defer conn.Close() - _, err = client.OBSOLETE_FetchConfig(ctx, &streamd_grpc.OBSOLETE_FetchConfigRequest{}) - return err -} - -func (c *Client) InitCache(ctx context.Context) error { - client, conn, err := c.grpcClient() + req := &streamd_grpc.PingRequest{} + beforeSend(ctx, req) + _, err = callWrapper(ctx, c, client.Ping, req) if err != nil { - return err + return fmt.Errorf("ping error: %w", err) } - defer conn.Close() - - _, err = client.InitCache(ctx, &streamd_grpc.InitCacheRequest{}) - return err + return nil } -func (c *Client) SaveConfig(ctx context.Context) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() +func withClient[REPLY any]( + ctx context.Context, + c *Client, + fn func(context.Context, streamd_grpc.StreamDClient, io.Closer) (*REPLY, error), +) (*REPLY, error) { + pc, _, _, _ := runtime.Caller(1) + caller := runtime.FuncForPC(pc) + ctx = belt.WithField(ctx, "caller_func", caller.Name()) - _, err = client.SaveConfig(ctx, &streamd_grpc.SaveConfigRequest{}) - return err -} - -func (c *Client) ResetCache(ctx context.Context) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.ResetCache(ctx, &streamd_grpc.ResetCacheRequest{}) - return err -} - -func (c *Client) GetConfig(ctx context.Context) (*config.Config, error) { client, conn, err := c.grpcClient() if err != nil { return nil, err } defer conn.Close() + if client == nil { + return nil, fmt.Errorf("internal error: client is nil") + } + return fn(ctx, client, conn) +} - reply, err := client.GetConfig(ctx, &streamd_grpc.GetConfigRequest{}) +func (c *Client) FetchConfig(ctx context.Context) error { + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.OBSOLETE_FetchConfigReply, error) { + return callWrapper(ctx, c, client.OBSOLETE_FetchConfig, &streamd_grpc.OBSOLETE_FetchConfigRequest{}) + }) + return err +} + +func (c *Client) InitCache(ctx context.Context) error { + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.InitCacheReply, error) { + return callWrapper(ctx, c, client.InitCache, &streamd_grpc.InitCacheRequest{}) + }) + return err +} + +func (c *Client) SaveConfig(ctx context.Context) error { + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SaveConfigReply, error) { + return callWrapper(ctx, c, client.SaveConfig, &streamd_grpc.SaveConfigRequest{}) + }) + return err +} + +func (c *Client) ResetCache(ctx context.Context) error { + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ResetCacheReply, error) { + return callWrapper(ctx, c, client.ResetCache, &streamd_grpc.ResetCacheRequest{}) + }) + return err +} + +func (c *Client) GetConfig(ctx context.Context) (*streamdconfig.Config, error) { + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetConfigReply, error) { + return callWrapper(ctx, c, client.GetConfig, &streamd_grpc.GetConfigRequest{}) + }) if err != nil { - return nil, fmt.Errorf("unable to request the config: %w", err) + return nil, err } - var result config.Config + var result streamdconfig.Config _, err = result.Read([]byte(reply.Config)) if err != nil { return nil, fmt.Errorf("unable to unserialize the received config: %w", err) @@ -127,54 +266,55 @@ func (c *Client) GetConfig(ctx context.Context) (*config.Config, error) { return &result, nil } -func (c *Client) SetConfig(ctx context.Context, cfg *config.Config) error { +func (c *Client) SetConfig(ctx context.Context, cfg *streamdconfig.Config) error { var buf bytes.Buffer _, err := cfg.WriteTo(&buf) if err != nil { return fmt.Errorf("unable to serialize the config: %w", err) } - req := &streamd_grpc.SetConfigRequest{ - Config: buf.String(), - } - - client, conn, err := c.grpcClient() + _, err = withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SetConfigReply, error) { + return callWrapper(ctx, c, client.SetConfig, &streamd_grpc.SetConfigRequest{ + Config: buf.String(), + }) + }) if err != nil { return err } - defer conn.Close() - - _, err = client.SetConfig(ctx, req) - return err + return nil } func (c *Client) IsBackendEnabled(ctx context.Context, id streamcontrol.PlatformName) (bool, error) { - client, conn, err := c.grpcClient() - if err != nil { - return false, err - } - defer conn.Close() - - reply, err := client.IsBackendEnabled(ctx, &streamd_grpc.IsBackendEnabledRequest{ - PlatID: string(id), + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.IsBackendEnabledReply, error) { + return callWrapper(ctx, c, client.IsBackendEnabled, &streamd_grpc.IsBackendEnabledRequest{ + PlatID: string(id), + }) }) if err != nil { - return false, fmt.Errorf("unable to get backend info: %w", err) + return false, err } return reply.IsInitialized, nil } func (c *Client) OBSOLETE_IsGITInitialized(ctx context.Context) (bool, error) { - client, conn, err := c.grpcClient() + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.OBSOLETE_GetGitInfoReply, error) { + return callWrapper(ctx, c, client.OBSOLETE_GitInfo, &streamd_grpc.OBSOLETE_GetGitInfoRequest{}) + }) if err != nil { return false, err } - defer conn.Close() - - reply, err := client.OBSOLETE_GitInfo(ctx, &streamd_grpc.OBSOLETE_GetGitInfoRequest{}) - if err != nil { - return false, fmt.Errorf("unable to get backend info: %w", err) - } return reply.IsInitialized, nil } @@ -185,70 +325,56 @@ func (c *Client) StartStream( profile streamcontrol.AbstractStreamProfile, customArgs ...any, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - b, err := yaml.Marshal(profile) if err != nil { return fmt.Errorf("unable to serialize the profile: %w", err) } - logger.Debugf(ctx, "serialized profile: '%s'", profile) - - _, err = client.StartStream(ctx, &streamd_grpc.StartStreamRequest{ - PlatID: string(platID), - Title: title, - Description: description, - Profile: string(b), + _, err = withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StartStreamReply, error) { + return callWrapper(ctx, c, client.StartStream, &streamd_grpc.StartStreamRequest{ + PlatID: string(platID), + Title: title, + Description: description, + Profile: string(b), + }) }) - if err != nil { - return fmt.Errorf("unable to start the stream: %w", err) - } - - return nil + return err } func (c *Client) EndStream(ctx context.Context, platID streamcontrol.PlatformName) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.EndStream(ctx, &streamd_grpc.EndStreamRequest{PlatID: string(platID)}) - if err != nil { - return fmt.Errorf("unable to end the stream: %w", err) - } - - return nil + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.EndStreamReply, error) { + return callWrapper(ctx, c, client.EndStream, &streamd_grpc.EndStreamRequest{PlatID: string(platID)}) + }) + return err } func (c *Client) OBSOLETE_GitRelogin(ctx context.Context) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.OBSOLETE_GitRelogin(ctx, &streamd_grpc.OBSOLETE_GitReloginRequest{}) - if err != nil { - return fmt.Errorf("unable force git relogin: %w", err) - } - - return nil + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.OBSOLETE_GitReloginReply, error) { + return callWrapper(ctx, c, client.OBSOLETE_GitRelogin, &streamd_grpc.OBSOLETE_GitReloginRequest{}) + }) + return err } func (c *Client) GetBackendData(ctx context.Context, platID streamcontrol.PlatformName) (any, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - reply, err := client.GetBackendInfo(ctx, &streamd_grpc.GetBackendInfoRequest{ - PlatID: string(platID), + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetBackendInfoReply, error) { + return callWrapper(ctx, c, client.GetBackendInfo, &streamd_grpc.GetBackendInfoRequest{ + PlatID: string(platID), + }) }) if err != nil { return nil, fmt.Errorf("unable to get backend info: %w", err) @@ -279,48 +405,39 @@ func (c *Client) GetBackendData(ctx context.Context, platID streamcontrol.Platfo } func (c *Client) Restart(ctx context.Context) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.Restart(ctx, &streamd_grpc.RestartRequest{}) - if err != nil { - return fmt.Errorf("unable restart the server: %w", err) - } - - return nil + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.RestartReply, error) { + return callWrapper(ctx, c, client.Restart, &streamd_grpc.RestartRequest{}) + }) + return err } func (c *Client) EXPERIMENTAL_ReinitStreamControllers(ctx context.Context) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.EXPERIMENTAL_ReinitStreamControllers(ctx, &streamd_grpc.EXPERIMENTAL_ReinitStreamControllersRequest{}) - if err != nil { - return fmt.Errorf("unable restart the server: %w", err) - } - - return nil - + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.EXPERIMENTAL_ReinitStreamControllersReply, error) { + return callWrapper(ctx, c, client.EXPERIMENTAL_ReinitStreamControllers, &streamd_grpc.EXPERIMENTAL_ReinitStreamControllersRequest{}) + }) + return err } func (c *Client) GetStreamStatus( ctx context.Context, platID streamcontrol.PlatformName, ) (*streamcontrol.StreamStatus, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - streamStatus, err := client.GetStreamStatus(ctx, &streamd_grpc.GetStreamStatusRequest{ - PlatID: string(platID), + streamStatus, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetStreamStatusReply, error) { + return callWrapper(ctx, c, client.GetStreamStatus, &streamd_grpc.GetStreamStatusRequest{ + PlatID: string(platID), + }) }) if err != nil { return nil, fmt.Errorf("unable to get the stream status of '%s': %w", platID, err) @@ -355,15 +472,15 @@ func (c *Client) SetTitle( platID streamcontrol.PlatformName, title string, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.SetTitle(ctx, &streamd_grpc.SetTitleRequest{ - PlatID: string(platID), - Title: title, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SetTitleReply, error) { + return callWrapper(ctx, c, client.SetTitle, &streamd_grpc.SetTitleRequest{ + PlatID: string(platID), + Title: title, + }) }) return err } @@ -372,15 +489,15 @@ func (c *Client) SetDescription( platID streamcontrol.PlatformName, description string, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.SetDescription(ctx, &streamd_grpc.SetDescriptionRequest{ - PlatID: string(platID), - Description: description, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SetDescriptionReply, error) { + return callWrapper(ctx, c, client.SetDescription, &streamd_grpc.SetDescriptionRequest{ + PlatID: string(platID), + Description: description, + }) }) return err } @@ -390,28 +507,23 @@ func (c *Client) ApplyProfile( profile streamcontrol.AbstractStreamProfile, customArgs ...any, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - b, err := yaml.Marshal(profile) if err != nil { return fmt.Errorf("unable to serialize the profile: %w", err) } - logger.Debugf(ctx, "serialized profile: '%s'", profile) - _, err = client.ApplyProfile(ctx, &streamd_grpc.ApplyProfileRequest{ - PlatID: string(platID), - Profile: string(b), + _, err = withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ApplyProfileReply, error) { + return callWrapper(ctx, c, client.ApplyProfile, &streamd_grpc.ApplyProfileRequest{ + PlatID: string(platID), + Profile: string(b), + }) }) - if err != nil { - return fmt.Errorf("unable to apply the profile to the stream: %w", err) - } - - return nil + return err } func (c *Client) UpdateStream( @@ -421,90 +533,66 @@ func (c *Client) UpdateStream( profile streamcontrol.AbstractStreamProfile, customArgs ...any, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - b, err := yaml.Marshal(profile) if err != nil { return fmt.Errorf("unable to serialize the profile: %w", err) } - logger.Debugf(ctx, "serialized profile: '%s'", profile) - _, err = client.UpdateStream(ctx, &streamd_grpc.UpdateStreamRequest{ - PlatID: string(platID), - Title: title, - Description: description, - Profile: string(b), + _, err = withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.UpdateStreamReply, error) { + return callWrapper(ctx, c, client.UpdateStream, &streamd_grpc.UpdateStreamRequest{ + PlatID: string(platID), + Title: title, + Description: description, + Profile: string(b), + }) }) - if err != nil { - return fmt.Errorf("unable to update the stream: %w", err) - } - - return nil + return err } -func (c *Client) SubscriberToOAuthURLs( +func (c *Client) SubscribeToOAuthURLs( ctx context.Context, listenPort uint16, -) (chan *streamd_grpc.OAuthRequest, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - - result := make(chan *streamd_grpc.OAuthRequest) - - subClient, err := client.SubscribeToOAuthRequests(ctx, &streamd_grpc.SubscribeToOAuthRequestsRequest{ - ListenPort: int32(listenPort), - }) - if err != nil { - return nil, fmt.Errorf("unable to subscribe to oauth URLs: %w", err) - } - subClient.CloseSend() - observability.Go(ctx, func() { - defer conn.Close() - defer func() { - close(result) - }() - - for { - res, err := subClient.Recv() - select { - case <-ctx.Done(): - return - default: - } - if err == io.EOF { - logger.Debugf(ctx, "the receiver is closed: %v", err) - return - } - if err != nil { - logger.Errorf(ctx, "unable to read data: %v", err) - return - } - - result <- res - } - }) - - return result, nil +) (<-chan *streamd_grpc.OAuthRequest, error) { + return unwrapChan( + ctx, + c, + func( + ctx context.Context, + client streamd_grpc.StreamDClient, + ) (streamd_grpc.StreamD_SubscribeToOAuthRequestsClient, error) { + return client.SubscribeToOAuthRequests( + ctx, + &streamd_grpc.SubscribeToOAuthRequestsRequest{ + ListenPort: int32(listenPort), + }, + ) + }, + func( + ctx context.Context, + event *streamd_grpc.OAuthRequest, + ) *streamd_grpc.OAuthRequest { + return event + }, + ) } func (c *Client) GetVariable( ctx context.Context, key consts.VarKey, ) ([]byte, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetVariableReply, error) { + return callWrapper(ctx, c, client.GetVariable, &streamd_grpc.GetVariableRequest{Key: string(key)}) + }) - reply, err := client.GetVariable(ctx, &streamd_grpc.GetVariableRequest{Key: string(key)}) if err != nil { return nil, fmt.Errorf("unable to get the variable '%s' value: %w", key, err) } @@ -519,12 +607,6 @@ func (c *Client) GetVariableHash( key consts.VarKey, hashType crypto.Hash, ) ([]byte, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - var hashTypeArg streamd_grpc.HashType switch hashType { case crypto.SHA1: @@ -533,9 +615,15 @@ func (c *Client) GetVariableHash( return nil, fmt.Errorf("unsupported hash type: %s", hashType) } - reply, err := client.GetVariableHash(ctx, &streamd_grpc.GetVariableHashRequest{ - Key: string(key), - HashType: hashTypeArg, + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetVariableHashReply, error) { + return callWrapper(ctx, c, client.GetVariableHash, &streamd_grpc.GetVariableHashRequest{ + Key: string(key), + HashType: hashTypeArg, + }) }) if err != nil { return nil, fmt.Errorf("unable to get the variable '%s' hash: %w", key, err) @@ -551,33 +639,29 @@ func (c *Client) SetVariable( key consts.VarKey, value []byte, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.SetVariable(ctx, &streamd_grpc.SetVariableRequest{ - Key: string(key), - Value: value, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SetVariableReply, error) { + return callWrapper(ctx, c, client.SetVariable, &streamd_grpc.SetVariableRequest{ + Key: string(key), + Value: value, + }) }) - if err != nil { - return fmt.Errorf("unable to get the variable '%s' value: %w", key, err) - } - - return nil + return err } func (c *Client) OBSGetSceneList( ctx context.Context, ) (*scenes.GetSceneListResponse, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - resp, err := client.OBSGetSceneList(ctx, &streamd_grpc.OBSGetSceneListRequest{}) + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.OBSGetSceneListReply, error) { + return callWrapper(ctx, c, client.OBSGetSceneList, &streamd_grpc.OBSGetSceneListRequest{}) + }) if err != nil { return nil, fmt.Errorf("unable to get the list of OBS scenes: %w", err) } @@ -602,12 +686,6 @@ func (c *Client) OBSSetCurrentProgramScene( ctx context.Context, in *scenes.SetCurrentProgramSceneParams, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - req := &streamd_grpc.OBSSetCurrentProgramSceneRequest{} switch { case in.SceneUuid != nil: @@ -619,11 +697,14 @@ func (c *Client) OBSSetCurrentProgramScene( SceneName: *in.SceneName, } } - _, err = client.OBSSetCurrentProgramScene(ctx, req) - if err != nil { - return fmt.Errorf("unable to set the program scene in OBS: %w", err) - } - return nil + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.OBSSetCurrentProgramSceneReply, error) { + return callWrapper(ctx, c, client.OBSSetCurrentProgramScene, req) + }) + return err } func ptr[T any](in T) *T { @@ -634,27 +715,25 @@ func (c *Client) SubmitOAuthCode( ctx context.Context, req *streamd_grpc.SubmitOAuthCodeRequest, ) (*streamd_grpc.SubmitOAuthCodeReply, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - return client.SubmitOAuthCode(ctx, req) + return withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SubmitOAuthCodeReply, error) { + return callWrapper(ctx, c, client.SubmitOAuthCode, req) + }) } func (c *Client) ListStreamServers( ctx context.Context, ) ([]api.StreamServer, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - reply, err := client.ListStreamServers( - ctx, - &streamd_grpc.ListStreamServersRequest{}, - ) + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ListStreamServersReply, error) { + return callWrapper(ctx, c, client.ListStreamServers, &streamd_grpc.ListStreamServersRequest{}) + }) if err != nil { return nil, fmt.Errorf("unable to request to list of the stream servers: %w", err) } @@ -679,21 +758,22 @@ func (c *Client) StartStreamServer( serverType api.StreamServerType, listenAddr string, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - t, err := goconv.StreamServerTypeGo2GRPC(serverType) if err != nil { return fmt.Errorf("unable to convert the server type: %w", err) } - _, err = client.StartStreamServer(ctx, &streamd_grpc.StartStreamServerRequest{ - Config: &streamd_grpc.StreamServer{ - ServerType: t, - ListenAddr: listenAddr, - }, + + _, err = withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StartStreamServerReply, error) { + return callWrapper(ctx, c, client.StartStreamServer, &streamd_grpc.StartStreamServerRequest{ + Config: &streamd_grpc.StreamServer{ + ServerType: t, + ListenAddr: listenAddr, + }, + }) }) if err != nil { return fmt.Errorf("unable to request to start the stream server: %w", err) @@ -705,69 +785,60 @@ func (c *Client) StopStreamServer( ctx context.Context, listenAddr string, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.StopStreamServer(ctx, &streamd_grpc.StopStreamServerRequest{ - ListenAddr: listenAddr, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StopStreamServerReply, error) { + return callWrapper(ctx, c, client.StopStreamServer, &streamd_grpc.StopStreamServerRequest{ + ListenAddr: listenAddr, + }) }) - if err != nil { - return fmt.Errorf("unable to request to stop the stream server: %w", err) - } - return nil + return err } func (c *Client) AddIncomingStream( ctx context.Context, streamID api.StreamID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.AddIncomingStream(ctx, &streamd_grpc.AddIncomingStreamRequest{ - StreamID: string(streamID), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.AddIncomingStreamReply, error) { + return callWrapper(ctx, c, client.AddIncomingStream, &streamd_grpc.AddIncomingStreamRequest{ + StreamID: string(streamID), + }) }) - if err != nil { - return fmt.Errorf("unable to request to add the incoming stream: %w", err) - } - return nil + return err } func (c *Client) RemoveIncomingStream( ctx context.Context, streamID api.StreamID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.RemoveIncomingStream(ctx, &streamd_grpc.RemoveIncomingStreamRequest{ - StreamID: string(streamID), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.RemoveIncomingStreamReply, error) { + return callWrapper(ctx, c, client.RemoveIncomingStream, &streamd_grpc.RemoveIncomingStreamRequest{ + StreamID: string(streamID), + }) }) - if err != nil { - return fmt.Errorf("unable to request to remove the incoming stream: %w", err) - } - return nil + return err } func (c *Client) ListIncomingStreams( ctx context.Context, ) ([]api.IncomingStream, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - reply, err := client.ListIncomingStreams(ctx, &streamd_grpc.ListIncomingStreamsRequest{}) + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ListIncomingStreamsReply, error) { + return callWrapper(ctx, c, client.ListIncomingStreams, &streamd_grpc.ListIncomingStreamsRequest{}) + }) if err != nil { return nil, fmt.Errorf("unable to request to list the incoming streams: %w", err) } @@ -784,13 +855,13 @@ func (c *Client) ListIncomingStreams( func (c *Client) ListStreamDestinations( ctx context.Context, ) ([]api.StreamDestination, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - reply, err := client.ListStreamDestinations(ctx, &streamd_grpc.ListStreamDestinationsRequest{}) + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ListStreamDestinationsReply, error) { + return callWrapper(ctx, c, client.ListStreamDestinations, &streamd_grpc.ListStreamDestinationsRequest{}) + }) if err != nil { return nil, fmt.Errorf("unable to request to list the stream destinations: %w", err) } @@ -810,53 +881,47 @@ func (c *Client) AddStreamDestination( destinationID api.DestinationID, url string, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.AddStreamDestination(ctx, &streamd_grpc.AddStreamDestinationRequest{ - Config: &streamd_grpc.StreamDestination{ - DestinationID: string(destinationID), - Url: url, - }, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.AddStreamDestinationReply, error) { + return callWrapper(ctx, c, client.AddStreamDestination, &streamd_grpc.AddStreamDestinationRequest{ + Config: &streamd_grpc.StreamDestination{ + DestinationID: string(destinationID), + Url: url, + }, + }) }) - if err != nil { - return fmt.Errorf("unable to request to add the stream destination: %w", err) - } - return nil + return err } func (c *Client) RemoveStreamDestination( ctx context.Context, destinationID api.DestinationID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.RemoveStreamDestination(ctx, &streamd_grpc.RemoveStreamDestinationRequest{ - DestinationID: string(destinationID), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.RemoveStreamDestinationReply, error) { + return callWrapper(ctx, c, client.RemoveStreamDestination, &streamd_grpc.RemoveStreamDestinationRequest{ + DestinationID: string(destinationID), + }) }) - if err != nil { - return fmt.Errorf("unable to request to remove the stream destination: %w", err) - } - return nil + return err } func (c *Client) ListStreamForwards( ctx context.Context, ) ([]api.StreamForward, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - reply, err := client.ListStreamForwards(ctx, &streamd_grpc.ListStreamForwardsRequest{}) + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ListStreamForwardsReply, error) { + return callWrapper(ctx, c, client.ListStreamForwards, &streamd_grpc.ListStreamForwardsRequest{}) + }) if err != nil { return nil, fmt.Errorf("unable to request to list the stream forwards: %w", err) } @@ -892,30 +957,27 @@ func (c *Client) AddStreamForward( enabled bool, quirks api.StreamForwardingQuirks, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.AddStreamForward(ctx, &streamd_grpc.AddStreamForwardRequest{ - Config: &streamd_grpc.StreamForward{ - StreamID: string(streamID), - DestinationID: string(destinationID), - Enabled: enabled, - Quirks: &streamd_grpc.StreamForwardQuirks{ - RestartUntilYoutubeRecognizesStream: &streamd_grpc.RestartUntilYoutubeRecognizesStream{ - Enabled: quirks.RestartUntilYoutubeRecognizesStream.Enabled, - StartTimeout: quirks.RestartUntilYoutubeRecognizesStream.StartTimeout.Seconds(), - StopStartDelay: quirks.RestartUntilYoutubeRecognizesStream.StopStartDelay.Seconds(), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.AddStreamForwardReply, error) { + return callWrapper(ctx, c, client.AddStreamForward, &streamd_grpc.AddStreamForwardRequest{ + Config: &streamd_grpc.StreamForward{ + StreamID: string(streamID), + DestinationID: string(destinationID), + Enabled: enabled, + Quirks: &streamd_grpc.StreamForwardQuirks{ + RestartUntilYoutubeRecognizesStream: &streamd_grpc.RestartUntilYoutubeRecognizesStream{ + Enabled: quirks.RestartUntilYoutubeRecognizesStream.Enabled, + StartTimeout: quirks.RestartUntilYoutubeRecognizesStream.StartTimeout.Seconds(), + StopStartDelay: quirks.RestartUntilYoutubeRecognizesStream.StopStartDelay.Seconds(), + }, }, }, - }, + }) }) - if err != nil { - return fmt.Errorf("unable to request to add the stream forward: %w", err) - } - return nil + return err } func (c *Client) UpdateStreamForward( @@ -925,30 +987,27 @@ func (c *Client) UpdateStreamForward( enabled bool, quirks api.StreamForwardingQuirks, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.UpdateStreamForward(ctx, &streamd_grpc.UpdateStreamForwardRequest{ - Config: &streamd_grpc.StreamForward{ - StreamID: string(streamID), - DestinationID: string(destinationID), - Enabled: enabled, - Quirks: &streamd_grpc.StreamForwardQuirks{ - RestartUntilYoutubeRecognizesStream: &streamd_grpc.RestartUntilYoutubeRecognizesStream{ - Enabled: quirks.RestartUntilYoutubeRecognizesStream.Enabled, - StartTimeout: quirks.RestartUntilYoutubeRecognizesStream.StartTimeout.Seconds(), - StopStartDelay: quirks.RestartUntilYoutubeRecognizesStream.StopStartDelay.Seconds(), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.UpdateStreamForwardReply, error) { + return callWrapper(ctx, c, client.UpdateStreamForward, &streamd_grpc.UpdateStreamForwardRequest{ + Config: &streamd_grpc.StreamForward{ + StreamID: string(streamID), + DestinationID: string(destinationID), + Enabled: enabled, + Quirks: &streamd_grpc.StreamForwardQuirks{ + RestartUntilYoutubeRecognizesStream: &streamd_grpc.RestartUntilYoutubeRecognizesStream{ + Enabled: quirks.RestartUntilYoutubeRecognizesStream.Enabled, + StartTimeout: quirks.RestartUntilYoutubeRecognizesStream.StartTimeout.Seconds(), + StopStartDelay: quirks.RestartUntilYoutubeRecognizesStream.StopStartDelay.Seconds(), + }, }, }, - }, + }) }) - if err != nil { - return fmt.Errorf("unable to request to add the stream forward: %w", err) - } - return nil + return err } func (c *Client) RemoveStreamForward( @@ -956,72 +1015,46 @@ func (c *Client) RemoveStreamForward( streamID api.StreamID, destinationID api.DestinationID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.RemoveStreamForward(ctx, &streamd_grpc.RemoveStreamForwardRequest{ - Config: &streamd_grpc.StreamForward{ - StreamID: string(streamID), - DestinationID: string(destinationID), - }, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.RemoveStreamForwardReply, error) { + return callWrapper(ctx, c, client.RemoveStreamForward, &streamd_grpc.RemoveStreamForwardRequest{ + Config: &streamd_grpc.StreamForward{ + StreamID: string(streamID), + DestinationID: string(destinationID), + }, + }) }) - if err != nil { - return fmt.Errorf("unable to request to remove the stream forward: %w", err) - } - return nil + return err } func (c *Client) WaitForStreamPublisher( ctx context.Context, streamID api.StreamID, ) (<-chan struct{}, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - - waiter, err := client.WaitForStreamPublisher(ctx, &streamd_grpc.WaitForStreamPublisherRequest{ - StreamID: ptr(string(streamID)), - }) - if err != nil { - return nil, fmt.Errorf("unable to get a publisher waiter for stream '%s': %w", streamID, err) - } - - ctx, cancelFn := context.WithCancel(ctx) - observability.Go(ctx, func() { - <-ctx.Done() - conn.Close() - }) - - result := make(chan struct{}) - waiter.CloseSend() - observability.Go(ctx, func() { - defer cancelFn() - defer conn.Close() - defer func() { - close(result) - }() - - _, err := waiter.Recv() - select { - case <-ctx.Done(): - return - default: - } - if err == io.EOF { - logger.Debugf(ctx, "the receiver is closed: %v", err) - return - } - if err != nil { - logger.Errorf(ctx, "unable to read data: %v", err) - return - } - }) - - return result, nil + return unwrapChan( + ctx, + c, + func( + ctx context.Context, + client streamd_grpc.StreamDClient, + ) (streamd_grpc.StreamD_WaitForStreamPublisherClient, error) { + return client.WaitForStreamPublisher( + ctx, + &streamd_grpc.WaitForStreamPublisherRequest{ + StreamID: ptr(string(streamID)), + }, + ) + }, + func( + ctx context.Context, + event *streamd_grpc.StreamPublisher, + ) struct{} { + return struct{}{} + }, + ) } func (c *Client) AddStreamPlayer( @@ -1031,24 +1064,21 @@ func (c *Client) AddStreamPlayer( disabled bool, streamPlaybackConfig sptypes.Config, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.AddStreamPlayer(ctx, &streamd_grpc.AddStreamPlayerRequest{ - Config: &streamd_grpc.StreamPlayerConfig{ - StreamID: string(streamID), - PlayerType: goconv.StreamPlayerTypeGo2GRPC(playerType), - Disabled: disabled, - StreamPlaybackConfig: goconv.StreamPlaybackConfigGo2GRPC(&streamPlaybackConfig), - }, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.AddStreamPlayerReply, error) { + return callWrapper(ctx, c, client.AddStreamPlayer, &streamd_grpc.AddStreamPlayerRequest{ + Config: &streamd_grpc.StreamPlayerConfig{ + StreamID: string(streamID), + PlayerType: goconv.StreamPlayerTypeGo2GRPC(playerType), + Disabled: disabled, + StreamPlaybackConfig: goconv.StreamPlaybackConfigGo2GRPC(&streamPlaybackConfig), + }, + }) }) - if err != nil { - return fmt.Errorf("unable to request to remove the stream forward: %w", err) - } - return nil + return err } func (c *Client) UpdateStreamPlayer( @@ -1058,55 +1088,49 @@ func (c *Client) UpdateStreamPlayer( disabled bool, streamPlaybackConfig sptypes.Config, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.UpdateStreamPlayer(ctx, &streamd_grpc.UpdateStreamPlayerRequest{ - Config: &streamd_grpc.StreamPlayerConfig{ - StreamID: string(streamID), - PlayerType: goconv.StreamPlayerTypeGo2GRPC(playerType), - Disabled: disabled, - StreamPlaybackConfig: goconv.StreamPlaybackConfigGo2GRPC(&streamPlaybackConfig), - }, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.UpdateStreamPlayerReply, error) { + return callWrapper(ctx, c, client.UpdateStreamPlayer, &streamd_grpc.UpdateStreamPlayerRequest{ + Config: &streamd_grpc.StreamPlayerConfig{ + StreamID: string(streamID), + PlayerType: goconv.StreamPlayerTypeGo2GRPC(playerType), + Disabled: disabled, + StreamPlaybackConfig: goconv.StreamPlaybackConfigGo2GRPC(&streamPlaybackConfig), + }, + }) }) - if err != nil { - return fmt.Errorf("unable to request to remove the stream forward: %w", err) - } - return nil + return err } func (c *Client) RemoveStreamPlayer( ctx context.Context, streamID streamtypes.StreamID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.RemoveStreamPlayer(ctx, &streamd_grpc.RemoveStreamPlayerRequest{ - StreamID: string(streamID), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.RemoveStreamPlayerReply, error) { + return callWrapper(ctx, c, client.RemoveStreamPlayer, &streamd_grpc.RemoveStreamPlayerRequest{ + StreamID: string(streamID), + }) }) - if err != nil { - return fmt.Errorf("unable to request to remove the stream forward: %w", err) - } - return nil + return err } func (c *Client) ListStreamPlayers( ctx context.Context, ) ([]api.StreamPlayer, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - resp, err := client.ListStreamPlayers(ctx, &streamd_grpc.ListStreamPlayersRequest{}) + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.ListStreamPlayersReply, error) { + return callWrapper(ctx, c, client.ListStreamPlayers, &streamd_grpc.ListStreamPlayersRequest{}) + }) if err != nil { return nil, fmt.Errorf("unable to query: %w", err) } @@ -1127,14 +1151,14 @@ func (c *Client) GetStreamPlayer( ctx context.Context, streamID streamtypes.StreamID, ) (*api.StreamPlayer, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - resp, err := client.GetStreamPlayer(ctx, &streamd_grpc.GetStreamPlayerRequest{ - StreamID: string(streamID), + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetStreamPlayerReply, error) { + return callWrapper(ctx, c, client.GetStreamPlayer, &streamd_grpc.GetStreamPlayerRequest{ + StreamID: string(streamID), + }) }) if err != nil { return nil, fmt.Errorf("unable to query: %w", err) @@ -1153,14 +1177,14 @@ func (c *Client) StreamPlayerProcessTitle( ctx context.Context, streamID streamtypes.StreamID, ) (string, error) { - client, conn, err := c.grpcClient() - if err != nil { - return "", err - } - defer conn.Close() - - resp, err := client.StreamPlayerProcessTitle(ctx, &streamd_grpc.StreamPlayerProcessTitleRequest{ - StreamID: string(streamID), + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerProcessTitleReply, error) { + return callWrapper(ctx, c, client.StreamPlayerProcessTitle, &streamd_grpc.StreamPlayerProcessTitleRequest{ + StreamID: string(streamID), + }) }) if err != nil { return "", fmt.Errorf("unable to query: %w", err) @@ -1173,35 +1197,32 @@ func (c *Client) StreamPlayerOpenURL( streamID streamtypes.StreamID, link string, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.StreamPlayerOpen(ctx, &streamd_grpc.StreamPlayerOpenRequest{ - StreamID: string(streamID), - Request: &player_grpc.OpenRequest{}, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerOpenReply, error) { + return callWrapper(ctx, c, client.StreamPlayerOpen, &streamd_grpc.StreamPlayerOpenRequest{ + StreamID: string(streamID), + Request: &player_grpc.OpenRequest{}, + }) }) - if err != nil { - return fmt.Errorf("unable to query: %w", err) - } - return nil + return err } func (c *Client) StreamPlayerGetLink( ctx context.Context, streamID streamtypes.StreamID, ) (string, error) { - client, conn, err := c.grpcClient() - if err != nil { - return "", err - } - defer conn.Close() - - resp, err := client.StreamPlayerGetLink(ctx, &streamd_grpc.StreamPlayerGetLinkRequest{ - StreamID: string(streamID), - Request: &player_grpc.GetLinkRequest{}, + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerGetLinkReply, error) { + return callWrapper(ctx, c, client.StreamPlayerGetLink, &streamd_grpc.StreamPlayerGetLinkRequest{ + StreamID: string(streamID), + Request: &player_grpc.GetLinkRequest{}, + }) }) if err != nil { return "", fmt.Errorf("unable to query: %w", err) @@ -1213,66 +1234,43 @@ func (c *Client) StreamPlayerEndChan( ctx context.Context, streamID streamtypes.StreamID, ) (<-chan struct{}, error) { - client, conn, err := c.grpcClient() - if err != nil { - return nil, err - } - defer conn.Close() - - ctx, cancelFn := context.WithCancel(ctx) - observability.Go(ctx, func() { - <-ctx.Done() - conn.Close() - }) - - waiter, err := client.StreamPlayerEndChan(ctx, &streamd_grpc.StreamPlayerEndChanRequest{ - StreamID: string(streamID), - Request: &player_grpc.EndChanRequest{}, - }) - if err != nil { - cancelFn() - return nil, fmt.Errorf("unable to query: %w", err) - } - result := make(chan struct{}) - waiter.CloseSend() - observability.Go(ctx, func() { - defer cancelFn() - defer func() { - close(result) - }() - - _, err := waiter.Recv() - select { - case <-ctx.Done(): - return - default: - } - if err == io.EOF { - logger.Debugf(ctx, "the receiver is closed: %v", err) - return - } - if err != nil { - logger.Errorf(ctx, "unable to read data: %v", err) - return - } - }) - - return result, nil + return unwrapChan( + ctx, + c, + func( + ctx context.Context, + client streamd_grpc.StreamDClient, + ) (streamd_grpc.StreamD_StreamPlayerEndChanClient, error) { + return client.StreamPlayerEndChan( + ctx, + &streamd_grpc.StreamPlayerEndChanRequest{ + StreamID: string(streamID), + Request: &player_grpc.EndChanRequest{}, + }, + ) + }, + func( + ctx context.Context, + event *streamd_grpc.StreamPlayerEndChanReply, + ) struct{} { + return struct{}{} + }, + ) } func (c *Client) StreamPlayerIsEnded( ctx context.Context, streamID streamtypes.StreamID, ) (bool, error) { - client, conn, err := c.grpcClient() - if err != nil { - return false, err - } - defer conn.Close() - - resp, err := client.StreamPlayerIsEnded(ctx, &streamd_grpc.StreamPlayerIsEndedRequest{ - StreamID: string(streamID), - Request: &player_grpc.IsEndedRequest{}, + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerIsEndedReply, error) { + return callWrapper(ctx, c, client.StreamPlayerIsEnded, &streamd_grpc.StreamPlayerIsEndedRequest{ + StreamID: string(streamID), + Request: &player_grpc.IsEndedRequest{}, + }) }) if err != nil { return false, fmt.Errorf("unable to query: %w", err) @@ -1284,15 +1282,15 @@ func (c *Client) StreamPlayerGetPosition( ctx context.Context, streamID streamtypes.StreamID, ) (time.Duration, error) { - client, conn, err := c.grpcClient() - if err != nil { - return 0, err - } - defer conn.Close() - - resp, err := client.StreamPlayerGetPosition(ctx, &streamd_grpc.StreamPlayerGetPositionRequest{ - StreamID: string(streamID), - Request: &player_grpc.GetPositionRequest{}, + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerGetPositionReply, error) { + return callWrapper(ctx, c, client.StreamPlayerGetPosition, &streamd_grpc.StreamPlayerGetPositionRequest{ + StreamID: string(streamID), + Request: &player_grpc.GetPositionRequest{}, + }) }) if err != nil { return 0, fmt.Errorf("unable to query: %w", err) @@ -1304,15 +1302,15 @@ func (c *Client) StreamPlayerGetLength( ctx context.Context, streamID streamtypes.StreamID, ) (time.Duration, error) { - client, conn, err := c.grpcClient() - if err != nil { - return 0, err - } - defer conn.Close() - - resp, err := client.StreamPlayerGetLength(ctx, &streamd_grpc.StreamPlayerGetLengthRequest{ - StreamID: string(streamID), - Request: &player_grpc.GetLengthRequest{}, + resp, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerGetLengthReply, error) { + return callWrapper(ctx, c, client.StreamPlayerGetLength, &streamd_grpc.StreamPlayerGetLengthRequest{ + StreamID: string(streamID), + Request: &player_grpc.GetLengthRequest{}, + }) }) if err != nil { return 0, fmt.Errorf("unable to query: %w", err) @@ -1325,22 +1323,19 @@ func (c *Client) StreamPlayerSetSpeed( streamID streamtypes.StreamID, speed float64, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.StreamPlayerSetSpeed(ctx, &streamd_grpc.StreamPlayerSetSpeedRequest{ - StreamID: string(streamID), - Request: &player_grpc.SetSpeedRequest{ - Speed: speed, - }, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerSetSpeedReply, error) { + return callWrapper(ctx, c, client.StreamPlayerSetSpeed, &streamd_grpc.StreamPlayerSetSpeedRequest{ + StreamID: string(streamID), + Request: &player_grpc.SetSpeedRequest{ + Speed: speed, + }, + }) }) - if err != nil { - return fmt.Errorf("unable to query: %w", err) - } - return nil + return err } func (c *Client) StreamPlayerSetPause( @@ -1348,62 +1343,53 @@ func (c *Client) StreamPlayerSetPause( streamID streamtypes.StreamID, pause bool, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.StreamPlayerSetPause(ctx, &streamd_grpc.StreamPlayerSetPauseRequest{ - StreamID: string(streamID), - Request: &player_grpc.SetPauseRequest{ - SetPaused: pause, - }, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerSetPauseReply, error) { + return callWrapper(ctx, c, client.StreamPlayerSetPause, &streamd_grpc.StreamPlayerSetPauseRequest{ + StreamID: string(streamID), + Request: &player_grpc.SetPauseRequest{ + SetPaused: pause, + }, + }) }) - if err != nil { - return fmt.Errorf("unable to query: %w", err) - } - return nil + return err } func (c *Client) StreamPlayerStop( ctx context.Context, streamID streamtypes.StreamID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.StreamPlayerStop(ctx, &streamd_grpc.StreamPlayerStopRequest{ - StreamID: string(streamID), - Request: &player_grpc.StopRequest{}, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerStopReply, error) { + return callWrapper(ctx, c, client.StreamPlayerStop, &streamd_grpc.StreamPlayerStopRequest{ + StreamID: string(streamID), + Request: &player_grpc.StopRequest{}, + }) }) - if err != nil { - return fmt.Errorf("unable to query: %w", err) - } - return nil + return err } func (c *Client) StreamPlayerClose( ctx context.Context, streamID streamtypes.StreamID, ) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.StreamPlayerClose(ctx, &streamd_grpc.StreamPlayerCloseRequest{ - StreamID: string(streamID), - Request: &player_grpc.CloseRequest{}, + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.StreamPlayerCloseReply, error) { + return callWrapper(ctx, c, client.StreamPlayerClose, &streamd_grpc.StreamPlayerCloseRequest{ + StreamID: string(streamID), + Request: &player_grpc.CloseRequest{}, + }) }) - if err != nil { - return fmt.Errorf("unable to query: %w", err) - } - return nil + return err } type receiver[T any] interface { @@ -1416,15 +1402,19 @@ func unwrapChan[E any, R any, S receiver[R]]( ctx context.Context, c *Client, fn func(ctx context.Context, client streamd_grpc.StreamDClient) (S, error), + parse func(ctx context.Context, event *R) E, ) (<-chan E, error) { client, conn, err := c.grpcClient() if err != nil { return nil, err } + if client == nil { + return nil, fmt.Errorf("internal error: client is nil") + } pc, _, _, _ := runtime.Caller(1) caller := runtime.FuncForPC(pc) - ctx = belt.WithField(ctx, "func", caller.Name()) + ctx = belt.WithField(ctx, "caller_func", caller.Name()) ctx, cancelFn := context.WithCancel(ctx) sub, err := fn(ctx, client) @@ -1461,9 +1451,7 @@ func unwrapChan[E any, R any, S receiver[R]]( } } - _ = event - var eventParsed E - r <- eventParsed + r <- parse(ctx, event) } }) return r, nil @@ -1472,7 +1460,7 @@ func unwrapChan[E any, R any, S receiver[R]]( func (c *Client) SubscribeToConfigChanges( ctx context.Context, ) (<-chan api.DiffConfig, error) { - return unwrapChan[api.DiffConfig]( + return unwrapChan( ctx, c, func( @@ -1484,13 +1472,19 @@ func (c *Client) SubscribeToConfigChanges( &streamd_grpc.SubscribeToConfigChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.ConfigChange, + ) api.DiffConfig { + return api.DiffConfig{} + }, ) } func (c *Client) SubscribeToStreamsChanges( ctx context.Context, ) (<-chan api.DiffStreams, error) { - return unwrapChan[api.DiffStreams]( + return unwrapChan( ctx, c, func( @@ -1502,13 +1496,19 @@ func (c *Client) SubscribeToStreamsChanges( &streamd_grpc.SubscribeToStreamsChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.StreamsChange, + ) api.DiffStreams { + return api.DiffStreams{} + }, ) } func (c *Client) SubscribeToStreamServersChanges( ctx context.Context, ) (<-chan api.DiffStreamServers, error) { - return unwrapChan[api.DiffStreamServers]( + return unwrapChan( ctx, c, func( @@ -1520,13 +1520,19 @@ func (c *Client) SubscribeToStreamServersChanges( &streamd_grpc.SubscribeToStreamServersChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.StreamServersChange, + ) api.DiffStreamServers { + return api.DiffStreamServers{} + }, ) } func (c *Client) SubscribeToStreamDestinationsChanges( ctx context.Context, ) (<-chan api.DiffStreamDestinations, error) { - return unwrapChan[api.DiffStreamDestinations]( + return unwrapChan( ctx, c, func( @@ -1538,13 +1544,19 @@ func (c *Client) SubscribeToStreamDestinationsChanges( &streamd_grpc.SubscribeToStreamDestinationsChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.StreamDestinationsChange, + ) api.DiffStreamDestinations { + return api.DiffStreamDestinations{} + }, ) } func (c *Client) SubscribeToIncomingStreamsChanges( ctx context.Context, ) (<-chan api.DiffIncomingStreams, error) { - return unwrapChan[api.DiffIncomingStreams]( + return unwrapChan( ctx, c, func( @@ -1556,13 +1568,19 @@ func (c *Client) SubscribeToIncomingStreamsChanges( &streamd_grpc.SubscribeToIncomingStreamsChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.IncomingStreamsChange, + ) api.DiffIncomingStreams { + return api.DiffIncomingStreams{} + }, ) } func (c *Client) SubscribeToStreamForwardsChanges( ctx context.Context, ) (<-chan api.DiffStreamForwards, error) { - return unwrapChan[api.DiffStreamForwards]( + return unwrapChan( ctx, c, func( @@ -1574,13 +1592,19 @@ func (c *Client) SubscribeToStreamForwardsChanges( &streamd_grpc.SubscribeToStreamForwardsChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.StreamForwardsChange, + ) api.DiffStreamForwards { + return api.DiffStreamForwards{} + }, ) } func (c *Client) SubscribeToStreamPlayersChanges( ctx context.Context, ) (<-chan api.DiffStreamPlayers, error) { - return unwrapChan[api.DiffStreamPlayers]( + return unwrapChan( ctx, c, func( @@ -1592,32 +1616,36 @@ func (c *Client) SubscribeToStreamPlayersChanges( &streamd_grpc.SubscribeToStreamPlayersChangesRequest{}, ) }, + func( + ctx context.Context, + event *streamd_grpc.StreamPlayersChange, + ) api.DiffStreamPlayers { + return api.DiffStreamPlayers{} + }, ) } func (c *Client) SetLoggingLevel(ctx context.Context, level logger.Level) error { - client, conn, err := c.grpcClient() - if err != nil { - return err - } - defer conn.Close() - - _, err = client.SetLoggingLevel(ctx, &streamd_grpc.SetLoggingLevelRequest{ - LoggingLevel: goconv.LoggingLevelGo2GRPC(level), + _, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.SetLoggingLevelReply, error) { + return callWrapper(ctx, c, client.SetLoggingLevel, &streamd_grpc.SetLoggingLevelRequest{ + LoggingLevel: goconv.LoggingLevelGo2GRPC(level), + }) }) - if err != nil { - return fmt.Errorf("unable to set the logging level: %w", err) - } - return nil + return err } -func (c *Client) GetLoggingLevel(ctx context.Context) (logger.Level, error) { - client, conn, err := c.grpcClient() - if err != nil { - return logger.LevelUndefined, err - } - defer conn.Close() - reply, err := client.GetLoggingLevel(ctx, &streamd_grpc.GetLoggingLevelRequest{}) +func (c *Client) GetLoggingLevel(ctx context.Context) (logger.Level, error) { + reply, err := withClient(ctx, c, func( + ctx context.Context, + client streamd_grpc.StreamDClient, + conn io.Closer, + ) (*streamd_grpc.GetLoggingLevelReply, error) { + return callWrapper(ctx, c, client.GetLoggingLevel, &streamd_grpc.GetLoggingLevelRequest{}) + }) if err != nil { return logger.LevelUndefined, fmt.Errorf("unable to get the logging level: %w", err) } diff --git a/pkg/streamd/client/dummy_closer.go b/pkg/streamd/client/dummy_closer.go new file mode 100644 index 0000000..7917265 --- /dev/null +++ b/pkg/streamd/client/dummy_closer.go @@ -0,0 +1,11 @@ +package client + +import "io" + +type dummyCloser struct{} + +var _ io.Closer = dummyCloser{} + +func (dummyCloser) Close() error { + return nil +} diff --git a/pkg/streamd/client/options.go b/pkg/streamd/client/options.go new file mode 100644 index 0000000..3315554 --- /dev/null +++ b/pkg/streamd/client/options.go @@ -0,0 +1,98 @@ +package client + +import ( + "context" + "time" + + "google.golang.org/grpc" +) + +type ReconnectConfig struct { + InitialInterval time.Duration + MaximalInterval time.Duration + IntervalMultiplier float64 +} + +type CallWrapperFunc func( + ctx context.Context, + req any, + callFunc func(ctx context.Context, opts ...grpc.CallOption) error, + opts ...grpc.CallOption, +) error + +type ConnectWrapperFunc func( + ctx context.Context, + connectFunc func(ctx context.Context) error, +) error + +type Config struct { + UsePersistentConnection bool + CallWrapper CallWrapperFunc + ConnectWrapper ConnectWrapperFunc + Reconnect ReconnectConfig +} + +var DefaultConfig = func() Config { + return Config{ + UsePersistentConnection: false, + Reconnect: ReconnectConfig{ + InitialInterval: 10 * time.Millisecond, + MaximalInterval: 5 * time.Second, + IntervalMultiplier: 1.1, + }, + } +}() + +type Option interface { + Apply(*Config) +} + +type Options []Option + +func (s Options) Apply(cfg *Config) { + for _, opt := range s { + opt.Apply(cfg) + } +} + +func (s Options) Config() Config { + cfg := Config{} + s.Apply(&cfg) + return cfg +} + +type OptionUsePersistentConnection bool + +func (opt OptionUsePersistentConnection) Apply(cfg *Config) { + cfg.UsePersistentConnection = bool(opt) +} + +type OptionCallWrapper CallWrapperFunc + +func (opt OptionCallWrapper) Apply(cfg *Config) { + cfg.CallWrapper = CallWrapperFunc(opt) +} + +type OptionConnectWrapper ConnectWrapperFunc + +func (opt OptionConnectWrapper) Apply(cfg *Config) { + cfg.ConnectWrapper = ConnectWrapperFunc(opt) +} + +type OptionReconnectInitialInterval time.Duration + +func (opt OptionReconnectInitialInterval) Apply(cfg *Config) { + cfg.Reconnect.InitialInterval = time.Duration(opt) +} + +type OptionReconnectMaximalInterval time.Duration + +func (opt OptionReconnectMaximalInterval) Apply(cfg *Config) { + cfg.Reconnect.MaximalInterval = time.Duration(opt) +} + +type OptionReconnectIntervalMultiplier float64 + +func (opt OptionReconnectIntervalMultiplier) Apply(cfg *Config) { + cfg.Reconnect.IntervalMultiplier = float64(opt) +} diff --git a/pkg/streamd/grpc/go/streamd_grpc/streamd.pb.go b/pkg/streamd/grpc/go/streamd_grpc/streamd.pb.go index b9251a5..7b98b4e 100644 --- a/pkg/streamd/grpc/go/streamd_grpc/streamd.pb.go +++ b/pkg/streamd/grpc/go/streamd_grpc/streamd.pb.go @@ -226,6 +226,116 @@ func (PlayerType) EnumDescriptor() ([]byte, []int) { return file_streamd_proto_rawDescGZIP(), []int{3} } +type PingRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PayloadToReturn string `protobuf:"bytes,1,opt,name=payloadToReturn,proto3" json:"payloadToReturn,omitempty"` + PayloadToIgnore string `protobuf:"bytes,2,opt,name=payloadToIgnore,proto3" json:"payloadToIgnore,omitempty"` + RequestExtraPayloadSize int32 `protobuf:"varint,3,opt,name=requestExtraPayloadSize,proto3" json:"requestExtraPayloadSize,omitempty"` +} + +func (x *PingRequest) Reset() { + *x = PingRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_streamd_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingRequest) ProtoMessage() {} + +func (x *PingRequest) ProtoReflect() protoreflect.Message { + mi := &file_streamd_proto_msgTypes[0] + 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 PingRequest.ProtoReflect.Descriptor instead. +func (*PingRequest) Descriptor() ([]byte, []int) { + return file_streamd_proto_rawDescGZIP(), []int{0} +} + +func (x *PingRequest) GetPayloadToReturn() string { + if x != nil { + return x.PayloadToReturn + } + return "" +} + +func (x *PingRequest) GetPayloadToIgnore() string { + if x != nil { + return x.PayloadToIgnore + } + return "" +} + +func (x *PingRequest) GetRequestExtraPayloadSize() int32 { + if x != nil { + return x.RequestExtraPayloadSize + } + return 0 +} + +type PingReply struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Payload string `protobuf:"bytes,1,opt,name=payload,proto3" json:"payload,omitempty"` +} + +func (x *PingReply) Reset() { + *x = PingReply{} + if protoimpl.UnsafeEnabled { + mi := &file_streamd_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PingReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PingReply) ProtoMessage() {} + +func (x *PingReply) ProtoReflect() protoreflect.Message { + mi := &file_streamd_proto_msgTypes[1] + 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 PingReply.ProtoReflect.Descriptor instead. +func (*PingReply) Descriptor() ([]byte, []int) { + return file_streamd_proto_rawDescGZIP(), []int{1} +} + +func (x *PingReply) GetPayload() string { + if x != nil { + return x.Payload + } + return "" +} + type SetLoggingLevelRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -237,7 +347,7 @@ type SetLoggingLevelRequest struct { func (x *SetLoggingLevelRequest) Reset() { *x = SetLoggingLevelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[0] + mi := &file_streamd_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -250,7 +360,7 @@ func (x *SetLoggingLevelRequest) String() string { func (*SetLoggingLevelRequest) ProtoMessage() {} func (x *SetLoggingLevelRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[0] + mi := &file_streamd_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -263,7 +373,7 @@ func (x *SetLoggingLevelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetLoggingLevelRequest.ProtoReflect.Descriptor instead. func (*SetLoggingLevelRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{0} + return file_streamd_proto_rawDescGZIP(), []int{2} } func (x *SetLoggingLevelRequest) GetLoggingLevel() LoggingLevel { @@ -282,7 +392,7 @@ type SetLoggingLevelReply struct { func (x *SetLoggingLevelReply) Reset() { *x = SetLoggingLevelReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[1] + mi := &file_streamd_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -295,7 +405,7 @@ func (x *SetLoggingLevelReply) String() string { func (*SetLoggingLevelReply) ProtoMessage() {} func (x *SetLoggingLevelReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[1] + mi := &file_streamd_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -308,7 +418,7 @@ func (x *SetLoggingLevelReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetLoggingLevelReply.ProtoReflect.Descriptor instead. func (*SetLoggingLevelReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{1} + return file_streamd_proto_rawDescGZIP(), []int{3} } type GetLoggingLevelRequest struct { @@ -320,7 +430,7 @@ type GetLoggingLevelRequest struct { func (x *GetLoggingLevelRequest) Reset() { *x = GetLoggingLevelRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[2] + mi := &file_streamd_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -333,7 +443,7 @@ func (x *GetLoggingLevelRequest) String() string { func (*GetLoggingLevelRequest) ProtoMessage() {} func (x *GetLoggingLevelRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[2] + mi := &file_streamd_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -346,7 +456,7 @@ func (x *GetLoggingLevelRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLoggingLevelRequest.ProtoReflect.Descriptor instead. func (*GetLoggingLevelRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{2} + return file_streamd_proto_rawDescGZIP(), []int{4} } type GetLoggingLevelReply struct { @@ -360,7 +470,7 @@ type GetLoggingLevelReply struct { func (x *GetLoggingLevelReply) Reset() { *x = GetLoggingLevelReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[3] + mi := &file_streamd_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -373,7 +483,7 @@ func (x *GetLoggingLevelReply) String() string { func (*GetLoggingLevelReply) ProtoMessage() {} func (x *GetLoggingLevelReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[3] + mi := &file_streamd_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -386,7 +496,7 @@ func (x *GetLoggingLevelReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetLoggingLevelReply.ProtoReflect.Descriptor instead. func (*GetLoggingLevelReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{3} + return file_streamd_proto_rawDescGZIP(), []int{5} } func (x *GetLoggingLevelReply) GetLoggingLevel() LoggingLevel { @@ -405,7 +515,7 @@ type GetConfigRequest struct { func (x *GetConfigRequest) Reset() { *x = GetConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[4] + mi := &file_streamd_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -418,7 +528,7 @@ func (x *GetConfigRequest) String() string { func (*GetConfigRequest) ProtoMessage() {} func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[4] + mi := &file_streamd_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -431,7 +541,7 @@ func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. func (*GetConfigRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{4} + return file_streamd_proto_rawDescGZIP(), []int{6} } type GetConfigReply struct { @@ -445,7 +555,7 @@ type GetConfigReply struct { func (x *GetConfigReply) Reset() { *x = GetConfigReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[5] + mi := &file_streamd_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -458,7 +568,7 @@ func (x *GetConfigReply) String() string { func (*GetConfigReply) ProtoMessage() {} func (x *GetConfigReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[5] + mi := &file_streamd_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -471,7 +581,7 @@ func (x *GetConfigReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetConfigReply.ProtoReflect.Descriptor instead. func (*GetConfigReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{5} + return file_streamd_proto_rawDescGZIP(), []int{7} } func (x *GetConfigReply) GetConfig() string { @@ -492,7 +602,7 @@ type SetConfigRequest struct { func (x *SetConfigRequest) Reset() { *x = SetConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[6] + mi := &file_streamd_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -505,7 +615,7 @@ func (x *SetConfigRequest) String() string { func (*SetConfigRequest) ProtoMessage() {} func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[6] + mi := &file_streamd_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -518,7 +628,7 @@ func (x *SetConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetConfigRequest.ProtoReflect.Descriptor instead. func (*SetConfigRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{6} + return file_streamd_proto_rawDescGZIP(), []int{8} } func (x *SetConfigRequest) GetConfig() string { @@ -537,7 +647,7 @@ type SetConfigReply struct { func (x *SetConfigReply) Reset() { *x = SetConfigReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[7] + mi := &file_streamd_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -550,7 +660,7 @@ func (x *SetConfigReply) String() string { func (*SetConfigReply) ProtoMessage() {} func (x *SetConfigReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[7] + mi := &file_streamd_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -563,7 +673,7 @@ func (x *SetConfigReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetConfigReply.ProtoReflect.Descriptor instead. func (*SetConfigReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{7} + return file_streamd_proto_rawDescGZIP(), []int{9} } type SaveConfigRequest struct { @@ -575,7 +685,7 @@ type SaveConfigRequest struct { func (x *SaveConfigRequest) Reset() { *x = SaveConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[8] + mi := &file_streamd_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -588,7 +698,7 @@ func (x *SaveConfigRequest) String() string { func (*SaveConfigRequest) ProtoMessage() {} func (x *SaveConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[8] + mi := &file_streamd_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -601,7 +711,7 @@ func (x *SaveConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveConfigRequest.ProtoReflect.Descriptor instead. func (*SaveConfigRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{8} + return file_streamd_proto_rawDescGZIP(), []int{10} } type SaveConfigReply struct { @@ -613,7 +723,7 @@ type SaveConfigReply struct { func (x *SaveConfigReply) Reset() { *x = SaveConfigReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[9] + mi := &file_streamd_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -626,7 +736,7 @@ func (x *SaveConfigReply) String() string { func (*SaveConfigReply) ProtoMessage() {} func (x *SaveConfigReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[9] + mi := &file_streamd_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -639,7 +749,7 @@ func (x *SaveConfigReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SaveConfigReply.ProtoReflect.Descriptor instead. func (*SaveConfigReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{9} + return file_streamd_proto_rawDescGZIP(), []int{11} } type ResetCacheRequest struct { @@ -651,7 +761,7 @@ type ResetCacheRequest struct { func (x *ResetCacheRequest) Reset() { *x = ResetCacheRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[10] + mi := &file_streamd_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -664,7 +774,7 @@ func (x *ResetCacheRequest) String() string { func (*ResetCacheRequest) ProtoMessage() {} func (x *ResetCacheRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[10] + mi := &file_streamd_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -677,7 +787,7 @@ func (x *ResetCacheRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetCacheRequest.ProtoReflect.Descriptor instead. func (*ResetCacheRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{10} + return file_streamd_proto_rawDescGZIP(), []int{12} } type ResetCacheReply struct { @@ -689,7 +799,7 @@ type ResetCacheReply struct { func (x *ResetCacheReply) Reset() { *x = ResetCacheReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[11] + mi := &file_streamd_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -702,7 +812,7 @@ func (x *ResetCacheReply) String() string { func (*ResetCacheReply) ProtoMessage() {} func (x *ResetCacheReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[11] + mi := &file_streamd_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -715,7 +825,7 @@ func (x *ResetCacheReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ResetCacheReply.ProtoReflect.Descriptor instead. func (*ResetCacheReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{11} + return file_streamd_proto_rawDescGZIP(), []int{13} } type InitCacheRequest struct { @@ -727,7 +837,7 @@ type InitCacheRequest struct { func (x *InitCacheRequest) Reset() { *x = InitCacheRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[12] + mi := &file_streamd_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -740,7 +850,7 @@ func (x *InitCacheRequest) String() string { func (*InitCacheRequest) ProtoMessage() {} func (x *InitCacheRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[12] + mi := &file_streamd_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -753,7 +863,7 @@ func (x *InitCacheRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use InitCacheRequest.ProtoReflect.Descriptor instead. func (*InitCacheRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{12} + return file_streamd_proto_rawDescGZIP(), []int{14} } type InitCacheReply struct { @@ -765,7 +875,7 @@ type InitCacheReply struct { func (x *InitCacheReply) Reset() { *x = InitCacheReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[13] + mi := &file_streamd_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -778,7 +888,7 @@ func (x *InitCacheReply) String() string { func (*InitCacheReply) ProtoMessage() {} func (x *InitCacheReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[13] + mi := &file_streamd_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -791,7 +901,7 @@ func (x *InitCacheReply) ProtoReflect() protoreflect.Message { // Deprecated: Use InitCacheReply.ProtoReflect.Descriptor instead. func (*InitCacheReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{13} + return file_streamd_proto_rawDescGZIP(), []int{15} } type StartStreamRequest struct { @@ -808,7 +918,7 @@ type StartStreamRequest struct { func (x *StartStreamRequest) Reset() { *x = StartStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[14] + mi := &file_streamd_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -821,7 +931,7 @@ func (x *StartStreamRequest) String() string { func (*StartStreamRequest) ProtoMessage() {} func (x *StartStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[14] + mi := &file_streamd_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -834,7 +944,7 @@ func (x *StartStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartStreamRequest.ProtoReflect.Descriptor instead. func (*StartStreamRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{14} + return file_streamd_proto_rawDescGZIP(), []int{16} } func (x *StartStreamRequest) GetPlatID() string { @@ -874,7 +984,7 @@ type StartStreamReply struct { func (x *StartStreamReply) Reset() { *x = StartStreamReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[15] + mi := &file_streamd_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -887,7 +997,7 @@ func (x *StartStreamReply) String() string { func (*StartStreamReply) ProtoMessage() {} func (x *StartStreamReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[15] + mi := &file_streamd_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -900,7 +1010,7 @@ func (x *StartStreamReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StartStreamReply.ProtoReflect.Descriptor instead. func (*StartStreamReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{15} + return file_streamd_proto_rawDescGZIP(), []int{17} } type EndStreamRequest struct { @@ -914,7 +1024,7 @@ type EndStreamRequest struct { func (x *EndStreamRequest) Reset() { *x = EndStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[16] + mi := &file_streamd_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -927,7 +1037,7 @@ func (x *EndStreamRequest) String() string { func (*EndStreamRequest) ProtoMessage() {} func (x *EndStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[16] + mi := &file_streamd_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -940,7 +1050,7 @@ func (x *EndStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use EndStreamRequest.ProtoReflect.Descriptor instead. func (*EndStreamRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{16} + return file_streamd_proto_rawDescGZIP(), []int{18} } func (x *EndStreamRequest) GetPlatID() string { @@ -959,7 +1069,7 @@ type EndStreamReply struct { func (x *EndStreamReply) Reset() { *x = EndStreamReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[17] + mi := &file_streamd_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -972,7 +1082,7 @@ func (x *EndStreamReply) String() string { func (*EndStreamReply) ProtoMessage() {} func (x *EndStreamReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[17] + mi := &file_streamd_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -985,7 +1095,7 @@ func (x *EndStreamReply) ProtoReflect() protoreflect.Message { // Deprecated: Use EndStreamReply.ProtoReflect.Descriptor instead. func (*EndStreamReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{17} + return file_streamd_proto_rawDescGZIP(), []int{19} } type GetStreamStatusRequest struct { @@ -1000,7 +1110,7 @@ type GetStreamStatusRequest struct { func (x *GetStreamStatusRequest) Reset() { *x = GetStreamStatusRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[18] + mi := &file_streamd_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1013,7 +1123,7 @@ func (x *GetStreamStatusRequest) String() string { func (*GetStreamStatusRequest) ProtoMessage() {} func (x *GetStreamStatusRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[18] + mi := &file_streamd_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1026,7 +1136,7 @@ func (x *GetStreamStatusRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStreamStatusRequest.ProtoReflect.Descriptor instead. func (*GetStreamStatusRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{18} + return file_streamd_proto_rawDescGZIP(), []int{20} } func (x *GetStreamStatusRequest) GetPlatID() string { @@ -1056,7 +1166,7 @@ type GetStreamStatusReply struct { func (x *GetStreamStatusReply) Reset() { *x = GetStreamStatusReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[19] + mi := &file_streamd_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1069,7 +1179,7 @@ func (x *GetStreamStatusReply) String() string { func (*GetStreamStatusReply) ProtoMessage() {} func (x *GetStreamStatusReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[19] + mi := &file_streamd_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1082,7 +1192,7 @@ func (x *GetStreamStatusReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStreamStatusReply.ProtoReflect.Descriptor instead. func (*GetStreamStatusReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{19} + return file_streamd_proto_rawDescGZIP(), []int{21} } func (x *GetStreamStatusReply) GetIsActive() bool { @@ -1117,7 +1227,7 @@ type GetBackendInfoRequest struct { func (x *GetBackendInfoRequest) Reset() { *x = GetBackendInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[20] + mi := &file_streamd_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1130,7 +1240,7 @@ func (x *GetBackendInfoRequest) String() string { func (*GetBackendInfoRequest) ProtoMessage() {} func (x *GetBackendInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[20] + mi := &file_streamd_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1143,7 +1253,7 @@ func (x *GetBackendInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBackendInfoRequest.ProtoReflect.Descriptor instead. func (*GetBackendInfoRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{20} + return file_streamd_proto_rawDescGZIP(), []int{22} } func (x *GetBackendInfoRequest) GetPlatID() string { @@ -1165,7 +1275,7 @@ type GetBackendInfoReply struct { func (x *GetBackendInfoReply) Reset() { *x = GetBackendInfoReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[21] + mi := &file_streamd_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1178,7 +1288,7 @@ func (x *GetBackendInfoReply) String() string { func (*GetBackendInfoReply) ProtoMessage() {} func (x *GetBackendInfoReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[21] + mi := &file_streamd_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1191,7 +1301,7 @@ func (x *GetBackendInfoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBackendInfoReply.ProtoReflect.Descriptor instead. func (*GetBackendInfoReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{21} + return file_streamd_proto_rawDescGZIP(), []int{23} } func (x *GetBackendInfoReply) GetIsInitialized() bool { @@ -1219,7 +1329,7 @@ type IsBackendEnabledRequest struct { func (x *IsBackendEnabledRequest) Reset() { *x = IsBackendEnabledRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[22] + mi := &file_streamd_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1232,7 +1342,7 @@ func (x *IsBackendEnabledRequest) String() string { func (*IsBackendEnabledRequest) ProtoMessage() {} func (x *IsBackendEnabledRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[22] + mi := &file_streamd_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1245,7 +1355,7 @@ func (x *IsBackendEnabledRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use IsBackendEnabledRequest.ProtoReflect.Descriptor instead. func (*IsBackendEnabledRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{22} + return file_streamd_proto_rawDescGZIP(), []int{24} } func (x *IsBackendEnabledRequest) GetPlatID() string { @@ -1266,7 +1376,7 @@ type IsBackendEnabledReply struct { func (x *IsBackendEnabledReply) Reset() { *x = IsBackendEnabledReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[23] + mi := &file_streamd_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1279,7 +1389,7 @@ func (x *IsBackendEnabledReply) String() string { func (*IsBackendEnabledReply) ProtoMessage() {} func (x *IsBackendEnabledReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[23] + mi := &file_streamd_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1292,7 +1402,7 @@ func (x *IsBackendEnabledReply) ProtoReflect() protoreflect.Message { // Deprecated: Use IsBackendEnabledReply.ProtoReflect.Descriptor instead. func (*IsBackendEnabledReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{23} + return file_streamd_proto_rawDescGZIP(), []int{25} } func (x *IsBackendEnabledReply) GetIsInitialized() bool { @@ -1311,7 +1421,7 @@ type RestartRequest struct { func (x *RestartRequest) Reset() { *x = RestartRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[24] + mi := &file_streamd_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1324,7 +1434,7 @@ func (x *RestartRequest) String() string { func (*RestartRequest) ProtoMessage() {} func (x *RestartRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[24] + mi := &file_streamd_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1337,7 +1447,7 @@ func (x *RestartRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RestartRequest.ProtoReflect.Descriptor instead. func (*RestartRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{24} + return file_streamd_proto_rawDescGZIP(), []int{26} } type RestartReply struct { @@ -1349,7 +1459,7 @@ type RestartReply struct { func (x *RestartReply) Reset() { *x = RestartReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[25] + mi := &file_streamd_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1362,7 +1472,7 @@ func (x *RestartReply) String() string { func (*RestartReply) ProtoMessage() {} func (x *RestartReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[25] + mi := &file_streamd_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1375,7 +1485,7 @@ func (x *RestartReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RestartReply.ProtoReflect.Descriptor instead. func (*RestartReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{25} + return file_streamd_proto_rawDescGZIP(), []int{27} } type SetTitleRequest struct { @@ -1390,7 +1500,7 @@ type SetTitleRequest struct { func (x *SetTitleRequest) Reset() { *x = SetTitleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[26] + mi := &file_streamd_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1403,7 +1513,7 @@ func (x *SetTitleRequest) String() string { func (*SetTitleRequest) ProtoMessage() {} func (x *SetTitleRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[26] + mi := &file_streamd_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1416,7 +1526,7 @@ func (x *SetTitleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTitleRequest.ProtoReflect.Descriptor instead. func (*SetTitleRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{26} + return file_streamd_proto_rawDescGZIP(), []int{28} } func (x *SetTitleRequest) GetPlatID() string { @@ -1442,7 +1552,7 @@ type SetTitleReply struct { func (x *SetTitleReply) Reset() { *x = SetTitleReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[27] + mi := &file_streamd_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1455,7 +1565,7 @@ func (x *SetTitleReply) String() string { func (*SetTitleReply) ProtoMessage() {} func (x *SetTitleReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[27] + mi := &file_streamd_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1468,7 +1578,7 @@ func (x *SetTitleReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetTitleReply.ProtoReflect.Descriptor instead. func (*SetTitleReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{27} + return file_streamd_proto_rawDescGZIP(), []int{29} } type SetDescriptionRequest struct { @@ -1483,7 +1593,7 @@ type SetDescriptionRequest struct { func (x *SetDescriptionRequest) Reset() { *x = SetDescriptionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[28] + mi := &file_streamd_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1496,7 +1606,7 @@ func (x *SetDescriptionRequest) String() string { func (*SetDescriptionRequest) ProtoMessage() {} func (x *SetDescriptionRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[28] + mi := &file_streamd_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1509,7 +1619,7 @@ func (x *SetDescriptionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetDescriptionRequest.ProtoReflect.Descriptor instead. func (*SetDescriptionRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{28} + return file_streamd_proto_rawDescGZIP(), []int{30} } func (x *SetDescriptionRequest) GetPlatID() string { @@ -1535,7 +1645,7 @@ type SetDescriptionReply struct { func (x *SetDescriptionReply) Reset() { *x = SetDescriptionReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[29] + mi := &file_streamd_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1548,7 +1658,7 @@ func (x *SetDescriptionReply) String() string { func (*SetDescriptionReply) ProtoMessage() {} func (x *SetDescriptionReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[29] + mi := &file_streamd_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1561,7 +1671,7 @@ func (x *SetDescriptionReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetDescriptionReply.ProtoReflect.Descriptor instead. func (*SetDescriptionReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{29} + return file_streamd_proto_rawDescGZIP(), []int{31} } type ApplyProfileRequest struct { @@ -1576,7 +1686,7 @@ type ApplyProfileRequest struct { func (x *ApplyProfileRequest) Reset() { *x = ApplyProfileRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[30] + mi := &file_streamd_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1589,7 +1699,7 @@ func (x *ApplyProfileRequest) String() string { func (*ApplyProfileRequest) ProtoMessage() {} func (x *ApplyProfileRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[30] + mi := &file_streamd_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1602,7 +1712,7 @@ func (x *ApplyProfileRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyProfileRequest.ProtoReflect.Descriptor instead. func (*ApplyProfileRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{30} + return file_streamd_proto_rawDescGZIP(), []int{32} } func (x *ApplyProfileRequest) GetPlatID() string { @@ -1628,7 +1738,7 @@ type ApplyProfileReply struct { func (x *ApplyProfileReply) Reset() { *x = ApplyProfileReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[31] + mi := &file_streamd_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1641,7 +1751,7 @@ func (x *ApplyProfileReply) String() string { func (*ApplyProfileReply) ProtoMessage() {} func (x *ApplyProfileReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[31] + mi := &file_streamd_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1654,7 +1764,7 @@ func (x *ApplyProfileReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ApplyProfileReply.ProtoReflect.Descriptor instead. func (*ApplyProfileReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{31} + return file_streamd_proto_rawDescGZIP(), []int{33} } type UpdateStreamRequest struct { @@ -1671,7 +1781,7 @@ type UpdateStreamRequest struct { func (x *UpdateStreamRequest) Reset() { *x = UpdateStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[32] + mi := &file_streamd_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1684,7 +1794,7 @@ func (x *UpdateStreamRequest) String() string { func (*UpdateStreamRequest) ProtoMessage() {} func (x *UpdateStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[32] + mi := &file_streamd_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1697,7 +1807,7 @@ func (x *UpdateStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStreamRequest.ProtoReflect.Descriptor instead. func (*UpdateStreamRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{32} + return file_streamd_proto_rawDescGZIP(), []int{34} } func (x *UpdateStreamRequest) GetPlatID() string { @@ -1737,7 +1847,7 @@ type UpdateStreamReply struct { func (x *UpdateStreamReply) Reset() { *x = UpdateStreamReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[33] + mi := &file_streamd_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1750,7 +1860,7 @@ func (x *UpdateStreamReply) String() string { func (*UpdateStreamReply) ProtoMessage() {} func (x *UpdateStreamReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[33] + mi := &file_streamd_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1763,7 +1873,7 @@ func (x *UpdateStreamReply) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStreamReply.ProtoReflect.Descriptor instead. func (*UpdateStreamReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{33} + return file_streamd_proto_rawDescGZIP(), []int{35} } type EXPERIMENTAL_ReinitStreamControllersRequest struct { @@ -1775,7 +1885,7 @@ type EXPERIMENTAL_ReinitStreamControllersRequest struct { func (x *EXPERIMENTAL_ReinitStreamControllersRequest) Reset() { *x = EXPERIMENTAL_ReinitStreamControllersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[34] + mi := &file_streamd_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1788,7 +1898,7 @@ func (x *EXPERIMENTAL_ReinitStreamControllersRequest) String() string { func (*EXPERIMENTAL_ReinitStreamControllersRequest) ProtoMessage() {} func (x *EXPERIMENTAL_ReinitStreamControllersRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[34] + mi := &file_streamd_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1801,7 +1911,7 @@ func (x *EXPERIMENTAL_ReinitStreamControllersRequest) ProtoReflect() protoreflec // Deprecated: Use EXPERIMENTAL_ReinitStreamControllersRequest.ProtoReflect.Descriptor instead. func (*EXPERIMENTAL_ReinitStreamControllersRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{34} + return file_streamd_proto_rawDescGZIP(), []int{36} } type EXPERIMENTAL_ReinitStreamControllersReply struct { @@ -1813,7 +1923,7 @@ type EXPERIMENTAL_ReinitStreamControllersReply struct { func (x *EXPERIMENTAL_ReinitStreamControllersReply) Reset() { *x = EXPERIMENTAL_ReinitStreamControllersReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[35] + mi := &file_streamd_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1826,7 +1936,7 @@ func (x *EXPERIMENTAL_ReinitStreamControllersReply) String() string { func (*EXPERIMENTAL_ReinitStreamControllersReply) ProtoMessage() {} func (x *EXPERIMENTAL_ReinitStreamControllersReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[35] + mi := &file_streamd_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1839,7 +1949,7 @@ func (x *EXPERIMENTAL_ReinitStreamControllersReply) ProtoReflect() protoreflect. // Deprecated: Use EXPERIMENTAL_ReinitStreamControllersReply.ProtoReflect.Descriptor instead. func (*EXPERIMENTAL_ReinitStreamControllersReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{35} + return file_streamd_proto_rawDescGZIP(), []int{37} } type OBSOLETE_FetchConfigRequest struct { @@ -1851,7 +1961,7 @@ type OBSOLETE_FetchConfigRequest struct { func (x *OBSOLETE_FetchConfigRequest) Reset() { *x = OBSOLETE_FetchConfigRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[36] + mi := &file_streamd_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1864,7 +1974,7 @@ func (x *OBSOLETE_FetchConfigRequest) String() string { func (*OBSOLETE_FetchConfigRequest) ProtoMessage() {} func (x *OBSOLETE_FetchConfigRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[36] + mi := &file_streamd_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1877,7 +1987,7 @@ func (x *OBSOLETE_FetchConfigRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSOLETE_FetchConfigRequest.ProtoReflect.Descriptor instead. func (*OBSOLETE_FetchConfigRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{36} + return file_streamd_proto_rawDescGZIP(), []int{38} } type OBSOLETE_FetchConfigReply struct { @@ -1889,7 +1999,7 @@ type OBSOLETE_FetchConfigReply struct { func (x *OBSOLETE_FetchConfigReply) Reset() { *x = OBSOLETE_FetchConfigReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[37] + mi := &file_streamd_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1902,7 +2012,7 @@ func (x *OBSOLETE_FetchConfigReply) String() string { func (*OBSOLETE_FetchConfigReply) ProtoMessage() {} func (x *OBSOLETE_FetchConfigReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[37] + mi := &file_streamd_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1915,7 +2025,7 @@ func (x *OBSOLETE_FetchConfigReply) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSOLETE_FetchConfigReply.ProtoReflect.Descriptor instead. func (*OBSOLETE_FetchConfigReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{37} + return file_streamd_proto_rawDescGZIP(), []int{39} } type OBSOLETE_GetGitInfoRequest struct { @@ -1927,7 +2037,7 @@ type OBSOLETE_GetGitInfoRequest struct { func (x *OBSOLETE_GetGitInfoRequest) Reset() { *x = OBSOLETE_GetGitInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[38] + mi := &file_streamd_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1940,7 +2050,7 @@ func (x *OBSOLETE_GetGitInfoRequest) String() string { func (*OBSOLETE_GetGitInfoRequest) ProtoMessage() {} func (x *OBSOLETE_GetGitInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[38] + mi := &file_streamd_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1953,7 +2063,7 @@ func (x *OBSOLETE_GetGitInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSOLETE_GetGitInfoRequest.ProtoReflect.Descriptor instead. func (*OBSOLETE_GetGitInfoRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{38} + return file_streamd_proto_rawDescGZIP(), []int{40} } type OBSOLETE_GetGitInfoReply struct { @@ -1967,7 +2077,7 @@ type OBSOLETE_GetGitInfoReply struct { func (x *OBSOLETE_GetGitInfoReply) Reset() { *x = OBSOLETE_GetGitInfoReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[39] + mi := &file_streamd_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1980,7 +2090,7 @@ func (x *OBSOLETE_GetGitInfoReply) String() string { func (*OBSOLETE_GetGitInfoReply) ProtoMessage() {} func (x *OBSOLETE_GetGitInfoReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[39] + mi := &file_streamd_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1993,7 +2103,7 @@ func (x *OBSOLETE_GetGitInfoReply) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSOLETE_GetGitInfoReply.ProtoReflect.Descriptor instead. func (*OBSOLETE_GetGitInfoReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{39} + return file_streamd_proto_rawDescGZIP(), []int{41} } func (x *OBSOLETE_GetGitInfoReply) GetIsInitialized() bool { @@ -2012,7 +2122,7 @@ type OBSOLETE_GitReloginRequest struct { func (x *OBSOLETE_GitReloginRequest) Reset() { *x = OBSOLETE_GitReloginRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[40] + mi := &file_streamd_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2025,7 +2135,7 @@ func (x *OBSOLETE_GitReloginRequest) String() string { func (*OBSOLETE_GitReloginRequest) ProtoMessage() {} func (x *OBSOLETE_GitReloginRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[40] + mi := &file_streamd_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2038,7 +2148,7 @@ func (x *OBSOLETE_GitReloginRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSOLETE_GitReloginRequest.ProtoReflect.Descriptor instead. func (*OBSOLETE_GitReloginRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{40} + return file_streamd_proto_rawDescGZIP(), []int{42} } type OBSOLETE_GitReloginReply struct { @@ -2050,7 +2160,7 @@ type OBSOLETE_GitReloginReply struct { func (x *OBSOLETE_GitReloginReply) Reset() { *x = OBSOLETE_GitReloginReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[41] + mi := &file_streamd_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2063,7 +2173,7 @@ func (x *OBSOLETE_GitReloginReply) String() string { func (*OBSOLETE_GitReloginReply) ProtoMessage() {} func (x *OBSOLETE_GitReloginReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[41] + mi := &file_streamd_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2076,7 +2186,7 @@ func (x *OBSOLETE_GitReloginReply) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSOLETE_GitReloginReply.ProtoReflect.Descriptor instead. func (*OBSOLETE_GitReloginReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{41} + return file_streamd_proto_rawDescGZIP(), []int{43} } type SubscribeToOAuthRequestsRequest struct { @@ -2090,7 +2200,7 @@ type SubscribeToOAuthRequestsRequest struct { func (x *SubscribeToOAuthRequestsRequest) Reset() { *x = SubscribeToOAuthRequestsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[42] + mi := &file_streamd_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2103,7 +2213,7 @@ func (x *SubscribeToOAuthRequestsRequest) String() string { func (*SubscribeToOAuthRequestsRequest) ProtoMessage() {} func (x *SubscribeToOAuthRequestsRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[42] + mi := &file_streamd_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2116,7 +2226,7 @@ func (x *SubscribeToOAuthRequestsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeToOAuthRequestsRequest.ProtoReflect.Descriptor instead. func (*SubscribeToOAuthRequestsRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{42} + return file_streamd_proto_rawDescGZIP(), []int{44} } func (x *SubscribeToOAuthRequestsRequest) GetListenPort() int32 { @@ -2138,7 +2248,7 @@ type OAuthRequest struct { func (x *OAuthRequest) Reset() { *x = OAuthRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[43] + mi := &file_streamd_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2151,7 +2261,7 @@ func (x *OAuthRequest) String() string { func (*OAuthRequest) ProtoMessage() {} func (x *OAuthRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[43] + mi := &file_streamd_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2164,7 +2274,7 @@ func (x *OAuthRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OAuthRequest.ProtoReflect.Descriptor instead. func (*OAuthRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{43} + return file_streamd_proto_rawDescGZIP(), []int{45} } func (x *OAuthRequest) GetPlatID() string { @@ -2192,7 +2302,7 @@ type GetVariableRequest struct { func (x *GetVariableRequest) Reset() { *x = GetVariableRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[44] + mi := &file_streamd_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2205,7 +2315,7 @@ func (x *GetVariableRequest) String() string { func (*GetVariableRequest) ProtoMessage() {} func (x *GetVariableRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[44] + mi := &file_streamd_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2218,7 +2328,7 @@ func (x *GetVariableRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVariableRequest.ProtoReflect.Descriptor instead. func (*GetVariableRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{44} + return file_streamd_proto_rawDescGZIP(), []int{46} } func (x *GetVariableRequest) GetKey() string { @@ -2240,7 +2350,7 @@ type GetVariableReply struct { func (x *GetVariableReply) Reset() { *x = GetVariableReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[45] + mi := &file_streamd_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2253,7 +2363,7 @@ func (x *GetVariableReply) String() string { func (*GetVariableReply) ProtoMessage() {} func (x *GetVariableReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[45] + mi := &file_streamd_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2266,7 +2376,7 @@ func (x *GetVariableReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVariableReply.ProtoReflect.Descriptor instead. func (*GetVariableReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{45} + return file_streamd_proto_rawDescGZIP(), []int{47} } func (x *GetVariableReply) GetKey() string { @@ -2295,7 +2405,7 @@ type GetVariableHashRequest struct { func (x *GetVariableHashRequest) Reset() { *x = GetVariableHashRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[46] + mi := &file_streamd_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2308,7 +2418,7 @@ func (x *GetVariableHashRequest) String() string { func (*GetVariableHashRequest) ProtoMessage() {} func (x *GetVariableHashRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[46] + mi := &file_streamd_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2321,7 +2431,7 @@ func (x *GetVariableHashRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVariableHashRequest.ProtoReflect.Descriptor instead. func (*GetVariableHashRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{46} + return file_streamd_proto_rawDescGZIP(), []int{48} } func (x *GetVariableHashRequest) GetKey() string { @@ -2351,7 +2461,7 @@ type GetVariableHashReply struct { func (x *GetVariableHashReply) Reset() { *x = GetVariableHashReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[47] + mi := &file_streamd_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2364,7 +2474,7 @@ func (x *GetVariableHashReply) String() string { func (*GetVariableHashReply) ProtoMessage() {} func (x *GetVariableHashReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[47] + mi := &file_streamd_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2377,7 +2487,7 @@ func (x *GetVariableHashReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVariableHashReply.ProtoReflect.Descriptor instead. func (*GetVariableHashReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{47} + return file_streamd_proto_rawDescGZIP(), []int{49} } func (x *GetVariableHashReply) GetKey() string { @@ -2413,7 +2523,7 @@ type SetVariableRequest struct { func (x *SetVariableRequest) Reset() { *x = SetVariableRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[48] + mi := &file_streamd_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2426,7 +2536,7 @@ func (x *SetVariableRequest) String() string { func (*SetVariableRequest) ProtoMessage() {} func (x *SetVariableRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[48] + mi := &file_streamd_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2439,7 +2549,7 @@ func (x *SetVariableRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SetVariableRequest.ProtoReflect.Descriptor instead. func (*SetVariableRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{48} + return file_streamd_proto_rawDescGZIP(), []int{50} } func (x *SetVariableRequest) GetKey() string { @@ -2465,7 +2575,7 @@ type SetVariableReply struct { func (x *SetVariableReply) Reset() { *x = SetVariableReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[49] + mi := &file_streamd_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2478,7 +2588,7 @@ func (x *SetVariableReply) String() string { func (*SetVariableReply) ProtoMessage() {} func (x *SetVariableReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[49] + mi := &file_streamd_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2491,7 +2601,7 @@ func (x *SetVariableReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SetVariableReply.ProtoReflect.Descriptor instead. func (*SetVariableReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{49} + return file_streamd_proto_rawDescGZIP(), []int{51} } type OBSGetSceneListRequest struct { @@ -2503,7 +2613,7 @@ type OBSGetSceneListRequest struct { func (x *OBSGetSceneListRequest) Reset() { *x = OBSGetSceneListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[50] + mi := &file_streamd_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2516,7 +2626,7 @@ func (x *OBSGetSceneListRequest) String() string { func (*OBSGetSceneListRequest) ProtoMessage() {} func (x *OBSGetSceneListRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[50] + mi := &file_streamd_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2529,7 +2639,7 @@ func (x *OBSGetSceneListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSGetSceneListRequest.ProtoReflect.Descriptor instead. func (*OBSGetSceneListRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{50} + return file_streamd_proto_rawDescGZIP(), []int{52} } type OBSScene struct { @@ -2545,7 +2655,7 @@ type OBSScene struct { func (x *OBSScene) Reset() { *x = OBSScene{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[51] + mi := &file_streamd_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2558,7 +2668,7 @@ func (x *OBSScene) String() string { func (*OBSScene) ProtoMessage() {} func (x *OBSScene) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[51] + mi := &file_streamd_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2571,7 +2681,7 @@ func (x *OBSScene) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSScene.ProtoReflect.Descriptor instead. func (*OBSScene) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{51} + return file_streamd_proto_rawDescGZIP(), []int{53} } func (x *OBSScene) GetUuid() string { @@ -2610,7 +2720,7 @@ type OBSGetSceneListReply struct { func (x *OBSGetSceneListReply) Reset() { *x = OBSGetSceneListReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[52] + mi := &file_streamd_proto_msgTypes[54] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2623,7 +2733,7 @@ func (x *OBSGetSceneListReply) String() string { func (*OBSGetSceneListReply) ProtoMessage() {} func (x *OBSGetSceneListReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[52] + mi := &file_streamd_proto_msgTypes[54] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2636,7 +2746,7 @@ func (x *OBSGetSceneListReply) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSGetSceneListReply.ProtoReflect.Descriptor instead. func (*OBSGetSceneListReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{52} + return file_streamd_proto_rawDescGZIP(), []int{54} } func (x *OBSGetSceneListReply) GetCurrentPreviewSceneName() string { @@ -2689,7 +2799,7 @@ type OBSSetCurrentProgramSceneRequest struct { func (x *OBSSetCurrentProgramSceneRequest) Reset() { *x = OBSSetCurrentProgramSceneRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[53] + mi := &file_streamd_proto_msgTypes[55] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2702,7 +2812,7 @@ func (x *OBSSetCurrentProgramSceneRequest) String() string { func (*OBSSetCurrentProgramSceneRequest) ProtoMessage() {} func (x *OBSSetCurrentProgramSceneRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[53] + mi := &file_streamd_proto_msgTypes[55] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2715,7 +2825,7 @@ func (x *OBSSetCurrentProgramSceneRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSSetCurrentProgramSceneRequest.ProtoReflect.Descriptor instead. func (*OBSSetCurrentProgramSceneRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{53} + return file_streamd_proto_rawDescGZIP(), []int{55} } func (m *OBSSetCurrentProgramSceneRequest) GetOBSSceneID() isOBSSetCurrentProgramSceneRequest_OBSSceneID { @@ -2764,7 +2874,7 @@ type OBSSetCurrentProgramSceneReply struct { func (x *OBSSetCurrentProgramSceneReply) Reset() { *x = OBSSetCurrentProgramSceneReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[54] + mi := &file_streamd_proto_msgTypes[56] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2777,7 +2887,7 @@ func (x *OBSSetCurrentProgramSceneReply) String() string { func (*OBSSetCurrentProgramSceneReply) ProtoMessage() {} func (x *OBSSetCurrentProgramSceneReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[54] + mi := &file_streamd_proto_msgTypes[56] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2790,7 +2900,7 @@ func (x *OBSSetCurrentProgramSceneReply) ProtoReflect() protoreflect.Message { // Deprecated: Use OBSSetCurrentProgramSceneReply.ProtoReflect.Descriptor instead. func (*OBSSetCurrentProgramSceneReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{54} + return file_streamd_proto_rawDescGZIP(), []int{56} } type SubmitOAuthCodeRequest struct { @@ -2805,7 +2915,7 @@ type SubmitOAuthCodeRequest struct { func (x *SubmitOAuthCodeRequest) Reset() { *x = SubmitOAuthCodeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[55] + mi := &file_streamd_proto_msgTypes[57] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2818,7 +2928,7 @@ func (x *SubmitOAuthCodeRequest) String() string { func (*SubmitOAuthCodeRequest) ProtoMessage() {} func (x *SubmitOAuthCodeRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[55] + mi := &file_streamd_proto_msgTypes[57] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2831,7 +2941,7 @@ func (x *SubmitOAuthCodeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitOAuthCodeRequest.ProtoReflect.Descriptor instead. func (*SubmitOAuthCodeRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{55} + return file_streamd_proto_rawDescGZIP(), []int{57} } func (x *SubmitOAuthCodeRequest) GetPlatID() string { @@ -2857,7 +2967,7 @@ type SubmitOAuthCodeReply struct { func (x *SubmitOAuthCodeReply) Reset() { *x = SubmitOAuthCodeReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[56] + mi := &file_streamd_proto_msgTypes[58] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2870,7 +2980,7 @@ func (x *SubmitOAuthCodeReply) String() string { func (*SubmitOAuthCodeReply) ProtoMessage() {} func (x *SubmitOAuthCodeReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[56] + mi := &file_streamd_proto_msgTypes[58] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2883,7 +2993,7 @@ func (x *SubmitOAuthCodeReply) ProtoReflect() protoreflect.Message { // Deprecated: Use SubmitOAuthCodeReply.ProtoReflect.Descriptor instead. func (*SubmitOAuthCodeReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{56} + return file_streamd_proto_rawDescGZIP(), []int{58} } type StreamServer struct { @@ -2898,7 +3008,7 @@ type StreamServer struct { func (x *StreamServer) Reset() { *x = StreamServer{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[57] + mi := &file_streamd_proto_msgTypes[59] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2911,7 +3021,7 @@ func (x *StreamServer) String() string { func (*StreamServer) ProtoMessage() {} func (x *StreamServer) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[57] + mi := &file_streamd_proto_msgTypes[59] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2924,7 +3034,7 @@ func (x *StreamServer) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamServer.ProtoReflect.Descriptor instead. func (*StreamServer) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{57} + return file_streamd_proto_rawDescGZIP(), []int{59} } func (x *StreamServer) GetServerType() StreamServerType { @@ -2953,7 +3063,7 @@ type StreamServerStatistics struct { func (x *StreamServerStatistics) Reset() { *x = StreamServerStatistics{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[58] + mi := &file_streamd_proto_msgTypes[60] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2966,7 +3076,7 @@ func (x *StreamServerStatistics) String() string { func (*StreamServerStatistics) ProtoMessage() {} func (x *StreamServerStatistics) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[58] + mi := &file_streamd_proto_msgTypes[60] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2979,7 +3089,7 @@ func (x *StreamServerStatistics) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamServerStatistics.ProtoReflect.Descriptor instead. func (*StreamServerStatistics) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{58} + return file_streamd_proto_rawDescGZIP(), []int{60} } func (x *StreamServerStatistics) GetNumBytesConsumerWrote() int64 { @@ -3008,7 +3118,7 @@ type StreamServerWithStatistics struct { func (x *StreamServerWithStatistics) Reset() { *x = StreamServerWithStatistics{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[59] + mi := &file_streamd_proto_msgTypes[61] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3021,7 +3131,7 @@ func (x *StreamServerWithStatistics) String() string { func (*StreamServerWithStatistics) ProtoMessage() {} func (x *StreamServerWithStatistics) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[59] + mi := &file_streamd_proto_msgTypes[61] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3034,7 +3144,7 @@ func (x *StreamServerWithStatistics) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamServerWithStatistics.ProtoReflect.Descriptor instead. func (*StreamServerWithStatistics) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{59} + return file_streamd_proto_rawDescGZIP(), []int{61} } func (x *StreamServerWithStatistics) GetConfig() *StreamServer { @@ -3060,7 +3170,7 @@ type ListStreamServersRequest struct { func (x *ListStreamServersRequest) Reset() { *x = ListStreamServersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[60] + mi := &file_streamd_proto_msgTypes[62] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3073,7 +3183,7 @@ func (x *ListStreamServersRequest) String() string { func (*ListStreamServersRequest) ProtoMessage() {} func (x *ListStreamServersRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[60] + mi := &file_streamd_proto_msgTypes[62] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3086,7 +3196,7 @@ func (x *ListStreamServersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamServersRequest.ProtoReflect.Descriptor instead. func (*ListStreamServersRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{60} + return file_streamd_proto_rawDescGZIP(), []int{62} } type ListStreamServersReply struct { @@ -3100,7 +3210,7 @@ type ListStreamServersReply struct { func (x *ListStreamServersReply) Reset() { *x = ListStreamServersReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[61] + mi := &file_streamd_proto_msgTypes[63] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3113,7 +3223,7 @@ func (x *ListStreamServersReply) String() string { func (*ListStreamServersReply) ProtoMessage() {} func (x *ListStreamServersReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[61] + mi := &file_streamd_proto_msgTypes[63] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3126,7 +3236,7 @@ func (x *ListStreamServersReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamServersReply.ProtoReflect.Descriptor instead. func (*ListStreamServersReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{61} + return file_streamd_proto_rawDescGZIP(), []int{63} } func (x *ListStreamServersReply) GetStreamServers() []*StreamServerWithStatistics { @@ -3147,7 +3257,7 @@ type StartStreamServerRequest struct { func (x *StartStreamServerRequest) Reset() { *x = StartStreamServerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[62] + mi := &file_streamd_proto_msgTypes[64] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3160,7 +3270,7 @@ func (x *StartStreamServerRequest) String() string { func (*StartStreamServerRequest) ProtoMessage() {} func (x *StartStreamServerRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[62] + mi := &file_streamd_proto_msgTypes[64] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3173,7 +3283,7 @@ func (x *StartStreamServerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StartStreamServerRequest.ProtoReflect.Descriptor instead. func (*StartStreamServerRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{62} + return file_streamd_proto_rawDescGZIP(), []int{64} } func (x *StartStreamServerRequest) GetConfig() *StreamServer { @@ -3192,7 +3302,7 @@ type StartStreamServerReply struct { func (x *StartStreamServerReply) Reset() { *x = StartStreamServerReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[63] + mi := &file_streamd_proto_msgTypes[65] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3205,7 +3315,7 @@ func (x *StartStreamServerReply) String() string { func (*StartStreamServerReply) ProtoMessage() {} func (x *StartStreamServerReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[63] + mi := &file_streamd_proto_msgTypes[65] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3218,7 +3328,7 @@ func (x *StartStreamServerReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StartStreamServerReply.ProtoReflect.Descriptor instead. func (*StartStreamServerReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{63} + return file_streamd_proto_rawDescGZIP(), []int{65} } type StopStreamServerRequest struct { @@ -3232,7 +3342,7 @@ type StopStreamServerRequest struct { func (x *StopStreamServerRequest) Reset() { *x = StopStreamServerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[64] + mi := &file_streamd_proto_msgTypes[66] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3245,7 +3355,7 @@ func (x *StopStreamServerRequest) String() string { func (*StopStreamServerRequest) ProtoMessage() {} func (x *StopStreamServerRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[64] + mi := &file_streamd_proto_msgTypes[66] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3258,7 +3368,7 @@ func (x *StopStreamServerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StopStreamServerRequest.ProtoReflect.Descriptor instead. func (*StopStreamServerRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{64} + return file_streamd_proto_rawDescGZIP(), []int{66} } func (x *StopStreamServerRequest) GetListenAddr() string { @@ -3277,7 +3387,7 @@ type StopStreamServerReply struct { func (x *StopStreamServerReply) Reset() { *x = StopStreamServerReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[65] + mi := &file_streamd_proto_msgTypes[67] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3290,7 +3400,7 @@ func (x *StopStreamServerReply) String() string { func (*StopStreamServerReply) ProtoMessage() {} func (x *StopStreamServerReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[65] + mi := &file_streamd_proto_msgTypes[67] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3303,7 +3413,7 @@ func (x *StopStreamServerReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StopStreamServerReply.ProtoReflect.Descriptor instead. func (*StopStreamServerReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{65} + return file_streamd_proto_rawDescGZIP(), []int{67} } type StreamDestination struct { @@ -3318,7 +3428,7 @@ type StreamDestination struct { func (x *StreamDestination) Reset() { *x = StreamDestination{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[66] + mi := &file_streamd_proto_msgTypes[68] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3331,7 +3441,7 @@ func (x *StreamDestination) String() string { func (*StreamDestination) ProtoMessage() {} func (x *StreamDestination) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[66] + mi := &file_streamd_proto_msgTypes[68] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3344,7 +3454,7 @@ func (x *StreamDestination) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamDestination.ProtoReflect.Descriptor instead. func (*StreamDestination) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{66} + return file_streamd_proto_rawDescGZIP(), []int{68} } func (x *StreamDestination) GetDestinationID() string { @@ -3370,7 +3480,7 @@ type ListStreamDestinationsRequest struct { func (x *ListStreamDestinationsRequest) Reset() { *x = ListStreamDestinationsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[67] + mi := &file_streamd_proto_msgTypes[69] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3383,7 +3493,7 @@ func (x *ListStreamDestinationsRequest) String() string { func (*ListStreamDestinationsRequest) ProtoMessage() {} func (x *ListStreamDestinationsRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[67] + mi := &file_streamd_proto_msgTypes[69] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3396,7 +3506,7 @@ func (x *ListStreamDestinationsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamDestinationsRequest.ProtoReflect.Descriptor instead. func (*ListStreamDestinationsRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{67} + return file_streamd_proto_rawDescGZIP(), []int{69} } type ListStreamDestinationsReply struct { @@ -3410,7 +3520,7 @@ type ListStreamDestinationsReply struct { func (x *ListStreamDestinationsReply) Reset() { *x = ListStreamDestinationsReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[68] + mi := &file_streamd_proto_msgTypes[70] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3423,7 +3533,7 @@ func (x *ListStreamDestinationsReply) String() string { func (*ListStreamDestinationsReply) ProtoMessage() {} func (x *ListStreamDestinationsReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[68] + mi := &file_streamd_proto_msgTypes[70] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3436,7 +3546,7 @@ func (x *ListStreamDestinationsReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamDestinationsReply.ProtoReflect.Descriptor instead. func (*ListStreamDestinationsReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{68} + return file_streamd_proto_rawDescGZIP(), []int{70} } func (x *ListStreamDestinationsReply) GetStreamDestinations() []*StreamDestination { @@ -3457,7 +3567,7 @@ type AddStreamDestinationRequest struct { func (x *AddStreamDestinationRequest) Reset() { *x = AddStreamDestinationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[69] + mi := &file_streamd_proto_msgTypes[71] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3470,7 +3580,7 @@ func (x *AddStreamDestinationRequest) String() string { func (*AddStreamDestinationRequest) ProtoMessage() {} func (x *AddStreamDestinationRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[69] + mi := &file_streamd_proto_msgTypes[71] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3483,7 +3593,7 @@ func (x *AddStreamDestinationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddStreamDestinationRequest.ProtoReflect.Descriptor instead. func (*AddStreamDestinationRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{69} + return file_streamd_proto_rawDescGZIP(), []int{71} } func (x *AddStreamDestinationRequest) GetConfig() *StreamDestination { @@ -3502,7 +3612,7 @@ type AddStreamDestinationReply struct { func (x *AddStreamDestinationReply) Reset() { *x = AddStreamDestinationReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[70] + mi := &file_streamd_proto_msgTypes[72] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3515,7 +3625,7 @@ func (x *AddStreamDestinationReply) String() string { func (*AddStreamDestinationReply) ProtoMessage() {} func (x *AddStreamDestinationReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[70] + mi := &file_streamd_proto_msgTypes[72] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3528,7 +3638,7 @@ func (x *AddStreamDestinationReply) ProtoReflect() protoreflect.Message { // Deprecated: Use AddStreamDestinationReply.ProtoReflect.Descriptor instead. func (*AddStreamDestinationReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{70} + return file_streamd_proto_rawDescGZIP(), []int{72} } type RemoveStreamDestinationRequest struct { @@ -3542,7 +3652,7 @@ type RemoveStreamDestinationRequest struct { func (x *RemoveStreamDestinationRequest) Reset() { *x = RemoveStreamDestinationRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[71] + mi := &file_streamd_proto_msgTypes[73] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3555,7 +3665,7 @@ func (x *RemoveStreamDestinationRequest) String() string { func (*RemoveStreamDestinationRequest) ProtoMessage() {} func (x *RemoveStreamDestinationRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[71] + mi := &file_streamd_proto_msgTypes[73] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3568,7 +3678,7 @@ func (x *RemoveStreamDestinationRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveStreamDestinationRequest.ProtoReflect.Descriptor instead. func (*RemoveStreamDestinationRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{71} + return file_streamd_proto_rawDescGZIP(), []int{73} } func (x *RemoveStreamDestinationRequest) GetDestinationID() string { @@ -3587,7 +3697,7 @@ type RemoveStreamDestinationReply struct { func (x *RemoveStreamDestinationReply) Reset() { *x = RemoveStreamDestinationReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[72] + mi := &file_streamd_proto_msgTypes[74] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3600,7 +3710,7 @@ func (x *RemoveStreamDestinationReply) String() string { func (*RemoveStreamDestinationReply) ProtoMessage() {} func (x *RemoveStreamDestinationReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[72] + mi := &file_streamd_proto_msgTypes[74] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3613,7 +3723,7 @@ func (x *RemoveStreamDestinationReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveStreamDestinationReply.ProtoReflect.Descriptor instead. func (*RemoveStreamDestinationReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{72} + return file_streamd_proto_rawDescGZIP(), []int{74} } type IncomingStream struct { @@ -3627,7 +3737,7 @@ type IncomingStream struct { func (x *IncomingStream) Reset() { *x = IncomingStream{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[73] + mi := &file_streamd_proto_msgTypes[75] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3640,7 +3750,7 @@ func (x *IncomingStream) String() string { func (*IncomingStream) ProtoMessage() {} func (x *IncomingStream) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[73] + mi := &file_streamd_proto_msgTypes[75] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3653,7 +3763,7 @@ func (x *IncomingStream) ProtoReflect() protoreflect.Message { // Deprecated: Use IncomingStream.ProtoReflect.Descriptor instead. func (*IncomingStream) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{73} + return file_streamd_proto_rawDescGZIP(), []int{75} } func (x *IncomingStream) GetStreamID() string { @@ -3674,7 +3784,7 @@ type AddIncomingStreamRequest struct { func (x *AddIncomingStreamRequest) Reset() { *x = AddIncomingStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[74] + mi := &file_streamd_proto_msgTypes[76] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3687,7 +3797,7 @@ func (x *AddIncomingStreamRequest) String() string { func (*AddIncomingStreamRequest) ProtoMessage() {} func (x *AddIncomingStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[74] + mi := &file_streamd_proto_msgTypes[76] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3700,7 +3810,7 @@ func (x *AddIncomingStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddIncomingStreamRequest.ProtoReflect.Descriptor instead. func (*AddIncomingStreamRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{74} + return file_streamd_proto_rawDescGZIP(), []int{76} } func (x *AddIncomingStreamRequest) GetStreamID() string { @@ -3719,7 +3829,7 @@ type AddIncomingStreamReply struct { func (x *AddIncomingStreamReply) Reset() { *x = AddIncomingStreamReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[75] + mi := &file_streamd_proto_msgTypes[77] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3732,7 +3842,7 @@ func (x *AddIncomingStreamReply) String() string { func (*AddIncomingStreamReply) ProtoMessage() {} func (x *AddIncomingStreamReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[75] + mi := &file_streamd_proto_msgTypes[77] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3745,7 +3855,7 @@ func (x *AddIncomingStreamReply) ProtoReflect() protoreflect.Message { // Deprecated: Use AddIncomingStreamReply.ProtoReflect.Descriptor instead. func (*AddIncomingStreamReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{75} + return file_streamd_proto_rawDescGZIP(), []int{77} } type RemoveIncomingStreamRequest struct { @@ -3759,7 +3869,7 @@ type RemoveIncomingStreamRequest struct { func (x *RemoveIncomingStreamRequest) Reset() { *x = RemoveIncomingStreamRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[76] + mi := &file_streamd_proto_msgTypes[78] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3772,7 +3882,7 @@ func (x *RemoveIncomingStreamRequest) String() string { func (*RemoveIncomingStreamRequest) ProtoMessage() {} func (x *RemoveIncomingStreamRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[76] + mi := &file_streamd_proto_msgTypes[78] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3785,7 +3895,7 @@ func (x *RemoveIncomingStreamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveIncomingStreamRequest.ProtoReflect.Descriptor instead. func (*RemoveIncomingStreamRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{76} + return file_streamd_proto_rawDescGZIP(), []int{78} } func (x *RemoveIncomingStreamRequest) GetStreamID() string { @@ -3804,7 +3914,7 @@ type RemoveIncomingStreamReply struct { func (x *RemoveIncomingStreamReply) Reset() { *x = RemoveIncomingStreamReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[77] + mi := &file_streamd_proto_msgTypes[79] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3817,7 +3927,7 @@ func (x *RemoveIncomingStreamReply) String() string { func (*RemoveIncomingStreamReply) ProtoMessage() {} func (x *RemoveIncomingStreamReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[77] + mi := &file_streamd_proto_msgTypes[79] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3830,7 +3940,7 @@ func (x *RemoveIncomingStreamReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveIncomingStreamReply.ProtoReflect.Descriptor instead. func (*RemoveIncomingStreamReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{77} + return file_streamd_proto_rawDescGZIP(), []int{79} } type ListIncomingStreamsRequest struct { @@ -3842,7 +3952,7 @@ type ListIncomingStreamsRequest struct { func (x *ListIncomingStreamsRequest) Reset() { *x = ListIncomingStreamsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[78] + mi := &file_streamd_proto_msgTypes[80] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3855,7 +3965,7 @@ func (x *ListIncomingStreamsRequest) String() string { func (*ListIncomingStreamsRequest) ProtoMessage() {} func (x *ListIncomingStreamsRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[78] + mi := &file_streamd_proto_msgTypes[80] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3868,7 +3978,7 @@ func (x *ListIncomingStreamsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListIncomingStreamsRequest.ProtoReflect.Descriptor instead. func (*ListIncomingStreamsRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{78} + return file_streamd_proto_rawDescGZIP(), []int{80} } type ListIncomingStreamsReply struct { @@ -3882,7 +3992,7 @@ type ListIncomingStreamsReply struct { func (x *ListIncomingStreamsReply) Reset() { *x = ListIncomingStreamsReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[79] + mi := &file_streamd_proto_msgTypes[81] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3895,7 +4005,7 @@ func (x *ListIncomingStreamsReply) String() string { func (*ListIncomingStreamsReply) ProtoMessage() {} func (x *ListIncomingStreamsReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[79] + mi := &file_streamd_proto_msgTypes[81] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3908,7 +4018,7 @@ func (x *ListIncomingStreamsReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListIncomingStreamsReply.ProtoReflect.Descriptor instead. func (*ListIncomingStreamsReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{79} + return file_streamd_proto_rawDescGZIP(), []int{81} } func (x *ListIncomingStreamsReply) GetIncomingStreams() []*IncomingStream { @@ -3931,7 +4041,7 @@ type RestartUntilYoutubeRecognizesStream struct { func (x *RestartUntilYoutubeRecognizesStream) Reset() { *x = RestartUntilYoutubeRecognizesStream{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[80] + mi := &file_streamd_proto_msgTypes[82] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3944,7 +4054,7 @@ func (x *RestartUntilYoutubeRecognizesStream) String() string { func (*RestartUntilYoutubeRecognizesStream) ProtoMessage() {} func (x *RestartUntilYoutubeRecognizesStream) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[80] + mi := &file_streamd_proto_msgTypes[82] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3957,7 +4067,7 @@ func (x *RestartUntilYoutubeRecognizesStream) ProtoReflect() protoreflect.Messag // Deprecated: Use RestartUntilYoutubeRecognizesStream.ProtoReflect.Descriptor instead. func (*RestartUntilYoutubeRecognizesStream) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{80} + return file_streamd_proto_rawDescGZIP(), []int{82} } func (x *RestartUntilYoutubeRecognizesStream) GetEnabled() bool { @@ -3992,7 +4102,7 @@ type StreamForwardQuirks struct { func (x *StreamForwardQuirks) Reset() { *x = StreamForwardQuirks{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[81] + mi := &file_streamd_proto_msgTypes[83] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4005,7 +4115,7 @@ func (x *StreamForwardQuirks) String() string { func (*StreamForwardQuirks) ProtoMessage() {} func (x *StreamForwardQuirks) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[81] + mi := &file_streamd_proto_msgTypes[83] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4018,7 +4128,7 @@ func (x *StreamForwardQuirks) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamForwardQuirks.ProtoReflect.Descriptor instead. func (*StreamForwardQuirks) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{81} + return file_streamd_proto_rawDescGZIP(), []int{83} } func (x *StreamForwardQuirks) GetRestartUntilYoutubeRecognizesStream() *RestartUntilYoutubeRecognizesStream { @@ -4042,7 +4152,7 @@ type StreamForward struct { func (x *StreamForward) Reset() { *x = StreamForward{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[82] + mi := &file_streamd_proto_msgTypes[84] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4055,7 +4165,7 @@ func (x *StreamForward) String() string { func (*StreamForward) ProtoMessage() {} func (x *StreamForward) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[82] + mi := &file_streamd_proto_msgTypes[84] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4068,7 +4178,7 @@ func (x *StreamForward) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamForward.ProtoReflect.Descriptor instead. func (*StreamForward) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{82} + return file_streamd_proto_rawDescGZIP(), []int{84} } func (x *StreamForward) GetStreamID() string { @@ -4111,7 +4221,7 @@ type StreamForwardStatistics struct { func (x *StreamForwardStatistics) Reset() { *x = StreamForwardStatistics{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[83] + mi := &file_streamd_proto_msgTypes[85] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4124,7 +4234,7 @@ func (x *StreamForwardStatistics) String() string { func (*StreamForwardStatistics) ProtoMessage() {} func (x *StreamForwardStatistics) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[83] + mi := &file_streamd_proto_msgTypes[85] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4137,7 +4247,7 @@ func (x *StreamForwardStatistics) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamForwardStatistics.ProtoReflect.Descriptor instead. func (*StreamForwardStatistics) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{83} + return file_streamd_proto_rawDescGZIP(), []int{85} } func (x *StreamForwardStatistics) GetNumBytesWrote() int64 { @@ -4166,7 +4276,7 @@ type StreamForwardWithStatistics struct { func (x *StreamForwardWithStatistics) Reset() { *x = StreamForwardWithStatistics{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[84] + mi := &file_streamd_proto_msgTypes[86] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4179,7 +4289,7 @@ func (x *StreamForwardWithStatistics) String() string { func (*StreamForwardWithStatistics) ProtoMessage() {} func (x *StreamForwardWithStatistics) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[84] + mi := &file_streamd_proto_msgTypes[86] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4192,7 +4302,7 @@ func (x *StreamForwardWithStatistics) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamForwardWithStatistics.ProtoReflect.Descriptor instead. func (*StreamForwardWithStatistics) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{84} + return file_streamd_proto_rawDescGZIP(), []int{86} } func (x *StreamForwardWithStatistics) GetConfig() *StreamForward { @@ -4218,7 +4328,7 @@ type ListStreamForwardsRequest struct { func (x *ListStreamForwardsRequest) Reset() { *x = ListStreamForwardsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[85] + mi := &file_streamd_proto_msgTypes[87] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4231,7 +4341,7 @@ func (x *ListStreamForwardsRequest) String() string { func (*ListStreamForwardsRequest) ProtoMessage() {} func (x *ListStreamForwardsRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[85] + mi := &file_streamd_proto_msgTypes[87] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4244,7 +4354,7 @@ func (x *ListStreamForwardsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamForwardsRequest.ProtoReflect.Descriptor instead. func (*ListStreamForwardsRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{85} + return file_streamd_proto_rawDescGZIP(), []int{87} } type ListStreamForwardsReply struct { @@ -4258,7 +4368,7 @@ type ListStreamForwardsReply struct { func (x *ListStreamForwardsReply) Reset() { *x = ListStreamForwardsReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[86] + mi := &file_streamd_proto_msgTypes[88] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4271,7 +4381,7 @@ func (x *ListStreamForwardsReply) String() string { func (*ListStreamForwardsReply) ProtoMessage() {} func (x *ListStreamForwardsReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[86] + mi := &file_streamd_proto_msgTypes[88] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4284,7 +4394,7 @@ func (x *ListStreamForwardsReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamForwardsReply.ProtoReflect.Descriptor instead. func (*ListStreamForwardsReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{86} + return file_streamd_proto_rawDescGZIP(), []int{88} } func (x *ListStreamForwardsReply) GetStreamForwards() []*StreamForwardWithStatistics { @@ -4305,7 +4415,7 @@ type AddStreamForwardRequest struct { func (x *AddStreamForwardRequest) Reset() { *x = AddStreamForwardRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[87] + mi := &file_streamd_proto_msgTypes[89] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4318,7 +4428,7 @@ func (x *AddStreamForwardRequest) String() string { func (*AddStreamForwardRequest) ProtoMessage() {} func (x *AddStreamForwardRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[87] + mi := &file_streamd_proto_msgTypes[89] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4331,7 +4441,7 @@ func (x *AddStreamForwardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddStreamForwardRequest.ProtoReflect.Descriptor instead. func (*AddStreamForwardRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{87} + return file_streamd_proto_rawDescGZIP(), []int{89} } func (x *AddStreamForwardRequest) GetConfig() *StreamForward { @@ -4350,7 +4460,7 @@ type AddStreamForwardReply struct { func (x *AddStreamForwardReply) Reset() { *x = AddStreamForwardReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[88] + mi := &file_streamd_proto_msgTypes[90] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4363,7 +4473,7 @@ func (x *AddStreamForwardReply) String() string { func (*AddStreamForwardReply) ProtoMessage() {} func (x *AddStreamForwardReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[88] + mi := &file_streamd_proto_msgTypes[90] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4376,7 +4486,7 @@ func (x *AddStreamForwardReply) ProtoReflect() protoreflect.Message { // Deprecated: Use AddStreamForwardReply.ProtoReflect.Descriptor instead. func (*AddStreamForwardReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{88} + return file_streamd_proto_rawDescGZIP(), []int{90} } type UpdateStreamForwardRequest struct { @@ -4390,7 +4500,7 @@ type UpdateStreamForwardRequest struct { func (x *UpdateStreamForwardRequest) Reset() { *x = UpdateStreamForwardRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[89] + mi := &file_streamd_proto_msgTypes[91] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4403,7 +4513,7 @@ func (x *UpdateStreamForwardRequest) String() string { func (*UpdateStreamForwardRequest) ProtoMessage() {} func (x *UpdateStreamForwardRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[89] + mi := &file_streamd_proto_msgTypes[91] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4416,7 +4526,7 @@ func (x *UpdateStreamForwardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStreamForwardRequest.ProtoReflect.Descriptor instead. func (*UpdateStreamForwardRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{89} + return file_streamd_proto_rawDescGZIP(), []int{91} } func (x *UpdateStreamForwardRequest) GetConfig() *StreamForward { @@ -4435,7 +4545,7 @@ type UpdateStreamForwardReply struct { func (x *UpdateStreamForwardReply) Reset() { *x = UpdateStreamForwardReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[90] + mi := &file_streamd_proto_msgTypes[92] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4448,7 +4558,7 @@ func (x *UpdateStreamForwardReply) String() string { func (*UpdateStreamForwardReply) ProtoMessage() {} func (x *UpdateStreamForwardReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[90] + mi := &file_streamd_proto_msgTypes[92] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4461,7 +4571,7 @@ func (x *UpdateStreamForwardReply) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStreamForwardReply.ProtoReflect.Descriptor instead. func (*UpdateStreamForwardReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{90} + return file_streamd_proto_rawDescGZIP(), []int{92} } type RemoveStreamForwardRequest struct { @@ -4475,7 +4585,7 @@ type RemoveStreamForwardRequest struct { func (x *RemoveStreamForwardRequest) Reset() { *x = RemoveStreamForwardRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[91] + mi := &file_streamd_proto_msgTypes[93] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4488,7 +4598,7 @@ func (x *RemoveStreamForwardRequest) String() string { func (*RemoveStreamForwardRequest) ProtoMessage() {} func (x *RemoveStreamForwardRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[91] + mi := &file_streamd_proto_msgTypes[93] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4501,7 +4611,7 @@ func (x *RemoveStreamForwardRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveStreamForwardRequest.ProtoReflect.Descriptor instead. func (*RemoveStreamForwardRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{91} + return file_streamd_proto_rawDescGZIP(), []int{93} } func (x *RemoveStreamForwardRequest) GetConfig() *StreamForward { @@ -4520,7 +4630,7 @@ type RemoveStreamForwardReply struct { func (x *RemoveStreamForwardReply) Reset() { *x = RemoveStreamForwardReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[92] + mi := &file_streamd_proto_msgTypes[94] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4533,7 +4643,7 @@ func (x *RemoveStreamForwardReply) String() string { func (*RemoveStreamForwardReply) ProtoMessage() {} func (x *RemoveStreamForwardReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[92] + mi := &file_streamd_proto_msgTypes[94] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4546,7 +4656,7 @@ func (x *RemoveStreamForwardReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveStreamForwardReply.ProtoReflect.Descriptor instead. func (*RemoveStreamForwardReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{92} + return file_streamd_proto_rawDescGZIP(), []int{94} } type WaitForStreamPublisherRequest struct { @@ -4560,7 +4670,7 @@ type WaitForStreamPublisherRequest struct { func (x *WaitForStreamPublisherRequest) Reset() { *x = WaitForStreamPublisherRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[93] + mi := &file_streamd_proto_msgTypes[95] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4573,7 +4683,7 @@ func (x *WaitForStreamPublisherRequest) String() string { func (*WaitForStreamPublisherRequest) ProtoMessage() {} func (x *WaitForStreamPublisherRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[93] + mi := &file_streamd_proto_msgTypes[95] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4586,7 +4696,7 @@ func (x *WaitForStreamPublisherRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use WaitForStreamPublisherRequest.ProtoReflect.Descriptor instead. func (*WaitForStreamPublisherRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{93} + return file_streamd_proto_rawDescGZIP(), []int{95} } func (x *WaitForStreamPublisherRequest) GetStreamID() string { @@ -4605,7 +4715,7 @@ type StreamPublisher struct { func (x *StreamPublisher) Reset() { *x = StreamPublisher{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[94] + mi := &file_streamd_proto_msgTypes[96] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4618,7 +4728,7 @@ func (x *StreamPublisher) String() string { func (*StreamPublisher) ProtoMessage() {} func (x *StreamPublisher) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[94] + mi := &file_streamd_proto_msgTypes[96] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4631,7 +4741,7 @@ func (x *StreamPublisher) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPublisher.ProtoReflect.Descriptor instead. func (*StreamPublisher) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{94} + return file_streamd_proto_rawDescGZIP(), []int{96} } type StreamPlaybackConfig struct { @@ -4649,7 +4759,7 @@ type StreamPlaybackConfig struct { func (x *StreamPlaybackConfig) Reset() { *x = StreamPlaybackConfig{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[95] + mi := &file_streamd_proto_msgTypes[97] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4662,7 +4772,7 @@ func (x *StreamPlaybackConfig) String() string { func (*StreamPlaybackConfig) ProtoMessage() {} func (x *StreamPlaybackConfig) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[95] + mi := &file_streamd_proto_msgTypes[97] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4675,7 +4785,7 @@ func (x *StreamPlaybackConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlaybackConfig.ProtoReflect.Descriptor instead. func (*StreamPlaybackConfig) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{95} + return file_streamd_proto_rawDescGZIP(), []int{97} } func (x *StreamPlaybackConfig) GetJitterBufDurationSecs() float64 { @@ -4727,7 +4837,7 @@ type StreamPlayerConfig struct { func (x *StreamPlayerConfig) Reset() { *x = StreamPlayerConfig{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[96] + mi := &file_streamd_proto_msgTypes[98] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4740,7 +4850,7 @@ func (x *StreamPlayerConfig) String() string { func (*StreamPlayerConfig) ProtoMessage() {} func (x *StreamPlayerConfig) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[96] + mi := &file_streamd_proto_msgTypes[98] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4753,7 +4863,7 @@ func (x *StreamPlayerConfig) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerConfig.ProtoReflect.Descriptor instead. func (*StreamPlayerConfig) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{96} + return file_streamd_proto_rawDescGZIP(), []int{98} } func (x *StreamPlayerConfig) GetStreamID() string { @@ -4795,7 +4905,7 @@ type AddStreamPlayerRequest struct { func (x *AddStreamPlayerRequest) Reset() { *x = AddStreamPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[97] + mi := &file_streamd_proto_msgTypes[99] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4808,7 +4918,7 @@ func (x *AddStreamPlayerRequest) String() string { func (*AddStreamPlayerRequest) ProtoMessage() {} func (x *AddStreamPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[97] + mi := &file_streamd_proto_msgTypes[99] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4821,7 +4931,7 @@ func (x *AddStreamPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use AddStreamPlayerRequest.ProtoReflect.Descriptor instead. func (*AddStreamPlayerRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{97} + return file_streamd_proto_rawDescGZIP(), []int{99} } func (x *AddStreamPlayerRequest) GetConfig() *StreamPlayerConfig { @@ -4840,7 +4950,7 @@ type AddStreamPlayerReply struct { func (x *AddStreamPlayerReply) Reset() { *x = AddStreamPlayerReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[98] + mi := &file_streamd_proto_msgTypes[100] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4853,7 +4963,7 @@ func (x *AddStreamPlayerReply) String() string { func (*AddStreamPlayerReply) ProtoMessage() {} func (x *AddStreamPlayerReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[98] + mi := &file_streamd_proto_msgTypes[100] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4866,7 +4976,7 @@ func (x *AddStreamPlayerReply) ProtoReflect() protoreflect.Message { // Deprecated: Use AddStreamPlayerReply.ProtoReflect.Descriptor instead. func (*AddStreamPlayerReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{98} + return file_streamd_proto_rawDescGZIP(), []int{100} } type RemoveStreamPlayerRequest struct { @@ -4880,7 +4990,7 @@ type RemoveStreamPlayerRequest struct { func (x *RemoveStreamPlayerRequest) Reset() { *x = RemoveStreamPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[99] + mi := &file_streamd_proto_msgTypes[101] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4893,7 +5003,7 @@ func (x *RemoveStreamPlayerRequest) String() string { func (*RemoveStreamPlayerRequest) ProtoMessage() {} func (x *RemoveStreamPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[99] + mi := &file_streamd_proto_msgTypes[101] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4906,7 +5016,7 @@ func (x *RemoveStreamPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveStreamPlayerRequest.ProtoReflect.Descriptor instead. func (*RemoveStreamPlayerRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{99} + return file_streamd_proto_rawDescGZIP(), []int{101} } func (x *RemoveStreamPlayerRequest) GetStreamID() string { @@ -4925,7 +5035,7 @@ type RemoveStreamPlayerReply struct { func (x *RemoveStreamPlayerReply) Reset() { *x = RemoveStreamPlayerReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[100] + mi := &file_streamd_proto_msgTypes[102] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4938,7 +5048,7 @@ func (x *RemoveStreamPlayerReply) String() string { func (*RemoveStreamPlayerReply) ProtoMessage() {} func (x *RemoveStreamPlayerReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[100] + mi := &file_streamd_proto_msgTypes[102] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4951,7 +5061,7 @@ func (x *RemoveStreamPlayerReply) ProtoReflect() protoreflect.Message { // Deprecated: Use RemoveStreamPlayerReply.ProtoReflect.Descriptor instead. func (*RemoveStreamPlayerReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{100} + return file_streamd_proto_rawDescGZIP(), []int{102} } type UpdateStreamPlayerRequest struct { @@ -4965,7 +5075,7 @@ type UpdateStreamPlayerRequest struct { func (x *UpdateStreamPlayerRequest) Reset() { *x = UpdateStreamPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[101] + mi := &file_streamd_proto_msgTypes[103] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4978,7 +5088,7 @@ func (x *UpdateStreamPlayerRequest) String() string { func (*UpdateStreamPlayerRequest) ProtoMessage() {} func (x *UpdateStreamPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[101] + mi := &file_streamd_proto_msgTypes[103] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4991,7 +5101,7 @@ func (x *UpdateStreamPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStreamPlayerRequest.ProtoReflect.Descriptor instead. func (*UpdateStreamPlayerRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{101} + return file_streamd_proto_rawDescGZIP(), []int{103} } func (x *UpdateStreamPlayerRequest) GetConfig() *StreamPlayerConfig { @@ -5010,7 +5120,7 @@ type UpdateStreamPlayerReply struct { func (x *UpdateStreamPlayerReply) Reset() { *x = UpdateStreamPlayerReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[102] + mi := &file_streamd_proto_msgTypes[104] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5023,7 +5133,7 @@ func (x *UpdateStreamPlayerReply) String() string { func (*UpdateStreamPlayerReply) ProtoMessage() {} func (x *UpdateStreamPlayerReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[102] + mi := &file_streamd_proto_msgTypes[104] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5036,7 +5146,7 @@ func (x *UpdateStreamPlayerReply) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateStreamPlayerReply.ProtoReflect.Descriptor instead. func (*UpdateStreamPlayerReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{102} + return file_streamd_proto_rawDescGZIP(), []int{104} } type ListStreamPlayersRequest struct { @@ -5048,7 +5158,7 @@ type ListStreamPlayersRequest struct { func (x *ListStreamPlayersRequest) Reset() { *x = ListStreamPlayersRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[103] + mi := &file_streamd_proto_msgTypes[105] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5061,7 +5171,7 @@ func (x *ListStreamPlayersRequest) String() string { func (*ListStreamPlayersRequest) ProtoMessage() {} func (x *ListStreamPlayersRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[103] + mi := &file_streamd_proto_msgTypes[105] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5074,7 +5184,7 @@ func (x *ListStreamPlayersRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamPlayersRequest.ProtoReflect.Descriptor instead. func (*ListStreamPlayersRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{103} + return file_streamd_proto_rawDescGZIP(), []int{105} } type ListStreamPlayersReply struct { @@ -5088,7 +5198,7 @@ type ListStreamPlayersReply struct { func (x *ListStreamPlayersReply) Reset() { *x = ListStreamPlayersReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[104] + mi := &file_streamd_proto_msgTypes[106] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5101,7 +5211,7 @@ func (x *ListStreamPlayersReply) String() string { func (*ListStreamPlayersReply) ProtoMessage() {} func (x *ListStreamPlayersReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[104] + mi := &file_streamd_proto_msgTypes[106] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5114,7 +5224,7 @@ func (x *ListStreamPlayersReply) ProtoReflect() protoreflect.Message { // Deprecated: Use ListStreamPlayersReply.ProtoReflect.Descriptor instead. func (*ListStreamPlayersReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{104} + return file_streamd_proto_rawDescGZIP(), []int{106} } func (x *ListStreamPlayersReply) GetPlayers() []*StreamPlayerConfig { @@ -5135,7 +5245,7 @@ type GetStreamPlayerRequest struct { func (x *GetStreamPlayerRequest) Reset() { *x = GetStreamPlayerRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[105] + mi := &file_streamd_proto_msgTypes[107] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5148,7 +5258,7 @@ func (x *GetStreamPlayerRequest) String() string { func (*GetStreamPlayerRequest) ProtoMessage() {} func (x *GetStreamPlayerRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[105] + mi := &file_streamd_proto_msgTypes[107] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5161,7 +5271,7 @@ func (x *GetStreamPlayerRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStreamPlayerRequest.ProtoReflect.Descriptor instead. func (*GetStreamPlayerRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{105} + return file_streamd_proto_rawDescGZIP(), []int{107} } func (x *GetStreamPlayerRequest) GetStreamID() string { @@ -5182,7 +5292,7 @@ type GetStreamPlayerReply struct { func (x *GetStreamPlayerReply) Reset() { *x = GetStreamPlayerReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[106] + mi := &file_streamd_proto_msgTypes[108] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5195,7 +5305,7 @@ func (x *GetStreamPlayerReply) String() string { func (*GetStreamPlayerReply) ProtoMessage() {} func (x *GetStreamPlayerReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[106] + mi := &file_streamd_proto_msgTypes[108] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5208,7 +5318,7 @@ func (x *GetStreamPlayerReply) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStreamPlayerReply.ProtoReflect.Descriptor instead. func (*GetStreamPlayerReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{106} + return file_streamd_proto_rawDescGZIP(), []int{108} } func (x *GetStreamPlayerReply) GetConfig() *StreamPlayerConfig { @@ -5230,7 +5340,7 @@ type StreamPlayerOpenRequest struct { func (x *StreamPlayerOpenRequest) Reset() { *x = StreamPlayerOpenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[107] + mi := &file_streamd_proto_msgTypes[109] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5243,7 +5353,7 @@ func (x *StreamPlayerOpenRequest) String() string { func (*StreamPlayerOpenRequest) ProtoMessage() {} func (x *StreamPlayerOpenRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[107] + mi := &file_streamd_proto_msgTypes[109] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5256,7 +5366,7 @@ func (x *StreamPlayerOpenRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerOpenRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerOpenRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{107} + return file_streamd_proto_rawDescGZIP(), []int{109} } func (x *StreamPlayerOpenRequest) GetStreamID() string { @@ -5284,7 +5394,7 @@ type StreamPlayerOpenReply struct { func (x *StreamPlayerOpenReply) Reset() { *x = StreamPlayerOpenReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[108] + mi := &file_streamd_proto_msgTypes[110] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5297,7 +5407,7 @@ func (x *StreamPlayerOpenReply) String() string { func (*StreamPlayerOpenReply) ProtoMessage() {} func (x *StreamPlayerOpenReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[108] + mi := &file_streamd_proto_msgTypes[110] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5310,7 +5420,7 @@ func (x *StreamPlayerOpenReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerOpenReply.ProtoReflect.Descriptor instead. func (*StreamPlayerOpenReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{108} + return file_streamd_proto_rawDescGZIP(), []int{110} } func (x *StreamPlayerOpenReply) GetReply() *player_grpc.OpenReply { @@ -5332,7 +5442,7 @@ type StreamPlayerProcessTitleRequest struct { func (x *StreamPlayerProcessTitleRequest) Reset() { *x = StreamPlayerProcessTitleRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[109] + mi := &file_streamd_proto_msgTypes[111] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5345,7 +5455,7 @@ func (x *StreamPlayerProcessTitleRequest) String() string { func (*StreamPlayerProcessTitleRequest) ProtoMessage() {} func (x *StreamPlayerProcessTitleRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[109] + mi := &file_streamd_proto_msgTypes[111] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5358,7 +5468,7 @@ func (x *StreamPlayerProcessTitleRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerProcessTitleRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerProcessTitleRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{109} + return file_streamd_proto_rawDescGZIP(), []int{111} } func (x *StreamPlayerProcessTitleRequest) GetStreamID() string { @@ -5386,7 +5496,7 @@ type StreamPlayerProcessTitleReply struct { func (x *StreamPlayerProcessTitleReply) Reset() { *x = StreamPlayerProcessTitleReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[110] + mi := &file_streamd_proto_msgTypes[112] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5399,7 +5509,7 @@ func (x *StreamPlayerProcessTitleReply) String() string { func (*StreamPlayerProcessTitleReply) ProtoMessage() {} func (x *StreamPlayerProcessTitleReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[110] + mi := &file_streamd_proto_msgTypes[112] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5412,7 +5522,7 @@ func (x *StreamPlayerProcessTitleReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerProcessTitleReply.ProtoReflect.Descriptor instead. func (*StreamPlayerProcessTitleReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{110} + return file_streamd_proto_rawDescGZIP(), []int{112} } func (x *StreamPlayerProcessTitleReply) GetReply() *player_grpc.ProcessTitleReply { @@ -5434,7 +5544,7 @@ type StreamPlayerGetLinkRequest struct { func (x *StreamPlayerGetLinkRequest) Reset() { *x = StreamPlayerGetLinkRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[111] + mi := &file_streamd_proto_msgTypes[113] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5447,7 +5557,7 @@ func (x *StreamPlayerGetLinkRequest) String() string { func (*StreamPlayerGetLinkRequest) ProtoMessage() {} func (x *StreamPlayerGetLinkRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[111] + mi := &file_streamd_proto_msgTypes[113] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5460,7 +5570,7 @@ func (x *StreamPlayerGetLinkRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerGetLinkRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerGetLinkRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{111} + return file_streamd_proto_rawDescGZIP(), []int{113} } func (x *StreamPlayerGetLinkRequest) GetStreamID() string { @@ -5488,7 +5598,7 @@ type StreamPlayerGetLinkReply struct { func (x *StreamPlayerGetLinkReply) Reset() { *x = StreamPlayerGetLinkReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[112] + mi := &file_streamd_proto_msgTypes[114] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5501,7 +5611,7 @@ func (x *StreamPlayerGetLinkReply) String() string { func (*StreamPlayerGetLinkReply) ProtoMessage() {} func (x *StreamPlayerGetLinkReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[112] + mi := &file_streamd_proto_msgTypes[114] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5514,7 +5624,7 @@ func (x *StreamPlayerGetLinkReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerGetLinkReply.ProtoReflect.Descriptor instead. func (*StreamPlayerGetLinkReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{112} + return file_streamd_proto_rawDescGZIP(), []int{114} } func (x *StreamPlayerGetLinkReply) GetReply() *player_grpc.GetLinkReply { @@ -5536,7 +5646,7 @@ type StreamPlayerEndChanRequest struct { func (x *StreamPlayerEndChanRequest) Reset() { *x = StreamPlayerEndChanRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[113] + mi := &file_streamd_proto_msgTypes[115] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5549,7 +5659,7 @@ func (x *StreamPlayerEndChanRequest) String() string { func (*StreamPlayerEndChanRequest) ProtoMessage() {} func (x *StreamPlayerEndChanRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[113] + mi := &file_streamd_proto_msgTypes[115] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5562,7 +5672,7 @@ func (x *StreamPlayerEndChanRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerEndChanRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerEndChanRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{113} + return file_streamd_proto_rawDescGZIP(), []int{115} } func (x *StreamPlayerEndChanRequest) GetStreamID() string { @@ -5590,7 +5700,7 @@ type StreamPlayerEndChanReply struct { func (x *StreamPlayerEndChanReply) Reset() { *x = StreamPlayerEndChanReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[114] + mi := &file_streamd_proto_msgTypes[116] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5603,7 +5713,7 @@ func (x *StreamPlayerEndChanReply) String() string { func (*StreamPlayerEndChanReply) ProtoMessage() {} func (x *StreamPlayerEndChanReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[114] + mi := &file_streamd_proto_msgTypes[116] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5616,7 +5726,7 @@ func (x *StreamPlayerEndChanReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerEndChanReply.ProtoReflect.Descriptor instead. func (*StreamPlayerEndChanReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{114} + return file_streamd_proto_rawDescGZIP(), []int{116} } func (x *StreamPlayerEndChanReply) GetReply() *player_grpc.EndChanReply { @@ -5638,7 +5748,7 @@ type StreamPlayerIsEndedRequest struct { func (x *StreamPlayerIsEndedRequest) Reset() { *x = StreamPlayerIsEndedRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[115] + mi := &file_streamd_proto_msgTypes[117] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5651,7 +5761,7 @@ func (x *StreamPlayerIsEndedRequest) String() string { func (*StreamPlayerIsEndedRequest) ProtoMessage() {} func (x *StreamPlayerIsEndedRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[115] + mi := &file_streamd_proto_msgTypes[117] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5664,7 +5774,7 @@ func (x *StreamPlayerIsEndedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerIsEndedRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerIsEndedRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{115} + return file_streamd_proto_rawDescGZIP(), []int{117} } func (x *StreamPlayerIsEndedRequest) GetStreamID() string { @@ -5692,7 +5802,7 @@ type StreamPlayerIsEndedReply struct { func (x *StreamPlayerIsEndedReply) Reset() { *x = StreamPlayerIsEndedReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[116] + mi := &file_streamd_proto_msgTypes[118] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5705,7 +5815,7 @@ func (x *StreamPlayerIsEndedReply) String() string { func (*StreamPlayerIsEndedReply) ProtoMessage() {} func (x *StreamPlayerIsEndedReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[116] + mi := &file_streamd_proto_msgTypes[118] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5718,7 +5828,7 @@ func (x *StreamPlayerIsEndedReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerIsEndedReply.ProtoReflect.Descriptor instead. func (*StreamPlayerIsEndedReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{116} + return file_streamd_proto_rawDescGZIP(), []int{118} } func (x *StreamPlayerIsEndedReply) GetReply() *player_grpc.IsEndedReply { @@ -5740,7 +5850,7 @@ type StreamPlayerGetPositionRequest struct { func (x *StreamPlayerGetPositionRequest) Reset() { *x = StreamPlayerGetPositionRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[117] + mi := &file_streamd_proto_msgTypes[119] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5753,7 +5863,7 @@ func (x *StreamPlayerGetPositionRequest) String() string { func (*StreamPlayerGetPositionRequest) ProtoMessage() {} func (x *StreamPlayerGetPositionRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[117] + mi := &file_streamd_proto_msgTypes[119] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5766,7 +5876,7 @@ func (x *StreamPlayerGetPositionRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerGetPositionRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerGetPositionRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{117} + return file_streamd_proto_rawDescGZIP(), []int{119} } func (x *StreamPlayerGetPositionRequest) GetStreamID() string { @@ -5794,7 +5904,7 @@ type StreamPlayerGetPositionReply struct { func (x *StreamPlayerGetPositionReply) Reset() { *x = StreamPlayerGetPositionReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[118] + mi := &file_streamd_proto_msgTypes[120] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5807,7 +5917,7 @@ func (x *StreamPlayerGetPositionReply) String() string { func (*StreamPlayerGetPositionReply) ProtoMessage() {} func (x *StreamPlayerGetPositionReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[118] + mi := &file_streamd_proto_msgTypes[120] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5820,7 +5930,7 @@ func (x *StreamPlayerGetPositionReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerGetPositionReply.ProtoReflect.Descriptor instead. func (*StreamPlayerGetPositionReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{118} + return file_streamd_proto_rawDescGZIP(), []int{120} } func (x *StreamPlayerGetPositionReply) GetReply() *player_grpc.GetPositionReply { @@ -5842,7 +5952,7 @@ type StreamPlayerGetLengthRequest struct { func (x *StreamPlayerGetLengthRequest) Reset() { *x = StreamPlayerGetLengthRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[119] + mi := &file_streamd_proto_msgTypes[121] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5855,7 +5965,7 @@ func (x *StreamPlayerGetLengthRequest) String() string { func (*StreamPlayerGetLengthRequest) ProtoMessage() {} func (x *StreamPlayerGetLengthRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[119] + mi := &file_streamd_proto_msgTypes[121] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5868,7 +5978,7 @@ func (x *StreamPlayerGetLengthRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerGetLengthRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerGetLengthRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{119} + return file_streamd_proto_rawDescGZIP(), []int{121} } func (x *StreamPlayerGetLengthRequest) GetStreamID() string { @@ -5896,7 +6006,7 @@ type StreamPlayerGetLengthReply struct { func (x *StreamPlayerGetLengthReply) Reset() { *x = StreamPlayerGetLengthReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[120] + mi := &file_streamd_proto_msgTypes[122] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5909,7 +6019,7 @@ func (x *StreamPlayerGetLengthReply) String() string { func (*StreamPlayerGetLengthReply) ProtoMessage() {} func (x *StreamPlayerGetLengthReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[120] + mi := &file_streamd_proto_msgTypes[122] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5922,7 +6032,7 @@ func (x *StreamPlayerGetLengthReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerGetLengthReply.ProtoReflect.Descriptor instead. func (*StreamPlayerGetLengthReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{120} + return file_streamd_proto_rawDescGZIP(), []int{122} } func (x *StreamPlayerGetLengthReply) GetReply() *player_grpc.GetLengthReply { @@ -5944,7 +6054,7 @@ type StreamPlayerSetSpeedRequest struct { func (x *StreamPlayerSetSpeedRequest) Reset() { *x = StreamPlayerSetSpeedRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[121] + mi := &file_streamd_proto_msgTypes[123] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -5957,7 +6067,7 @@ func (x *StreamPlayerSetSpeedRequest) String() string { func (*StreamPlayerSetSpeedRequest) ProtoMessage() {} func (x *StreamPlayerSetSpeedRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[121] + mi := &file_streamd_proto_msgTypes[123] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -5970,7 +6080,7 @@ func (x *StreamPlayerSetSpeedRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerSetSpeedRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerSetSpeedRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{121} + return file_streamd_proto_rawDescGZIP(), []int{123} } func (x *StreamPlayerSetSpeedRequest) GetStreamID() string { @@ -5998,7 +6108,7 @@ type StreamPlayerSetSpeedReply struct { func (x *StreamPlayerSetSpeedReply) Reset() { *x = StreamPlayerSetSpeedReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[122] + mi := &file_streamd_proto_msgTypes[124] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6011,7 +6121,7 @@ func (x *StreamPlayerSetSpeedReply) String() string { func (*StreamPlayerSetSpeedReply) ProtoMessage() {} func (x *StreamPlayerSetSpeedReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[122] + mi := &file_streamd_proto_msgTypes[124] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6024,7 +6134,7 @@ func (x *StreamPlayerSetSpeedReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerSetSpeedReply.ProtoReflect.Descriptor instead. func (*StreamPlayerSetSpeedReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{122} + return file_streamd_proto_rawDescGZIP(), []int{124} } func (x *StreamPlayerSetSpeedReply) GetReply() *player_grpc.SetSpeedReply { @@ -6046,7 +6156,7 @@ type StreamPlayerSetPauseRequest struct { func (x *StreamPlayerSetPauseRequest) Reset() { *x = StreamPlayerSetPauseRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[123] + mi := &file_streamd_proto_msgTypes[125] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6059,7 +6169,7 @@ func (x *StreamPlayerSetPauseRequest) String() string { func (*StreamPlayerSetPauseRequest) ProtoMessage() {} func (x *StreamPlayerSetPauseRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[123] + mi := &file_streamd_proto_msgTypes[125] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6072,7 +6182,7 @@ func (x *StreamPlayerSetPauseRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerSetPauseRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerSetPauseRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{123} + return file_streamd_proto_rawDescGZIP(), []int{125} } func (x *StreamPlayerSetPauseRequest) GetStreamID() string { @@ -6100,7 +6210,7 @@ type StreamPlayerSetPauseReply struct { func (x *StreamPlayerSetPauseReply) Reset() { *x = StreamPlayerSetPauseReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[124] + mi := &file_streamd_proto_msgTypes[126] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6113,7 +6223,7 @@ func (x *StreamPlayerSetPauseReply) String() string { func (*StreamPlayerSetPauseReply) ProtoMessage() {} func (x *StreamPlayerSetPauseReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[124] + mi := &file_streamd_proto_msgTypes[126] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6126,7 +6236,7 @@ func (x *StreamPlayerSetPauseReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerSetPauseReply.ProtoReflect.Descriptor instead. func (*StreamPlayerSetPauseReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{124} + return file_streamd_proto_rawDescGZIP(), []int{126} } func (x *StreamPlayerSetPauseReply) GetReply() *player_grpc.SetPauseReply { @@ -6148,7 +6258,7 @@ type StreamPlayerStopRequest struct { func (x *StreamPlayerStopRequest) Reset() { *x = StreamPlayerStopRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[125] + mi := &file_streamd_proto_msgTypes[127] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6161,7 +6271,7 @@ func (x *StreamPlayerStopRequest) String() string { func (*StreamPlayerStopRequest) ProtoMessage() {} func (x *StreamPlayerStopRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[125] + mi := &file_streamd_proto_msgTypes[127] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6174,7 +6284,7 @@ func (x *StreamPlayerStopRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerStopRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerStopRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{125} + return file_streamd_proto_rawDescGZIP(), []int{127} } func (x *StreamPlayerStopRequest) GetStreamID() string { @@ -6202,7 +6312,7 @@ type StreamPlayerStopReply struct { func (x *StreamPlayerStopReply) Reset() { *x = StreamPlayerStopReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[126] + mi := &file_streamd_proto_msgTypes[128] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6215,7 +6325,7 @@ func (x *StreamPlayerStopReply) String() string { func (*StreamPlayerStopReply) ProtoMessage() {} func (x *StreamPlayerStopReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[126] + mi := &file_streamd_proto_msgTypes[128] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6228,7 +6338,7 @@ func (x *StreamPlayerStopReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerStopReply.ProtoReflect.Descriptor instead. func (*StreamPlayerStopReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{126} + return file_streamd_proto_rawDescGZIP(), []int{128} } func (x *StreamPlayerStopReply) GetReply() *player_grpc.StopReply { @@ -6250,7 +6360,7 @@ type StreamPlayerCloseRequest struct { func (x *StreamPlayerCloseRequest) Reset() { *x = StreamPlayerCloseRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[127] + mi := &file_streamd_proto_msgTypes[129] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6263,7 +6373,7 @@ func (x *StreamPlayerCloseRequest) String() string { func (*StreamPlayerCloseRequest) ProtoMessage() {} func (x *StreamPlayerCloseRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[127] + mi := &file_streamd_proto_msgTypes[129] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6276,7 +6386,7 @@ func (x *StreamPlayerCloseRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerCloseRequest.ProtoReflect.Descriptor instead. func (*StreamPlayerCloseRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{127} + return file_streamd_proto_rawDescGZIP(), []int{129} } func (x *StreamPlayerCloseRequest) GetStreamID() string { @@ -6304,7 +6414,7 @@ type StreamPlayerCloseReply struct { func (x *StreamPlayerCloseReply) Reset() { *x = StreamPlayerCloseReply{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[128] + mi := &file_streamd_proto_msgTypes[130] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6317,7 +6427,7 @@ func (x *StreamPlayerCloseReply) String() string { func (*StreamPlayerCloseReply) ProtoMessage() {} func (x *StreamPlayerCloseReply) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[128] + mi := &file_streamd_proto_msgTypes[130] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6330,7 +6440,7 @@ func (x *StreamPlayerCloseReply) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayerCloseReply.ProtoReflect.Descriptor instead. func (*StreamPlayerCloseReply) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{128} + return file_streamd_proto_rawDescGZIP(), []int{130} } func (x *StreamPlayerCloseReply) GetReply() *player_grpc.CloseReply { @@ -6349,7 +6459,7 @@ type SubscribeToConfigChangesRequest struct { func (x *SubscribeToConfigChangesRequest) Reset() { *x = SubscribeToConfigChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[129] + mi := &file_streamd_proto_msgTypes[131] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6362,7 +6472,7 @@ func (x *SubscribeToConfigChangesRequest) String() string { func (*SubscribeToConfigChangesRequest) ProtoMessage() {} func (x *SubscribeToConfigChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[129] + mi := &file_streamd_proto_msgTypes[131] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6375,7 +6485,7 @@ func (x *SubscribeToConfigChangesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeToConfigChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToConfigChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{129} + return file_streamd_proto_rawDescGZIP(), []int{131} } type ConfigChange struct { @@ -6387,7 +6497,7 @@ type ConfigChange struct { func (x *ConfigChange) Reset() { *x = ConfigChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[130] + mi := &file_streamd_proto_msgTypes[132] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6400,7 +6510,7 @@ func (x *ConfigChange) String() string { func (*ConfigChange) ProtoMessage() {} func (x *ConfigChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[130] + mi := &file_streamd_proto_msgTypes[132] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6413,7 +6523,7 @@ func (x *ConfigChange) ProtoReflect() protoreflect.Message { // Deprecated: Use ConfigChange.ProtoReflect.Descriptor instead. func (*ConfigChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{130} + return file_streamd_proto_rawDescGZIP(), []int{132} } type SubscribeToStreamsChangesRequest struct { @@ -6425,7 +6535,7 @@ type SubscribeToStreamsChangesRequest struct { func (x *SubscribeToStreamsChangesRequest) Reset() { *x = SubscribeToStreamsChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[131] + mi := &file_streamd_proto_msgTypes[133] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6438,7 +6548,7 @@ func (x *SubscribeToStreamsChangesRequest) String() string { func (*SubscribeToStreamsChangesRequest) ProtoMessage() {} func (x *SubscribeToStreamsChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[131] + mi := &file_streamd_proto_msgTypes[133] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6451,7 +6561,7 @@ func (x *SubscribeToStreamsChangesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SubscribeToStreamsChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToStreamsChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{131} + return file_streamd_proto_rawDescGZIP(), []int{133} } type StreamsChange struct { @@ -6463,7 +6573,7 @@ type StreamsChange struct { func (x *StreamsChange) Reset() { *x = StreamsChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[132] + mi := &file_streamd_proto_msgTypes[134] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6476,7 +6586,7 @@ func (x *StreamsChange) String() string { func (*StreamsChange) ProtoMessage() {} func (x *StreamsChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[132] + mi := &file_streamd_proto_msgTypes[134] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6489,7 +6599,7 @@ func (x *StreamsChange) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamsChange.ProtoReflect.Descriptor instead. func (*StreamsChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{132} + return file_streamd_proto_rawDescGZIP(), []int{134} } type SubscribeToStreamServersChangesRequest struct { @@ -6501,7 +6611,7 @@ type SubscribeToStreamServersChangesRequest struct { func (x *SubscribeToStreamServersChangesRequest) Reset() { *x = SubscribeToStreamServersChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[133] + mi := &file_streamd_proto_msgTypes[135] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6514,7 +6624,7 @@ func (x *SubscribeToStreamServersChangesRequest) String() string { func (*SubscribeToStreamServersChangesRequest) ProtoMessage() {} func (x *SubscribeToStreamServersChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[133] + mi := &file_streamd_proto_msgTypes[135] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6527,7 +6637,7 @@ func (x *SubscribeToStreamServersChangesRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use SubscribeToStreamServersChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToStreamServersChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{133} + return file_streamd_proto_rawDescGZIP(), []int{135} } type StreamServersChange struct { @@ -6539,7 +6649,7 @@ type StreamServersChange struct { func (x *StreamServersChange) Reset() { *x = StreamServersChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[134] + mi := &file_streamd_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6552,7 +6662,7 @@ func (x *StreamServersChange) String() string { func (*StreamServersChange) ProtoMessage() {} func (x *StreamServersChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[134] + mi := &file_streamd_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6565,7 +6675,7 @@ func (x *StreamServersChange) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamServersChange.ProtoReflect.Descriptor instead. func (*StreamServersChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{134} + return file_streamd_proto_rawDescGZIP(), []int{136} } type SubscribeToStreamDestinationsChangesRequest struct { @@ -6577,7 +6687,7 @@ type SubscribeToStreamDestinationsChangesRequest struct { func (x *SubscribeToStreamDestinationsChangesRequest) Reset() { *x = SubscribeToStreamDestinationsChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[135] + mi := &file_streamd_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6590,7 +6700,7 @@ func (x *SubscribeToStreamDestinationsChangesRequest) String() string { func (*SubscribeToStreamDestinationsChangesRequest) ProtoMessage() {} func (x *SubscribeToStreamDestinationsChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[135] + mi := &file_streamd_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6603,7 +6713,7 @@ func (x *SubscribeToStreamDestinationsChangesRequest) ProtoReflect() protoreflec // Deprecated: Use SubscribeToStreamDestinationsChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToStreamDestinationsChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{135} + return file_streamd_proto_rawDescGZIP(), []int{137} } type StreamDestinationsChange struct { @@ -6615,7 +6725,7 @@ type StreamDestinationsChange struct { func (x *StreamDestinationsChange) Reset() { *x = StreamDestinationsChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[136] + mi := &file_streamd_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6628,7 +6738,7 @@ func (x *StreamDestinationsChange) String() string { func (*StreamDestinationsChange) ProtoMessage() {} func (x *StreamDestinationsChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[136] + mi := &file_streamd_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6641,7 +6751,7 @@ func (x *StreamDestinationsChange) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamDestinationsChange.ProtoReflect.Descriptor instead. func (*StreamDestinationsChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{136} + return file_streamd_proto_rawDescGZIP(), []int{138} } type SubscribeToIncomingStreamsChangesRequest struct { @@ -6653,7 +6763,7 @@ type SubscribeToIncomingStreamsChangesRequest struct { func (x *SubscribeToIncomingStreamsChangesRequest) Reset() { *x = SubscribeToIncomingStreamsChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[137] + mi := &file_streamd_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6666,7 +6776,7 @@ func (x *SubscribeToIncomingStreamsChangesRequest) String() string { func (*SubscribeToIncomingStreamsChangesRequest) ProtoMessage() {} func (x *SubscribeToIncomingStreamsChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[137] + mi := &file_streamd_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6679,7 +6789,7 @@ func (x *SubscribeToIncomingStreamsChangesRequest) ProtoReflect() protoreflect.M // Deprecated: Use SubscribeToIncomingStreamsChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToIncomingStreamsChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{137} + return file_streamd_proto_rawDescGZIP(), []int{139} } type IncomingStreamsChange struct { @@ -6691,7 +6801,7 @@ type IncomingStreamsChange struct { func (x *IncomingStreamsChange) Reset() { *x = IncomingStreamsChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[138] + mi := &file_streamd_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6704,7 +6814,7 @@ func (x *IncomingStreamsChange) String() string { func (*IncomingStreamsChange) ProtoMessage() {} func (x *IncomingStreamsChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[138] + mi := &file_streamd_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6717,7 +6827,7 @@ func (x *IncomingStreamsChange) ProtoReflect() protoreflect.Message { // Deprecated: Use IncomingStreamsChange.ProtoReflect.Descriptor instead. func (*IncomingStreamsChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{138} + return file_streamd_proto_rawDescGZIP(), []int{140} } type SubscribeToStreamForwardsChangesRequest struct { @@ -6729,7 +6839,7 @@ type SubscribeToStreamForwardsChangesRequest struct { func (x *SubscribeToStreamForwardsChangesRequest) Reset() { *x = SubscribeToStreamForwardsChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[139] + mi := &file_streamd_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6742,7 +6852,7 @@ func (x *SubscribeToStreamForwardsChangesRequest) String() string { func (*SubscribeToStreamForwardsChangesRequest) ProtoMessage() {} func (x *SubscribeToStreamForwardsChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[139] + mi := &file_streamd_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6755,7 +6865,7 @@ func (x *SubscribeToStreamForwardsChangesRequest) ProtoReflect() protoreflect.Me // Deprecated: Use SubscribeToStreamForwardsChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToStreamForwardsChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{139} + return file_streamd_proto_rawDescGZIP(), []int{141} } type StreamForwardsChange struct { @@ -6767,7 +6877,7 @@ type StreamForwardsChange struct { func (x *StreamForwardsChange) Reset() { *x = StreamForwardsChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[140] + mi := &file_streamd_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6780,7 +6890,7 @@ func (x *StreamForwardsChange) String() string { func (*StreamForwardsChange) ProtoMessage() {} func (x *StreamForwardsChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[140] + mi := &file_streamd_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6793,7 +6903,7 @@ func (x *StreamForwardsChange) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamForwardsChange.ProtoReflect.Descriptor instead. func (*StreamForwardsChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{140} + return file_streamd_proto_rawDescGZIP(), []int{142} } type SubscribeToStreamPlayersChangesRequest struct { @@ -6805,7 +6915,7 @@ type SubscribeToStreamPlayersChangesRequest struct { func (x *SubscribeToStreamPlayersChangesRequest) Reset() { *x = SubscribeToStreamPlayersChangesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[141] + mi := &file_streamd_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6818,7 +6928,7 @@ func (x *SubscribeToStreamPlayersChangesRequest) String() string { func (*SubscribeToStreamPlayersChangesRequest) ProtoMessage() {} func (x *SubscribeToStreamPlayersChangesRequest) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[141] + mi := &file_streamd_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6831,7 +6941,7 @@ func (x *SubscribeToStreamPlayersChangesRequest) ProtoReflect() protoreflect.Mes // Deprecated: Use SubscribeToStreamPlayersChangesRequest.ProtoReflect.Descriptor instead. func (*SubscribeToStreamPlayersChangesRequest) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{141} + return file_streamd_proto_rawDescGZIP(), []int{143} } type StreamPlayersChange struct { @@ -6843,7 +6953,7 @@ type StreamPlayersChange struct { func (x *StreamPlayersChange) Reset() { *x = StreamPlayersChange{} if protoimpl.UnsafeEnabled { - mi := &file_streamd_proto_msgTypes[142] + mi := &file_streamd_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -6856,7 +6966,7 @@ func (x *StreamPlayersChange) String() string { func (*StreamPlayersChange) ProtoMessage() {} func (x *StreamPlayersChange) ProtoReflect() protoreflect.Message { - mi := &file_streamd_proto_msgTypes[142] + mi := &file_streamd_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -6869,7 +6979,7 @@ func (x *StreamPlayersChange) ProtoReflect() protoreflect.Message { // Deprecated: Use StreamPlayersChange.ProtoReflect.Descriptor instead. func (*StreamPlayersChange) Descriptor() ([]byte, []int) { - return file_streamd_proto_rawDescGZIP(), []int{142} + return file_streamd_proto_rawDescGZIP(), []int{144} } var File_streamd_proto protoreflect.FileDescriptor @@ -6877,979 +6987,995 @@ var File_streamd_proto protoreflect.FileDescriptor var file_streamd_proto_rawDesc = []byte{ 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x1a, 0x13, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x53, 0x0a, - 0x16, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x39, 0x0a, 0x0c, + 0x2f, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9b, 0x01, + 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x28, 0x0a, + 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x6f, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x6f, 0x49, 0x67, 0x6e, 0x6f, 0x72, + 0x65, 0x12, 0x38, 0x0a, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x72, + 0x61, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x17, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x25, 0x0a, 0x09, 0x50, + 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, + 0x6f, 0x61, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x22, 0x53, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, + 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x12, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x28, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x16, 0x0a, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x2a, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x11, 0x0a, 0x0f, 0x53, 0x61, 0x76, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x13, 0x0a, 0x11, 0x52, - 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x22, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7e, 0x0a, 0x12, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 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, - 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2a, 0x0a, - 0x10, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x22, 0x10, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4a, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x6e, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x6e, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x22, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, 0x61, 0x74, 0x61, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x22, - 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, - 0x22, 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x31, 0x0a, 0x17, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, - 0x61, 0x74, 0x49, 0x44, 0x22, 0x3d, 0x0a, 0x15, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, - 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, - 0x7a, 0x65, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x3f, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x54, 0x69, 0x74, - 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x51, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x44, 0x65, - 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 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, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, - 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x47, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x7f, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4c, 0x6f, + 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x12, 0x39, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0c, + 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x12, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x28, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x2a, 0x0a, 0x10, 0x53, 0x65, + 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x10, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x13, 0x0a, 0x11, 0x53, 0x61, 0x76, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x11, 0x0a, + 0x0f, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x13, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x11, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, + 0x63, 0x68, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x12, 0x0a, 0x10, 0x49, 0x6e, 0x69, 0x74, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x10, 0x0a, 0x0e, + 0x49, 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7e, + 0x0a, 0x12, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 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, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x12, + 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x2a, 0x0a, 0x10, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x69, 0x74, 0x6c, 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, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x22, 0x13, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2d, 0x0a, 0x2b, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, - 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x29, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, - 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x1d, 0x0a, 0x1b, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, - 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x1b, 0x0a, 0x19, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, - 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1c, 0x0a, - 0x1a, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x18, 0x4f, - 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, - 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x22, 0x1c, 0x0a, - 0x1a, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x4f, - 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, - 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x41, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, - 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x40, 0x0a, 0x0c, 0x4f, 0x41, - 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x22, 0x10, + 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x4a, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, - 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x52, 0x4c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x52, 0x4c, 0x22, 0x26, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x22, 0x3a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, - 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x22, 0x59, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x08, - 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6b, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x3c, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x56, - 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 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, 0x0c, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x56, 0x61, 0x72, - 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x18, 0x0a, 0x16, 0x4f, 0x42, - 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x08, 0x4f, 0x42, 0x53, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa9, - 0x02, 0x0a, 0x14, 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, - 0x6e, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, - 0x65, 0x77, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, 0x38, 0x0a, 0x17, 0x63, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, + 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x6e, 0x6f, 0x43, 0x61, 0x63, 0x68, 0x65, 0x22, 0x85, 0x01, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x41, 0x63, 0x74, 0x69, 0x76, + 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x44, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x44, 0x61, 0x74, 0x61, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x22, 0x2f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, + 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x6c, 0x61, 0x74, 0x49, 0x44, 0x22, 0x4f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, + 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x17, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, + 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x22, 0x3d, 0x0a, 0x15, 0x49, 0x73, 0x42, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, + 0x7a, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x52, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x3f, 0x0a, 0x0f, 0x53, 0x65, + 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x22, 0x0f, 0x0a, 0x0d, 0x53, + 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x51, 0x0a, 0x15, + 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 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, 0x22, + 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x47, 0x0a, 0x13, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, + 0x13, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x7f, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, + 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, + 0x74, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 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, 0x18, 0x0a, 0x07, 0x70, + 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, + 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x22, 0x13, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2d, 0x0a, 0x2b, 0x45, 0x58, + 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, + 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x2b, 0x0a, 0x29, 0x45, 0x58, 0x50, + 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1d, 0x0a, 0x1b, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, + 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1b, 0x0a, 0x19, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, + 0x45, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, + 0x65, 0x74, 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x40, 0x0a, 0x18, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x65, 0x74, + 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x24, 0x0a, 0x0d, + 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, + 0x65, 0x64, 0x22, 0x1c, 0x0a, 0x1a, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, + 0x69, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x1a, 0x0a, 0x18, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, + 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x41, 0x0a, 0x1f, + 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x4f, 0x41, 0x75, 0x74, 0x68, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x50, 0x6f, 0x72, 0x74, 0x22, + 0x40, 0x0a, 0x0c, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, + 0x52, 0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x75, 0x74, 0x68, 0x55, 0x52, + 0x4c, 0x22, 0x26, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x3a, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 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, 0x0c, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x2d, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x48, 0x61, + 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x6b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, + 0x61, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x2d, 0x0a, 0x08, 0x68, 0x61, + 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x11, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x52, + 0x08, 0x68, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x61, 0x73, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x04, 0x68, 0x61, 0x73, 0x68, 0x22, 0x3c, 0x0a, + 0x12, 0x53, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 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, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x12, 0x0a, 0x10, 0x53, + 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x18, 0x0a, 0x16, 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x08, 0x4f, 0x42, 0x53, + 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x75, 0x69, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6e, 0x64, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x22, 0xa9, 0x02, 0x0a, 0x14, 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x38, 0x0a, 0x17, + 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x63, 0x65, + 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x50, 0x72, 0x65, 0x76, 0x69, 0x65, 0x77, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, + 0x12, 0x38, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, + 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, + 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, - 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, 0x12, - 0x29, 0x0a, 0x06, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x52, 0x06, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x22, 0x70, 0x0a, 0x20, 0x4f, 0x42, - 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, 0x42, 0x0c, - 0x0a, 0x0a, 0x4f, 0x42, 0x53, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, 0x44, 0x22, 0x20, 0x0a, 0x1e, - 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, - 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x44, - 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x6c, 0x61, 0x74, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, - 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x63, 0x6f, 0x64, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x41, - 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x69, 0x0a, 0x0c, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x39, 0x0a, 0x0a, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, - 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, - 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x15, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x65, 0x72, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x12, 0x32, 0x0a, 0x14, 0x4e, 0x75, 0x6d, 0x42, - 0x79, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x52, 0x65, 0x61, 0x64, 0x22, 0x8c, 0x01, 0x0a, - 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, 0x69, 0x74, - 0x68, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2d, 0x0a, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3f, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, - 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x57, - 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0d, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x22, 0x49, 0x0a, 0x18, + 0x65, 0x55, 0x55, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x17, 0x63, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x55, 0x55, 0x49, 0x44, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, + 0x42, 0x53, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x06, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x73, 0x22, + 0x70, 0x0a, 0x20, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x55, 0x55, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x09, 0x73, 0x63, 0x65, 0x6e, 0x65, 0x55, + 0x55, 0x49, 0x44, 0x42, 0x0c, 0x0a, 0x0a, 0x4f, 0x42, 0x53, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x49, + 0x44, 0x22, 0x20, 0x0a, 0x1e, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, + 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x44, 0x0a, 0x16, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x41, 0x75, + 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x70, 0x6c, 0x61, 0x74, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, + 0x6c, 0x61, 0x74, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x75, 0x62, + 0x6d, 0x69, 0x74, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x69, 0x0a, 0x0c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x12, 0x39, 0x0a, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x0a, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x82, 0x01, 0x0a, + 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x4e, 0x75, 0x6d, 0x42, 0x79, + 0x74, 0x65, 0x73, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x57, 0x72, 0x6f, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x15, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x72, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x12, 0x32, 0x0a, + 0x14, 0x4e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, + 0x72, 0x52, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x14, 0x4e, 0x75, 0x6d, + 0x42, 0x79, 0x74, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x3f, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x22, 0x1a, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x63, 0x0a, 0x16, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x49, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x73, 0x22, 0x49, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x39, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, - 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x22, 0x17, 0x0a, 0x15, - 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4b, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x72, 0x6c, 0x22, 0x1f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x51, - 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x22, 0x1b, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x46, - 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x1e, 0x0a, 0x1c, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x39, 0x0a, 0x17, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x41, 0x64, 0x64, + 0x72, 0x22, 0x17, 0x0a, 0x15, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4b, 0x0a, 0x11, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x1f, 0x0a, 0x1d, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x1b, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2c, 0x0a, 0x0e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, - 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x22, 0x36, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x18, 0x0a, 0x16, - 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x39, 0x0a, 0x1b, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x6e, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4a, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x12, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x22, 0x51, 0x0a, 0x1b, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1b, 0x0a, 0x19, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x46, 0x0a, 0x1e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, + 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x1e, 0x0a, 0x1c, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x2c, 0x0a, 0x0e, 0x49, + 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x36, 0x0a, 0x18, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, - 0x44, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1c, - 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x5d, 0x0a, 0x18, - 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, 0x0f, 0x69, 0x6e, 0x63, 0x6f, - 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x6e, 0x63, 0x6f, - 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x0f, 0x69, 0x6e, 0x63, 0x6f, - 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x22, 0x8b, 0x01, 0x0a, 0x23, - 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x59, 0x6f, 0x75, 0x74, - 0x75, 0x62, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x73, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x22, 0x0a, - 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, - 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x95, 0x01, 0x0a, 0x13, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x69, 0x72, 0x6b, - 0x73, 0x12, 0x7e, 0x0a, 0x23, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x55, 0x6e, 0x74, 0x69, + 0x44, 0x22, 0x18, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x39, 0x0a, 0x1b, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x1b, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x1c, 0x0a, 0x1a, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x5d, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, + 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x41, 0x0a, + 0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, + 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x0f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x22, 0x8b, 0x01, 0x0a, 0x23, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x59, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, - 0x65, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x59, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x52, 0x65, 0x63, 0x6f, - 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x23, 0x72, 0x65, + 0x65, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, + 0x75, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74, 0x6f, 0x70, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0e, + 0x73, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x95, + 0x01, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x51, 0x75, 0x69, 0x72, 0x6b, 0x73, 0x12, 0x7e, 0x0a, 0x23, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x59, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x59, 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x73, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x22, 0xa1, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, - 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, - 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, - 0x34, 0x0a, 0x06, 0x71, 0x75, 0x69, 0x72, 0x6b, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x69, 0x72, 0x6b, 0x73, 0x52, 0x06, 0x71, - 0x75, 0x69, 0x72, 0x6b, 0x73, 0x22, 0x63, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x6f, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, - 0x73, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x75, 0x6d, 0x42, 0x79, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6e, 0x75, - 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x22, 0x8f, 0x01, 0x0a, 0x1b, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, - 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x40, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x1b, 0x0a, 0x19, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, 0x0a, 0x17, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4c, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, - 0x77, 0x61, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x22, 0x49, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, - 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x17, 0x0a, - 0x15, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, - 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x0a, 0x1a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x4c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, - 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1a, - 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4d, 0x0a, 0x1d, 0x57, 0x61, - 0x69, 0x74, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, - 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x08, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x8a, 0x02, 0x0a, - 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x15, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x42, - 0x75, 0x66, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x4a, 0x69, 0x74, 0x74, 0x65, 0x72, 0x42, 0x75, 0x66, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x34, 0x0a, 0x15, 0x43, - 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x46, 0x61, - 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x43, 0x61, 0x74, 0x63, - 0x68, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, 0x46, 0x61, 0x63, 0x74, 0x6f, - 0x72, 0x12, 0x30, 0x0a, 0x13, 0x4d, 0x61, 0x78, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x41, - 0x74, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x13, - 0x4d, 0x61, 0x78, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x41, 0x74, 0x4c, 0x61, 0x67, 0x53, - 0x65, 0x63, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x52, 0x10, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x12, - 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, - 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x22, 0xd4, 0x01, 0x0a, 0x12, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x33, 0x0a, 0x0a, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x13, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x51, 0x0a, + 0x6d, 0x52, 0x23, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x55, 0x6e, 0x74, 0x69, 0x6c, 0x59, + 0x6f, 0x75, 0x74, 0x75, 0x62, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x67, 0x6e, 0x69, 0x7a, 0x65, 0x73, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x22, 0xa1, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x34, 0x0a, 0x06, 0x71, 0x75, 0x69, 0x72, 0x6b, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x51, 0x75, 0x69, 0x72, + 0x6b, 0x73, 0x52, 0x06, 0x71, 0x75, 0x69, 0x72, 0x6b, 0x73, 0x22, 0x63, 0x0a, 0x17, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x6e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, + 0x73, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6e, 0x75, + 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x57, 0x72, 0x6f, 0x74, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, + 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0c, 0x6e, 0x75, 0x6d, 0x42, 0x79, 0x74, 0x65, 0x73, 0x52, 0x65, 0x61, 0x64, 0x22, + 0x8f, 0x01, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, + 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x40, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x22, 0x1b, 0x0a, 0x19, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x67, + 0x0a, 0x17, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x4c, 0x0a, 0x0e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x57, 0x69, 0x74, 0x68, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x22, 0x49, 0x0a, 0x17, 0x41, 0x64, 0x64, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x0a, 0x1a, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x4c, 0x0a, 0x1a, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x4d, 0x0a, 0x1d, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1f, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x11, + 0x0a, 0x0f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, + 0x72, 0x22, 0x8a, 0x02, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, + 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x34, 0x0a, 0x15, 0x4a, 0x69, + 0x74, 0x74, 0x65, 0x72, 0x42, 0x75, 0x66, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, + 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x15, 0x4a, 0x69, 0x74, 0x74, 0x65, + 0x72, 0x42, 0x75, 0x66, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x73, + 0x12, 0x34, 0x0a, 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x15, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x4d, 0x61, 0x78, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x30, 0x0a, 0x13, 0x4d, 0x61, 0x78, 0x43, 0x61, 0x74, + 0x63, 0x68, 0x75, 0x70, 0x41, 0x74, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x01, 0x52, 0x13, 0x4d, 0x61, 0x78, 0x43, 0x61, 0x74, 0x63, 0x68, 0x75, 0x70, 0x41, + 0x74, 0x4c, 0x61, 0x67, 0x53, 0x65, 0x63, 0x73, 0x12, 0x2a, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x01, 0x52, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, + 0x53, 0x65, 0x63, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0f, 0x52, + 0x65, 0x61, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x53, 0x65, 0x63, 0x73, 0x22, 0xd4, + 0x01, 0x0a, 0x12, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, + 0x44, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x13, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x12, 0x51, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, + 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, - 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x14, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x22, 0x4d, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, - 0x16, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x37, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x37, 0x0a, 0x19, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x50, 0x0a, 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, + 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x22, 0x19, 0x0a, 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1a, 0x0a, + 0x18, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x16, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x35, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x34, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, - 0x22, 0x19, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x50, 0x0a, 0x19, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x22, 0x4b, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x19, 0x0a, - 0x17, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x1a, 0x0a, 0x18, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x35, - 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x73, 0x22, 0x34, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x33, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x64, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, - 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, - 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, - 0x65, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, - 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x74, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, - 0x35, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x1d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, - 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2f, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, - 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6a, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6a, 0x0a, 0x1a, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, - 0x68, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x2e, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x64, - 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x6a, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x18, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, 0x45, 0x6e, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x2e, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x72, 0x0a, 0x1e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x49, 0x44, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6e, 0x0a, 0x1c, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x64, 0x0a, + 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, - 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, - 0x31, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, - 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x48, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, - 0x2b, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, - 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6c, 0x0a, 0x1b, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x19, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x64, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x07, 0x72, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x15, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x70, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x66, 0x0a, 0x18, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, + 0x70, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x05, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x74, 0x0a, 0x1f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, - 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x16, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x28, - 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x21, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x0e, 0x0a, 0x0c, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x22, 0x0a, 0x20, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x35, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, + 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x50, 0x0a, 0x1d, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, + 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2f, 0x0a, 0x05, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x2e, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6a, 0x0a, + 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, + 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x46, 0x0a, 0x18, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x6a, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x46, 0x0a, + 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, + 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, 0x05, 0x72, 0x65, 0x70, + 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x2e, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6a, 0x0a, 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, + 0x30, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x46, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2a, 0x0a, + 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x72, 0x0a, 0x1e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x34, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4e, 0x0a, + 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, + 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2e, 0x0a, + 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6e, 0x0a, + 0x1c, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, + 0x1a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2c, 0x0a, 0x05, 0x72, + 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x6c, 0x0a, 0x1b, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x31, 0x0a, 0x07, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x48, 0x0a, 0x19, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x2b, 0x0a, 0x05, + 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x70, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x64, 0x0a, 0x17, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, + 0x12, 0x2d, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x40, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x12, 0x27, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x66, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x16, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x12, 0x28, 0x0a, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x70, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x2e, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x52, 0x05, 0x72, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x21, 0x0a, + 0x1f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x0e, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x22, 0x22, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x28, 0x0a, 0x26, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x0f, 0x0a, 0x0d, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x22, 0x28, 0x0a, 0x26, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, + 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2d, 0x0a, 0x2b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x22, 0x2a, 0x0a, 0x28, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, + 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, + 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x17, 0x0a, + 0x15, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x29, 0x0a, 0x27, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x16, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x28, 0x0a, 0x26, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2a, 0x66, 0x0a, 0x0c, 0x4c, 0x6f, + 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x6e, 0x6f, + 0x6e, 0x65, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x61, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, + 0x09, 0x0a, 0x05, 0x70, 0x61, 0x6e, 0x69, 0x63, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, + 0x64, 0x65, 0x62, 0x75, 0x67, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, + 0x10, 0x07, 0x2a, 0x19, 0x0a, 0x08, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, + 0x0a, 0x09, 0x48, 0x41, 0x53, 0x48, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x00, 0x2a, 0x35, 0x0a, + 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x08, 0x0a, 0x04, 0x52, 0x54, 0x53, 0x50, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x54, + 0x4d, 0x50, 0x10, 0x02, 0x2a, 0x49, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x41, 0x75, 0x74, 0x6f, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x62, 0x56, 0x4c, 0x43, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x50, 0x56, 0x10, 0x02, 0x32, + 0xb5, 0x2f, 0x0a, 0x07, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x12, 0x32, 0x0a, 0x04, 0x50, + 0x69, 0x6e, 0x67, 0x12, 0x14, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x12, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, + 0x53, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, + 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, + 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, + 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, + 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, + 0x44, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, + 0x73, 0x12, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x44, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, + 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x18, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, + 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, + 0x49, 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, + 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, + 0x47, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1b, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x45, 0x6e, 0x64, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x12, 0x56, 0x0a, 0x10, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, + 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, + 0x2e, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, + 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x19, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, + 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x08, 0x53, + 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x54, + 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0e, 0x53, + 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, + 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4a, 0x0a, + 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, + 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x73, + 0x68, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, + 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x61, 0x72, + 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x92, 0x01, 0x0a, + 0x24, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, + 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, + 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x00, 0x12, 0x62, 0x0a, 0x14, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, + 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, + 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, + 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x10, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, + 0x45, 0x5f, 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x65, 0x74, + 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, + 0x45, 0x5f, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, + 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, + 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, + 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x18, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, + 0x65, 0x54, 0x6f, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, + 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, + 0x6f, 0x64, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x4f, 0x42, + 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, + 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, + 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, + 0x71, 0x0a, 0x19, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x12, 0x29, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, + 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, + 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, + 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x12, 0x74, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x22, 0x2d, 0x0a, 0x2b, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, + 0x67, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, + 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, + 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x68, 0x0a, 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x12, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x17, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, + 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x00, 0x12, 0x83, 0x01, 0x0a, 0x24, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, + 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x34, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x1a, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x2a, 0x0a, 0x28, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x49, 0x6e, 0x63, 0x6f, 0x6d, - 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x17, 0x0a, 0x15, 0x49, 0x6e, 0x63, 0x6f, - 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x22, 0x29, 0x0a, 0x27, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x16, 0x0a, 0x14, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x68, - 0x61, 0x6e, 0x67, 0x65, 0x22, 0x28, 0x0a, 0x26, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, - 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x15, - 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x2a, 0x66, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, - 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x08, 0x0a, 0x04, 0x6e, 0x6f, 0x6e, 0x65, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x66, 0x61, 0x74, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, - 0x6e, 0x69, 0x63, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, - 0x12, 0x0b, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x64, 0x65, 0x62, 0x75, 0x67, - 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x74, 0x72, 0x61, 0x63, 0x65, 0x10, 0x07, 0x2a, 0x19, 0x0a, - 0x08, 0x48, 0x61, 0x73, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x48, 0x41, 0x53, - 0x48, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x00, 0x2a, 0x35, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, - 0x55, 0x6e, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x52, - 0x54, 0x53, 0x50, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x54, 0x4d, 0x50, 0x10, 0x02, 0x2a, - 0x49, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x0e, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x41, 0x75, 0x74, 0x6f, 0x10, - 0x00, 0x12, 0x14, 0x0a, 0x10, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4c, - 0x69, 0x62, 0x56, 0x4c, 0x43, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x50, 0x56, 0x10, 0x02, 0x32, 0x81, 0x2f, 0x0a, 0x07, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x12, 0x53, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1f, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, 0x67, - 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x6f, 0x67, - 0x67, 0x69, 0x6e, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, - 0x12, 0x41, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x44, 0x0a, 0x0a, 0x53, 0x61, 0x76, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, - 0x61, 0x76, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x18, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x61, 0x76, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x18, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x44, 0x0a, - 0x0a, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x1a, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x52, 0x65, 0x73, 0x65, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x00, 0x12, 0x41, 0x0a, 0x09, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, - 0x12, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x43, - 0x61, 0x63, 0x68, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x6e, 0x69, 0x74, 0x43, 0x61, 0x63, 0x68, 0x65, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, - 0x41, 0x0a, 0x09, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x19, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x45, 0x6e, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x49, 0x73, 0x42, 0x61, 0x63, - 0x6b, 0x65, 0x6e, 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x20, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x45, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x73, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, - 0x64, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, - 0x50, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x00, 0x12, 0x62, 0x0a, 0x19, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x29, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, - 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, - 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x12, 0x17, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x00, 0x12, 0x3e, 0x0a, 0x08, 0x53, 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x18, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x00, 0x12, 0x50, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, - 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, - 0x65, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x00, 0x12, 0x4a, 0x0a, 0x0c, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, - 0x12, 0x4a, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, - 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, - 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, 0x73, 0x68, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, 0x61, - 0x73, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x48, - 0x61, 0x73, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x47, 0x0a, 0x0b, 0x53, 0x65, - 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x1b, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x53, 0x65, 0x74, 0x56, 0x61, 0x72, 0x69, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x00, 0x12, 0x92, 0x01, 0x0a, 0x24, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, - 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x12, 0x34, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x45, 0x58, 0x50, 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, - 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x45, 0x58, 0x50, - 0x45, 0x52, 0x49, 0x4d, 0x45, 0x4e, 0x54, 0x41, 0x4c, 0x5f, 0x52, 0x65, 0x69, 0x6e, 0x69, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, 0x4f, 0x42, 0x53, 0x4f, - 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, - 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x46, 0x65, 0x74, 0x63, 0x68, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x10, - 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, - 0x45, 0x54, 0x45, 0x5f, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, + 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x59, 0x0a, 0x11, 0x41, 0x64, 0x64, 0x49, 0x6e, + 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x21, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, + 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, + 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, + 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, + 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, + 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, + 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x12, 0x23, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, + 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x7a, 0x0a, 0x21, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x54, 0x6f, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, + 0x00, 0x30, 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, + 0x00, 0x12, 0x56, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, + 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x4f, 0x42, - 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, - 0x6e, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x4f, - 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x52, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x4f, 0x42, 0x53, 0x4f, 0x4c, 0x45, 0x54, 0x45, 0x5f, 0x47, 0x69, 0x74, 0x52, 0x65, 0x6c, - 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x18, 0x53, - 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x4f, 0x41, 0x75, - 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x15, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x41, 0x75, 0x74, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x0f, - 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, - 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x4f, 0x42, 0x53, 0x47, 0x65, 0x74, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x19, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, - 0x65, 0x6e, 0x65, 0x12, 0x29, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, - 0x53, 0x53, 0x65, 0x74, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, - 0x61, 0x6d, 0x53, 0x63, 0x65, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x27, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4f, 0x42, 0x53, 0x53, 0x65, 0x74, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x67, 0x72, 0x61, 0x6d, 0x53, 0x63, 0x65, - 0x6e, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x12, 0x21, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, - 0x6c, 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, - 0x56, 0x0a, 0x10, 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, - 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x53, 0x74, 0x6f, 0x70, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, - 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x68, 0x0a, - 0x16, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, 0x41, 0x64, 0x64, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x17, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x83, 0x01, 0x0a, 0x24, 0x53, 0x75, 0x62, - 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, - 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x12, 0x34, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, - 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, - 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x59, - 0x0a, 0x11, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, - 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x41, 0x64, 0x64, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, - 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, - 0x13, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x7a, - 0x0a, 0x21, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x49, 0x6e, 0x63, - 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, - 0x67, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, - 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, - 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x49, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x73, - 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5c, 0x0a, 0x12, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x12, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x20, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, - 0x12, 0x5f, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, - 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, - 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, - 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, - 0x22, 0x00, 0x12, 0x77, 0x0a, 0x20, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x20, 0x53, + 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, + 0x30, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, + 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5e, 0x0a, 0x16, 0x57, - 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, - 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x0f, 0x41, - 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, - 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, - 0x12, 0x5c, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5c, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, - 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x53, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, - 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x1f, - 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, - 0x2f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, - 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, - 0x30, 0x01, 0x12, 0x56, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, - 0x70, 0x65, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x18, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, - 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, - 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, - 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, - 0x6b, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, - 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x13, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, - 0x61, 0x6e, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, - 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5f, - 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, - 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, 0x45, 0x6e, - 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, - 0x6b, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, - 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, - 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x15, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x25, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, 0x2e, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, - 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, - 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x12, + 0x22, 0x00, 0x30, 0x01, 0x12, 0x5e, 0x0a, 0x16, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x26, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x57, 0x61, 0x69, 0x74, 0x46, 0x6f, 0x72, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, + 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, + 0x22, 0x00, 0x30, 0x01, 0x12, 0x53, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, + 0x65, 0x72, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x12, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, + 0x22, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x5c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x12, 0x22, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x12, 0x53, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x12, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x1f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, + 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x73, 0x12, 0x2f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x54, 0x6f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x22, 0x00, 0x30, 0x01, 0x12, 0x56, 0x0a, 0x10, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, - 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, - 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, - 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, + 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x4f, 0x70, 0x65, 0x6e, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x18, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x28, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x63, 0x65, 0x73, 0x73, 0x54, 0x69, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6c, + 0x79, 0x22, 0x00, 0x12, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, - 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x11, - 0x5a, 0x0f, 0x67, 0x6f, 0x2f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x5f, 0x67, 0x72, 0x70, - 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x45, 0x6e, 0x64, 0x43, 0x68, 0x61, 0x6e, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x30, 0x01, 0x12, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x12, 0x23, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x49, 0x73, 0x45, 0x6e, 0x64, 0x65, + 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x17, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x65, 0x0a, 0x15, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x25, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x47, 0x65, 0x74, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x14, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, + 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, + 0x12, 0x62, 0x0a, 0x14, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, + 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x24, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, + 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x52, 0x65, 0x70, + 0x6c, 0x79, 0x22, 0x00, 0x12, 0x56, 0x0a, 0x10, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, + 0x61, 0x79, 0x65, 0x72, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x53, + 0x74, 0x6f, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, + 0x72, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x12, 0x59, 0x0a, 0x11, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, + 0x65, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, 0x2e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x64, 0x2e, 0x53, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x43, 0x6c, 0x6f, 0x73, 0x65, + 0x52, 0x65, 0x70, 0x6c, 0x79, 0x22, 0x00, 0x42, 0x11, 0x5a, 0x0f, 0x67, 0x6f, 0x2f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x64, 0x5f, 0x67, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -7865,360 +7991,364 @@ func file_streamd_proto_rawDescGZIP() []byte { } var file_streamd_proto_enumTypes = make([]protoimpl.EnumInfo, 4) -var file_streamd_proto_msgTypes = make([]protoimpl.MessageInfo, 143) +var file_streamd_proto_msgTypes = make([]protoimpl.MessageInfo, 145) var file_streamd_proto_goTypes = []interface{}{ (LoggingLevel)(0), // 0: streamd.LoggingLevel (HashType)(0), // 1: streamd.HashType (StreamServerType)(0), // 2: streamd.StreamServerType (PlayerType)(0), // 3: streamd.PlayerType - (*SetLoggingLevelRequest)(nil), // 4: streamd.SetLoggingLevelRequest - (*SetLoggingLevelReply)(nil), // 5: streamd.SetLoggingLevelReply - (*GetLoggingLevelRequest)(nil), // 6: streamd.GetLoggingLevelRequest - (*GetLoggingLevelReply)(nil), // 7: streamd.GetLoggingLevelReply - (*GetConfigRequest)(nil), // 8: streamd.GetConfigRequest - (*GetConfigReply)(nil), // 9: streamd.GetConfigReply - (*SetConfigRequest)(nil), // 10: streamd.SetConfigRequest - (*SetConfigReply)(nil), // 11: streamd.SetConfigReply - (*SaveConfigRequest)(nil), // 12: streamd.SaveConfigRequest - (*SaveConfigReply)(nil), // 13: streamd.SaveConfigReply - (*ResetCacheRequest)(nil), // 14: streamd.ResetCacheRequest - (*ResetCacheReply)(nil), // 15: streamd.ResetCacheReply - (*InitCacheRequest)(nil), // 16: streamd.InitCacheRequest - (*InitCacheReply)(nil), // 17: streamd.InitCacheReply - (*StartStreamRequest)(nil), // 18: streamd.StartStreamRequest - (*StartStreamReply)(nil), // 19: streamd.StartStreamReply - (*EndStreamRequest)(nil), // 20: streamd.EndStreamRequest - (*EndStreamReply)(nil), // 21: streamd.EndStreamReply - (*GetStreamStatusRequest)(nil), // 22: streamd.GetStreamStatusRequest - (*GetStreamStatusReply)(nil), // 23: streamd.GetStreamStatusReply - (*GetBackendInfoRequest)(nil), // 24: streamd.GetBackendInfoRequest - (*GetBackendInfoReply)(nil), // 25: streamd.GetBackendInfoReply - (*IsBackendEnabledRequest)(nil), // 26: streamd.IsBackendEnabledRequest - (*IsBackendEnabledReply)(nil), // 27: streamd.IsBackendEnabledReply - (*RestartRequest)(nil), // 28: streamd.RestartRequest - (*RestartReply)(nil), // 29: streamd.RestartReply - (*SetTitleRequest)(nil), // 30: streamd.SetTitleRequest - (*SetTitleReply)(nil), // 31: streamd.SetTitleReply - (*SetDescriptionRequest)(nil), // 32: streamd.SetDescriptionRequest - (*SetDescriptionReply)(nil), // 33: streamd.SetDescriptionReply - (*ApplyProfileRequest)(nil), // 34: streamd.ApplyProfileRequest - (*ApplyProfileReply)(nil), // 35: streamd.ApplyProfileReply - (*UpdateStreamRequest)(nil), // 36: streamd.UpdateStreamRequest - (*UpdateStreamReply)(nil), // 37: streamd.UpdateStreamReply - (*EXPERIMENTAL_ReinitStreamControllersRequest)(nil), // 38: streamd.EXPERIMENTAL_ReinitStreamControllersRequest - (*EXPERIMENTAL_ReinitStreamControllersReply)(nil), // 39: streamd.EXPERIMENTAL_ReinitStreamControllersReply - (*OBSOLETE_FetchConfigRequest)(nil), // 40: streamd.OBSOLETE_FetchConfigRequest - (*OBSOLETE_FetchConfigReply)(nil), // 41: streamd.OBSOLETE_FetchConfigReply - (*OBSOLETE_GetGitInfoRequest)(nil), // 42: streamd.OBSOLETE_GetGitInfoRequest - (*OBSOLETE_GetGitInfoReply)(nil), // 43: streamd.OBSOLETE_GetGitInfoReply - (*OBSOLETE_GitReloginRequest)(nil), // 44: streamd.OBSOLETE_GitReloginRequest - (*OBSOLETE_GitReloginReply)(nil), // 45: streamd.OBSOLETE_GitReloginReply - (*SubscribeToOAuthRequestsRequest)(nil), // 46: streamd.SubscribeToOAuthRequestsRequest - (*OAuthRequest)(nil), // 47: streamd.OAuthRequest - (*GetVariableRequest)(nil), // 48: streamd.GetVariableRequest - (*GetVariableReply)(nil), // 49: streamd.GetVariableReply - (*GetVariableHashRequest)(nil), // 50: streamd.GetVariableHashRequest - (*GetVariableHashReply)(nil), // 51: streamd.GetVariableHashReply - (*SetVariableRequest)(nil), // 52: streamd.SetVariableRequest - (*SetVariableReply)(nil), // 53: streamd.SetVariableReply - (*OBSGetSceneListRequest)(nil), // 54: streamd.OBSGetSceneListRequest - (*OBSScene)(nil), // 55: streamd.OBSScene - (*OBSGetSceneListReply)(nil), // 56: streamd.OBSGetSceneListReply - (*OBSSetCurrentProgramSceneRequest)(nil), // 57: streamd.OBSSetCurrentProgramSceneRequest - (*OBSSetCurrentProgramSceneReply)(nil), // 58: streamd.OBSSetCurrentProgramSceneReply - (*SubmitOAuthCodeRequest)(nil), // 59: streamd.SubmitOAuthCodeRequest - (*SubmitOAuthCodeReply)(nil), // 60: streamd.SubmitOAuthCodeReply - (*StreamServer)(nil), // 61: streamd.StreamServer - (*StreamServerStatistics)(nil), // 62: streamd.StreamServerStatistics - (*StreamServerWithStatistics)(nil), // 63: streamd.StreamServerWithStatistics - (*ListStreamServersRequest)(nil), // 64: streamd.ListStreamServersRequest - (*ListStreamServersReply)(nil), // 65: streamd.ListStreamServersReply - (*StartStreamServerRequest)(nil), // 66: streamd.StartStreamServerRequest - (*StartStreamServerReply)(nil), // 67: streamd.StartStreamServerReply - (*StopStreamServerRequest)(nil), // 68: streamd.StopStreamServerRequest - (*StopStreamServerReply)(nil), // 69: streamd.StopStreamServerReply - (*StreamDestination)(nil), // 70: streamd.StreamDestination - (*ListStreamDestinationsRequest)(nil), // 71: streamd.ListStreamDestinationsRequest - (*ListStreamDestinationsReply)(nil), // 72: streamd.ListStreamDestinationsReply - (*AddStreamDestinationRequest)(nil), // 73: streamd.AddStreamDestinationRequest - (*AddStreamDestinationReply)(nil), // 74: streamd.AddStreamDestinationReply - (*RemoveStreamDestinationRequest)(nil), // 75: streamd.RemoveStreamDestinationRequest - (*RemoveStreamDestinationReply)(nil), // 76: streamd.RemoveStreamDestinationReply - (*IncomingStream)(nil), // 77: streamd.IncomingStream - (*AddIncomingStreamRequest)(nil), // 78: streamd.AddIncomingStreamRequest - (*AddIncomingStreamReply)(nil), // 79: streamd.AddIncomingStreamReply - (*RemoveIncomingStreamRequest)(nil), // 80: streamd.RemoveIncomingStreamRequest - (*RemoveIncomingStreamReply)(nil), // 81: streamd.RemoveIncomingStreamReply - (*ListIncomingStreamsRequest)(nil), // 82: streamd.ListIncomingStreamsRequest - (*ListIncomingStreamsReply)(nil), // 83: streamd.ListIncomingStreamsReply - (*RestartUntilYoutubeRecognizesStream)(nil), // 84: streamd.RestartUntilYoutubeRecognizesStream - (*StreamForwardQuirks)(nil), // 85: streamd.StreamForwardQuirks - (*StreamForward)(nil), // 86: streamd.StreamForward - (*StreamForwardStatistics)(nil), // 87: streamd.StreamForwardStatistics - (*StreamForwardWithStatistics)(nil), // 88: streamd.StreamForwardWithStatistics - (*ListStreamForwardsRequest)(nil), // 89: streamd.ListStreamForwardsRequest - (*ListStreamForwardsReply)(nil), // 90: streamd.ListStreamForwardsReply - (*AddStreamForwardRequest)(nil), // 91: streamd.AddStreamForwardRequest - (*AddStreamForwardReply)(nil), // 92: streamd.AddStreamForwardReply - (*UpdateStreamForwardRequest)(nil), // 93: streamd.UpdateStreamForwardRequest - (*UpdateStreamForwardReply)(nil), // 94: streamd.UpdateStreamForwardReply - (*RemoveStreamForwardRequest)(nil), // 95: streamd.RemoveStreamForwardRequest - (*RemoveStreamForwardReply)(nil), // 96: streamd.RemoveStreamForwardReply - (*WaitForStreamPublisherRequest)(nil), // 97: streamd.WaitForStreamPublisherRequest - (*StreamPublisher)(nil), // 98: streamd.StreamPublisher - (*StreamPlaybackConfig)(nil), // 99: streamd.StreamPlaybackConfig - (*StreamPlayerConfig)(nil), // 100: streamd.StreamPlayerConfig - (*AddStreamPlayerRequest)(nil), // 101: streamd.AddStreamPlayerRequest - (*AddStreamPlayerReply)(nil), // 102: streamd.AddStreamPlayerReply - (*RemoveStreamPlayerRequest)(nil), // 103: streamd.RemoveStreamPlayerRequest - (*RemoveStreamPlayerReply)(nil), // 104: streamd.RemoveStreamPlayerReply - (*UpdateStreamPlayerRequest)(nil), // 105: streamd.UpdateStreamPlayerRequest - (*UpdateStreamPlayerReply)(nil), // 106: streamd.UpdateStreamPlayerReply - (*ListStreamPlayersRequest)(nil), // 107: streamd.ListStreamPlayersRequest - (*ListStreamPlayersReply)(nil), // 108: streamd.ListStreamPlayersReply - (*GetStreamPlayerRequest)(nil), // 109: streamd.GetStreamPlayerRequest - (*GetStreamPlayerReply)(nil), // 110: streamd.GetStreamPlayerReply - (*StreamPlayerOpenRequest)(nil), // 111: streamd.StreamPlayerOpenRequest - (*StreamPlayerOpenReply)(nil), // 112: streamd.StreamPlayerOpenReply - (*StreamPlayerProcessTitleRequest)(nil), // 113: streamd.StreamPlayerProcessTitleRequest - (*StreamPlayerProcessTitleReply)(nil), // 114: streamd.StreamPlayerProcessTitleReply - (*StreamPlayerGetLinkRequest)(nil), // 115: streamd.StreamPlayerGetLinkRequest - (*StreamPlayerGetLinkReply)(nil), // 116: streamd.StreamPlayerGetLinkReply - (*StreamPlayerEndChanRequest)(nil), // 117: streamd.StreamPlayerEndChanRequest - (*StreamPlayerEndChanReply)(nil), // 118: streamd.StreamPlayerEndChanReply - (*StreamPlayerIsEndedRequest)(nil), // 119: streamd.StreamPlayerIsEndedRequest - (*StreamPlayerIsEndedReply)(nil), // 120: streamd.StreamPlayerIsEndedReply - (*StreamPlayerGetPositionRequest)(nil), // 121: streamd.StreamPlayerGetPositionRequest - (*StreamPlayerGetPositionReply)(nil), // 122: streamd.StreamPlayerGetPositionReply - (*StreamPlayerGetLengthRequest)(nil), // 123: streamd.StreamPlayerGetLengthRequest - (*StreamPlayerGetLengthReply)(nil), // 124: streamd.StreamPlayerGetLengthReply - (*StreamPlayerSetSpeedRequest)(nil), // 125: streamd.StreamPlayerSetSpeedRequest - (*StreamPlayerSetSpeedReply)(nil), // 126: streamd.StreamPlayerSetSpeedReply - (*StreamPlayerSetPauseRequest)(nil), // 127: streamd.StreamPlayerSetPauseRequest - (*StreamPlayerSetPauseReply)(nil), // 128: streamd.StreamPlayerSetPauseReply - (*StreamPlayerStopRequest)(nil), // 129: streamd.StreamPlayerStopRequest - (*StreamPlayerStopReply)(nil), // 130: streamd.StreamPlayerStopReply - (*StreamPlayerCloseRequest)(nil), // 131: streamd.StreamPlayerCloseRequest - (*StreamPlayerCloseReply)(nil), // 132: streamd.StreamPlayerCloseReply - (*SubscribeToConfigChangesRequest)(nil), // 133: streamd.SubscribeToConfigChangesRequest - (*ConfigChange)(nil), // 134: streamd.ConfigChange - (*SubscribeToStreamsChangesRequest)(nil), // 135: streamd.SubscribeToStreamsChangesRequest - (*StreamsChange)(nil), // 136: streamd.StreamsChange - (*SubscribeToStreamServersChangesRequest)(nil), // 137: streamd.SubscribeToStreamServersChangesRequest - (*StreamServersChange)(nil), // 138: streamd.StreamServersChange - (*SubscribeToStreamDestinationsChangesRequest)(nil), // 139: streamd.SubscribeToStreamDestinationsChangesRequest - (*StreamDestinationsChange)(nil), // 140: streamd.StreamDestinationsChange - (*SubscribeToIncomingStreamsChangesRequest)(nil), // 141: streamd.SubscribeToIncomingStreamsChangesRequest - (*IncomingStreamsChange)(nil), // 142: streamd.IncomingStreamsChange - (*SubscribeToStreamForwardsChangesRequest)(nil), // 143: streamd.SubscribeToStreamForwardsChangesRequest - (*StreamForwardsChange)(nil), // 144: streamd.StreamForwardsChange - (*SubscribeToStreamPlayersChangesRequest)(nil), // 145: streamd.SubscribeToStreamPlayersChangesRequest - (*StreamPlayersChange)(nil), // 146: streamd.StreamPlayersChange - (*player_grpc.OpenRequest)(nil), // 147: player.OpenRequest - (*player_grpc.OpenReply)(nil), // 148: player.OpenReply - (*player_grpc.ProcessTitleRequest)(nil), // 149: player.ProcessTitleRequest - (*player_grpc.ProcessTitleReply)(nil), // 150: player.ProcessTitleReply - (*player_grpc.GetLinkRequest)(nil), // 151: player.GetLinkRequest - (*player_grpc.GetLinkReply)(nil), // 152: player.GetLinkReply - (*player_grpc.EndChanRequest)(nil), // 153: player.EndChanRequest - (*player_grpc.EndChanReply)(nil), // 154: player.EndChanReply - (*player_grpc.IsEndedRequest)(nil), // 155: player.IsEndedRequest - (*player_grpc.IsEndedReply)(nil), // 156: player.IsEndedReply - (*player_grpc.GetPositionRequest)(nil), // 157: player.GetPositionRequest - (*player_grpc.GetPositionReply)(nil), // 158: player.GetPositionReply - (*player_grpc.GetLengthRequest)(nil), // 159: player.GetLengthRequest - (*player_grpc.GetLengthReply)(nil), // 160: player.GetLengthReply - (*player_grpc.SetSpeedRequest)(nil), // 161: player.SetSpeedRequest - (*player_grpc.SetSpeedReply)(nil), // 162: player.SetSpeedReply - (*player_grpc.SetPauseRequest)(nil), // 163: player.SetPauseRequest - (*player_grpc.SetPauseReply)(nil), // 164: player.SetPauseReply - (*player_grpc.StopRequest)(nil), // 165: player.StopRequest - (*player_grpc.StopReply)(nil), // 166: player.StopReply - (*player_grpc.CloseRequest)(nil), // 167: player.CloseRequest - (*player_grpc.CloseReply)(nil), // 168: player.CloseReply + (*PingRequest)(nil), // 4: streamd.PingRequest + (*PingReply)(nil), // 5: streamd.PingReply + (*SetLoggingLevelRequest)(nil), // 6: streamd.SetLoggingLevelRequest + (*SetLoggingLevelReply)(nil), // 7: streamd.SetLoggingLevelReply + (*GetLoggingLevelRequest)(nil), // 8: streamd.GetLoggingLevelRequest + (*GetLoggingLevelReply)(nil), // 9: streamd.GetLoggingLevelReply + (*GetConfigRequest)(nil), // 10: streamd.GetConfigRequest + (*GetConfigReply)(nil), // 11: streamd.GetConfigReply + (*SetConfigRequest)(nil), // 12: streamd.SetConfigRequest + (*SetConfigReply)(nil), // 13: streamd.SetConfigReply + (*SaveConfigRequest)(nil), // 14: streamd.SaveConfigRequest + (*SaveConfigReply)(nil), // 15: streamd.SaveConfigReply + (*ResetCacheRequest)(nil), // 16: streamd.ResetCacheRequest + (*ResetCacheReply)(nil), // 17: streamd.ResetCacheReply + (*InitCacheRequest)(nil), // 18: streamd.InitCacheRequest + (*InitCacheReply)(nil), // 19: streamd.InitCacheReply + (*StartStreamRequest)(nil), // 20: streamd.StartStreamRequest + (*StartStreamReply)(nil), // 21: streamd.StartStreamReply + (*EndStreamRequest)(nil), // 22: streamd.EndStreamRequest + (*EndStreamReply)(nil), // 23: streamd.EndStreamReply + (*GetStreamStatusRequest)(nil), // 24: streamd.GetStreamStatusRequest + (*GetStreamStatusReply)(nil), // 25: streamd.GetStreamStatusReply + (*GetBackendInfoRequest)(nil), // 26: streamd.GetBackendInfoRequest + (*GetBackendInfoReply)(nil), // 27: streamd.GetBackendInfoReply + (*IsBackendEnabledRequest)(nil), // 28: streamd.IsBackendEnabledRequest + (*IsBackendEnabledReply)(nil), // 29: streamd.IsBackendEnabledReply + (*RestartRequest)(nil), // 30: streamd.RestartRequest + (*RestartReply)(nil), // 31: streamd.RestartReply + (*SetTitleRequest)(nil), // 32: streamd.SetTitleRequest + (*SetTitleReply)(nil), // 33: streamd.SetTitleReply + (*SetDescriptionRequest)(nil), // 34: streamd.SetDescriptionRequest + (*SetDescriptionReply)(nil), // 35: streamd.SetDescriptionReply + (*ApplyProfileRequest)(nil), // 36: streamd.ApplyProfileRequest + (*ApplyProfileReply)(nil), // 37: streamd.ApplyProfileReply + (*UpdateStreamRequest)(nil), // 38: streamd.UpdateStreamRequest + (*UpdateStreamReply)(nil), // 39: streamd.UpdateStreamReply + (*EXPERIMENTAL_ReinitStreamControllersRequest)(nil), // 40: streamd.EXPERIMENTAL_ReinitStreamControllersRequest + (*EXPERIMENTAL_ReinitStreamControllersReply)(nil), // 41: streamd.EXPERIMENTAL_ReinitStreamControllersReply + (*OBSOLETE_FetchConfigRequest)(nil), // 42: streamd.OBSOLETE_FetchConfigRequest + (*OBSOLETE_FetchConfigReply)(nil), // 43: streamd.OBSOLETE_FetchConfigReply + (*OBSOLETE_GetGitInfoRequest)(nil), // 44: streamd.OBSOLETE_GetGitInfoRequest + (*OBSOLETE_GetGitInfoReply)(nil), // 45: streamd.OBSOLETE_GetGitInfoReply + (*OBSOLETE_GitReloginRequest)(nil), // 46: streamd.OBSOLETE_GitReloginRequest + (*OBSOLETE_GitReloginReply)(nil), // 47: streamd.OBSOLETE_GitReloginReply + (*SubscribeToOAuthRequestsRequest)(nil), // 48: streamd.SubscribeToOAuthRequestsRequest + (*OAuthRequest)(nil), // 49: streamd.OAuthRequest + (*GetVariableRequest)(nil), // 50: streamd.GetVariableRequest + (*GetVariableReply)(nil), // 51: streamd.GetVariableReply + (*GetVariableHashRequest)(nil), // 52: streamd.GetVariableHashRequest + (*GetVariableHashReply)(nil), // 53: streamd.GetVariableHashReply + (*SetVariableRequest)(nil), // 54: streamd.SetVariableRequest + (*SetVariableReply)(nil), // 55: streamd.SetVariableReply + (*OBSGetSceneListRequest)(nil), // 56: streamd.OBSGetSceneListRequest + (*OBSScene)(nil), // 57: streamd.OBSScene + (*OBSGetSceneListReply)(nil), // 58: streamd.OBSGetSceneListReply + (*OBSSetCurrentProgramSceneRequest)(nil), // 59: streamd.OBSSetCurrentProgramSceneRequest + (*OBSSetCurrentProgramSceneReply)(nil), // 60: streamd.OBSSetCurrentProgramSceneReply + (*SubmitOAuthCodeRequest)(nil), // 61: streamd.SubmitOAuthCodeRequest + (*SubmitOAuthCodeReply)(nil), // 62: streamd.SubmitOAuthCodeReply + (*StreamServer)(nil), // 63: streamd.StreamServer + (*StreamServerStatistics)(nil), // 64: streamd.StreamServerStatistics + (*StreamServerWithStatistics)(nil), // 65: streamd.StreamServerWithStatistics + (*ListStreamServersRequest)(nil), // 66: streamd.ListStreamServersRequest + (*ListStreamServersReply)(nil), // 67: streamd.ListStreamServersReply + (*StartStreamServerRequest)(nil), // 68: streamd.StartStreamServerRequest + (*StartStreamServerReply)(nil), // 69: streamd.StartStreamServerReply + (*StopStreamServerRequest)(nil), // 70: streamd.StopStreamServerRequest + (*StopStreamServerReply)(nil), // 71: streamd.StopStreamServerReply + (*StreamDestination)(nil), // 72: streamd.StreamDestination + (*ListStreamDestinationsRequest)(nil), // 73: streamd.ListStreamDestinationsRequest + (*ListStreamDestinationsReply)(nil), // 74: streamd.ListStreamDestinationsReply + (*AddStreamDestinationRequest)(nil), // 75: streamd.AddStreamDestinationRequest + (*AddStreamDestinationReply)(nil), // 76: streamd.AddStreamDestinationReply + (*RemoveStreamDestinationRequest)(nil), // 77: streamd.RemoveStreamDestinationRequest + (*RemoveStreamDestinationReply)(nil), // 78: streamd.RemoveStreamDestinationReply + (*IncomingStream)(nil), // 79: streamd.IncomingStream + (*AddIncomingStreamRequest)(nil), // 80: streamd.AddIncomingStreamRequest + (*AddIncomingStreamReply)(nil), // 81: streamd.AddIncomingStreamReply + (*RemoveIncomingStreamRequest)(nil), // 82: streamd.RemoveIncomingStreamRequest + (*RemoveIncomingStreamReply)(nil), // 83: streamd.RemoveIncomingStreamReply + (*ListIncomingStreamsRequest)(nil), // 84: streamd.ListIncomingStreamsRequest + (*ListIncomingStreamsReply)(nil), // 85: streamd.ListIncomingStreamsReply + (*RestartUntilYoutubeRecognizesStream)(nil), // 86: streamd.RestartUntilYoutubeRecognizesStream + (*StreamForwardQuirks)(nil), // 87: streamd.StreamForwardQuirks + (*StreamForward)(nil), // 88: streamd.StreamForward + (*StreamForwardStatistics)(nil), // 89: streamd.StreamForwardStatistics + (*StreamForwardWithStatistics)(nil), // 90: streamd.StreamForwardWithStatistics + (*ListStreamForwardsRequest)(nil), // 91: streamd.ListStreamForwardsRequest + (*ListStreamForwardsReply)(nil), // 92: streamd.ListStreamForwardsReply + (*AddStreamForwardRequest)(nil), // 93: streamd.AddStreamForwardRequest + (*AddStreamForwardReply)(nil), // 94: streamd.AddStreamForwardReply + (*UpdateStreamForwardRequest)(nil), // 95: streamd.UpdateStreamForwardRequest + (*UpdateStreamForwardReply)(nil), // 96: streamd.UpdateStreamForwardReply + (*RemoveStreamForwardRequest)(nil), // 97: streamd.RemoveStreamForwardRequest + (*RemoveStreamForwardReply)(nil), // 98: streamd.RemoveStreamForwardReply + (*WaitForStreamPublisherRequest)(nil), // 99: streamd.WaitForStreamPublisherRequest + (*StreamPublisher)(nil), // 100: streamd.StreamPublisher + (*StreamPlaybackConfig)(nil), // 101: streamd.StreamPlaybackConfig + (*StreamPlayerConfig)(nil), // 102: streamd.StreamPlayerConfig + (*AddStreamPlayerRequest)(nil), // 103: streamd.AddStreamPlayerRequest + (*AddStreamPlayerReply)(nil), // 104: streamd.AddStreamPlayerReply + (*RemoveStreamPlayerRequest)(nil), // 105: streamd.RemoveStreamPlayerRequest + (*RemoveStreamPlayerReply)(nil), // 106: streamd.RemoveStreamPlayerReply + (*UpdateStreamPlayerRequest)(nil), // 107: streamd.UpdateStreamPlayerRequest + (*UpdateStreamPlayerReply)(nil), // 108: streamd.UpdateStreamPlayerReply + (*ListStreamPlayersRequest)(nil), // 109: streamd.ListStreamPlayersRequest + (*ListStreamPlayersReply)(nil), // 110: streamd.ListStreamPlayersReply + (*GetStreamPlayerRequest)(nil), // 111: streamd.GetStreamPlayerRequest + (*GetStreamPlayerReply)(nil), // 112: streamd.GetStreamPlayerReply + (*StreamPlayerOpenRequest)(nil), // 113: streamd.StreamPlayerOpenRequest + (*StreamPlayerOpenReply)(nil), // 114: streamd.StreamPlayerOpenReply + (*StreamPlayerProcessTitleRequest)(nil), // 115: streamd.StreamPlayerProcessTitleRequest + (*StreamPlayerProcessTitleReply)(nil), // 116: streamd.StreamPlayerProcessTitleReply + (*StreamPlayerGetLinkRequest)(nil), // 117: streamd.StreamPlayerGetLinkRequest + (*StreamPlayerGetLinkReply)(nil), // 118: streamd.StreamPlayerGetLinkReply + (*StreamPlayerEndChanRequest)(nil), // 119: streamd.StreamPlayerEndChanRequest + (*StreamPlayerEndChanReply)(nil), // 120: streamd.StreamPlayerEndChanReply + (*StreamPlayerIsEndedRequest)(nil), // 121: streamd.StreamPlayerIsEndedRequest + (*StreamPlayerIsEndedReply)(nil), // 122: streamd.StreamPlayerIsEndedReply + (*StreamPlayerGetPositionRequest)(nil), // 123: streamd.StreamPlayerGetPositionRequest + (*StreamPlayerGetPositionReply)(nil), // 124: streamd.StreamPlayerGetPositionReply + (*StreamPlayerGetLengthRequest)(nil), // 125: streamd.StreamPlayerGetLengthRequest + (*StreamPlayerGetLengthReply)(nil), // 126: streamd.StreamPlayerGetLengthReply + (*StreamPlayerSetSpeedRequest)(nil), // 127: streamd.StreamPlayerSetSpeedRequest + (*StreamPlayerSetSpeedReply)(nil), // 128: streamd.StreamPlayerSetSpeedReply + (*StreamPlayerSetPauseRequest)(nil), // 129: streamd.StreamPlayerSetPauseRequest + (*StreamPlayerSetPauseReply)(nil), // 130: streamd.StreamPlayerSetPauseReply + (*StreamPlayerStopRequest)(nil), // 131: streamd.StreamPlayerStopRequest + (*StreamPlayerStopReply)(nil), // 132: streamd.StreamPlayerStopReply + (*StreamPlayerCloseRequest)(nil), // 133: streamd.StreamPlayerCloseRequest + (*StreamPlayerCloseReply)(nil), // 134: streamd.StreamPlayerCloseReply + (*SubscribeToConfigChangesRequest)(nil), // 135: streamd.SubscribeToConfigChangesRequest + (*ConfigChange)(nil), // 136: streamd.ConfigChange + (*SubscribeToStreamsChangesRequest)(nil), // 137: streamd.SubscribeToStreamsChangesRequest + (*StreamsChange)(nil), // 138: streamd.StreamsChange + (*SubscribeToStreamServersChangesRequest)(nil), // 139: streamd.SubscribeToStreamServersChangesRequest + (*StreamServersChange)(nil), // 140: streamd.StreamServersChange + (*SubscribeToStreamDestinationsChangesRequest)(nil), // 141: streamd.SubscribeToStreamDestinationsChangesRequest + (*StreamDestinationsChange)(nil), // 142: streamd.StreamDestinationsChange + (*SubscribeToIncomingStreamsChangesRequest)(nil), // 143: streamd.SubscribeToIncomingStreamsChangesRequest + (*IncomingStreamsChange)(nil), // 144: streamd.IncomingStreamsChange + (*SubscribeToStreamForwardsChangesRequest)(nil), // 145: streamd.SubscribeToStreamForwardsChangesRequest + (*StreamForwardsChange)(nil), // 146: streamd.StreamForwardsChange + (*SubscribeToStreamPlayersChangesRequest)(nil), // 147: streamd.SubscribeToStreamPlayersChangesRequest + (*StreamPlayersChange)(nil), // 148: streamd.StreamPlayersChange + (*player_grpc.OpenRequest)(nil), // 149: player.OpenRequest + (*player_grpc.OpenReply)(nil), // 150: player.OpenReply + (*player_grpc.ProcessTitleRequest)(nil), // 151: player.ProcessTitleRequest + (*player_grpc.ProcessTitleReply)(nil), // 152: player.ProcessTitleReply + (*player_grpc.GetLinkRequest)(nil), // 153: player.GetLinkRequest + (*player_grpc.GetLinkReply)(nil), // 154: player.GetLinkReply + (*player_grpc.EndChanRequest)(nil), // 155: player.EndChanRequest + (*player_grpc.EndChanReply)(nil), // 156: player.EndChanReply + (*player_grpc.IsEndedRequest)(nil), // 157: player.IsEndedRequest + (*player_grpc.IsEndedReply)(nil), // 158: player.IsEndedReply + (*player_grpc.GetPositionRequest)(nil), // 159: player.GetPositionRequest + (*player_grpc.GetPositionReply)(nil), // 160: player.GetPositionReply + (*player_grpc.GetLengthRequest)(nil), // 161: player.GetLengthRequest + (*player_grpc.GetLengthReply)(nil), // 162: player.GetLengthReply + (*player_grpc.SetSpeedRequest)(nil), // 163: player.SetSpeedRequest + (*player_grpc.SetSpeedReply)(nil), // 164: player.SetSpeedReply + (*player_grpc.SetPauseRequest)(nil), // 165: player.SetPauseRequest + (*player_grpc.SetPauseReply)(nil), // 166: player.SetPauseReply + (*player_grpc.StopRequest)(nil), // 167: player.StopRequest + (*player_grpc.StopReply)(nil), // 168: player.StopReply + (*player_grpc.CloseRequest)(nil), // 169: player.CloseRequest + (*player_grpc.CloseReply)(nil), // 170: player.CloseReply } var file_streamd_proto_depIdxs = []int32{ 0, // 0: streamd.SetLoggingLevelRequest.loggingLevel:type_name -> streamd.LoggingLevel 0, // 1: streamd.GetLoggingLevelReply.loggingLevel:type_name -> streamd.LoggingLevel 1, // 2: streamd.GetVariableHashRequest.hashType:type_name -> streamd.HashType 1, // 3: streamd.GetVariableHashReply.hashType:type_name -> streamd.HashType - 55, // 4: streamd.OBSGetSceneListReply.scenes:type_name -> streamd.OBSScene + 57, // 4: streamd.OBSGetSceneListReply.scenes:type_name -> streamd.OBSScene 2, // 5: streamd.StreamServer.serverType:type_name -> streamd.StreamServerType - 61, // 6: streamd.StreamServerWithStatistics.config:type_name -> streamd.StreamServer - 62, // 7: streamd.StreamServerWithStatistics.statistics:type_name -> streamd.StreamServerStatistics - 63, // 8: streamd.ListStreamServersReply.streamServers:type_name -> streamd.StreamServerWithStatistics - 61, // 9: streamd.StartStreamServerRequest.config:type_name -> streamd.StreamServer - 70, // 10: streamd.ListStreamDestinationsReply.streamDestinations:type_name -> streamd.StreamDestination - 70, // 11: streamd.AddStreamDestinationRequest.config:type_name -> streamd.StreamDestination - 77, // 12: streamd.ListIncomingStreamsReply.incomingStreams:type_name -> streamd.IncomingStream - 84, // 13: streamd.StreamForwardQuirks.restartUntilYoutubeRecognizesStream:type_name -> streamd.RestartUntilYoutubeRecognizesStream - 85, // 14: streamd.StreamForward.quirks:type_name -> streamd.StreamForwardQuirks - 86, // 15: streamd.StreamForwardWithStatistics.config:type_name -> streamd.StreamForward - 87, // 16: streamd.StreamForwardWithStatistics.statistics:type_name -> streamd.StreamForwardStatistics - 88, // 17: streamd.ListStreamForwardsReply.streamForwards:type_name -> streamd.StreamForwardWithStatistics - 86, // 18: streamd.AddStreamForwardRequest.config:type_name -> streamd.StreamForward - 86, // 19: streamd.UpdateStreamForwardRequest.config:type_name -> streamd.StreamForward - 86, // 20: streamd.RemoveStreamForwardRequest.config:type_name -> streamd.StreamForward + 63, // 6: streamd.StreamServerWithStatistics.config:type_name -> streamd.StreamServer + 64, // 7: streamd.StreamServerWithStatistics.statistics:type_name -> streamd.StreamServerStatistics + 65, // 8: streamd.ListStreamServersReply.streamServers:type_name -> streamd.StreamServerWithStatistics + 63, // 9: streamd.StartStreamServerRequest.config:type_name -> streamd.StreamServer + 72, // 10: streamd.ListStreamDestinationsReply.streamDestinations:type_name -> streamd.StreamDestination + 72, // 11: streamd.AddStreamDestinationRequest.config:type_name -> streamd.StreamDestination + 79, // 12: streamd.ListIncomingStreamsReply.incomingStreams:type_name -> streamd.IncomingStream + 86, // 13: streamd.StreamForwardQuirks.restartUntilYoutubeRecognizesStream:type_name -> streamd.RestartUntilYoutubeRecognizesStream + 87, // 14: streamd.StreamForward.quirks:type_name -> streamd.StreamForwardQuirks + 88, // 15: streamd.StreamForwardWithStatistics.config:type_name -> streamd.StreamForward + 89, // 16: streamd.StreamForwardWithStatistics.statistics:type_name -> streamd.StreamForwardStatistics + 90, // 17: streamd.ListStreamForwardsReply.streamForwards:type_name -> streamd.StreamForwardWithStatistics + 88, // 18: streamd.AddStreamForwardRequest.config:type_name -> streamd.StreamForward + 88, // 19: streamd.UpdateStreamForwardRequest.config:type_name -> streamd.StreamForward + 88, // 20: streamd.RemoveStreamForwardRequest.config:type_name -> streamd.StreamForward 3, // 21: streamd.StreamPlayerConfig.playerType:type_name -> streamd.PlayerType - 99, // 22: streamd.StreamPlayerConfig.streamPlaybackConfig:type_name -> streamd.StreamPlaybackConfig - 100, // 23: streamd.AddStreamPlayerRequest.config:type_name -> streamd.StreamPlayerConfig - 100, // 24: streamd.UpdateStreamPlayerRequest.config:type_name -> streamd.StreamPlayerConfig - 100, // 25: streamd.ListStreamPlayersReply.players:type_name -> streamd.StreamPlayerConfig - 100, // 26: streamd.GetStreamPlayerReply.config:type_name -> streamd.StreamPlayerConfig - 147, // 27: streamd.StreamPlayerOpenRequest.request:type_name -> player.OpenRequest - 148, // 28: streamd.StreamPlayerOpenReply.reply:type_name -> player.OpenReply - 149, // 29: streamd.StreamPlayerProcessTitleRequest.request:type_name -> player.ProcessTitleRequest - 150, // 30: streamd.StreamPlayerProcessTitleReply.reply:type_name -> player.ProcessTitleReply - 151, // 31: streamd.StreamPlayerGetLinkRequest.request:type_name -> player.GetLinkRequest - 152, // 32: streamd.StreamPlayerGetLinkReply.reply:type_name -> player.GetLinkReply - 153, // 33: streamd.StreamPlayerEndChanRequest.request:type_name -> player.EndChanRequest - 154, // 34: streamd.StreamPlayerEndChanReply.reply:type_name -> player.EndChanReply - 155, // 35: streamd.StreamPlayerIsEndedRequest.request:type_name -> player.IsEndedRequest - 156, // 36: streamd.StreamPlayerIsEndedReply.reply:type_name -> player.IsEndedReply - 157, // 37: streamd.StreamPlayerGetPositionRequest.request:type_name -> player.GetPositionRequest - 158, // 38: streamd.StreamPlayerGetPositionReply.reply:type_name -> player.GetPositionReply - 159, // 39: streamd.StreamPlayerGetLengthRequest.request:type_name -> player.GetLengthRequest - 160, // 40: streamd.StreamPlayerGetLengthReply.reply:type_name -> player.GetLengthReply - 161, // 41: streamd.StreamPlayerSetSpeedRequest.request:type_name -> player.SetSpeedRequest - 162, // 42: streamd.StreamPlayerSetSpeedReply.reply:type_name -> player.SetSpeedReply - 163, // 43: streamd.StreamPlayerSetPauseRequest.request:type_name -> player.SetPauseRequest - 164, // 44: streamd.StreamPlayerSetPauseReply.reply:type_name -> player.SetPauseReply - 165, // 45: streamd.StreamPlayerStopRequest.request:type_name -> player.StopRequest - 166, // 46: streamd.StreamPlayerStopReply.reply:type_name -> player.StopReply - 167, // 47: streamd.StreamPlayerCloseRequest.request:type_name -> player.CloseRequest - 168, // 48: streamd.StreamPlayerCloseReply.reply:type_name -> player.CloseReply - 4, // 49: streamd.StreamD.SetLoggingLevel:input_type -> streamd.SetLoggingLevelRequest - 6, // 50: streamd.StreamD.GetLoggingLevel:input_type -> streamd.GetLoggingLevelRequest - 8, // 51: streamd.StreamD.GetConfig:input_type -> streamd.GetConfigRequest - 10, // 52: streamd.StreamD.SetConfig:input_type -> streamd.SetConfigRequest - 12, // 53: streamd.StreamD.SaveConfig:input_type -> streamd.SaveConfigRequest - 133, // 54: streamd.StreamD.SubscribeToConfigChanges:input_type -> streamd.SubscribeToConfigChangesRequest - 14, // 55: streamd.StreamD.ResetCache:input_type -> streamd.ResetCacheRequest - 16, // 56: streamd.StreamD.InitCache:input_type -> streamd.InitCacheRequest - 18, // 57: streamd.StreamD.StartStream:input_type -> streamd.StartStreamRequest - 20, // 58: streamd.StreamD.EndStream:input_type -> streamd.EndStreamRequest - 22, // 59: streamd.StreamD.GetStreamStatus:input_type -> streamd.GetStreamStatusRequest - 26, // 60: streamd.StreamD.IsBackendEnabled:input_type -> streamd.IsBackendEnabledRequest - 24, // 61: streamd.StreamD.GetBackendInfo:input_type -> streamd.GetBackendInfoRequest - 135, // 62: streamd.StreamD.SubscribeToStreamsChanges:input_type -> streamd.SubscribeToStreamsChangesRequest - 28, // 63: streamd.StreamD.Restart:input_type -> streamd.RestartRequest - 30, // 64: streamd.StreamD.SetTitle:input_type -> streamd.SetTitleRequest - 32, // 65: streamd.StreamD.SetDescription:input_type -> streamd.SetDescriptionRequest - 34, // 66: streamd.StreamD.ApplyProfile:input_type -> streamd.ApplyProfileRequest - 36, // 67: streamd.StreamD.UpdateStream:input_type -> streamd.UpdateStreamRequest - 48, // 68: streamd.StreamD.GetVariable:input_type -> streamd.GetVariableRequest - 50, // 69: streamd.StreamD.GetVariableHash:input_type -> streamd.GetVariableHashRequest - 52, // 70: streamd.StreamD.SetVariable:input_type -> streamd.SetVariableRequest - 38, // 71: streamd.StreamD.EXPERIMENTAL_ReinitStreamControllers:input_type -> streamd.EXPERIMENTAL_ReinitStreamControllersRequest - 40, // 72: streamd.StreamD.OBSOLETE_FetchConfig:input_type -> streamd.OBSOLETE_FetchConfigRequest - 42, // 73: streamd.StreamD.OBSOLETE_GitInfo:input_type -> streamd.OBSOLETE_GetGitInfoRequest - 44, // 74: streamd.StreamD.OBSOLETE_GitRelogin:input_type -> streamd.OBSOLETE_GitReloginRequest - 46, // 75: streamd.StreamD.SubscribeToOAuthRequests:input_type -> streamd.SubscribeToOAuthRequestsRequest - 59, // 76: streamd.StreamD.SubmitOAuthCode:input_type -> streamd.SubmitOAuthCodeRequest - 54, // 77: streamd.StreamD.OBSGetSceneList:input_type -> streamd.OBSGetSceneListRequest - 57, // 78: streamd.StreamD.OBSSetCurrentProgramScene:input_type -> streamd.OBSSetCurrentProgramSceneRequest - 64, // 79: streamd.StreamD.ListStreamServers:input_type -> streamd.ListStreamServersRequest - 66, // 80: streamd.StreamD.StartStreamServer:input_type -> streamd.StartStreamServerRequest - 68, // 81: streamd.StreamD.StopStreamServer:input_type -> streamd.StopStreamServerRequest - 137, // 82: streamd.StreamD.SubscribeToStreamServersChanges:input_type -> streamd.SubscribeToStreamServersChangesRequest - 71, // 83: streamd.StreamD.ListStreamDestinations:input_type -> streamd.ListStreamDestinationsRequest - 73, // 84: streamd.StreamD.AddStreamDestination:input_type -> streamd.AddStreamDestinationRequest - 75, // 85: streamd.StreamD.RemoveStreamDestination:input_type -> streamd.RemoveStreamDestinationRequest - 139, // 86: streamd.StreamD.SubscribeToStreamDestinationsChanges:input_type -> streamd.SubscribeToStreamDestinationsChangesRequest - 78, // 87: streamd.StreamD.AddIncomingStream:input_type -> streamd.AddIncomingStreamRequest - 80, // 88: streamd.StreamD.RemoveIncomingStream:input_type -> streamd.RemoveIncomingStreamRequest - 82, // 89: streamd.StreamD.ListIncomingStreams:input_type -> streamd.ListIncomingStreamsRequest - 141, // 90: streamd.StreamD.SubscribeToIncomingStreamsChanges:input_type -> streamd.SubscribeToIncomingStreamsChangesRequest - 89, // 91: streamd.StreamD.ListStreamForwards:input_type -> streamd.ListStreamForwardsRequest - 91, // 92: streamd.StreamD.AddStreamForward:input_type -> streamd.AddStreamForwardRequest - 93, // 93: streamd.StreamD.UpdateStreamForward:input_type -> streamd.UpdateStreamForwardRequest - 95, // 94: streamd.StreamD.RemoveStreamForward:input_type -> streamd.RemoveStreamForwardRequest - 143, // 95: streamd.StreamD.SubscribeToStreamForwardsChanges:input_type -> streamd.SubscribeToStreamForwardsChangesRequest - 97, // 96: streamd.StreamD.WaitForStreamPublisher:input_type -> streamd.WaitForStreamPublisherRequest - 101, // 97: streamd.StreamD.AddStreamPlayer:input_type -> streamd.AddStreamPlayerRequest - 103, // 98: streamd.StreamD.RemoveStreamPlayer:input_type -> streamd.RemoveStreamPlayerRequest - 105, // 99: streamd.StreamD.UpdateStreamPlayer:input_type -> streamd.UpdateStreamPlayerRequest - 107, // 100: streamd.StreamD.ListStreamPlayers:input_type -> streamd.ListStreamPlayersRequest - 109, // 101: streamd.StreamD.GetStreamPlayer:input_type -> streamd.GetStreamPlayerRequest - 145, // 102: streamd.StreamD.SubscribeToStreamPlayersChanges:input_type -> streamd.SubscribeToStreamPlayersChangesRequest - 111, // 103: streamd.StreamD.StreamPlayerOpen:input_type -> streamd.StreamPlayerOpenRequest - 113, // 104: streamd.StreamD.StreamPlayerProcessTitle:input_type -> streamd.StreamPlayerProcessTitleRequest - 115, // 105: streamd.StreamD.StreamPlayerGetLink:input_type -> streamd.StreamPlayerGetLinkRequest - 117, // 106: streamd.StreamD.StreamPlayerEndChan:input_type -> streamd.StreamPlayerEndChanRequest - 119, // 107: streamd.StreamD.StreamPlayerIsEnded:input_type -> streamd.StreamPlayerIsEndedRequest - 121, // 108: streamd.StreamD.StreamPlayerGetPosition:input_type -> streamd.StreamPlayerGetPositionRequest - 123, // 109: streamd.StreamD.StreamPlayerGetLength:input_type -> streamd.StreamPlayerGetLengthRequest - 125, // 110: streamd.StreamD.StreamPlayerSetSpeed:input_type -> streamd.StreamPlayerSetSpeedRequest - 127, // 111: streamd.StreamD.StreamPlayerSetPause:input_type -> streamd.StreamPlayerSetPauseRequest - 129, // 112: streamd.StreamD.StreamPlayerStop:input_type -> streamd.StreamPlayerStopRequest - 131, // 113: streamd.StreamD.StreamPlayerClose:input_type -> streamd.StreamPlayerCloseRequest - 5, // 114: streamd.StreamD.SetLoggingLevel:output_type -> streamd.SetLoggingLevelReply - 7, // 115: streamd.StreamD.GetLoggingLevel:output_type -> streamd.GetLoggingLevelReply - 9, // 116: streamd.StreamD.GetConfig:output_type -> streamd.GetConfigReply - 11, // 117: streamd.StreamD.SetConfig:output_type -> streamd.SetConfigReply - 13, // 118: streamd.StreamD.SaveConfig:output_type -> streamd.SaveConfigReply - 134, // 119: streamd.StreamD.SubscribeToConfigChanges:output_type -> streamd.ConfigChange - 15, // 120: streamd.StreamD.ResetCache:output_type -> streamd.ResetCacheReply - 17, // 121: streamd.StreamD.InitCache:output_type -> streamd.InitCacheReply - 19, // 122: streamd.StreamD.StartStream:output_type -> streamd.StartStreamReply - 21, // 123: streamd.StreamD.EndStream:output_type -> streamd.EndStreamReply - 23, // 124: streamd.StreamD.GetStreamStatus:output_type -> streamd.GetStreamStatusReply - 27, // 125: streamd.StreamD.IsBackendEnabled:output_type -> streamd.IsBackendEnabledReply - 25, // 126: streamd.StreamD.GetBackendInfo:output_type -> streamd.GetBackendInfoReply - 136, // 127: streamd.StreamD.SubscribeToStreamsChanges:output_type -> streamd.StreamsChange - 29, // 128: streamd.StreamD.Restart:output_type -> streamd.RestartReply - 31, // 129: streamd.StreamD.SetTitle:output_type -> streamd.SetTitleReply - 33, // 130: streamd.StreamD.SetDescription:output_type -> streamd.SetDescriptionReply - 35, // 131: streamd.StreamD.ApplyProfile:output_type -> streamd.ApplyProfileReply - 37, // 132: streamd.StreamD.UpdateStream:output_type -> streamd.UpdateStreamReply - 49, // 133: streamd.StreamD.GetVariable:output_type -> streamd.GetVariableReply - 51, // 134: streamd.StreamD.GetVariableHash:output_type -> streamd.GetVariableHashReply - 53, // 135: streamd.StreamD.SetVariable:output_type -> streamd.SetVariableReply - 39, // 136: streamd.StreamD.EXPERIMENTAL_ReinitStreamControllers:output_type -> streamd.EXPERIMENTAL_ReinitStreamControllersReply - 41, // 137: streamd.StreamD.OBSOLETE_FetchConfig:output_type -> streamd.OBSOLETE_FetchConfigReply - 43, // 138: streamd.StreamD.OBSOLETE_GitInfo:output_type -> streamd.OBSOLETE_GetGitInfoReply - 45, // 139: streamd.StreamD.OBSOLETE_GitRelogin:output_type -> streamd.OBSOLETE_GitReloginReply - 47, // 140: streamd.StreamD.SubscribeToOAuthRequests:output_type -> streamd.OAuthRequest - 60, // 141: streamd.StreamD.SubmitOAuthCode:output_type -> streamd.SubmitOAuthCodeReply - 56, // 142: streamd.StreamD.OBSGetSceneList:output_type -> streamd.OBSGetSceneListReply - 58, // 143: streamd.StreamD.OBSSetCurrentProgramScene:output_type -> streamd.OBSSetCurrentProgramSceneReply - 65, // 144: streamd.StreamD.ListStreamServers:output_type -> streamd.ListStreamServersReply - 67, // 145: streamd.StreamD.StartStreamServer:output_type -> streamd.StartStreamServerReply - 69, // 146: streamd.StreamD.StopStreamServer:output_type -> streamd.StopStreamServerReply - 138, // 147: streamd.StreamD.SubscribeToStreamServersChanges:output_type -> streamd.StreamServersChange - 72, // 148: streamd.StreamD.ListStreamDestinations:output_type -> streamd.ListStreamDestinationsReply - 74, // 149: streamd.StreamD.AddStreamDestination:output_type -> streamd.AddStreamDestinationReply - 76, // 150: streamd.StreamD.RemoveStreamDestination:output_type -> streamd.RemoveStreamDestinationReply - 140, // 151: streamd.StreamD.SubscribeToStreamDestinationsChanges:output_type -> streamd.StreamDestinationsChange - 79, // 152: streamd.StreamD.AddIncomingStream:output_type -> streamd.AddIncomingStreamReply - 81, // 153: streamd.StreamD.RemoveIncomingStream:output_type -> streamd.RemoveIncomingStreamReply - 83, // 154: streamd.StreamD.ListIncomingStreams:output_type -> streamd.ListIncomingStreamsReply - 142, // 155: streamd.StreamD.SubscribeToIncomingStreamsChanges:output_type -> streamd.IncomingStreamsChange - 90, // 156: streamd.StreamD.ListStreamForwards:output_type -> streamd.ListStreamForwardsReply - 92, // 157: streamd.StreamD.AddStreamForward:output_type -> streamd.AddStreamForwardReply - 94, // 158: streamd.StreamD.UpdateStreamForward:output_type -> streamd.UpdateStreamForwardReply - 96, // 159: streamd.StreamD.RemoveStreamForward:output_type -> streamd.RemoveStreamForwardReply - 144, // 160: streamd.StreamD.SubscribeToStreamForwardsChanges:output_type -> streamd.StreamForwardsChange - 98, // 161: streamd.StreamD.WaitForStreamPublisher:output_type -> streamd.StreamPublisher - 102, // 162: streamd.StreamD.AddStreamPlayer:output_type -> streamd.AddStreamPlayerReply - 104, // 163: streamd.StreamD.RemoveStreamPlayer:output_type -> streamd.RemoveStreamPlayerReply - 106, // 164: streamd.StreamD.UpdateStreamPlayer:output_type -> streamd.UpdateStreamPlayerReply - 108, // 165: streamd.StreamD.ListStreamPlayers:output_type -> streamd.ListStreamPlayersReply - 110, // 166: streamd.StreamD.GetStreamPlayer:output_type -> streamd.GetStreamPlayerReply - 146, // 167: streamd.StreamD.SubscribeToStreamPlayersChanges:output_type -> streamd.StreamPlayersChange - 112, // 168: streamd.StreamD.StreamPlayerOpen:output_type -> streamd.StreamPlayerOpenReply - 114, // 169: streamd.StreamD.StreamPlayerProcessTitle:output_type -> streamd.StreamPlayerProcessTitleReply - 116, // 170: streamd.StreamD.StreamPlayerGetLink:output_type -> streamd.StreamPlayerGetLinkReply - 118, // 171: streamd.StreamD.StreamPlayerEndChan:output_type -> streamd.StreamPlayerEndChanReply - 120, // 172: streamd.StreamD.StreamPlayerIsEnded:output_type -> streamd.StreamPlayerIsEndedReply - 122, // 173: streamd.StreamD.StreamPlayerGetPosition:output_type -> streamd.StreamPlayerGetPositionReply - 124, // 174: streamd.StreamD.StreamPlayerGetLength:output_type -> streamd.StreamPlayerGetLengthReply - 126, // 175: streamd.StreamD.StreamPlayerSetSpeed:output_type -> streamd.StreamPlayerSetSpeedReply - 128, // 176: streamd.StreamD.StreamPlayerSetPause:output_type -> streamd.StreamPlayerSetPauseReply - 130, // 177: streamd.StreamD.StreamPlayerStop:output_type -> streamd.StreamPlayerStopReply - 132, // 178: streamd.StreamD.StreamPlayerClose:output_type -> streamd.StreamPlayerCloseReply - 114, // [114:179] is the sub-list for method output_type - 49, // [49:114] is the sub-list for method input_type + 101, // 22: streamd.StreamPlayerConfig.streamPlaybackConfig:type_name -> streamd.StreamPlaybackConfig + 102, // 23: streamd.AddStreamPlayerRequest.config:type_name -> streamd.StreamPlayerConfig + 102, // 24: streamd.UpdateStreamPlayerRequest.config:type_name -> streamd.StreamPlayerConfig + 102, // 25: streamd.ListStreamPlayersReply.players:type_name -> streamd.StreamPlayerConfig + 102, // 26: streamd.GetStreamPlayerReply.config:type_name -> streamd.StreamPlayerConfig + 149, // 27: streamd.StreamPlayerOpenRequest.request:type_name -> player.OpenRequest + 150, // 28: streamd.StreamPlayerOpenReply.reply:type_name -> player.OpenReply + 151, // 29: streamd.StreamPlayerProcessTitleRequest.request:type_name -> player.ProcessTitleRequest + 152, // 30: streamd.StreamPlayerProcessTitleReply.reply:type_name -> player.ProcessTitleReply + 153, // 31: streamd.StreamPlayerGetLinkRequest.request:type_name -> player.GetLinkRequest + 154, // 32: streamd.StreamPlayerGetLinkReply.reply:type_name -> player.GetLinkReply + 155, // 33: streamd.StreamPlayerEndChanRequest.request:type_name -> player.EndChanRequest + 156, // 34: streamd.StreamPlayerEndChanReply.reply:type_name -> player.EndChanReply + 157, // 35: streamd.StreamPlayerIsEndedRequest.request:type_name -> player.IsEndedRequest + 158, // 36: streamd.StreamPlayerIsEndedReply.reply:type_name -> player.IsEndedReply + 159, // 37: streamd.StreamPlayerGetPositionRequest.request:type_name -> player.GetPositionRequest + 160, // 38: streamd.StreamPlayerGetPositionReply.reply:type_name -> player.GetPositionReply + 161, // 39: streamd.StreamPlayerGetLengthRequest.request:type_name -> player.GetLengthRequest + 162, // 40: streamd.StreamPlayerGetLengthReply.reply:type_name -> player.GetLengthReply + 163, // 41: streamd.StreamPlayerSetSpeedRequest.request:type_name -> player.SetSpeedRequest + 164, // 42: streamd.StreamPlayerSetSpeedReply.reply:type_name -> player.SetSpeedReply + 165, // 43: streamd.StreamPlayerSetPauseRequest.request:type_name -> player.SetPauseRequest + 166, // 44: streamd.StreamPlayerSetPauseReply.reply:type_name -> player.SetPauseReply + 167, // 45: streamd.StreamPlayerStopRequest.request:type_name -> player.StopRequest + 168, // 46: streamd.StreamPlayerStopReply.reply:type_name -> player.StopReply + 169, // 47: streamd.StreamPlayerCloseRequest.request:type_name -> player.CloseRequest + 170, // 48: streamd.StreamPlayerCloseReply.reply:type_name -> player.CloseReply + 4, // 49: streamd.StreamD.Ping:input_type -> streamd.PingRequest + 6, // 50: streamd.StreamD.SetLoggingLevel:input_type -> streamd.SetLoggingLevelRequest + 8, // 51: streamd.StreamD.GetLoggingLevel:input_type -> streamd.GetLoggingLevelRequest + 10, // 52: streamd.StreamD.GetConfig:input_type -> streamd.GetConfigRequest + 12, // 53: streamd.StreamD.SetConfig:input_type -> streamd.SetConfigRequest + 14, // 54: streamd.StreamD.SaveConfig:input_type -> streamd.SaveConfigRequest + 135, // 55: streamd.StreamD.SubscribeToConfigChanges:input_type -> streamd.SubscribeToConfigChangesRequest + 16, // 56: streamd.StreamD.ResetCache:input_type -> streamd.ResetCacheRequest + 18, // 57: streamd.StreamD.InitCache:input_type -> streamd.InitCacheRequest + 20, // 58: streamd.StreamD.StartStream:input_type -> streamd.StartStreamRequest + 22, // 59: streamd.StreamD.EndStream:input_type -> streamd.EndStreamRequest + 24, // 60: streamd.StreamD.GetStreamStatus:input_type -> streamd.GetStreamStatusRequest + 28, // 61: streamd.StreamD.IsBackendEnabled:input_type -> streamd.IsBackendEnabledRequest + 26, // 62: streamd.StreamD.GetBackendInfo:input_type -> streamd.GetBackendInfoRequest + 137, // 63: streamd.StreamD.SubscribeToStreamsChanges:input_type -> streamd.SubscribeToStreamsChangesRequest + 30, // 64: streamd.StreamD.Restart:input_type -> streamd.RestartRequest + 32, // 65: streamd.StreamD.SetTitle:input_type -> streamd.SetTitleRequest + 34, // 66: streamd.StreamD.SetDescription:input_type -> streamd.SetDescriptionRequest + 36, // 67: streamd.StreamD.ApplyProfile:input_type -> streamd.ApplyProfileRequest + 38, // 68: streamd.StreamD.UpdateStream:input_type -> streamd.UpdateStreamRequest + 50, // 69: streamd.StreamD.GetVariable:input_type -> streamd.GetVariableRequest + 52, // 70: streamd.StreamD.GetVariableHash:input_type -> streamd.GetVariableHashRequest + 54, // 71: streamd.StreamD.SetVariable:input_type -> streamd.SetVariableRequest + 40, // 72: streamd.StreamD.EXPERIMENTAL_ReinitStreamControllers:input_type -> streamd.EXPERIMENTAL_ReinitStreamControllersRequest + 42, // 73: streamd.StreamD.OBSOLETE_FetchConfig:input_type -> streamd.OBSOLETE_FetchConfigRequest + 44, // 74: streamd.StreamD.OBSOLETE_GitInfo:input_type -> streamd.OBSOLETE_GetGitInfoRequest + 46, // 75: streamd.StreamD.OBSOLETE_GitRelogin:input_type -> streamd.OBSOLETE_GitReloginRequest + 48, // 76: streamd.StreamD.SubscribeToOAuthRequests:input_type -> streamd.SubscribeToOAuthRequestsRequest + 61, // 77: streamd.StreamD.SubmitOAuthCode:input_type -> streamd.SubmitOAuthCodeRequest + 56, // 78: streamd.StreamD.OBSGetSceneList:input_type -> streamd.OBSGetSceneListRequest + 59, // 79: streamd.StreamD.OBSSetCurrentProgramScene:input_type -> streamd.OBSSetCurrentProgramSceneRequest + 66, // 80: streamd.StreamD.ListStreamServers:input_type -> streamd.ListStreamServersRequest + 68, // 81: streamd.StreamD.StartStreamServer:input_type -> streamd.StartStreamServerRequest + 70, // 82: streamd.StreamD.StopStreamServer:input_type -> streamd.StopStreamServerRequest + 139, // 83: streamd.StreamD.SubscribeToStreamServersChanges:input_type -> streamd.SubscribeToStreamServersChangesRequest + 73, // 84: streamd.StreamD.ListStreamDestinations:input_type -> streamd.ListStreamDestinationsRequest + 75, // 85: streamd.StreamD.AddStreamDestination:input_type -> streamd.AddStreamDestinationRequest + 77, // 86: streamd.StreamD.RemoveStreamDestination:input_type -> streamd.RemoveStreamDestinationRequest + 141, // 87: streamd.StreamD.SubscribeToStreamDestinationsChanges:input_type -> streamd.SubscribeToStreamDestinationsChangesRequest + 80, // 88: streamd.StreamD.AddIncomingStream:input_type -> streamd.AddIncomingStreamRequest + 82, // 89: streamd.StreamD.RemoveIncomingStream:input_type -> streamd.RemoveIncomingStreamRequest + 84, // 90: streamd.StreamD.ListIncomingStreams:input_type -> streamd.ListIncomingStreamsRequest + 143, // 91: streamd.StreamD.SubscribeToIncomingStreamsChanges:input_type -> streamd.SubscribeToIncomingStreamsChangesRequest + 91, // 92: streamd.StreamD.ListStreamForwards:input_type -> streamd.ListStreamForwardsRequest + 93, // 93: streamd.StreamD.AddStreamForward:input_type -> streamd.AddStreamForwardRequest + 95, // 94: streamd.StreamD.UpdateStreamForward:input_type -> streamd.UpdateStreamForwardRequest + 97, // 95: streamd.StreamD.RemoveStreamForward:input_type -> streamd.RemoveStreamForwardRequest + 145, // 96: streamd.StreamD.SubscribeToStreamForwardsChanges:input_type -> streamd.SubscribeToStreamForwardsChangesRequest + 99, // 97: streamd.StreamD.WaitForStreamPublisher:input_type -> streamd.WaitForStreamPublisherRequest + 103, // 98: streamd.StreamD.AddStreamPlayer:input_type -> streamd.AddStreamPlayerRequest + 105, // 99: streamd.StreamD.RemoveStreamPlayer:input_type -> streamd.RemoveStreamPlayerRequest + 107, // 100: streamd.StreamD.UpdateStreamPlayer:input_type -> streamd.UpdateStreamPlayerRequest + 109, // 101: streamd.StreamD.ListStreamPlayers:input_type -> streamd.ListStreamPlayersRequest + 111, // 102: streamd.StreamD.GetStreamPlayer:input_type -> streamd.GetStreamPlayerRequest + 147, // 103: streamd.StreamD.SubscribeToStreamPlayersChanges:input_type -> streamd.SubscribeToStreamPlayersChangesRequest + 113, // 104: streamd.StreamD.StreamPlayerOpen:input_type -> streamd.StreamPlayerOpenRequest + 115, // 105: streamd.StreamD.StreamPlayerProcessTitle:input_type -> streamd.StreamPlayerProcessTitleRequest + 117, // 106: streamd.StreamD.StreamPlayerGetLink:input_type -> streamd.StreamPlayerGetLinkRequest + 119, // 107: streamd.StreamD.StreamPlayerEndChan:input_type -> streamd.StreamPlayerEndChanRequest + 121, // 108: streamd.StreamD.StreamPlayerIsEnded:input_type -> streamd.StreamPlayerIsEndedRequest + 123, // 109: streamd.StreamD.StreamPlayerGetPosition:input_type -> streamd.StreamPlayerGetPositionRequest + 125, // 110: streamd.StreamD.StreamPlayerGetLength:input_type -> streamd.StreamPlayerGetLengthRequest + 127, // 111: streamd.StreamD.StreamPlayerSetSpeed:input_type -> streamd.StreamPlayerSetSpeedRequest + 129, // 112: streamd.StreamD.StreamPlayerSetPause:input_type -> streamd.StreamPlayerSetPauseRequest + 131, // 113: streamd.StreamD.StreamPlayerStop:input_type -> streamd.StreamPlayerStopRequest + 133, // 114: streamd.StreamD.StreamPlayerClose:input_type -> streamd.StreamPlayerCloseRequest + 5, // 115: streamd.StreamD.Ping:output_type -> streamd.PingReply + 7, // 116: streamd.StreamD.SetLoggingLevel:output_type -> streamd.SetLoggingLevelReply + 9, // 117: streamd.StreamD.GetLoggingLevel:output_type -> streamd.GetLoggingLevelReply + 11, // 118: streamd.StreamD.GetConfig:output_type -> streamd.GetConfigReply + 13, // 119: streamd.StreamD.SetConfig:output_type -> streamd.SetConfigReply + 15, // 120: streamd.StreamD.SaveConfig:output_type -> streamd.SaveConfigReply + 136, // 121: streamd.StreamD.SubscribeToConfigChanges:output_type -> streamd.ConfigChange + 17, // 122: streamd.StreamD.ResetCache:output_type -> streamd.ResetCacheReply + 19, // 123: streamd.StreamD.InitCache:output_type -> streamd.InitCacheReply + 21, // 124: streamd.StreamD.StartStream:output_type -> streamd.StartStreamReply + 23, // 125: streamd.StreamD.EndStream:output_type -> streamd.EndStreamReply + 25, // 126: streamd.StreamD.GetStreamStatus:output_type -> streamd.GetStreamStatusReply + 29, // 127: streamd.StreamD.IsBackendEnabled:output_type -> streamd.IsBackendEnabledReply + 27, // 128: streamd.StreamD.GetBackendInfo:output_type -> streamd.GetBackendInfoReply + 138, // 129: streamd.StreamD.SubscribeToStreamsChanges:output_type -> streamd.StreamsChange + 31, // 130: streamd.StreamD.Restart:output_type -> streamd.RestartReply + 33, // 131: streamd.StreamD.SetTitle:output_type -> streamd.SetTitleReply + 35, // 132: streamd.StreamD.SetDescription:output_type -> streamd.SetDescriptionReply + 37, // 133: streamd.StreamD.ApplyProfile:output_type -> streamd.ApplyProfileReply + 39, // 134: streamd.StreamD.UpdateStream:output_type -> streamd.UpdateStreamReply + 51, // 135: streamd.StreamD.GetVariable:output_type -> streamd.GetVariableReply + 53, // 136: streamd.StreamD.GetVariableHash:output_type -> streamd.GetVariableHashReply + 55, // 137: streamd.StreamD.SetVariable:output_type -> streamd.SetVariableReply + 41, // 138: streamd.StreamD.EXPERIMENTAL_ReinitStreamControllers:output_type -> streamd.EXPERIMENTAL_ReinitStreamControllersReply + 43, // 139: streamd.StreamD.OBSOLETE_FetchConfig:output_type -> streamd.OBSOLETE_FetchConfigReply + 45, // 140: streamd.StreamD.OBSOLETE_GitInfo:output_type -> streamd.OBSOLETE_GetGitInfoReply + 47, // 141: streamd.StreamD.OBSOLETE_GitRelogin:output_type -> streamd.OBSOLETE_GitReloginReply + 49, // 142: streamd.StreamD.SubscribeToOAuthRequests:output_type -> streamd.OAuthRequest + 62, // 143: streamd.StreamD.SubmitOAuthCode:output_type -> streamd.SubmitOAuthCodeReply + 58, // 144: streamd.StreamD.OBSGetSceneList:output_type -> streamd.OBSGetSceneListReply + 60, // 145: streamd.StreamD.OBSSetCurrentProgramScene:output_type -> streamd.OBSSetCurrentProgramSceneReply + 67, // 146: streamd.StreamD.ListStreamServers:output_type -> streamd.ListStreamServersReply + 69, // 147: streamd.StreamD.StartStreamServer:output_type -> streamd.StartStreamServerReply + 71, // 148: streamd.StreamD.StopStreamServer:output_type -> streamd.StopStreamServerReply + 140, // 149: streamd.StreamD.SubscribeToStreamServersChanges:output_type -> streamd.StreamServersChange + 74, // 150: streamd.StreamD.ListStreamDestinations:output_type -> streamd.ListStreamDestinationsReply + 76, // 151: streamd.StreamD.AddStreamDestination:output_type -> streamd.AddStreamDestinationReply + 78, // 152: streamd.StreamD.RemoveStreamDestination:output_type -> streamd.RemoveStreamDestinationReply + 142, // 153: streamd.StreamD.SubscribeToStreamDestinationsChanges:output_type -> streamd.StreamDestinationsChange + 81, // 154: streamd.StreamD.AddIncomingStream:output_type -> streamd.AddIncomingStreamReply + 83, // 155: streamd.StreamD.RemoveIncomingStream:output_type -> streamd.RemoveIncomingStreamReply + 85, // 156: streamd.StreamD.ListIncomingStreams:output_type -> streamd.ListIncomingStreamsReply + 144, // 157: streamd.StreamD.SubscribeToIncomingStreamsChanges:output_type -> streamd.IncomingStreamsChange + 92, // 158: streamd.StreamD.ListStreamForwards:output_type -> streamd.ListStreamForwardsReply + 94, // 159: streamd.StreamD.AddStreamForward:output_type -> streamd.AddStreamForwardReply + 96, // 160: streamd.StreamD.UpdateStreamForward:output_type -> streamd.UpdateStreamForwardReply + 98, // 161: streamd.StreamD.RemoveStreamForward:output_type -> streamd.RemoveStreamForwardReply + 146, // 162: streamd.StreamD.SubscribeToStreamForwardsChanges:output_type -> streamd.StreamForwardsChange + 100, // 163: streamd.StreamD.WaitForStreamPublisher:output_type -> streamd.StreamPublisher + 104, // 164: streamd.StreamD.AddStreamPlayer:output_type -> streamd.AddStreamPlayerReply + 106, // 165: streamd.StreamD.RemoveStreamPlayer:output_type -> streamd.RemoveStreamPlayerReply + 108, // 166: streamd.StreamD.UpdateStreamPlayer:output_type -> streamd.UpdateStreamPlayerReply + 110, // 167: streamd.StreamD.ListStreamPlayers:output_type -> streamd.ListStreamPlayersReply + 112, // 168: streamd.StreamD.GetStreamPlayer:output_type -> streamd.GetStreamPlayerReply + 148, // 169: streamd.StreamD.SubscribeToStreamPlayersChanges:output_type -> streamd.StreamPlayersChange + 114, // 170: streamd.StreamD.StreamPlayerOpen:output_type -> streamd.StreamPlayerOpenReply + 116, // 171: streamd.StreamD.StreamPlayerProcessTitle:output_type -> streamd.StreamPlayerProcessTitleReply + 118, // 172: streamd.StreamD.StreamPlayerGetLink:output_type -> streamd.StreamPlayerGetLinkReply + 120, // 173: streamd.StreamD.StreamPlayerEndChan:output_type -> streamd.StreamPlayerEndChanReply + 122, // 174: streamd.StreamD.StreamPlayerIsEnded:output_type -> streamd.StreamPlayerIsEndedReply + 124, // 175: streamd.StreamD.StreamPlayerGetPosition:output_type -> streamd.StreamPlayerGetPositionReply + 126, // 176: streamd.StreamD.StreamPlayerGetLength:output_type -> streamd.StreamPlayerGetLengthReply + 128, // 177: streamd.StreamD.StreamPlayerSetSpeed:output_type -> streamd.StreamPlayerSetSpeedReply + 130, // 178: streamd.StreamD.StreamPlayerSetPause:output_type -> streamd.StreamPlayerSetPauseReply + 132, // 179: streamd.StreamD.StreamPlayerStop:output_type -> streamd.StreamPlayerStopReply + 134, // 180: streamd.StreamD.StreamPlayerClose:output_type -> streamd.StreamPlayerCloseReply + 115, // [115:181] is the sub-list for method output_type + 49, // [49:115] is the sub-list for method input_type 49, // [49:49] is the sub-list for extension type_name 49, // [49:49] is the sub-list for extension extendee 0, // [0:49] is the sub-list for field type_name @@ -8231,7 +8361,7 @@ func file_streamd_proto_init() { } if !protoimpl.UnsafeEnabled { file_streamd_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLoggingLevelRequest); i { + switch v := v.(*PingRequest); i { case 0: return &v.state case 1: @@ -8243,7 +8373,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetLoggingLevelReply); i { + switch v := v.(*PingReply); i { case 0: return &v.state case 1: @@ -8255,7 +8385,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLoggingLevelRequest); i { + switch v := v.(*SetLoggingLevelRequest); i { case 0: return &v.state case 1: @@ -8267,7 +8397,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLoggingLevelReply); i { + switch v := v.(*SetLoggingLevelReply); i { case 0: return &v.state case 1: @@ -8279,7 +8409,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConfigRequest); i { + switch v := v.(*GetLoggingLevelRequest); i { case 0: return &v.state case 1: @@ -8291,7 +8421,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetConfigReply); i { + switch v := v.(*GetLoggingLevelReply); i { case 0: return &v.state case 1: @@ -8303,7 +8433,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConfigRequest); i { + switch v := v.(*GetConfigRequest); i { case 0: return &v.state case 1: @@ -8315,7 +8445,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetConfigReply); i { + switch v := v.(*GetConfigReply); i { case 0: return &v.state case 1: @@ -8327,7 +8457,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveConfigRequest); i { + switch v := v.(*SetConfigRequest); i { case 0: return &v.state case 1: @@ -8339,7 +8469,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SaveConfigReply); i { + switch v := v.(*SetConfigReply); i { case 0: return &v.state case 1: @@ -8351,7 +8481,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResetCacheRequest); i { + switch v := v.(*SaveConfigRequest); i { case 0: return &v.state case 1: @@ -8363,7 +8493,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResetCacheReply); i { + switch v := v.(*SaveConfigReply); i { case 0: return &v.state case 1: @@ -8375,7 +8505,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InitCacheRequest); i { + switch v := v.(*ResetCacheRequest); i { case 0: return &v.state case 1: @@ -8387,7 +8517,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InitCacheReply); i { + switch v := v.(*ResetCacheReply); i { case 0: return &v.state case 1: @@ -8399,7 +8529,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartStreamRequest); i { + switch v := v.(*InitCacheRequest); i { case 0: return &v.state case 1: @@ -8411,7 +8541,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartStreamReply); i { + switch v := v.(*InitCacheReply); i { case 0: return &v.state case 1: @@ -8423,7 +8553,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EndStreamRequest); i { + switch v := v.(*StartStreamRequest); i { case 0: return &v.state case 1: @@ -8435,7 +8565,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EndStreamReply); i { + switch v := v.(*StartStreamReply); i { case 0: return &v.state case 1: @@ -8447,7 +8577,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStreamStatusRequest); i { + switch v := v.(*EndStreamRequest); i { case 0: return &v.state case 1: @@ -8459,7 +8589,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStreamStatusReply); i { + switch v := v.(*EndStreamReply); i { case 0: return &v.state case 1: @@ -8471,7 +8601,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBackendInfoRequest); i { + switch v := v.(*GetStreamStatusRequest); i { case 0: return &v.state case 1: @@ -8483,7 +8613,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBackendInfoReply); i { + switch v := v.(*GetStreamStatusReply); i { case 0: return &v.state case 1: @@ -8495,7 +8625,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsBackendEnabledRequest); i { + switch v := v.(*GetBackendInfoRequest); i { case 0: return &v.state case 1: @@ -8507,7 +8637,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsBackendEnabledReply); i { + switch v := v.(*GetBackendInfoReply); i { case 0: return &v.state case 1: @@ -8519,7 +8649,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestartRequest); i { + switch v := v.(*IsBackendEnabledRequest); i { case 0: return &v.state case 1: @@ -8531,7 +8661,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestartReply); i { + switch v := v.(*IsBackendEnabledReply); i { case 0: return &v.state case 1: @@ -8543,7 +8673,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetTitleRequest); i { + switch v := v.(*RestartRequest); i { case 0: return &v.state case 1: @@ -8555,7 +8685,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetTitleReply); i { + switch v := v.(*RestartReply); i { case 0: return &v.state case 1: @@ -8567,7 +8697,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDescriptionRequest); i { + switch v := v.(*SetTitleRequest); i { case 0: return &v.state case 1: @@ -8579,7 +8709,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetDescriptionReply); i { + switch v := v.(*SetTitleReply); i { case 0: return &v.state case 1: @@ -8591,7 +8721,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyProfileRequest); i { + switch v := v.(*SetDescriptionRequest); i { case 0: return &v.state case 1: @@ -8603,7 +8733,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyProfileReply); i { + switch v := v.(*SetDescriptionReply); i { case 0: return &v.state case 1: @@ -8615,7 +8745,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStreamRequest); i { + switch v := v.(*ApplyProfileRequest); i { case 0: return &v.state case 1: @@ -8627,7 +8757,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStreamReply); i { + switch v := v.(*ApplyProfileReply); i { case 0: return &v.state case 1: @@ -8639,7 +8769,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EXPERIMENTAL_ReinitStreamControllersRequest); i { + switch v := v.(*UpdateStreamRequest); i { case 0: return &v.state case 1: @@ -8651,7 +8781,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*EXPERIMENTAL_ReinitStreamControllersReply); i { + switch v := v.(*UpdateStreamReply); i { case 0: return &v.state case 1: @@ -8663,7 +8793,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSOLETE_FetchConfigRequest); i { + switch v := v.(*EXPERIMENTAL_ReinitStreamControllersRequest); i { case 0: return &v.state case 1: @@ -8675,7 +8805,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSOLETE_FetchConfigReply); i { + switch v := v.(*EXPERIMENTAL_ReinitStreamControllersReply); i { case 0: return &v.state case 1: @@ -8687,7 +8817,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSOLETE_GetGitInfoRequest); i { + switch v := v.(*OBSOLETE_FetchConfigRequest); i { case 0: return &v.state case 1: @@ -8699,7 +8829,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSOLETE_GetGitInfoReply); i { + switch v := v.(*OBSOLETE_FetchConfigReply); i { case 0: return &v.state case 1: @@ -8711,7 +8841,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSOLETE_GitReloginRequest); i { + switch v := v.(*OBSOLETE_GetGitInfoRequest); i { case 0: return &v.state case 1: @@ -8723,7 +8853,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSOLETE_GitReloginReply); i { + switch v := v.(*OBSOLETE_GetGitInfoReply); i { case 0: return &v.state case 1: @@ -8735,7 +8865,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToOAuthRequestsRequest); i { + switch v := v.(*OBSOLETE_GitReloginRequest); i { case 0: return &v.state case 1: @@ -8747,7 +8877,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OAuthRequest); i { + switch v := v.(*OBSOLETE_GitReloginReply); i { case 0: return &v.state case 1: @@ -8759,7 +8889,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVariableRequest); i { + switch v := v.(*SubscribeToOAuthRequestsRequest); i { case 0: return &v.state case 1: @@ -8771,7 +8901,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVariableReply); i { + switch v := v.(*OAuthRequest); i { case 0: return &v.state case 1: @@ -8783,7 +8913,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVariableHashRequest); i { + switch v := v.(*GetVariableRequest); i { case 0: return &v.state case 1: @@ -8795,7 +8925,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVariableHashReply); i { + switch v := v.(*GetVariableReply); i { case 0: return &v.state case 1: @@ -8807,7 +8937,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetVariableRequest); i { + switch v := v.(*GetVariableHashRequest); i { case 0: return &v.state case 1: @@ -8819,7 +8949,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetVariableReply); i { + switch v := v.(*GetVariableHashReply); i { case 0: return &v.state case 1: @@ -8831,7 +8961,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSGetSceneListRequest); i { + switch v := v.(*SetVariableRequest); i { case 0: return &v.state case 1: @@ -8843,7 +8973,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSScene); i { + switch v := v.(*SetVariableReply); i { case 0: return &v.state case 1: @@ -8855,7 +8985,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSGetSceneListReply); i { + switch v := v.(*OBSGetSceneListRequest); i { case 0: return &v.state case 1: @@ -8867,7 +8997,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSSetCurrentProgramSceneRequest); i { + switch v := v.(*OBSScene); i { case 0: return &v.state case 1: @@ -8879,7 +9009,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OBSSetCurrentProgramSceneReply); i { + switch v := v.(*OBSGetSceneListReply); i { case 0: return &v.state case 1: @@ -8891,7 +9021,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[55].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitOAuthCodeRequest); i { + switch v := v.(*OBSSetCurrentProgramSceneRequest); i { case 0: return &v.state case 1: @@ -8903,7 +9033,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[56].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubmitOAuthCodeReply); i { + switch v := v.(*OBSSetCurrentProgramSceneReply); i { case 0: return &v.state case 1: @@ -8915,7 +9045,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[57].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamServer); i { + switch v := v.(*SubmitOAuthCodeRequest); i { case 0: return &v.state case 1: @@ -8927,7 +9057,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[58].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamServerStatistics); i { + switch v := v.(*SubmitOAuthCodeReply); i { case 0: return &v.state case 1: @@ -8939,7 +9069,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[59].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamServerWithStatistics); i { + switch v := v.(*StreamServer); i { case 0: return &v.state case 1: @@ -8951,7 +9081,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[60].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamServersRequest); i { + switch v := v.(*StreamServerStatistics); i { case 0: return &v.state case 1: @@ -8963,7 +9093,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[61].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamServersReply); i { + switch v := v.(*StreamServerWithStatistics); i { case 0: return &v.state case 1: @@ -8975,7 +9105,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[62].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartStreamServerRequest); i { + switch v := v.(*ListStreamServersRequest); i { case 0: return &v.state case 1: @@ -8987,7 +9117,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[63].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StartStreamServerReply); i { + switch v := v.(*ListStreamServersReply); i { case 0: return &v.state case 1: @@ -8999,7 +9129,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[64].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StopStreamServerRequest); i { + switch v := v.(*StartStreamServerRequest); i { case 0: return &v.state case 1: @@ -9011,7 +9141,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[65].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StopStreamServerReply); i { + switch v := v.(*StartStreamServerReply); i { case 0: return &v.state case 1: @@ -9023,7 +9153,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[66].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamDestination); i { + switch v := v.(*StopStreamServerRequest); i { case 0: return &v.state case 1: @@ -9035,7 +9165,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[67].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamDestinationsRequest); i { + switch v := v.(*StopStreamServerReply); i { case 0: return &v.state case 1: @@ -9047,7 +9177,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[68].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamDestinationsReply); i { + switch v := v.(*StreamDestination); i { case 0: return &v.state case 1: @@ -9059,7 +9189,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[69].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddStreamDestinationRequest); i { + switch v := v.(*ListStreamDestinationsRequest); i { case 0: return &v.state case 1: @@ -9071,7 +9201,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[70].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddStreamDestinationReply); i { + switch v := v.(*ListStreamDestinationsReply); i { case 0: return &v.state case 1: @@ -9083,7 +9213,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[71].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveStreamDestinationRequest); i { + switch v := v.(*AddStreamDestinationRequest); i { case 0: return &v.state case 1: @@ -9095,7 +9225,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[72].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveStreamDestinationReply); i { + switch v := v.(*AddStreamDestinationReply); i { case 0: return &v.state case 1: @@ -9107,7 +9237,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[73].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IncomingStream); i { + switch v := v.(*RemoveStreamDestinationRequest); i { case 0: return &v.state case 1: @@ -9119,7 +9249,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[74].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddIncomingStreamRequest); i { + switch v := v.(*RemoveStreamDestinationReply); i { case 0: return &v.state case 1: @@ -9131,7 +9261,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[75].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddIncomingStreamReply); i { + switch v := v.(*IncomingStream); i { case 0: return &v.state case 1: @@ -9143,7 +9273,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[76].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveIncomingStreamRequest); i { + switch v := v.(*AddIncomingStreamRequest); i { case 0: return &v.state case 1: @@ -9155,7 +9285,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[77].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveIncomingStreamReply); i { + switch v := v.(*AddIncomingStreamReply); i { case 0: return &v.state case 1: @@ -9167,7 +9297,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[78].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListIncomingStreamsRequest); i { + switch v := v.(*RemoveIncomingStreamRequest); i { case 0: return &v.state case 1: @@ -9179,7 +9309,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[79].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListIncomingStreamsReply); i { + switch v := v.(*RemoveIncomingStreamReply); i { case 0: return &v.state case 1: @@ -9191,7 +9321,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[80].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RestartUntilYoutubeRecognizesStream); i { + switch v := v.(*ListIncomingStreamsRequest); i { case 0: return &v.state case 1: @@ -9203,7 +9333,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[81].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamForwardQuirks); i { + switch v := v.(*ListIncomingStreamsReply); i { case 0: return &v.state case 1: @@ -9215,7 +9345,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[82].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamForward); i { + switch v := v.(*RestartUntilYoutubeRecognizesStream); i { case 0: return &v.state case 1: @@ -9227,7 +9357,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[83].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamForwardStatistics); i { + switch v := v.(*StreamForwardQuirks); i { case 0: return &v.state case 1: @@ -9239,7 +9369,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[84].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamForwardWithStatistics); i { + switch v := v.(*StreamForward); i { case 0: return &v.state case 1: @@ -9251,7 +9381,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[85].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamForwardsRequest); i { + switch v := v.(*StreamForwardStatistics); i { case 0: return &v.state case 1: @@ -9263,7 +9393,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[86].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamForwardsReply); i { + switch v := v.(*StreamForwardWithStatistics); i { case 0: return &v.state case 1: @@ -9275,7 +9405,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[87].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddStreamForwardRequest); i { + switch v := v.(*ListStreamForwardsRequest); i { case 0: return &v.state case 1: @@ -9287,7 +9417,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[88].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddStreamForwardReply); i { + switch v := v.(*ListStreamForwardsReply); i { case 0: return &v.state case 1: @@ -9299,7 +9429,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[89].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStreamForwardRequest); i { + switch v := v.(*AddStreamForwardRequest); i { case 0: return &v.state case 1: @@ -9311,7 +9441,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[90].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStreamForwardReply); i { + switch v := v.(*AddStreamForwardReply); i { case 0: return &v.state case 1: @@ -9323,7 +9453,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[91].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveStreamForwardRequest); i { + switch v := v.(*UpdateStreamForwardRequest); i { case 0: return &v.state case 1: @@ -9335,7 +9465,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[92].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveStreamForwardReply); i { + switch v := v.(*UpdateStreamForwardReply); i { case 0: return &v.state case 1: @@ -9347,7 +9477,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[93].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WaitForStreamPublisherRequest); i { + switch v := v.(*RemoveStreamForwardRequest); i { case 0: return &v.state case 1: @@ -9359,7 +9489,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[94].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPublisher); i { + switch v := v.(*RemoveStreamForwardReply); i { case 0: return &v.state case 1: @@ -9371,7 +9501,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[95].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlaybackConfig); i { + switch v := v.(*WaitForStreamPublisherRequest); i { case 0: return &v.state case 1: @@ -9383,7 +9513,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[96].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerConfig); i { + switch v := v.(*StreamPublisher); i { case 0: return &v.state case 1: @@ -9395,7 +9525,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[97].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddStreamPlayerRequest); i { + switch v := v.(*StreamPlaybackConfig); i { case 0: return &v.state case 1: @@ -9407,7 +9537,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[98].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddStreamPlayerReply); i { + switch v := v.(*StreamPlayerConfig); i { case 0: return &v.state case 1: @@ -9419,7 +9549,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[99].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveStreamPlayerRequest); i { + switch v := v.(*AddStreamPlayerRequest); i { case 0: return &v.state case 1: @@ -9431,7 +9561,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[100].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveStreamPlayerReply); i { + switch v := v.(*AddStreamPlayerReply); i { case 0: return &v.state case 1: @@ -9443,7 +9573,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[101].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStreamPlayerRequest); i { + switch v := v.(*RemoveStreamPlayerRequest); i { case 0: return &v.state case 1: @@ -9455,7 +9585,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[102].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateStreamPlayerReply); i { + switch v := v.(*RemoveStreamPlayerReply); i { case 0: return &v.state case 1: @@ -9467,7 +9597,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[103].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamPlayersRequest); i { + switch v := v.(*UpdateStreamPlayerRequest); i { case 0: return &v.state case 1: @@ -9479,7 +9609,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[104].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ListStreamPlayersReply); i { + switch v := v.(*UpdateStreamPlayerReply); i { case 0: return &v.state case 1: @@ -9491,7 +9621,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[105].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStreamPlayerRequest); i { + switch v := v.(*ListStreamPlayersRequest); i { case 0: return &v.state case 1: @@ -9503,7 +9633,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[106].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStreamPlayerReply); i { + switch v := v.(*ListStreamPlayersReply); i { case 0: return &v.state case 1: @@ -9515,7 +9645,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[107].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerOpenRequest); i { + switch v := v.(*GetStreamPlayerRequest); i { case 0: return &v.state case 1: @@ -9527,7 +9657,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[108].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerOpenReply); i { + switch v := v.(*GetStreamPlayerReply); i { case 0: return &v.state case 1: @@ -9539,7 +9669,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[109].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerProcessTitleRequest); i { + switch v := v.(*StreamPlayerOpenRequest); i { case 0: return &v.state case 1: @@ -9551,7 +9681,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[110].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerProcessTitleReply); i { + switch v := v.(*StreamPlayerOpenReply); i { case 0: return &v.state case 1: @@ -9563,7 +9693,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[111].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerGetLinkRequest); i { + switch v := v.(*StreamPlayerProcessTitleRequest); i { case 0: return &v.state case 1: @@ -9575,7 +9705,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[112].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerGetLinkReply); i { + switch v := v.(*StreamPlayerProcessTitleReply); i { case 0: return &v.state case 1: @@ -9587,7 +9717,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[113].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerEndChanRequest); i { + switch v := v.(*StreamPlayerGetLinkRequest); i { case 0: return &v.state case 1: @@ -9599,7 +9729,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[114].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerEndChanReply); i { + switch v := v.(*StreamPlayerGetLinkReply); i { case 0: return &v.state case 1: @@ -9611,7 +9741,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[115].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerIsEndedRequest); i { + switch v := v.(*StreamPlayerEndChanRequest); i { case 0: return &v.state case 1: @@ -9623,7 +9753,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[116].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerIsEndedReply); i { + switch v := v.(*StreamPlayerEndChanReply); i { case 0: return &v.state case 1: @@ -9635,7 +9765,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[117].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerGetPositionRequest); i { + switch v := v.(*StreamPlayerIsEndedRequest); i { case 0: return &v.state case 1: @@ -9647,7 +9777,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerGetPositionReply); i { + switch v := v.(*StreamPlayerIsEndedReply); i { case 0: return &v.state case 1: @@ -9659,7 +9789,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerGetLengthRequest); i { + switch v := v.(*StreamPlayerGetPositionRequest); i { case 0: return &v.state case 1: @@ -9671,7 +9801,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerGetLengthReply); i { + switch v := v.(*StreamPlayerGetPositionReply); i { case 0: return &v.state case 1: @@ -9683,7 +9813,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerSetSpeedRequest); i { + switch v := v.(*StreamPlayerGetLengthRequest); i { case 0: return &v.state case 1: @@ -9695,7 +9825,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerSetSpeedReply); i { + switch v := v.(*StreamPlayerGetLengthReply); i { case 0: return &v.state case 1: @@ -9707,7 +9837,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerSetPauseRequest); i { + switch v := v.(*StreamPlayerSetSpeedRequest); i { case 0: return &v.state case 1: @@ -9719,7 +9849,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerSetPauseReply); i { + switch v := v.(*StreamPlayerSetSpeedReply); i { case 0: return &v.state case 1: @@ -9731,7 +9861,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerStopRequest); i { + switch v := v.(*StreamPlayerSetPauseRequest); i { case 0: return &v.state case 1: @@ -9743,7 +9873,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerStopReply); i { + switch v := v.(*StreamPlayerSetPauseReply); i { case 0: return &v.state case 1: @@ -9755,7 +9885,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerCloseRequest); i { + switch v := v.(*StreamPlayerStopRequest); i { case 0: return &v.state case 1: @@ -9767,7 +9897,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamPlayerCloseReply); i { + switch v := v.(*StreamPlayerStopReply); i { case 0: return &v.state case 1: @@ -9779,7 +9909,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToConfigChangesRequest); i { + switch v := v.(*StreamPlayerCloseRequest); i { case 0: return &v.state case 1: @@ -9791,7 +9921,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConfigChange); i { + switch v := v.(*StreamPlayerCloseReply); i { case 0: return &v.state case 1: @@ -9803,7 +9933,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToStreamsChangesRequest); i { + switch v := v.(*SubscribeToConfigChangesRequest); i { case 0: return &v.state case 1: @@ -9815,7 +9945,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamsChange); i { + switch v := v.(*ConfigChange); i { case 0: return &v.state case 1: @@ -9827,7 +9957,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToStreamServersChangesRequest); i { + switch v := v.(*SubscribeToStreamsChangesRequest); i { case 0: return &v.state case 1: @@ -9839,7 +9969,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamServersChange); i { + switch v := v.(*StreamsChange); i { case 0: return &v.state case 1: @@ -9851,7 +9981,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToStreamDestinationsChangesRequest); i { + switch v := v.(*SubscribeToStreamServersChangesRequest); i { case 0: return &v.state case 1: @@ -9863,7 +9993,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamDestinationsChange); i { + switch v := v.(*StreamServersChange); i { case 0: return &v.state case 1: @@ -9875,7 +10005,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToIncomingStreamsChangesRequest); i { + switch v := v.(*SubscribeToStreamDestinationsChangesRequest); i { case 0: return &v.state case 1: @@ -9887,7 +10017,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IncomingStreamsChange); i { + switch v := v.(*StreamDestinationsChange); i { case 0: return &v.state case 1: @@ -9899,7 +10029,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToStreamForwardsChangesRequest); i { + switch v := v.(*SubscribeToIncomingStreamsChangesRequest); i { case 0: return &v.state case 1: @@ -9911,7 +10041,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StreamForwardsChange); i { + switch v := v.(*IncomingStreamsChange); i { case 0: return &v.state case 1: @@ -9923,7 +10053,7 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SubscribeToStreamPlayersChangesRequest); i { + switch v := v.(*SubscribeToStreamForwardsChangesRequest); i { case 0: return &v.state case 1: @@ -9935,6 +10065,30 @@ func file_streamd_proto_init() { } } file_streamd_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StreamForwardsChange); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_streamd_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SubscribeToStreamPlayersChangesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_streamd_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StreamPlayersChange); i { case 0: return &v.state @@ -9947,19 +10101,19 @@ func file_streamd_proto_init() { } } } - file_streamd_proto_msgTypes[19].OneofWrappers = []interface{}{} - file_streamd_proto_msgTypes[53].OneofWrappers = []interface{}{ + file_streamd_proto_msgTypes[21].OneofWrappers = []interface{}{} + file_streamd_proto_msgTypes[55].OneofWrappers = []interface{}{ (*OBSSetCurrentProgramSceneRequest_SceneName)(nil), (*OBSSetCurrentProgramSceneRequest_SceneUUID)(nil), } - file_streamd_proto_msgTypes[93].OneofWrappers = []interface{}{} + file_streamd_proto_msgTypes[95].OneofWrappers = []interface{}{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_streamd_proto_rawDesc, NumEnums: 4, - NumMessages: 143, + NumMessages: 145, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/streamd/grpc/go/streamd_grpc/streamd_grpc.pb.go b/pkg/streamd/grpc/go/streamd_grpc/streamd_grpc.pb.go index a84643d..7066188 100644 --- a/pkg/streamd/grpc/go/streamd_grpc/streamd_grpc.pb.go +++ b/pkg/streamd/grpc/go/streamd_grpc/streamd_grpc.pb.go @@ -22,6 +22,7 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type StreamDClient interface { + Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) SetLoggingLevel(ctx context.Context, in *SetLoggingLevelRequest, opts ...grpc.CallOption) (*SetLoggingLevelReply, error) GetLoggingLevel(ctx context.Context, in *GetLoggingLevelRequest, opts ...grpc.CallOption) (*GetLoggingLevelReply, error) GetConfig(ctx context.Context, in *GetConfigRequest, opts ...grpc.CallOption) (*GetConfigReply, error) @@ -97,6 +98,15 @@ func NewStreamDClient(cc grpc.ClientConnInterface) StreamDClient { return &streamDClient{cc} } +func (c *streamDClient) Ping(ctx context.Context, in *PingRequest, opts ...grpc.CallOption) (*PingReply, error) { + out := new(PingReply) + err := c.cc.Invoke(ctx, "/streamd.StreamD/Ping", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *streamDClient) SetLoggingLevel(ctx context.Context, in *SetLoggingLevelRequest, opts ...grpc.CallOption) (*SetLoggingLevelReply, error) { out := new(SetLoggingLevelReply) err := c.cc.Invoke(ctx, "/streamd.StreamD/SetLoggingLevel", in, out, opts...) @@ -916,6 +926,7 @@ func (c *streamDClient) StreamPlayerClose(ctx context.Context, in *StreamPlayerC // All implementations must embed UnimplementedStreamDServer // for forward compatibility type StreamDServer interface { + Ping(context.Context, *PingRequest) (*PingReply, error) SetLoggingLevel(context.Context, *SetLoggingLevelRequest) (*SetLoggingLevelReply, error) GetLoggingLevel(context.Context, *GetLoggingLevelRequest) (*GetLoggingLevelReply, error) GetConfig(context.Context, *GetConfigRequest) (*GetConfigReply, error) @@ -988,6 +999,9 @@ type StreamDServer interface { type UnimplementedStreamDServer struct { } +func (UnimplementedStreamDServer) Ping(context.Context, *PingRequest) (*PingReply, error) { + return nil, status.Errorf(codes.Unimplemented, "method Ping not implemented") +} func (UnimplementedStreamDServer) SetLoggingLevel(context.Context, *SetLoggingLevelRequest) (*SetLoggingLevelReply, error) { return nil, status.Errorf(codes.Unimplemented, "method SetLoggingLevel not implemented") } @@ -1196,6 +1210,24 @@ func RegisterStreamDServer(s grpc.ServiceRegistrar, srv StreamDServer) { s.RegisterService(&StreamD_ServiceDesc, srv) } +func _StreamD_Ping_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PingRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(StreamDServer).Ping(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/streamd.StreamD/Ping", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(StreamDServer).Ping(ctx, req.(*PingRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _StreamD_SetLoggingLevel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetLoggingLevelRequest) if err := dec(in); err != nil { @@ -2403,6 +2435,10 @@ var StreamD_ServiceDesc = grpc.ServiceDesc{ ServiceName: "streamd.StreamD", HandlerType: (*StreamDServer)(nil), Methods: []grpc.MethodDesc{ + { + MethodName: "Ping", + Handler: _StreamD_Ping_Handler, + }, { MethodName: "SetLoggingLevel", Handler: _StreamD_SetLoggingLevel_Handler, diff --git a/pkg/streamd/grpc/streamd.proto b/pkg/streamd/grpc/streamd.proto index 7bf2cdf..6c55202 100644 --- a/pkg/streamd/grpc/streamd.proto +++ b/pkg/streamd/grpc/streamd.proto @@ -5,6 +5,7 @@ option go_package = "go/streamd_grpc"; import "player/player.proto"; service StreamD { + rpc Ping(PingRequest) returns (PingReply) {} rpc SetLoggingLevel(SetLoggingLevelRequest) returns (SetLoggingLevelReply) {} rpc GetLoggingLevel(GetLoggingLevelRequest) returns (GetLoggingLevelReply) {} rpc GetConfig(GetConfigRequest) returns (GetConfigReply) {} @@ -78,6 +79,16 @@ service StreamD { rpc StreamPlayerClose(StreamPlayerCloseRequest) returns (StreamPlayerCloseReply) {} } +message PingRequest { + string payloadToReturn = 1; + string payloadToIgnore = 2; + int32 requestExtraPayloadSize = 3; +} +message PingReply { + string payload = 1; +} + + enum LoggingLevel { none = 0; fatal = 1; diff --git a/pkg/streamd/server/grpc.go b/pkg/streamd/server/grpc.go index ff4f685..fd4ddba 100644 --- a/pkg/streamd/server/grpc.go +++ b/pkg/streamd/server/grpc.go @@ -6,6 +6,7 @@ import ( "crypto" "encoding/json" "fmt" + "strings" "sync" "github.com/andreykaipov/goobs/api/requests/scenes" @@ -65,6 +66,23 @@ func (grpc *GRPCServer) MemoizeData() *memoize.MemoizeData { return grpc.MemoizeDataValue } +func (grpc *GRPCServer) Ping( + ctx context.Context, + req *streamd_grpc.PingRequest, +) (*streamd_grpc.PingReply, error) { + var payload strings.Builder + extraSize := req.GetRequestExtraPayloadSize() + totalSize := len(req.GetPayloadToReturn()) + int(extraSize) + if totalSize > 65535 { + return nil, fmt.Errorf("requested a too big payload") + } + payload.WriteString(req.GetPayloadToReturn()) + payload.WriteString(strings.Repeat("0", int(extraSize))) + return &streamd_grpc.PingReply{ + Payload: payload.String(), + }, nil +} + func (grpc *GRPCServer) Close() error { err := &multierror.Error{} grpc.OAuthURLHandlerLocker.Lock() diff --git a/pkg/streampanel/panel.go b/pkg/streampanel/panel.go index 0724f9d..2587177 100644 --- a/pkg/streampanel/panel.go +++ b/pkg/streampanel/panel.go @@ -341,7 +341,7 @@ func (p *Panel) startOAuthListenerForRemoteStreamD( return fmt.Errorf("unable to start listener for OAuth responses: %w", err) } - oauthURLChan, err := streamD.SubscriberToOAuthURLs(ctx, listenPort) + oauthURLChan, err := streamD.SubscribeToOAuthURLs(ctx, listenPort) if err != nil { cancelFn() return fmt.Errorf("unable to subscribe to OAuth requests of streamd: %w", err) @@ -446,8 +446,9 @@ func (p *Panel) SetLoggingLevel(ctx context.Context, level logger.Level) { } func (p *Panel) initRemoteStreamD(context.Context) error { - p.StreamD = client.New(p.Config.RemoteStreamDAddr) - return nil + var err error + p.StreamD, err = client.New(p.Config.RemoteStreamDAddr) + return err } func removeNonDigits(input string) string { @@ -1909,7 +1910,7 @@ func (p *Panel) setupStream(ctx context.Context) { if p.youtubeCheck.Checked && backendEnabled[youtube.ID] { if p.streamIsRunning(ctx, youtube.ID) { - logger.Infof(ctx, "updating the stream info at YouTube") + logger.Debugf(ctx, "updating the stream info at YouTube") err := p.StreamD.UpdateStream( ctx, youtube.ID, @@ -1917,11 +1918,12 @@ func (p *Panel) setupStream(ctx context.Context) { p.streamDescriptionField.Text, profile.PerPlatform[youtube.ID], ) + logger.Infof(ctx, "updated the stream info at YouTube") if err != nil { p.DisplayError(fmt.Errorf("unable to start the stream on YouTube: %w", err)) } } else { - logger.Infof(ctx, "creating the stream at YouTube") + logger.Debugf(ctx, "creating the stream at YouTube") err := p.StreamD.StartStream( ctx, youtube.ID, @@ -1929,6 +1931,7 @@ func (p *Panel) setupStream(ctx context.Context) { p.streamDescriptionField.Text, profile.PerPlatform[youtube.ID], ) + logger.Infof(ctx, "created the stream at YouTube") if err != nil { p.DisplayError(fmt.Errorf("unable to start the stream on YouTube: %w", err)) }