// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.1
// 	protoc        v5.29.3
// source: rtc.proto

package rtc

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type ParticipantMetaData struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	GroupInfo       *GroupInfo             `protobuf:"bytes,1,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"`
	GroupMemberInfo *GroupMemberFullInfo   `protobuf:"bytes,2,opt,name=groupMemberInfo,proto3" json:"groupMemberInfo,omitempty"`
	UserInfo        *PublicUserInfo        `protobuf:"bytes,3,opt,name=userInfo,proto3" json:"userInfo,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *ParticipantMetaData) Reset() {
	*x = ParticipantMetaData{}
	mi := &file_rtc_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *ParticipantMetaData) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ParticipantMetaData) ProtoMessage() {}

func (x *ParticipantMetaData) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use ParticipantMetaData.ProtoReflect.Descriptor instead.
func (*ParticipantMetaData) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{0}
}

func (x *ParticipantMetaData) GetGroupInfo() *GroupInfo {
	if x != nil {
		return x.GroupInfo
	}
	return nil
}

func (x *ParticipantMetaData) GetGroupMemberInfo() *GroupMemberFullInfo {
	if x != nil {
		return x.GroupMemberInfo
	}
	return nil
}

func (x *ParticipantMetaData) GetUserInfo() *PublicUserInfo {
	if x != nil {
		return x.UserInfo
	}
	return nil
}

type GroupInfo struct {
	state                  protoimpl.MessageState `protogen:"open.v1"`
	GroupID                string                 `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	GroupName              string                 `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"`
	Notification           string                 `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"`
	Introduction           string                 `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"`
	FaceURL                string                 `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	OwnerUserID            string                 `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"`
	CreateTime             int64                  `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"`
	MemberCount            uint32                 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"`
	Ex                     string                 `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"`
	Status                 int32                  `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
	CreatorUserID          string                 `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"`
	GroupType              int32                  `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"`
	NeedVerification       int32                  `protobuf:"varint,13,opt,name=needVerification,proto3" json:"needVerification,omitempty"`
	LookMemberInfo         int32                  `protobuf:"varint,14,opt,name=lookMemberInfo,proto3" json:"lookMemberInfo,omitempty"`
	ApplyMemberFriend      int32                  `protobuf:"varint,15,opt,name=applyMemberFriend,proto3" json:"applyMemberFriend,omitempty"`
	NotificationUpdateTime int64                  `protobuf:"varint,16,opt,name=notificationUpdateTime,proto3" json:"notificationUpdateTime,omitempty"`
	NotificationUserID     string                 `protobuf:"bytes,17,opt,name=notificationUserID,proto3" json:"notificationUserID,omitempty"`
	DisplayIsRead          bool                   `protobuf:"varint,18,opt,name=displayIsRead,proto3" json:"displayIsRead,omitempty"`
	unknownFields          protoimpl.UnknownFields
	sizeCache              protoimpl.SizeCache
}

func (x *GroupInfo) Reset() {
	*x = GroupInfo{}
	mi := &file_rtc_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupInfo) ProtoMessage() {}

func (x *GroupInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead.
func (*GroupInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{1}
}

func (x *GroupInfo) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *GroupInfo) GetGroupName() string {
	if x != nil {
		return x.GroupName
	}
	return ""
}

func (x *GroupInfo) GetNotification() string {
	if x != nil {
		return x.Notification
	}
	return ""
}

func (x *GroupInfo) GetIntroduction() string {
	if x != nil {
		return x.Introduction
	}
	return ""
}

func (x *GroupInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *GroupInfo) GetOwnerUserID() string {
	if x != nil {
		return x.OwnerUserID
	}
	return ""
}

func (x *GroupInfo) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *GroupInfo) GetMemberCount() uint32 {
	if x != nil {
		return x.MemberCount
	}
	return 0
}

func (x *GroupInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *GroupInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *GroupInfo) GetCreatorUserID() string {
	if x != nil {
		return x.CreatorUserID
	}
	return ""
}

func (x *GroupInfo) GetGroupType() int32 {
	if x != nil {
		return x.GroupType
	}
	return 0
}

func (x *GroupInfo) GetNeedVerification() int32 {
	if x != nil {
		return x.NeedVerification
	}
	return 0
}

func (x *GroupInfo) GetLookMemberInfo() int32 {
	if x != nil {
		return x.LookMemberInfo
	}
	return 0
}

func (x *GroupInfo) GetApplyMemberFriend() int32 {
	if x != nil {
		return x.ApplyMemberFriend
	}
	return 0
}

func (x *GroupInfo) GetNotificationUpdateTime() int64 {
	if x != nil {
		return x.NotificationUpdateTime
	}
	return 0
}

func (x *GroupInfo) GetNotificationUserID() string {
	if x != nil {
		return x.NotificationUserID
	}
	return ""
}

func (x *GroupInfo) GetDisplayIsRead() bool {
	if x != nil {
		return x.DisplayIsRead
	}
	return false
}

type GroupMemberFullInfo struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	GroupID        string                 `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	UserID         string                 `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"`
	RoleLevel      int32                  `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"`
	JoinTime       int64                  `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"`
	Nickname       string                 `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"`
	FaceURL        string                 `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	AppMangerLevel int32                  `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0
	JoinSource     int32                  `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"`
	OperatorUserID string                 `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"`
	Ex             string                 `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"`
	MuteEndTime    int64                  `protobuf:"varint,11,opt,name=muteEndTime,proto3" json:"muteEndTime,omitempty"`
	InviterUserID  string                 `protobuf:"bytes,12,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *GroupMemberFullInfo) Reset() {
	*x = GroupMemberFullInfo{}
	mi := &file_rtc_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GroupMemberFullInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GroupMemberFullInfo) ProtoMessage() {}

func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead.
func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{2}
}

func (x *GroupMemberFullInfo) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *GroupMemberFullInfo) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *GroupMemberFullInfo) GetRoleLevel() int32 {
	if x != nil {
		return x.RoleLevel
	}
	return 0
}

func (x *GroupMemberFullInfo) GetJoinTime() int64 {
	if x != nil {
		return x.JoinTime
	}
	return 0
}

func (x *GroupMemberFullInfo) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *GroupMemberFullInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 {
	if x != nil {
		return x.AppMangerLevel
	}
	return 0
}

func (x *GroupMemberFullInfo) GetJoinSource() int32 {
	if x != nil {
		return x.JoinSource
	}
	return 0
}

func (x *GroupMemberFullInfo) GetOperatorUserID() string {
	if x != nil {
		return x.OperatorUserID
	}
	return ""
}

func (x *GroupMemberFullInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *GroupMemberFullInfo) GetMuteEndTime() int64 {
	if x != nil {
		return x.MuteEndTime
	}
	return 0
}

func (x *GroupMemberFullInfo) GetInviterUserID() string {
	if x != nil {
		return x.InviterUserID
	}
	return ""
}

type PublicUserInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Nickname      string                 `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
	FaceURL       string                 `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	Ex            string                 `protobuf:"bytes,4,opt,name=ex,proto3" json:"ex,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *PublicUserInfo) Reset() {
	*x = PublicUserInfo{}
	mi := &file_rtc_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *PublicUserInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PublicUserInfo) ProtoMessage() {}

func (x *PublicUserInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PublicUserInfo.ProtoReflect.Descriptor instead.
func (*PublicUserInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{3}
}

func (x *PublicUserInfo) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *PublicUserInfo) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *PublicUserInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *PublicUserInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

type GetJoinTokenReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Room          string                 `protobuf:"bytes,1,opt,name=room,proto3" json:"room,omitempty"`
	Identity      string                 `protobuf:"bytes,2,opt,name=identity,proto3" json:"identity,omitempty"`
	MetaData      *ParticipantMetaData   `protobuf:"bytes,3,opt,name=metaData,proto3" json:"metaData,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetJoinTokenReq) Reset() {
	*x = GetJoinTokenReq{}
	mi := &file_rtc_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetJoinTokenReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetJoinTokenReq) ProtoMessage() {}

func (x *GetJoinTokenReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetJoinTokenReq.ProtoReflect.Descriptor instead.
func (*GetJoinTokenReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{4}
}

func (x *GetJoinTokenReq) GetRoom() string {
	if x != nil {
		return x.Room
	}
	return ""
}

func (x *GetJoinTokenReq) GetIdentity() string {
	if x != nil {
		return x.Identity
	}
	return ""
}

func (x *GetJoinTokenReq) GetMetaData() *ParticipantMetaData {
	if x != nil {
		return x.MetaData
	}
	return nil
}

type GetJoinTokenResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Jwt           string                 `protobuf:"bytes,1,opt,name=jwt,proto3" json:"jwt,omitempty"`
	LiveURL       string                 `protobuf:"bytes,2,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetJoinTokenResp) Reset() {
	*x = GetJoinTokenResp{}
	mi := &file_rtc_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetJoinTokenResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetJoinTokenResp) ProtoMessage() {}

func (x *GetJoinTokenResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetJoinTokenResp.ProtoReflect.Descriptor instead.
func (*GetJoinTokenResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{5}
}

func (x *GetJoinTokenResp) GetJwt() string {
	if x != nil {
		return x.Jwt
	}
	return ""
}

func (x *GetJoinTokenResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

type SignalReq struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Payload:
	//
	//	*SignalReq_Invite
	//	*SignalReq_InviteInGroup
	//	*SignalReq_Cancel
	//	*SignalReq_Accept
	//	*SignalReq_HungUp
	//	*SignalReq_Reject
	//	*SignalReq_GetTokenByRoomID
	Payload       isSignalReq_Payload `protobuf_oneof:"payload"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalReq) Reset() {
	*x = SignalReq{}
	mi := &file_rtc_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalReq) ProtoMessage() {}

func (x *SignalReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[6]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalReq.ProtoReflect.Descriptor instead.
func (*SignalReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{6}
}

func (x *SignalReq) GetPayload() isSignalReq_Payload {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *SignalReq) GetInvite() *SignalInviteReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_Invite); ok {
			return x.Invite
		}
	}
	return nil
}

func (x *SignalReq) GetInviteInGroup() *SignalInviteInGroupReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_InviteInGroup); ok {
			return x.InviteInGroup
		}
	}
	return nil
}

func (x *SignalReq) GetCancel() *SignalCancelReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_Cancel); ok {
			return x.Cancel
		}
	}
	return nil
}

func (x *SignalReq) GetAccept() *SignalAcceptReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_Accept); ok {
			return x.Accept
		}
	}
	return nil
}

func (x *SignalReq) GetHungUp() *SignalHungUpReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_HungUp); ok {
			return x.HungUp
		}
	}
	return nil
}

func (x *SignalReq) GetReject() *SignalRejectReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_Reject); ok {
			return x.Reject
		}
	}
	return nil
}

func (x *SignalReq) GetGetTokenByRoomID() *SignalGetTokenByRoomIDReq {
	if x != nil {
		if x, ok := x.Payload.(*SignalReq_GetTokenByRoomID); ok {
			return x.GetTokenByRoomID
		}
	}
	return nil
}

type isSignalReq_Payload interface {
	isSignalReq_Payload()
}

type SignalReq_Invite struct {
	Invite *SignalInviteReq `protobuf:"bytes,1,opt,name=invite,proto3,oneof"`
}

type SignalReq_InviteInGroup struct {
	InviteInGroup *SignalInviteInGroupReq `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"`
}

type SignalReq_Cancel struct {
	Cancel *SignalCancelReq `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"`
}

type SignalReq_Accept struct {
	Accept *SignalAcceptReq `protobuf:"bytes,4,opt,name=accept,proto3,oneof"`
}

type SignalReq_HungUp struct {
	HungUp *SignalHungUpReq `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"`
}

type SignalReq_Reject struct {
	Reject *SignalRejectReq `protobuf:"bytes,6,opt,name=reject,proto3,oneof"`
}

type SignalReq_GetTokenByRoomID struct {
	GetTokenByRoomID *SignalGetTokenByRoomIDReq `protobuf:"bytes,7,opt,name=getTokenByRoomID,proto3,oneof"`
}

func (*SignalReq_Invite) isSignalReq_Payload() {}

func (*SignalReq_InviteInGroup) isSignalReq_Payload() {}

func (*SignalReq_Cancel) isSignalReq_Payload() {}

func (*SignalReq_Accept) isSignalReq_Payload() {}

func (*SignalReq_HungUp) isSignalReq_Payload() {}

func (*SignalReq_Reject) isSignalReq_Payload() {}

func (*SignalReq_GetTokenByRoomID) isSignalReq_Payload() {}

type SignalSendCustomSignalReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomID        string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	CustomInfo    string                 `protobuf:"bytes,2,opt,name=customInfo,proto3" json:"customInfo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalSendCustomSignalReq) Reset() {
	*x = SignalSendCustomSignalReq{}
	mi := &file_rtc_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalSendCustomSignalReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalSendCustomSignalReq) ProtoMessage() {}

func (x *SignalSendCustomSignalReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[7]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalSendCustomSignalReq.ProtoReflect.Descriptor instead.
func (*SignalSendCustomSignalReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{7}
}

func (x *SignalSendCustomSignalReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalSendCustomSignalReq) GetCustomInfo() string {
	if x != nil {
		return x.CustomInfo
	}
	return ""
}

type SignalSendCustomSignalResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalSendCustomSignalResp) Reset() {
	*x = SignalSendCustomSignalResp{}
	mi := &file_rtc_proto_msgTypes[8]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalSendCustomSignalResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalSendCustomSignalResp) ProtoMessage() {}

func (x *SignalSendCustomSignalResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[8]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalSendCustomSignalResp.ProtoReflect.Descriptor instead.
func (*SignalSendCustomSignalResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{8}
}

type SignalGetMeetingsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetMeetingsReq) Reset() {
	*x = SignalGetMeetingsReq{}
	mi := &file_rtc_proto_msgTypes[9]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetMeetingsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetMeetingsReq) ProtoMessage() {}

func (x *SignalGetMeetingsReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[9]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetMeetingsReq.ProtoReflect.Descriptor instead.
func (*SignalGetMeetingsReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{9}
}

func (x *SignalGetMeetingsReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalGetMeetingsResp struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	MeetingInfoList []*MeetingInfo         `protobuf:"bytes,1,rep,name=meetingInfoList,proto3" json:"meetingInfoList,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *SignalGetMeetingsResp) Reset() {
	*x = SignalGetMeetingsResp{}
	mi := &file_rtc_proto_msgTypes[10]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetMeetingsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetMeetingsResp) ProtoMessage() {}

func (x *SignalGetMeetingsResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[10]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetMeetingsResp.ProtoReflect.Descriptor instead.
func (*SignalGetMeetingsResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{10}
}

func (x *SignalGetMeetingsResp) GetMeetingInfoList() []*MeetingInfo {
	if x != nil {
		return x.MeetingInfoList
	}
	return nil
}

type SignalOperateStreamReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	StreamType    string                 `protobuf:"bytes,1,opt,name=streamType,proto3" json:"streamType,omitempty"`
	RoomID        string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	UserID        string                 `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID,omitempty"`
	Mute          bool                   `protobuf:"varint,4,opt,name=mute,proto3" json:"mute,omitempty"`
	MuteAll       bool                   `protobuf:"varint,5,opt,name=muteAll,proto3" json:"muteAll,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalOperateStreamReq) Reset() {
	*x = SignalOperateStreamReq{}
	mi := &file_rtc_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalOperateStreamReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalOperateStreamReq) ProtoMessage() {}

func (x *SignalOperateStreamReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[11]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalOperateStreamReq.ProtoReflect.Descriptor instead.
func (*SignalOperateStreamReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{11}
}

func (x *SignalOperateStreamReq) GetStreamType() string {
	if x != nil {
		return x.StreamType
	}
	return ""
}

func (x *SignalOperateStreamReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalOperateStreamReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *SignalOperateStreamReq) GetMute() bool {
	if x != nil {
		return x.Mute
	}
	return false
}

func (x *SignalOperateStreamReq) GetMuteAll() bool {
	if x != nil {
		return x.MuteAll
	}
	return false
}

type SignalOperateStreamResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalOperateStreamResp) Reset() {
	*x = SignalOperateStreamResp{}
	mi := &file_rtc_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalOperateStreamResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalOperateStreamResp) ProtoMessage() {}

func (x *SignalOperateStreamResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[12]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalOperateStreamResp.ProtoReflect.Descriptor instead.
func (*SignalOperateStreamResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{12}
}

type SignalOnStreamChangeReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomID        string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	StreamType    string                 `protobuf:"bytes,2,opt,name=streamType,proto3" json:"streamType,omitempty"`
	Mute          bool                   `protobuf:"varint,3,opt,name=mute,proto3" json:"mute,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalOnStreamChangeReq) Reset() {
	*x = SignalOnStreamChangeReq{}
	mi := &file_rtc_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalOnStreamChangeReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalOnStreamChangeReq) ProtoMessage() {}

func (x *SignalOnStreamChangeReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[13]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalOnStreamChangeReq.ProtoReflect.Descriptor instead.
func (*SignalOnStreamChangeReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{13}
}

func (x *SignalOnStreamChangeReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalOnStreamChangeReq) GetStreamType() string {
	if x != nil {
		return x.StreamType
	}
	return ""
}

func (x *SignalOnStreamChangeReq) GetMute() bool {
	if x != nil {
		return x.Mute
	}
	return false
}

type SignalCreateMeetingReq struct {
	state             protoimpl.MessageState `protogen:"open.v1"`
	MeetingDuration   int64                  `protobuf:"varint,1,opt,name=meetingDuration,proto3" json:"meetingDuration,omitempty"`
	RoomID            string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	MeetingName       string                 `protobuf:"bytes,3,opt,name=meetingName,proto3" json:"meetingName,omitempty"`
	MeetingHostUserID string                 `protobuf:"bytes,4,opt,name=meetingHostUserID,proto3" json:"meetingHostUserID,omitempty"`
	Participant       *ParticipantMetaData   `protobuf:"bytes,5,opt,name=participant,proto3" json:"participant,omitempty"`
	InviteeUserIDList []string               `protobuf:"bytes,6,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"`
	StartTime         int64                  `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"`
	Ex                string                 `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

func (x *SignalCreateMeetingReq) Reset() {
	*x = SignalCreateMeetingReq{}
	mi := &file_rtc_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalCreateMeetingReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalCreateMeetingReq) ProtoMessage() {}

func (x *SignalCreateMeetingReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[14]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalCreateMeetingReq.ProtoReflect.Descriptor instead.
func (*SignalCreateMeetingReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{14}
}

func (x *SignalCreateMeetingReq) GetMeetingDuration() int64 {
	if x != nil {
		return x.MeetingDuration
	}
	return 0
}

func (x *SignalCreateMeetingReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalCreateMeetingReq) GetMeetingName() string {
	if x != nil {
		return x.MeetingName
	}
	return ""
}

func (x *SignalCreateMeetingReq) GetMeetingHostUserID() string {
	if x != nil {
		return x.MeetingHostUserID
	}
	return ""
}

func (x *SignalCreateMeetingReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalCreateMeetingReq) GetInviteeUserIDList() []string {
	if x != nil {
		return x.InviteeUserIDList
	}
	return nil
}

func (x *SignalCreateMeetingReq) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *SignalCreateMeetingReq) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

type SignalCreateMeetingResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID        string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL       string                 `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalCreateMeetingResp) Reset() {
	*x = SignalCreateMeetingResp{}
	mi := &file_rtc_proto_msgTypes[15]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalCreateMeetingResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalCreateMeetingResp) ProtoMessage() {}

func (x *SignalCreateMeetingResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[15]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalCreateMeetingResp.ProtoReflect.Descriptor instead.
func (*SignalCreateMeetingResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{15}
}

func (x *SignalCreateMeetingResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SignalCreateMeetingResp) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalCreateMeetingResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

type SignalJoinMeetingReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomID        string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	UserID        string                 `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"`
	Participant   *ParticipantMetaData   `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalJoinMeetingReq) Reset() {
	*x = SignalJoinMeetingReq{}
	mi := &file_rtc_proto_msgTypes[16]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalJoinMeetingReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalJoinMeetingReq) ProtoMessage() {}

func (x *SignalJoinMeetingReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[16]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalJoinMeetingReq.ProtoReflect.Descriptor instead.
func (*SignalJoinMeetingReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{16}
}

func (x *SignalJoinMeetingReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalJoinMeetingReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *SignalJoinMeetingReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

type SignalJoinMeetingResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID        string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL       string                 `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalJoinMeetingResp) Reset() {
	*x = SignalJoinMeetingResp{}
	mi := &file_rtc_proto_msgTypes[17]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalJoinMeetingResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalJoinMeetingResp) ProtoMessage() {}

func (x *SignalJoinMeetingResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[17]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalJoinMeetingResp.ProtoReflect.Descriptor instead.
func (*SignalJoinMeetingResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{17}
}

func (x *SignalJoinMeetingResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SignalJoinMeetingResp) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalJoinMeetingResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

type SignalResp struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Payload:
	//
	//	*SignalResp_Invite
	//	*SignalResp_InviteInGroup
	//	*SignalResp_Cancel
	//	*SignalResp_Accept
	//	*SignalResp_HungUp
	//	*SignalResp_Reject
	//	*SignalResp_GetTokenByRoomID
	Payload       isSignalResp_Payload `protobuf_oneof:"payload"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalResp) Reset() {
	*x = SignalResp{}
	mi := &file_rtc_proto_msgTypes[18]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalResp) ProtoMessage() {}

func (x *SignalResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[18]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalResp.ProtoReflect.Descriptor instead.
func (*SignalResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{18}
}

func (x *SignalResp) GetPayload() isSignalResp_Payload {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *SignalResp) GetInvite() *SignalInviteResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_Invite); ok {
			return x.Invite
		}
	}
	return nil
}

func (x *SignalResp) GetInviteInGroup() *SignalInviteInGroupResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_InviteInGroup); ok {
			return x.InviteInGroup
		}
	}
	return nil
}

func (x *SignalResp) GetCancel() *SignalCancelResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_Cancel); ok {
			return x.Cancel
		}
	}
	return nil
}

func (x *SignalResp) GetAccept() *SignalAcceptResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_Accept); ok {
			return x.Accept
		}
	}
	return nil
}

func (x *SignalResp) GetHungUp() *SignalHungUpResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_HungUp); ok {
			return x.HungUp
		}
	}
	return nil
}

func (x *SignalResp) GetReject() *SignalRejectResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_Reject); ok {
			return x.Reject
		}
	}
	return nil
}

func (x *SignalResp) GetGetTokenByRoomID() *SignalGetTokenByRoomIDResp {
	if x != nil {
		if x, ok := x.Payload.(*SignalResp_GetTokenByRoomID); ok {
			return x.GetTokenByRoomID
		}
	}
	return nil
}

type isSignalResp_Payload interface {
	isSignalResp_Payload()
}

type SignalResp_Invite struct {
	Invite *SignalInviteResp `protobuf:"bytes,1,opt,name=invite,proto3,oneof"`
}

type SignalResp_InviteInGroup struct {
	InviteInGroup *SignalInviteInGroupResp `protobuf:"bytes,2,opt,name=inviteInGroup,proto3,oneof"`
}

type SignalResp_Cancel struct {
	Cancel *SignalCancelResp `protobuf:"bytes,3,opt,name=cancel,proto3,oneof"`
}

type SignalResp_Accept struct {
	Accept *SignalAcceptResp `protobuf:"bytes,4,opt,name=accept,proto3,oneof"`
}

type SignalResp_HungUp struct {
	HungUp *SignalHungUpResp `protobuf:"bytes,5,opt,name=hungUp,proto3,oneof"`
}

type SignalResp_Reject struct {
	Reject *SignalRejectResp `protobuf:"bytes,6,opt,name=reject,proto3,oneof"`
}

type SignalResp_GetTokenByRoomID struct {
	GetTokenByRoomID *SignalGetTokenByRoomIDResp `protobuf:"bytes,7,opt,name=getTokenByRoomID,proto3,oneof"`
}

func (*SignalResp_Invite) isSignalResp_Payload() {}

func (*SignalResp_InviteInGroup) isSignalResp_Payload() {}

func (*SignalResp_Cancel) isSignalResp_Payload() {}

func (*SignalResp_Accept) isSignalResp_Payload() {}

func (*SignalResp_HungUp) isSignalResp_Payload() {}

func (*SignalResp_Reject) isSignalResp_Payload() {}

func (*SignalResp_GetTokenByRoomID) isSignalResp_Payload() {}

type InvitationInfo struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	InviterUserID      string                 `protobuf:"bytes,1,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"`
	InviteeUserIDList  []string               `protobuf:"bytes,2,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"`
	CustomData         string                 `protobuf:"bytes,3,opt,name=customData,proto3" json:"customData,omitempty"`
	GroupID            string                 `protobuf:"bytes,4,opt,name=groupID,proto3" json:"groupID,omitempty"`
	RoomID             string                 `protobuf:"bytes,5,opt,name=roomID,proto3" json:"roomID,omitempty"`
	Timeout            int32                  `protobuf:"varint,6,opt,name=timeout,proto3" json:"timeout,omitempty"`
	MediaType          string                 `protobuf:"bytes,7,opt,name=mediaType,proto3" json:"mediaType,omitempty"`
	PlatformID         int32                  `protobuf:"varint,8,opt,name=platformID,proto3" json:"platformID,omitempty"`
	SessionType        int32                  `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"`
	InitiateTime       int64                  `protobuf:"varint,10,opt,name=initiateTime,proto3" json:"initiateTime,omitempty"`
	BusyLineUserIDList []string               `protobuf:"bytes,11,rep,name=busyLineUserIDList,proto3" json:"busyLineUserIDList,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *InvitationInfo) Reset() {
	*x = InvitationInfo{}
	mi := &file_rtc_proto_msgTypes[19]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *InvitationInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InvitationInfo) ProtoMessage() {}

func (x *InvitationInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[19]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InvitationInfo.ProtoReflect.Descriptor instead.
func (*InvitationInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{19}
}

func (x *InvitationInfo) GetInviterUserID() string {
	if x != nil {
		return x.InviterUserID
	}
	return ""
}

func (x *InvitationInfo) GetInviteeUserIDList() []string {
	if x != nil {
		return x.InviteeUserIDList
	}
	return nil
}

func (x *InvitationInfo) GetCustomData() string {
	if x != nil {
		return x.CustomData
	}
	return ""
}

func (x *InvitationInfo) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *InvitationInfo) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *InvitationInfo) GetTimeout() int32 {
	if x != nil {
		return x.Timeout
	}
	return 0
}

func (x *InvitationInfo) GetMediaType() string {
	if x != nil {
		return x.MediaType
	}
	return ""
}

func (x *InvitationInfo) GetPlatformID() int32 {
	if x != nil {
		return x.PlatformID
	}
	return 0
}

func (x *InvitationInfo) GetSessionType() int32 {
	if x != nil {
		return x.SessionType
	}
	return 0
}

func (x *InvitationInfo) GetInitiateTime() int64 {
	if x != nil {
		return x.InitiateTime
	}
	return 0
}

func (x *InvitationInfo) GetBusyLineUserIDList() []string {
	if x != nil {
		return x.BusyLineUserIDList
	}
	return nil
}

type MeetingInfo struct {
	state                       protoimpl.MessageState `protogen:"open.v1"`
	RoomID                      string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	MeetingName                 string                 `protobuf:"bytes,2,opt,name=meetingName,proto3" json:"meetingName,omitempty"`
	Ex                          string                 `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"`
	HostUserID                  string                 `protobuf:"bytes,4,opt,name=hostUserID,proto3" json:"hostUserID,omitempty"`
	InviteeUserIDList           []string               `protobuf:"bytes,5,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"` //邀请列表
	CreateTime                  int64                  `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"`
	StartTime                   int64                  `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EndTime                     int64                  `protobuf:"varint,8,opt,name=endTime,proto3" json:"endTime,omitempty"`
	ParticipantCanUnmuteSelf    bool                   `protobuf:"varint,9,opt,name=participantCanUnmuteSelf,proto3" json:"participantCanUnmuteSelf,omitempty"`       //成员是否能自己解除禁言
	ParticipantCanEnableVideo   bool                   `protobuf:"varint,10,opt,name=participantCanEnableVideo,proto3" json:"participantCanEnableVideo,omitempty"`    //成员是否能开启视频
	OnlyHostInviteUser          bool                   `protobuf:"varint,11,opt,name=onlyHostInviteUser,proto3" json:"onlyHostInviteUser,omitempty"`                  //仅主持人可邀请用户
	OnlyHostShareScreen         bool                   `protobuf:"varint,12,opt,name=onlyHostShareScreen,proto3" json:"onlyHostShareScreen,omitempty"`                //仅主持人可共享屏幕
	JoinDisableMicrophone       bool                   `protobuf:"varint,13,opt,name=joinDisableMicrophone,proto3" json:"joinDisableMicrophone,omitempty"`            //加入是否默认关麦克风
	JoinDisableVideo            bool                   `protobuf:"varint,14,opt,name=joinDisableVideo,proto3" json:"joinDisableVideo,omitempty"`                      //加入是否默认关视频
	IsMuteAllVideo              bool                   `protobuf:"varint,15,opt,name=isMuteAllVideo,proto3" json:"isMuteAllVideo,omitempty"`                          // 是否全员禁用视频
	IsMuteAllMicrophone         bool                   `protobuf:"varint,16,opt,name=isMuteAllMicrophone,proto3" json:"isMuteAllMicrophone,omitempty"`                // 是否全员禁用麦克风
	CanScreenUserIDList         []string               `protobuf:"bytes,17,rep,name=canScreenUserIDList,proto3" json:"canScreenUserIDList,omitempty"`                 // 可共享屏幕的ID列表
	DisableMicrophoneUserIDList []string               `protobuf:"bytes,18,rep,name=disableMicrophoneUserIDList,proto3" json:"disableMicrophoneUserIDList,omitempty"` // 当前被禁言麦克风的id列表
	DisableVideoUserIDList      []string               `protobuf:"bytes,19,rep,name=disableVideoUserIDList,proto3" json:"disableVideoUserIDList,omitempty"`           // 当前禁用视频流的ID列表
	PinedUserIDList             []string               `protobuf:"bytes,20,rep,name=pinedUserIDList,proto3" json:"pinedUserIDList,omitempty"`                         // 置顶ID列表
	BeWatchedUserIDList         []string               `protobuf:"bytes,21,rep,name=beWatchedUserIDList,proto3" json:"beWatchedUserIDList,omitempty"`                 // 正在被观看用户列表
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

func (x *MeetingInfo) Reset() {
	*x = MeetingInfo{}
	mi := &file_rtc_proto_msgTypes[20]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MeetingInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeetingInfo) ProtoMessage() {}

func (x *MeetingInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[20]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeetingInfo.ProtoReflect.Descriptor instead.
func (*MeetingInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{20}
}

func (x *MeetingInfo) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *MeetingInfo) GetMeetingName() string {
	if x != nil {
		return x.MeetingName
	}
	return ""
}

func (x *MeetingInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *MeetingInfo) GetHostUserID() string {
	if x != nil {
		return x.HostUserID
	}
	return ""
}

func (x *MeetingInfo) GetInviteeUserIDList() []string {
	if x != nil {
		return x.InviteeUserIDList
	}
	return nil
}

func (x *MeetingInfo) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *MeetingInfo) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *MeetingInfo) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *MeetingInfo) GetParticipantCanUnmuteSelf() bool {
	if x != nil {
		return x.ParticipantCanUnmuteSelf
	}
	return false
}

func (x *MeetingInfo) GetParticipantCanEnableVideo() bool {
	if x != nil {
		return x.ParticipantCanEnableVideo
	}
	return false
}

func (x *MeetingInfo) GetOnlyHostInviteUser() bool {
	if x != nil {
		return x.OnlyHostInviteUser
	}
	return false
}

func (x *MeetingInfo) GetOnlyHostShareScreen() bool {
	if x != nil {
		return x.OnlyHostShareScreen
	}
	return false
}

func (x *MeetingInfo) GetJoinDisableMicrophone() bool {
	if x != nil {
		return x.JoinDisableMicrophone
	}
	return false
}

func (x *MeetingInfo) GetJoinDisableVideo() bool {
	if x != nil {
		return x.JoinDisableVideo
	}
	return false
}

func (x *MeetingInfo) GetIsMuteAllVideo() bool {
	if x != nil {
		return x.IsMuteAllVideo
	}
	return false
}

func (x *MeetingInfo) GetIsMuteAllMicrophone() bool {
	if x != nil {
		return x.IsMuteAllMicrophone
	}
	return false
}

func (x *MeetingInfo) GetCanScreenUserIDList() []string {
	if x != nil {
		return x.CanScreenUserIDList
	}
	return nil
}

func (x *MeetingInfo) GetDisableMicrophoneUserIDList() []string {
	if x != nil {
		return x.DisableMicrophoneUserIDList
	}
	return nil
}

func (x *MeetingInfo) GetDisableVideoUserIDList() []string {
	if x != nil {
		return x.DisableVideoUserIDList
	}
	return nil
}

func (x *MeetingInfo) GetPinedUserIDList() []string {
	if x != nil {
		return x.PinedUserIDList
	}
	return nil
}

func (x *MeetingInfo) GetBeWatchedUserIDList() []string {
	if x != nil {
		return x.BeWatchedUserIDList
	}
	return nil
}

type SignalInviteReq struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Invitation      *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant     *ParticipantMetaData   `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
	UserID          string                 `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *SignalInviteReq) Reset() {
	*x = SignalInviteReq{}
	mi := &file_rtc_proto_msgTypes[21]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalInviteReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalInviteReq) ProtoMessage() {}

func (x *SignalInviteReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[21]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalInviteReq.ProtoReflect.Descriptor instead.
func (*SignalInviteReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{21}
}

func (x *SignalInviteReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalInviteReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalInviteReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalInviteReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalInviteResp struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Token              string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID             string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL            string                 `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	BusyLineUserIDList []string               `protobuf:"bytes,4,rep,name=busyLineUserIDList,proto3" json:"busyLineUserIDList,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *SignalInviteResp) Reset() {
	*x = SignalInviteResp{}
	mi := &file_rtc_proto_msgTypes[22]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalInviteResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalInviteResp) ProtoMessage() {}

func (x *SignalInviteResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[22]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalInviteResp.ProtoReflect.Descriptor instead.
func (*SignalInviteResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{22}
}

func (x *SignalInviteResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SignalInviteResp) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalInviteResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

func (x *SignalInviteResp) GetBusyLineUserIDList() []string {
	if x != nil {
		return x.BusyLineUserIDList
	}
	return nil
}

type SignalInviteInGroupReq struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Invitation      *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant     *ParticipantMetaData   `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
	UserID          string                 `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *SignalInviteInGroupReq) Reset() {
	*x = SignalInviteInGroupReq{}
	mi := &file_rtc_proto_msgTypes[23]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalInviteInGroupReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalInviteInGroupReq) ProtoMessage() {}

func (x *SignalInviteInGroupReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[23]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalInviteInGroupReq.ProtoReflect.Descriptor instead.
func (*SignalInviteInGroupReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{23}
}

func (x *SignalInviteInGroupReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalInviteInGroupReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalInviteInGroupReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalInviteInGroupReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalInviteInGroupResp struct {
	state              protoimpl.MessageState `protogen:"open.v1"`
	Token              string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID             string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL            string                 `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	BusyLineUserIDList []string               `protobuf:"bytes,4,rep,name=busyLineUserIDList,proto3" json:"busyLineUserIDList,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

func (x *SignalInviteInGroupResp) Reset() {
	*x = SignalInviteInGroupResp{}
	mi := &file_rtc_proto_msgTypes[24]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalInviteInGroupResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalInviteInGroupResp) ProtoMessage() {}

func (x *SignalInviteInGroupResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[24]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalInviteInGroupResp.ProtoReflect.Descriptor instead.
func (*SignalInviteInGroupResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{24}
}

func (x *SignalInviteInGroupResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SignalInviteInGroupResp) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalInviteInGroupResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

func (x *SignalInviteInGroupResp) GetBusyLineUserIDList() []string {
	if x != nil {
		return x.BusyLineUserIDList
	}
	return nil
}

type SignalCancelReq struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Invitation      *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant     *ParticipantMetaData   `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
	UserID          string                 `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *SignalCancelReq) Reset() {
	*x = SignalCancelReq{}
	mi := &file_rtc_proto_msgTypes[25]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalCancelReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalCancelReq) ProtoMessage() {}

func (x *SignalCancelReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[25]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalCancelReq.ProtoReflect.Descriptor instead.
func (*SignalCancelReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{25}
}

func (x *SignalCancelReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalCancelReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalCancelReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalCancelReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalCancelResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalCancelResp) Reset() {
	*x = SignalCancelResp{}
	mi := &file_rtc_proto_msgTypes[26]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalCancelResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalCancelResp) ProtoMessage() {}

func (x *SignalCancelResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[26]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalCancelResp.ProtoReflect.Descriptor instead.
func (*SignalCancelResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{26}
}

type SignalAcceptReq struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Invitation       *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo  *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant      *ParticipantMetaData   `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
	OpUserPlatformID int32                  `protobuf:"varint,4,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"`
	UserID           string                 `protobuf:"bytes,5,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *SignalAcceptReq) Reset() {
	*x = SignalAcceptReq{}
	mi := &file_rtc_proto_msgTypes[27]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalAcceptReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalAcceptReq) ProtoMessage() {}

func (x *SignalAcceptReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[27]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalAcceptReq.ProtoReflect.Descriptor instead.
func (*SignalAcceptReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{27}
}

func (x *SignalAcceptReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalAcceptReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalAcceptReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalAcceptReq) GetOpUserPlatformID() int32 {
	if x != nil {
		return x.OpUserPlatformID
	}
	return 0
}

func (x *SignalAcceptReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalAcceptResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	RoomID        string                 `protobuf:"bytes,2,opt,name=roomID,proto3" json:"roomID,omitempty"`
	LiveURL       string                 `protobuf:"bytes,3,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalAcceptResp) Reset() {
	*x = SignalAcceptResp{}
	mi := &file_rtc_proto_msgTypes[28]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalAcceptResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalAcceptResp) ProtoMessage() {}

func (x *SignalAcceptResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[28]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalAcceptResp.ProtoReflect.Descriptor instead.
func (*SignalAcceptResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{28}
}

func (x *SignalAcceptResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SignalAcceptResp) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalAcceptResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

type SignalHungUpReq struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Invitation      *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	UserID          string                 `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *SignalHungUpReq) Reset() {
	*x = SignalHungUpReq{}
	mi := &file_rtc_proto_msgTypes[29]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalHungUpReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalHungUpReq) ProtoMessage() {}

func (x *SignalHungUpReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[29]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalHungUpReq.ProtoReflect.Descriptor instead.
func (*SignalHungUpReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{29}
}

func (x *SignalHungUpReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalHungUpReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalHungUpReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalHungUpResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalHungUpResp) Reset() {
	*x = SignalHungUpResp{}
	mi := &file_rtc_proto_msgTypes[30]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalHungUpResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalHungUpResp) ProtoMessage() {}

func (x *SignalHungUpResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[30]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalHungUpResp.ProtoReflect.Descriptor instead.
func (*SignalHungUpResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{30}
}

type SignalRejectReq struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	Invitation       *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo  *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	Participant      *ParticipantMetaData   `protobuf:"bytes,3,opt,name=participant,proto3" json:"participant,omitempty"`
	OpUserPlatformID int32                  `protobuf:"varint,4,opt,name=opUserPlatformID,proto3" json:"opUserPlatformID,omitempty"`
	UserID           string                 `protobuf:"bytes,5,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *SignalRejectReq) Reset() {
	*x = SignalRejectReq{}
	mi := &file_rtc_proto_msgTypes[31]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalRejectReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalRejectReq) ProtoMessage() {}

func (x *SignalRejectReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[31]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalRejectReq.ProtoReflect.Descriptor instead.
func (*SignalRejectReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{31}
}

func (x *SignalRejectReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalRejectReq) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

func (x *SignalRejectReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalRejectReq) GetOpUserPlatformID() int32 {
	if x != nil {
		return x.OpUserPlatformID
	}
	return 0
}

func (x *SignalRejectReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalRejectResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalRejectResp) Reset() {
	*x = SignalRejectResp{}
	mi := &file_rtc_proto_msgTypes[32]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalRejectResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalRejectResp) ProtoMessage() {}

func (x *SignalRejectResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[32]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalRejectResp.ProtoReflect.Descriptor instead.
func (*SignalRejectResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{32}
}

type SignalGetRoomByGroupIDReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	GroupID       string                 `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetRoomByGroupIDReq) Reset() {
	*x = SignalGetRoomByGroupIDReq{}
	mi := &file_rtc_proto_msgTypes[33]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetRoomByGroupIDReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetRoomByGroupIDReq) ProtoMessage() {}

func (x *SignalGetRoomByGroupIDReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[33]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetRoomByGroupIDReq.ProtoReflect.Descriptor instead.
func (*SignalGetRoomByGroupIDReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{33}
}

func (x *SignalGetRoomByGroupIDReq) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

type SignalGetRoomByGroupIDResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Invitation    *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	Participant   []*ParticipantMetaData `protobuf:"bytes,2,rep,name=participant,proto3" json:"participant,omitempty"`
	RoomID        string                 `protobuf:"bytes,3,opt,name=roomID,proto3" json:"roomID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetRoomByGroupIDResp) Reset() {
	*x = SignalGetRoomByGroupIDResp{}
	mi := &file_rtc_proto_msgTypes[34]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetRoomByGroupIDResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetRoomByGroupIDResp) ProtoMessage() {}

func (x *SignalGetRoomByGroupIDResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[34]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetRoomByGroupIDResp.ProtoReflect.Descriptor instead.
func (*SignalGetRoomByGroupIDResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{34}
}

func (x *SignalGetRoomByGroupIDResp) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalGetRoomByGroupIDResp) GetParticipant() []*ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalGetRoomByGroupIDResp) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

type SignalOnRoomParticipantConnectedReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Invitation    *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	Participant   []*ParticipantMetaData `protobuf:"bytes,2,rep,name=participant,proto3" json:"participant,omitempty"`
	GroupID       string                 `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalOnRoomParticipantConnectedReq) Reset() {
	*x = SignalOnRoomParticipantConnectedReq{}
	mi := &file_rtc_proto_msgTypes[35]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalOnRoomParticipantConnectedReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalOnRoomParticipantConnectedReq) ProtoMessage() {}

func (x *SignalOnRoomParticipantConnectedReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[35]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalOnRoomParticipantConnectedReq.ProtoReflect.Descriptor instead.
func (*SignalOnRoomParticipantConnectedReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{35}
}

func (x *SignalOnRoomParticipantConnectedReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalOnRoomParticipantConnectedReq) GetParticipant() []*ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalOnRoomParticipantConnectedReq) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

type SignalOnRoomParticipantDisconnectedReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Invitation    *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	Participant   []*ParticipantMetaData `protobuf:"bytes,2,rep,name=participant,proto3" json:"participant,omitempty"`
	GroupID       string                 `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalOnRoomParticipantDisconnectedReq) Reset() {
	*x = SignalOnRoomParticipantDisconnectedReq{}
	mi := &file_rtc_proto_msgTypes[36]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalOnRoomParticipantDisconnectedReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalOnRoomParticipantDisconnectedReq) ProtoMessage() {}

func (x *SignalOnRoomParticipantDisconnectedReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[36]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalOnRoomParticipantDisconnectedReq.ProtoReflect.Descriptor instead.
func (*SignalOnRoomParticipantDisconnectedReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{36}
}

func (x *SignalOnRoomParticipantDisconnectedReq) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *SignalOnRoomParticipantDisconnectedReq) GetParticipant() []*ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalOnRoomParticipantDisconnectedReq) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

type SignalGetTokenByRoomIDReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomID        string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	Participant   *ParticipantMetaData   `protobuf:"bytes,2,opt,name=participant,proto3" json:"participant,omitempty"`
	UserID        string                 `protobuf:"bytes,3,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetTokenByRoomIDReq) Reset() {
	*x = SignalGetTokenByRoomIDReq{}
	mi := &file_rtc_proto_msgTypes[37]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetTokenByRoomIDReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetTokenByRoomIDReq) ProtoMessage() {}

func (x *SignalGetTokenByRoomIDReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[37]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetTokenByRoomIDReq.ProtoReflect.Descriptor instead.
func (*SignalGetTokenByRoomIDReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{37}
}

func (x *SignalGetTokenByRoomIDReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalGetTokenByRoomIDReq) GetParticipant() *ParticipantMetaData {
	if x != nil {
		return x.Participant
	}
	return nil
}

func (x *SignalGetTokenByRoomIDReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type SignalGetTokenByRoomIDResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Token         string                 `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	LiveURL       string                 `protobuf:"bytes,2,opt,name=liveURL,proto3" json:"liveURL,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetTokenByRoomIDResp) Reset() {
	*x = SignalGetTokenByRoomIDResp{}
	mi := &file_rtc_proto_msgTypes[38]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetTokenByRoomIDResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetTokenByRoomIDResp) ProtoMessage() {}

func (x *SignalGetTokenByRoomIDResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[38]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetTokenByRoomIDResp.ProtoReflect.Descriptor instead.
func (*SignalGetTokenByRoomIDResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{38}
}

func (x *SignalGetTokenByRoomIDResp) GetToken() string {
	if x != nil {
		return x.Token
	}
	return ""
}

func (x *SignalGetTokenByRoomIDResp) GetLiveURL() string {
	if x != nil {
		return x.LiveURL
	}
	return ""
}

type SignalUpdateMeetingInfoReq struct {
	state                             protoimpl.MessageState `protogen:"open.v1"`
	RoomID                            string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	MeetingName                       *StringValue           `protobuf:"bytes,2,opt,name=meetingName,proto3" json:"meetingName,omitempty"`
	Ex                                *StringValue           `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"`
	InviteeUserIDList                 []string               `protobuf:"bytes,4,rep,name=inviteeUserIDList,proto3" json:"inviteeUserIDList,omitempty"`
	StartTime                         *Int64Value            `protobuf:"bytes,5,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EndTime                           *Int64Value            `protobuf:"bytes,6,opt,name=endTime,proto3" json:"endTime,omitempty"`
	ParticipantCanUnmuteSelf          *BoolValue             `protobuf:"bytes,7,opt,name=participantCanUnmuteSelf,proto3" json:"participantCanUnmuteSelf,omitempty"`
	ParticipantCanEnableVideo         *BoolValue             `protobuf:"bytes,8,opt,name=participantCanEnableVideo,proto3" json:"participantCanEnableVideo,omitempty"`
	OnlyHostInviteUser                *BoolValue             `protobuf:"bytes,9,opt,name=onlyHostInviteUser,proto3" json:"onlyHostInviteUser,omitempty"`
	OnlyHostShareScreen               *BoolValue             `protobuf:"bytes,10,opt,name=onlyHostShareScreen,proto3" json:"onlyHostShareScreen,omitempty"`
	JoinDisableMicrophone             *BoolValue             `protobuf:"bytes,11,opt,name=joinDisableMicrophone,proto3" json:"joinDisableMicrophone,omitempty"`
	JoinDisableVideo                  *BoolValue             `protobuf:"bytes,12,opt,name=joinDisableVideo,proto3" json:"joinDisableVideo,omitempty"`
	IsMuteAllVideo                    *BoolValue             `protobuf:"bytes,13,opt,name=isMuteAllVideo,proto3" json:"isMuteAllVideo,omitempty"`
	IsMuteAllMicrophone               *BoolValue             `protobuf:"bytes,14,opt,name=isMuteAllMicrophone,proto3" json:"isMuteAllMicrophone,omitempty"`
	AddCanScreenUserIDList            []string               `protobuf:"bytes,15,rep,name=addCanScreenUserIDList,proto3" json:"addCanScreenUserIDList,omitempty"`
	ReduceCanScreenUserIDList         []string               `protobuf:"bytes,16,rep,name=reduceCanScreenUserIDList,proto3" json:"reduceCanScreenUserIDList,omitempty"`
	CanScreenUserIDList               []string               `protobuf:"bytes,17,rep,name=canScreenUserIDList,proto3" json:"canScreenUserIDList,omitempty"`
	AddDisableMicrophoneUserIDList    []string               `protobuf:"bytes,18,rep,name=addDisableMicrophoneUserIDList,proto3" json:"addDisableMicrophoneUserIDList,omitempty"`
	ReduceDisableMicrophoneUserIDList []string               `protobuf:"bytes,19,rep,name=reduceDisableMicrophoneUserIDList,proto3" json:"reduceDisableMicrophoneUserIDList,omitempty"`
	DisableMicrophoneUserIDList       []string               `protobuf:"bytes,20,rep,name=disableMicrophoneUserIDList,proto3" json:"disableMicrophoneUserIDList,omitempty"`
	AddDisableVideoUserIDList         []string               `protobuf:"bytes,21,rep,name=addDisableVideoUserIDList,proto3" json:"addDisableVideoUserIDList,omitempty"`
	ReduceDisableVideoUserIDList      []string               `protobuf:"bytes,22,rep,name=reduceDisableVideoUserIDList,proto3" json:"reduceDisableVideoUserIDList,omitempty"`
	DisableVideoUserIDList            []string               `protobuf:"bytes,23,rep,name=disableVideoUserIDList,proto3" json:"disableVideoUserIDList,omitempty"`
	AddPinedUserIDList                []string               `protobuf:"bytes,24,rep,name=addPinedUserIDList,proto3" json:"addPinedUserIDList,omitempty"`
	ReducePinedUserIDList             []string               `protobuf:"bytes,25,rep,name=reducePinedUserIDList,proto3" json:"reducePinedUserIDList,omitempty"`
	PinedUserIDList                   []string               `protobuf:"bytes,26,rep,name=pinedUserIDList,proto3" json:"pinedUserIDList,omitempty"`
	AddBeWatchedUserIDList            []string               `protobuf:"bytes,27,rep,name=addBeWatchedUserIDList,proto3" json:"addBeWatchedUserIDList,omitempty"`
	ReduceBeWatchedUserIDList         []string               `protobuf:"bytes,28,rep,name=reduceBeWatchedUserIDList,proto3" json:"reduceBeWatchedUserIDList,omitempty"`
	BeWatchedUserIDList               []string               `protobuf:"bytes,29,rep,name=beWatchedUserIDList,proto3" json:"beWatchedUserIDList,omitempty"`
	unknownFields                     protoimpl.UnknownFields
	sizeCache                         protoimpl.SizeCache
}

func (x *SignalUpdateMeetingInfoReq) Reset() {
	*x = SignalUpdateMeetingInfoReq{}
	mi := &file_rtc_proto_msgTypes[39]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalUpdateMeetingInfoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalUpdateMeetingInfoReq) ProtoMessage() {}

func (x *SignalUpdateMeetingInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[39]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalUpdateMeetingInfoReq.ProtoReflect.Descriptor instead.
func (*SignalUpdateMeetingInfoReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{39}
}

func (x *SignalUpdateMeetingInfoReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalUpdateMeetingInfoReq) GetMeetingName() *StringValue {
	if x != nil {
		return x.MeetingName
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetEx() *StringValue {
	if x != nil {
		return x.Ex
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetInviteeUserIDList() []string {
	if x != nil {
		return x.InviteeUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetStartTime() *Int64Value {
	if x != nil {
		return x.StartTime
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetEndTime() *Int64Value {
	if x != nil {
		return x.EndTime
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetParticipantCanUnmuteSelf() *BoolValue {
	if x != nil {
		return x.ParticipantCanUnmuteSelf
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetParticipantCanEnableVideo() *BoolValue {
	if x != nil {
		return x.ParticipantCanEnableVideo
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetOnlyHostInviteUser() *BoolValue {
	if x != nil {
		return x.OnlyHostInviteUser
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetOnlyHostShareScreen() *BoolValue {
	if x != nil {
		return x.OnlyHostShareScreen
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetJoinDisableMicrophone() *BoolValue {
	if x != nil {
		return x.JoinDisableMicrophone
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetJoinDisableVideo() *BoolValue {
	if x != nil {
		return x.JoinDisableVideo
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetIsMuteAllVideo() *BoolValue {
	if x != nil {
		return x.IsMuteAllVideo
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetIsMuteAllMicrophone() *BoolValue {
	if x != nil {
		return x.IsMuteAllMicrophone
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetAddCanScreenUserIDList() []string {
	if x != nil {
		return x.AddCanScreenUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetReduceCanScreenUserIDList() []string {
	if x != nil {
		return x.ReduceCanScreenUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetCanScreenUserIDList() []string {
	if x != nil {
		return x.CanScreenUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetAddDisableMicrophoneUserIDList() []string {
	if x != nil {
		return x.AddDisableMicrophoneUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetReduceDisableMicrophoneUserIDList() []string {
	if x != nil {
		return x.ReduceDisableMicrophoneUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetDisableMicrophoneUserIDList() []string {
	if x != nil {
		return x.DisableMicrophoneUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetAddDisableVideoUserIDList() []string {
	if x != nil {
		return x.AddDisableVideoUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetReduceDisableVideoUserIDList() []string {
	if x != nil {
		return x.ReduceDisableVideoUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetDisableVideoUserIDList() []string {
	if x != nil {
		return x.DisableVideoUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetAddPinedUserIDList() []string {
	if x != nil {
		return x.AddPinedUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetReducePinedUserIDList() []string {
	if x != nil {
		return x.ReducePinedUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetPinedUserIDList() []string {
	if x != nil {
		return x.PinedUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetAddBeWatchedUserIDList() []string {
	if x != nil {
		return x.AddBeWatchedUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetReduceBeWatchedUserIDList() []string {
	if x != nil {
		return x.ReduceBeWatchedUserIDList
	}
	return nil
}

func (x *SignalUpdateMeetingInfoReq) GetBeWatchedUserIDList() []string {
	if x != nil {
		return x.BeWatchedUserIDList
	}
	return nil
}

type SignalUpdateMeetingInfoResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalUpdateMeetingInfoResp) Reset() {
	*x = SignalUpdateMeetingInfoResp{}
	mi := &file_rtc_proto_msgTypes[40]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalUpdateMeetingInfoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalUpdateMeetingInfoResp) ProtoMessage() {}

func (x *SignalUpdateMeetingInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[40]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalUpdateMeetingInfoResp.ProtoReflect.Descriptor instead.
func (*SignalUpdateMeetingInfoResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{40}
}

type SignalCloseRoomReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomID        string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalCloseRoomReq) Reset() {
	*x = SignalCloseRoomReq{}
	mi := &file_rtc_proto_msgTypes[41]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalCloseRoomReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalCloseRoomReq) ProtoMessage() {}

func (x *SignalCloseRoomReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[41]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalCloseRoomReq.ProtoReflect.Descriptor instead.
func (*SignalCloseRoomReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{41}
}

func (x *SignalCloseRoomReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

type SignalCloseRoomResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalCloseRoomResp) Reset() {
	*x = SignalCloseRoomResp{}
	mi := &file_rtc_proto_msgTypes[42]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalCloseRoomResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalCloseRoomResp) ProtoMessage() {}

func (x *SignalCloseRoomResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[42]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalCloseRoomResp.ProtoReflect.Descriptor instead.
func (*SignalCloseRoomResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{42}
}

type SignalMessageAssembleReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SignalReq     *SignalReq             `protobuf:"bytes,1,opt,name=signalReq,proto3" json:"signalReq,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalMessageAssembleReq) Reset() {
	*x = SignalMessageAssembleReq{}
	mi := &file_rtc_proto_msgTypes[43]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalMessageAssembleReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalMessageAssembleReq) ProtoMessage() {}

func (x *SignalMessageAssembleReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[43]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalMessageAssembleReq.ProtoReflect.Descriptor instead.
func (*SignalMessageAssembleReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{43}
}

func (x *SignalMessageAssembleReq) GetSignalReq() *SignalReq {
	if x != nil {
		return x.SignalReq
	}
	return nil
}

type SignalMessageAssembleResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SignalResp    *SignalResp            `protobuf:"bytes,1,opt,name=signalResp,proto3" json:"signalResp,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalMessageAssembleResp) Reset() {
	*x = SignalMessageAssembleResp{}
	mi := &file_rtc_proto_msgTypes[44]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalMessageAssembleResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalMessageAssembleResp) ProtoMessage() {}

func (x *SignalMessageAssembleResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[44]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalMessageAssembleResp.ProtoReflect.Descriptor instead.
func (*SignalMessageAssembleResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{44}
}

func (x *SignalMessageAssembleResp) GetSignalResp() *SignalResp {
	if x != nil {
		return x.SignalResp
	}
	return nil
}

type SignalGetRoomsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomIDs       []string               `protobuf:"bytes,1,rep,name=roomIDs,proto3" json:"roomIDs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetRoomsReq) Reset() {
	*x = SignalGetRoomsReq{}
	mi := &file_rtc_proto_msgTypes[45]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetRoomsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetRoomsReq) ProtoMessage() {}

func (x *SignalGetRoomsReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[45]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetRoomsReq.ProtoReflect.Descriptor instead.
func (*SignalGetRoomsReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{45}
}

func (x *SignalGetRoomsReq) GetRoomIDs() []string {
	if x != nil {
		return x.RoomIDs
	}
	return nil
}

type SignalGetRoomsResp struct {
	state         protoimpl.MessageState        `protogen:"open.v1"`
	RoomList      []*SignalGetRoomByGroupIDResp `protobuf:"bytes,1,rep,name=roomList,proto3" json:"roomList,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalGetRoomsResp) Reset() {
	*x = SignalGetRoomsResp{}
	mi := &file_rtc_proto_msgTypes[46]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalGetRoomsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalGetRoomsResp) ProtoMessage() {}

func (x *SignalGetRoomsResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[46]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalGetRoomsResp.ProtoReflect.Descriptor instead.
func (*SignalGetRoomsResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{46}
}

func (x *SignalGetRoomsResp) GetRoomList() []*SignalGetRoomByGroupIDResp {
	if x != nil {
		return x.RoomList
	}
	return nil
}

type GetSignalInvitationInfoReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomID        string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetSignalInvitationInfoReq) Reset() {
	*x = GetSignalInvitationInfoReq{}
	mi := &file_rtc_proto_msgTypes[47]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSignalInvitationInfoReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSignalInvitationInfoReq) ProtoMessage() {}

func (x *GetSignalInvitationInfoReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[47]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSignalInvitationInfoReq.ProtoReflect.Descriptor instead.
func (*GetSignalInvitationInfoReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{47}
}

func (x *GetSignalInvitationInfoReq) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

type GetSignalInvitationInfoResp struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	InvitationInfo  *InvitationInfo        `protobuf:"bytes,1,opt,name=invitationInfo,proto3" json:"invitationInfo,omitempty"`
	OfflinePushInfo *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *GetSignalInvitationInfoResp) Reset() {
	*x = GetSignalInvitationInfoResp{}
	mi := &file_rtc_proto_msgTypes[48]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSignalInvitationInfoResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSignalInvitationInfoResp) ProtoMessage() {}

func (x *GetSignalInvitationInfoResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[48]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSignalInvitationInfoResp.ProtoReflect.Descriptor instead.
func (*GetSignalInvitationInfoResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{48}
}

func (x *GetSignalInvitationInfoResp) GetInvitationInfo() *InvitationInfo {
	if x != nil {
		return x.InvitationInfo
	}
	return nil
}

func (x *GetSignalInvitationInfoResp) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

type GetSignalInvitationInfoStartAppReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetSignalInvitationInfoStartAppReq) Reset() {
	*x = GetSignalInvitationInfoStartAppReq{}
	mi := &file_rtc_proto_msgTypes[49]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSignalInvitationInfoStartAppReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSignalInvitationInfoStartAppReq) ProtoMessage() {}

func (x *GetSignalInvitationInfoStartAppReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[49]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSignalInvitationInfoStartAppReq.ProtoReflect.Descriptor instead.
func (*GetSignalInvitationInfoStartAppReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{49}
}

func (x *GetSignalInvitationInfoStartAppReq) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

type GetSignalInvitationInfoStartAppResp struct {
	state           protoimpl.MessageState `protogen:"open.v1"`
	Invitation      *InvitationInfo        `protobuf:"bytes,1,opt,name=invitation,proto3" json:"invitation,omitempty"`
	OfflinePushInfo *OfflinePushInfo       `protobuf:"bytes,2,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *GetSignalInvitationInfoStartAppResp) Reset() {
	*x = GetSignalInvitationInfoStartAppResp{}
	mi := &file_rtc_proto_msgTypes[50]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSignalInvitationInfoStartAppResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSignalInvitationInfoStartAppResp) ProtoMessage() {}

func (x *GetSignalInvitationInfoStartAppResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[50]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSignalInvitationInfoStartAppResp.ProtoReflect.Descriptor instead.
func (*GetSignalInvitationInfoStartAppResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{50}
}

func (x *GetSignalInvitationInfoStartAppResp) GetInvitation() *InvitationInfo {
	if x != nil {
		return x.Invitation
	}
	return nil
}

func (x *GetSignalInvitationInfoStartAppResp) GetOfflinePushInfo() *OfflinePushInfo {
	if x != nil {
		return x.OfflinePushInfo
	}
	return nil
}

type OfflinePushInfo struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Title         string                 `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"`
	Desc          string                 `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"`
	Ex            string                 `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"`
	IOSPushSound  string                 `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"`
	IOSBadgeCount bool                   `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"`
	SignalInfo    string                 `protobuf:"bytes,6,opt,name=signalInfo,proto3" json:"signalInfo,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *OfflinePushInfo) Reset() {
	*x = OfflinePushInfo{}
	mi := &file_rtc_proto_msgTypes[51]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *OfflinePushInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*OfflinePushInfo) ProtoMessage() {}

func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[51]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead.
func (*OfflinePushInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{51}
}

func (x *OfflinePushInfo) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *OfflinePushInfo) GetDesc() string {
	if x != nil {
		return x.Desc
	}
	return ""
}

func (x *OfflinePushInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *OfflinePushInfo) GetIOSPushSound() string {
	if x != nil {
		return x.IOSPushSound
	}
	return ""
}

func (x *OfflinePushInfo) GetIOSBadgeCount() bool {
	if x != nil {
		return x.IOSBadgeCount
	}
	return false
}

func (x *OfflinePushInfo) GetSignalInfo() string {
	if x != nil {
		return x.SignalInfo
	}
	return ""
}

type SignalUser struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Nickname      string                 `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
	Status        int32                  `protobuf:"varint,3,opt,name=status,proto3" json:"status,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *SignalUser) Reset() {
	*x = SignalUser{}
	mi := &file_rtc_proto_msgTypes[52]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalUser) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalUser) ProtoMessage() {}

func (x *SignalUser) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[52]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalUser.ProtoReflect.Descriptor instead.
func (*SignalUser) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{52}
}

func (x *SignalUser) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *SignalUser) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *SignalUser) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type SignalRecord struct {
	state               protoimpl.MessageState `protogen:"open.v1"`
	RoomID              string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	SID                 string                 `protobuf:"bytes,2,opt,name=sID,proto3" json:"sID,omitempty"`
	FileName            string                 `protobuf:"bytes,3,opt,name=fileName,proto3" json:"fileName,omitempty"`
	MediaType           string                 `protobuf:"bytes,4,opt,name=mediaType,proto3" json:"mediaType,omitempty"`
	SessionType         int32                  `protobuf:"varint,5,opt,name=sessionType,proto3" json:"sessionType,omitempty"`
	InviterUserID       string                 `protobuf:"bytes,6,opt,name=inviterUserID,proto3" json:"inviterUserID,omitempty"`
	InviterUserNickname string                 `protobuf:"bytes,7,opt,name=inviterUserNickname,proto3" json:"inviterUserNickname,omitempty"`
	GroupID             string                 `protobuf:"bytes,8,opt,name=groupID,proto3" json:"groupID,omitempty"`
	GroupName           string                 `protobuf:"bytes,9,opt,name=groupName,proto3" json:"groupName,omitempty"`
	InviterUsers        []*SignalUser          `protobuf:"bytes,10,rep,name=inviterUsers,proto3" json:"inviterUsers,omitempty"`
	CreateTime          int64                  `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"`
	EndTime             int64                  `protobuf:"varint,12,opt,name=endTime,proto3" json:"endTime,omitempty"`
	Size                string                 `protobuf:"bytes,13,opt,name=size,proto3" json:"size,omitempty"`
	FileURL             string                 `protobuf:"bytes,14,opt,name=fileURL,proto3" json:"fileURL,omitempty"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

func (x *SignalRecord) Reset() {
	*x = SignalRecord{}
	mi := &file_rtc_proto_msgTypes[53]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *SignalRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SignalRecord) ProtoMessage() {}

func (x *SignalRecord) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[53]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use SignalRecord.ProtoReflect.Descriptor instead.
func (*SignalRecord) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{53}
}

func (x *SignalRecord) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *SignalRecord) GetSID() string {
	if x != nil {
		return x.SID
	}
	return ""
}

func (x *SignalRecord) GetFileName() string {
	if x != nil {
		return x.FileName
	}
	return ""
}

func (x *SignalRecord) GetMediaType() string {
	if x != nil {
		return x.MediaType
	}
	return ""
}

func (x *SignalRecord) GetSessionType() int32 {
	if x != nil {
		return x.SessionType
	}
	return 0
}

func (x *SignalRecord) GetInviterUserID() string {
	if x != nil {
		return x.InviterUserID
	}
	return ""
}

func (x *SignalRecord) GetInviterUserNickname() string {
	if x != nil {
		return x.InviterUserNickname
	}
	return ""
}

func (x *SignalRecord) GetGroupID() string {
	if x != nil {
		return x.GroupID
	}
	return ""
}

func (x *SignalRecord) GetGroupName() string {
	if x != nil {
		return x.GroupName
	}
	return ""
}

func (x *SignalRecord) GetInviterUsers() []*SignalUser {
	if x != nil {
		return x.InviterUsers
	}
	return nil
}

func (x *SignalRecord) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *SignalRecord) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *SignalRecord) GetSize() string {
	if x != nil {
		return x.Size
	}
	return ""
}

func (x *SignalRecord) GetFileURL() string {
	if x != nil {
		return x.FileURL
	}
	return ""
}

type MeetingUser struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	UserID        string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Nickname      string                 `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *MeetingUser) Reset() {
	*x = MeetingUser{}
	mi := &file_rtc_proto_msgTypes[54]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MeetingUser) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeetingUser) ProtoMessage() {}

func (x *MeetingUser) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[54]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeetingUser.ProtoReflect.Descriptor instead.
func (*MeetingUser) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{54}
}

func (x *MeetingUser) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *MeetingUser) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

type FileRecord struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Size          string                 `protobuf:"bytes,1,opt,name=size,proto3" json:"size,omitempty"`
	FileURL       string                 `protobuf:"bytes,2,opt,name=fileURL,proto3" json:"fileURL,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FileRecord) Reset() {
	*x = FileRecord{}
	mi := &file_rtc_proto_msgTypes[55]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FileRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FileRecord) ProtoMessage() {}

func (x *FileRecord) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[55]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FileRecord.ProtoReflect.Descriptor instead.
func (*FileRecord) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{55}
}

func (x *FileRecord) GetSize() string {
	if x != nil {
		return x.Size
	}
	return ""
}

func (x *FileRecord) GetFileURL() string {
	if x != nil {
		return x.FileURL
	}
	return ""
}

type MeetingRecord struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	RoomID           string                 `protobuf:"bytes,1,opt,name=roomID,proto3" json:"roomID,omitempty"`
	MeetingName      string                 `protobuf:"bytes,2,opt,name=meetingName,proto3" json:"meetingName,omitempty"`
	Ex               string                 `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"`
	HostUserID       string                 `protobuf:"bytes,4,opt,name=hostUserID,proto3" json:"hostUserID,omitempty"`
	HostUserNickname string                 `protobuf:"bytes,5,opt,name=hostUserNickname,proto3" json:"hostUserNickname,omitempty"`
	CreateTime       int64                  `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"`
	StartTime        int64                  `protobuf:"varint,7,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EndTime          int64                  `protobuf:"varint,8,opt,name=endTime,proto3" json:"endTime,omitempty"`
	JoinedUsers      []*MeetingUser         `protobuf:"bytes,9,rep,name=joinedUsers,proto3" json:"joinedUsers,omitempty"`
	Status           int32                  `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"`
	FileRecords      []*FileRecord          `protobuf:"bytes,11,rep,name=fileRecords,proto3" json:"fileRecords,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *MeetingRecord) Reset() {
	*x = MeetingRecord{}
	mi := &file_rtc_proto_msgTypes[56]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *MeetingRecord) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*MeetingRecord) ProtoMessage() {}

func (x *MeetingRecord) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[56]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use MeetingRecord.ProtoReflect.Descriptor instead.
func (*MeetingRecord) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{56}
}

func (x *MeetingRecord) GetRoomID() string {
	if x != nil {
		return x.RoomID
	}
	return ""
}

func (x *MeetingRecord) GetMeetingName() string {
	if x != nil {
		return x.MeetingName
	}
	return ""
}

func (x *MeetingRecord) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *MeetingRecord) GetHostUserID() string {
	if x != nil {
		return x.HostUserID
	}
	return ""
}

func (x *MeetingRecord) GetHostUserNickname() string {
	if x != nil {
		return x.HostUserNickname
	}
	return ""
}

func (x *MeetingRecord) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *MeetingRecord) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *MeetingRecord) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *MeetingRecord) GetJoinedUsers() []*MeetingUser {
	if x != nil {
		return x.JoinedUsers
	}
	return nil
}

func (x *MeetingRecord) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

func (x *MeetingRecord) GetFileRecords() []*FileRecord {
	if x != nil {
		return x.FileRecords
	}
	return nil
}

type GetSignalInvitationRecordsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Pagination    *RequestPagination     `protobuf:"bytes,1,opt,name=pagination,proto3" json:"pagination,omitempty"`
	SessionType   int32                  `protobuf:"varint,2,opt,name=sessionType,proto3" json:"sessionType,omitempty"`
	SendID        string                 `protobuf:"bytes,3,opt,name=sendID,proto3" json:"sendID,omitempty"`
	RecvID        string                 `protobuf:"bytes,4,opt,name=recvID,proto3" json:"recvID,omitempty"`
	StartTime     int64                  `protobuf:"varint,5,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EndTime       int64                  `protobuf:"varint,6,opt,name=endTime,proto3" json:"endTime,omitempty"`
	JoinedUsers   []*UserInfo            `protobuf:"bytes,7,rep,name=JoinedUsers,proto3" json:"JoinedUsers,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetSignalInvitationRecordsReq) Reset() {
	*x = GetSignalInvitationRecordsReq{}
	mi := &file_rtc_proto_msgTypes[57]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSignalInvitationRecordsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSignalInvitationRecordsReq) ProtoMessage() {}

func (x *GetSignalInvitationRecordsReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[57]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSignalInvitationRecordsReq.ProtoReflect.Descriptor instead.
func (*GetSignalInvitationRecordsReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{57}
}

func (x *GetSignalInvitationRecordsReq) GetPagination() *RequestPagination {
	if x != nil {
		return x.Pagination
	}
	return nil
}

func (x *GetSignalInvitationRecordsReq) GetSessionType() int32 {
	if x != nil {
		return x.SessionType
	}
	return 0
}

func (x *GetSignalInvitationRecordsReq) GetSendID() string {
	if x != nil {
		return x.SendID
	}
	return ""
}

func (x *GetSignalInvitationRecordsReq) GetRecvID() string {
	if x != nil {
		return x.RecvID
	}
	return ""
}

func (x *GetSignalInvitationRecordsReq) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *GetSignalInvitationRecordsReq) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *GetSignalInvitationRecordsReq) GetJoinedUsers() []*UserInfo {
	if x != nil {
		return x.JoinedUsers
	}
	return nil
}

type RequestPagination struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	PageNumber    int32                  `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber,omitempty"`
	ShowNumber    int32                  `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *RequestPagination) Reset() {
	*x = RequestPagination{}
	mi := &file_rtc_proto_msgTypes[58]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *RequestPagination) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RequestPagination) ProtoMessage() {}

func (x *RequestPagination) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[58]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use RequestPagination.ProtoReflect.Descriptor instead.
func (*RequestPagination) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{58}
}

func (x *RequestPagination) GetPageNumber() int32 {
	if x != nil {
		return x.PageNumber
	}
	return 0
}

func (x *RequestPagination) GetShowNumber() int32 {
	if x != nil {
		return x.ShowNumber
	}
	return 0
}

type UserInfo struct {
	state            protoimpl.MessageState `protogen:"open.v1"`
	UserID           string                 `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"`
	Nickname         string                 `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"`
	FaceURL          string                 `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"`
	Ex               string                 `protobuf:"bytes,4,opt,name=ex,proto3" json:"ex,omitempty"`
	CreateTime       int64                  `protobuf:"varint,5,opt,name=createTime,proto3" json:"createTime,omitempty"`
	AppMangerLevel   int32                  `protobuf:"varint,6,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"`
	GlobalRecvMsgOpt int32                  `protobuf:"varint,7,opt,name=globalRecvMsgOpt,proto3" json:"globalRecvMsgOpt,omitempty"`
	Status           int32                  `protobuf:"varint,8,opt,name=status,proto3" json:"status,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

func (x *UserInfo) Reset() {
	*x = UserInfo{}
	mi := &file_rtc_proto_msgTypes[59]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UserInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UserInfo) ProtoMessage() {}

func (x *UserInfo) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[59]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead.
func (*UserInfo) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{59}
}

func (x *UserInfo) GetUserID() string {
	if x != nil {
		return x.UserID
	}
	return ""
}

func (x *UserInfo) GetNickname() string {
	if x != nil {
		return x.Nickname
	}
	return ""
}

func (x *UserInfo) GetFaceURL() string {
	if x != nil {
		return x.FaceURL
	}
	return ""
}

func (x *UserInfo) GetEx() string {
	if x != nil {
		return x.Ex
	}
	return ""
}

func (x *UserInfo) GetCreateTime() int64 {
	if x != nil {
		return x.CreateTime
	}
	return 0
}

func (x *UserInfo) GetAppMangerLevel() int32 {
	if x != nil {
		return x.AppMangerLevel
	}
	return 0
}

func (x *UserInfo) GetGlobalRecvMsgOpt() int32 {
	if x != nil {
		return x.GlobalRecvMsgOpt
	}
	return 0
}

func (x *UserInfo) GetStatus() int32 {
	if x != nil {
		return x.Status
	}
	return 0
}

type GetSignalInvitationRecordsResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Total         int32                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
	SignalRecords []*SignalRecord        `protobuf:"bytes,2,rep,name=signalRecords,proto3" json:"signalRecords,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetSignalInvitationRecordsResp) Reset() {
	*x = GetSignalInvitationRecordsResp{}
	mi := &file_rtc_proto_msgTypes[60]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetSignalInvitationRecordsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetSignalInvitationRecordsResp) ProtoMessage() {}

func (x *GetSignalInvitationRecordsResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[60]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetSignalInvitationRecordsResp.ProtoReflect.Descriptor instead.
func (*GetSignalInvitationRecordsResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{60}
}

func (x *GetSignalInvitationRecordsResp) GetTotal() int32 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *GetSignalInvitationRecordsResp) GetSignalRecords() []*SignalRecord {
	if x != nil {
		return x.SignalRecords
	}
	return nil
}

type DeleteSignalRecordsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	SIDs          []string               `protobuf:"bytes,1,rep,name=sIDs,proto3" json:"sIDs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteSignalRecordsReq) Reset() {
	*x = DeleteSignalRecordsReq{}
	mi := &file_rtc_proto_msgTypes[61]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteSignalRecordsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteSignalRecordsReq) ProtoMessage() {}

func (x *DeleteSignalRecordsReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[61]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteSignalRecordsReq.ProtoReflect.Descriptor instead.
func (*DeleteSignalRecordsReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{61}
}

func (x *DeleteSignalRecordsReq) GetSIDs() []string {
	if x != nil {
		return x.SIDs
	}
	return nil
}

type DeleteSignalRecordsResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteSignalRecordsResp) Reset() {
	*x = DeleteSignalRecordsResp{}
	mi := &file_rtc_proto_msgTypes[62]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteSignalRecordsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteSignalRecordsResp) ProtoMessage() {}

func (x *DeleteSignalRecordsResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[62]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteSignalRecordsResp.ProtoReflect.Descriptor instead.
func (*DeleteSignalRecordsResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{62}
}

type GetMeetingRecordsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	HostUserID    string                 `protobuf:"bytes,1,opt,name=hostUserID,proto3" json:"hostUserID,omitempty"`
	JoinedUserID  string                 `protobuf:"bytes,2,opt,name=joinedUserID,proto3" json:"joinedUserID,omitempty"`
	StartTime     int64                  `protobuf:"varint,3,opt,name=startTime,proto3" json:"startTime,omitempty"`
	EndTime       int64                  `protobuf:"varint,4,opt,name=endTime,proto3" json:"endTime,omitempty"`
	Pagination    *RequestPagination     `protobuf:"bytes,5,opt,name=pagination,proto3" json:"pagination,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *GetMeetingRecordsReq) Reset() {
	*x = GetMeetingRecordsReq{}
	mi := &file_rtc_proto_msgTypes[63]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMeetingRecordsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMeetingRecordsReq) ProtoMessage() {}

func (x *GetMeetingRecordsReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[63]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMeetingRecordsReq.ProtoReflect.Descriptor instead.
func (*GetMeetingRecordsReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{63}
}

func (x *GetMeetingRecordsReq) GetHostUserID() string {
	if x != nil {
		return x.HostUserID
	}
	return ""
}

func (x *GetMeetingRecordsReq) GetJoinedUserID() string {
	if x != nil {
		return x.JoinedUserID
	}
	return ""
}

func (x *GetMeetingRecordsReq) GetStartTime() int64 {
	if x != nil {
		return x.StartTime
	}
	return 0
}

func (x *GetMeetingRecordsReq) GetEndTime() int64 {
	if x != nil {
		return x.EndTime
	}
	return 0
}

func (x *GetMeetingRecordsReq) GetPagination() *RequestPagination {
	if x != nil {
		return x.Pagination
	}
	return nil
}

type GetMeetingRecordsResp struct {
	state          protoimpl.MessageState `protogen:"open.v1"`
	Total          int32                  `protobuf:"varint,1,opt,name=total,proto3" json:"total,omitempty"`
	MeetingRecords []*MeetingRecord       `protobuf:"bytes,2,rep,name=meetingRecords,proto3" json:"meetingRecords,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *GetMeetingRecordsResp) Reset() {
	*x = GetMeetingRecordsResp{}
	mi := &file_rtc_proto_msgTypes[64]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *GetMeetingRecordsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetMeetingRecordsResp) ProtoMessage() {}

func (x *GetMeetingRecordsResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[64]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetMeetingRecordsResp.ProtoReflect.Descriptor instead.
func (*GetMeetingRecordsResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{64}
}

func (x *GetMeetingRecordsResp) GetTotal() int32 {
	if x != nil {
		return x.Total
	}
	return 0
}

func (x *GetMeetingRecordsResp) GetMeetingRecords() []*MeetingRecord {
	if x != nil {
		return x.MeetingRecords
	}
	return nil
}

type DeleteMeetingRecordsReq struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	RoomIDs       []string               `protobuf:"bytes,1,rep,name=roomIDs,proto3" json:"roomIDs,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteMeetingRecordsReq) Reset() {
	*x = DeleteMeetingRecordsReq{}
	mi := &file_rtc_proto_msgTypes[65]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteMeetingRecordsReq) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteMeetingRecordsReq) ProtoMessage() {}

func (x *DeleteMeetingRecordsReq) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[65]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteMeetingRecordsReq.ProtoReflect.Descriptor instead.
func (*DeleteMeetingRecordsReq) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{65}
}

func (x *DeleteMeetingRecordsReq) GetRoomIDs() []string {
	if x != nil {
		return x.RoomIDs
	}
	return nil
}

type DeleteMeetingRecordsResp struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DeleteMeetingRecordsResp) Reset() {
	*x = DeleteMeetingRecordsResp{}
	mi := &file_rtc_proto_msgTypes[66]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DeleteMeetingRecordsResp) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DeleteMeetingRecordsResp) ProtoMessage() {}

func (x *DeleteMeetingRecordsResp) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[66]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DeleteMeetingRecordsResp.ProtoReflect.Descriptor instead.
func (*DeleteMeetingRecordsResp) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{66}
}

// Wrapper message for `double`.
//
// The JSON representation for `DoubleValue` is JSON number.
type DoubleValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The double value.
	Value         float64 `protobuf:"fixed64,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DoubleValue) Reset() {
	*x = DoubleValue{}
	mi := &file_rtc_proto_msgTypes[67]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *DoubleValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DoubleValue) ProtoMessage() {}

func (x *DoubleValue) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[67]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DoubleValue.ProtoReflect.Descriptor instead.
func (*DoubleValue) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{67}
}

func (x *DoubleValue) GetValue() float64 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Wrapper message for `float`.
//
// The JSON representation for `FloatValue` is JSON number.
type FloatValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The float value.
	Value         float32 `protobuf:"fixed32,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *FloatValue) Reset() {
	*x = FloatValue{}
	mi := &file_rtc_proto_msgTypes[68]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *FloatValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*FloatValue) ProtoMessage() {}

func (x *FloatValue) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[68]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use FloatValue.ProtoReflect.Descriptor instead.
func (*FloatValue) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{68}
}

func (x *FloatValue) GetValue() float32 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Wrapper message for `int64`.
//
// The JSON representation for `Int64Value` is JSON string.
type Int64Value struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The int64 value.
	Value         int64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Int64Value) Reset() {
	*x = Int64Value{}
	mi := &file_rtc_proto_msgTypes[69]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Int64Value) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Int64Value) ProtoMessage() {}

func (x *Int64Value) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[69]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Int64Value.ProtoReflect.Descriptor instead.
func (*Int64Value) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{69}
}

func (x *Int64Value) GetValue() int64 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Wrapper message for `uint64`.
//
// The JSON representation for `UInt64Value` is JSON string.
type UInt64Value struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The uint64 value.
	Value         uint64 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UInt64Value) Reset() {
	*x = UInt64Value{}
	mi := &file_rtc_proto_msgTypes[70]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UInt64Value) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UInt64Value) ProtoMessage() {}

func (x *UInt64Value) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[70]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UInt64Value.ProtoReflect.Descriptor instead.
func (*UInt64Value) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{70}
}

func (x *UInt64Value) GetValue() uint64 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Wrapper message for `int32`.
//
// The JSON representation for `Int32Value` is JSON number.
type Int32Value struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The int32 value.
	Value         int32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Int32Value) Reset() {
	*x = Int32Value{}
	mi := &file_rtc_proto_msgTypes[71]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *Int32Value) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Int32Value) ProtoMessage() {}

func (x *Int32Value) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[71]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Int32Value.ProtoReflect.Descriptor instead.
func (*Int32Value) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{71}
}

func (x *Int32Value) GetValue() int32 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Wrapper message for `uint32`.
//
// The JSON representation for `UInt32Value` is JSON number.
type UInt32Value struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The uint32 value.
	Value         uint32 `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *UInt32Value) Reset() {
	*x = UInt32Value{}
	mi := &file_rtc_proto_msgTypes[72]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *UInt32Value) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*UInt32Value) ProtoMessage() {}

func (x *UInt32Value) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[72]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use UInt32Value.ProtoReflect.Descriptor instead.
func (*UInt32Value) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{72}
}

func (x *UInt32Value) GetValue() uint32 {
	if x != nil {
		return x.Value
	}
	return 0
}

// Wrapper message for `bool`.
//
// The JSON representation for `BoolValue` is JSON `true` and `false`.
type BoolValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The bool value.
	Value         bool `protobuf:"varint,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BoolValue) Reset() {
	*x = BoolValue{}
	mi := &file_rtc_proto_msgTypes[73]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BoolValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BoolValue) ProtoMessage() {}

func (x *BoolValue) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[73]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BoolValue.ProtoReflect.Descriptor instead.
func (*BoolValue) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{73}
}

func (x *BoolValue) GetValue() bool {
	if x != nil {
		return x.Value
	}
	return false
}

// Wrapper message for `string`.
//
// The JSON representation for `StringValue` is JSON string.
type StringValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The string value.
	Value         string `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *StringValue) Reset() {
	*x = StringValue{}
	mi := &file_rtc_proto_msgTypes[74]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *StringValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*StringValue) ProtoMessage() {}

func (x *StringValue) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[74]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use StringValue.ProtoReflect.Descriptor instead.
func (*StringValue) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{74}
}

func (x *StringValue) GetValue() string {
	if x != nil {
		return x.Value
	}
	return ""
}

// Wrapper message for `bytes`.
//
// The JSON representation for `BytesValue` is JSON string.
type BytesValue struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The bytes value.
	Value         []byte `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BytesValue) Reset() {
	*x = BytesValue{}
	mi := &file_rtc_proto_msgTypes[75]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

func (x *BytesValue) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*BytesValue) ProtoMessage() {}

func (x *BytesValue) ProtoReflect() protoreflect.Message {
	mi := &file_rtc_proto_msgTypes[75]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BytesValue.ProtoReflect.Descriptor instead.
func (*BytesValue) Descriptor() ([]byte, []int) {
	return file_rtc_proto_rawDescGZIP(), []int{75}
}

func (x *BytesValue) GetValue() []byte {
	if x != nil {
		return x.Value
	}
	return nil
}

var File_rtc_proto protoreflect.FileDescriptor

var file_rtc_proto_rawDesc = []byte{
	0x0a, 0x09, 0x72, 0x74, 0x63, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x03, 0x72, 0x74, 0x63,
	0x22, 0xb8, 0x01, 0x0a, 0x13, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x2c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x42, 0x0a, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4d,
	0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65,
	0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x0a, 0x08, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72,
	0x74, 0x63, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x85, 0x05, 0x0a, 0x09,
	0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f,
	0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d,
	0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74,
	0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63,
	0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65,
	0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62,
	0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79,
	0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6e,
	0x65, 0x65, 0x64, 0x56, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x26, 0x0a, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66,
	0x6f, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x6c, 0x6f, 0x6f, 0x6b, 0x4d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2c, 0x0a, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79,
	0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x11, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46,
	0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a,
	0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66,
	0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a,
	0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x73, 0x52, 0x65, 0x61, 0x64, 0x18, 0x12,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x49, 0x73, 0x52,
	0x65, 0x61, 0x64, 0x22, 0xff, 0x02, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d,
	0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72,
	0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a,
	0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a,
	0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a,
	0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e,
	0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e,
	0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x26, 0x0a,
	0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72,
	0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f,
	0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f,
	0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a,
	0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x20, 0x0a,
	0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0b, 0x6d, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x6e, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12,
	0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66,
	0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61,
	0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x77, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e,
	0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08,
	0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
	0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x34, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61,
	0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63,
	0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61,
	0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x22, 0x3e,
	0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x6a, 0x77, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x03, 0x6a, 0x77, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x99,
	0x03, 0x0a, 0x09, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x2e, 0x0a, 0x06,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72,
	0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52,
	0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x43, 0x0a, 0x0d,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71,
	0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x12, 0x2e, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61,
	0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65,
	0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63,
	0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70,
	0x74, 0x12, 0x2e, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75,
	0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55,
	0x70, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65,
	0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63,
	0x74, 0x12, 0x4c, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52,
	0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e,
	0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x48, 0x00, 0x52, 0x10, 0x67,
	0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x42,
	0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x53, 0x0a, 0x19, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12,
	0x1e, 0x0a, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x22,
	0x1c, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73,
	0x74, 0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2e, 0x0a,
	0x14, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e,
	0x67, 0x73, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x53, 0x0a,
	0x15, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e,
	0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e,
	0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69,
	0x73, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a,
	0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72,
	0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a,
	0x04, 0x6d, 0x75, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x07, 0x6d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x22, 0x19, 0x0a, 0x17, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65,
	0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x22, 0x65, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x4f, 0x6e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x52, 0x65,
	0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73,
	0x74, 0x72, 0x65, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6d, 0x75, 0x74,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x6d, 0x75, 0x74, 0x65, 0x22, 0xc2, 0x02,
	0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65,
	0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x6d, 0x65, 0x65, 0x74,
	0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x0f, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65,
	0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11,
	0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x48, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67,
	0x48, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69,
	0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d,
	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69,
	0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02,
	0x65, 0x78, 0x22, 0x61, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f,
	0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c,
	0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69,
	0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x82, 0x01, 0x0a, 0x14, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16,
	0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a,
	0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x22, 0x5f, 0x0a, 0x15, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f,
	0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49,
	0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0xa1, 0x03, 0x0a, 0x0a,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63,
	0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x48, 0x00, 0x52, 0x06, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x69,
	0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49,
	0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70,
	0x48, 0x00, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75,
	0x70, 0x12, 0x2f, 0x0a, 0x06, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x61,
	0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x63, 0x61, 0x6e, 0x63,
	0x65, 0x6c, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41,
	0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x61, 0x63, 0x63,
	0x65, 0x70, 0x74, 0x12, 0x2f, 0x0a, 0x06, 0x68, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x68, 0x75,
	0x6e, 0x67, 0x55, 0x70, 0x12, 0x2f, 0x0a, 0x06, 0x72, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x06,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x48, 0x00, 0x52, 0x06, 0x72,
	0x65, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x4d, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65,
	0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70,
	0x48, 0x00, 0x52, 0x10, 0x67, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f,
	0x6f, 0x6d, 0x49, 0x44, 0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x22,
	0x84, 0x03, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 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, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49,
	0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44,
	0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65,
	0x6f, 0x75, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f,
	0x75, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44,
	0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61,
	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69,
	0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9d, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x65, 0x74, 0x69,
	0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x20,
	0x0a, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65,
	0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78,
	0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x12, 0x2c, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76,
	0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e,
	0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c,
	0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65,
	0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65,
	0x6c, 0x66, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65,
	0x6c, 0x66, 0x12, 0x3c, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
	0x6e, 0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f,
	0x12, 0x2e, 0x0a, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69,
	0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x6f, 0x6e,
	0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x12, 0x30, 0x0a, 0x13, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72,
	0x65, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6f,
	0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65,
	0x65, 0x6e, 0x12, 0x34, 0x0a, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c,
	0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69,
	0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6a, 0x6f, 0x69, 0x6e,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0e, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56,
	0x69, 0x64, 0x65, 0x6f, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c,
	0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73,
	0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x30, 0x0a, 0x13,
	0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68,
	0x6f, 0x6e, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x73, 0x4d, 0x75, 0x74,
	0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x30,
	0x0a, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x63, 0x61, 0x6e,
	0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74,
	0x12, 0x40, 0x0a, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f,
	0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18,
	0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69,
	0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69,
	0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64,
	0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x13, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x69,
	0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65,
	0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13,
	0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
	0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f,
	0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f,
	0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69,
	0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x22, 0x8a, 0x01, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16,
	0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52,
	0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c,
	0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75,
	0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74,
	0x22, 0xe1, 0x01, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69,
	0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49,
	0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e,
	0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52,
	0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
	0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x22, 0x91, 0x01, 0x0a, 0x17, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49,
	0x6e, 0x76, 0x69, 0x74, 0x65, 0x49, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18,
	0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x2e, 0x0a, 0x12, 0x62, 0x75, 0x73, 0x79,
	0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04,
	0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x62, 0x75, 0x73, 0x79, 0x4c, 0x69, 0x6e, 0x65, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xda, 0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x43, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a,
	0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68,
	0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63,
	0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66,
	0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72,
	0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61,
	0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a,
	0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43,
	0x61, 0x6e, 0x63, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x02, 0x0a, 0x0f, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a,
	0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73,
	0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66,
	0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e,
	0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74,
	0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a,
	0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d,
	0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72,
	0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x22, 0x5a, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65,
	0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06,
	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f,
	0x6f, 0x6d, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c, 0x22, 0x9e,
	0x01, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52,
	0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76,
	0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76,
	0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69,
	0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75,
	0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50,
	0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22,
	0x12, 0x0a, 0x10, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x48, 0x75, 0x6e, 0x67, 0x55, 0x70, 0x52,
	0x65, 0x73, 0x70, 0x22, 0x86, 0x02, 0x0a, 0x0f, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65,
	0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f,
	0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c,
	0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66,
	0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
	0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x6f, 0x70, 0x55, 0x73,
	0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x10, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f,
	0x72, 0x6d, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70,
	0x22, 0x35, 0x0a, 0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f,
	0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a,
	0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0xa5, 0x01, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70,
	0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63,
	0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61,
	0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74,
	0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49,
	0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22,
	0xb0, 0x01, 0x0a, 0x23, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x52, 0x6f, 0x6f, 0x6d,
	0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x6e, 0x65,
	0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b,
	0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70,
	0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70, 0x61, 0x72,
	0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x49, 0x44, 0x22, 0xb3, 0x01, 0x0a, 0x26, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x6e, 0x52,
	0x6f, 0x6f, 0x6d, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x44, 0x69,
	0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x71, 0x12, 0x33, 0x0a,
	0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61,
	0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74,
	0x61, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x18,
	0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f,
	0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x3a,
	0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63,
	0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x70,
	0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
	0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
	0x49, 0x44, 0x22, 0x4c, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54,
	0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52,
	0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x69, 0x76, 0x65, 0x55, 0x52, 0x4c,
	0x22, 0x9c, 0x0d, 0x0a, 0x1a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12,
	0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x32, 0x0a, 0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69,
	0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72,
	0x74, 0x63, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b,
	0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x02, 0x65,
	0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x74,
	0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x02, 0x65, 0x78, 0x12, 0x2c, 0x0a,
	0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69,
	0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x09, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
	0x2e, 0x72, 0x74, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x0a, 0x07, 0x65, 0x6e,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6e,
	0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
	0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c,
	0x66, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f,
	0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x18, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69,
	0x70, 0x61, 0x6e, 0x74, 0x43, 0x61, 0x6e, 0x55, 0x6e, 0x6d, 0x75, 0x74, 0x65, 0x53, 0x65, 0x6c,
	0x66, 0x12, 0x4c, 0x0a, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74,
	0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x08,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x52, 0x19, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e,
	0x74, 0x43, 0x61, 0x6e, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12,
	0x3e, 0x0a, 0x12, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x12, 0x6f, 0x6e, 0x6c,
	0x79, 0x48, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12,
	0x40, 0x0a, 0x13, 0x6f, 0x6e, 0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65,
	0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72,
	0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x6f, 0x6e,
	0x6c, 0x79, 0x48, 0x6f, 0x73, 0x74, 0x53, 0x68, 0x61, 0x72, 0x65, 0x53, 0x63, 0x72, 0x65, 0x65,
	0x6e, 0x12, 0x44, 0x0a, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x52, 0x15, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63,
	0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x3a, 0x0a, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44,
	0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x10, 0x6a, 0x6f, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69,
	0x64, 0x65, 0x6f, 0x12, 0x36, 0x0a, 0x0e, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c,
	0x56, 0x69, 0x64, 0x65, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0e, 0x69, 0x73, 0x4d,
	0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x12, 0x40, 0x0a, 0x13, 0x69,
	0x73, 0x4d, 0x75, 0x74, 0x65, 0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f,
	0x6e, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x42,
	0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x13, 0x69, 0x73, 0x4d, 0x75, 0x74, 0x65,
	0x41, 0x6c, 0x6c, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x36, 0x0a,
	0x16, 0x61, 0x64, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x61,
	0x64, 0x64, 0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x43,
	0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69,
	0x73, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65,
	0x43, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c,
	0x69, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x13, 0x63, 0x61, 0x6e, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x1e, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61,
	0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x12, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1e, 0x61,
	0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68,
	0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4c, 0x0a,
	0x21, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69,
	0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69,
	0x73, 0x74, 0x18, 0x13, 0x20, 0x03, 0x28, 0x09, 0x52, 0x21, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65,
	0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e,
	0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x1b, 0x64,
	0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68, 0x6f, 0x6e, 0x65,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x14, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x1b, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x70, 0x68,
	0x6f, 0x6e, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3c, 0x0a,
	0x19, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f,
	0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x15, 0x20, 0x03, 0x28, 0x09,
	0x52, 0x19, 0x61, 0x64, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65,
	0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x1c, 0x72,
	0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65,
	0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x16, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x1c, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x36, 0x0a, 0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x17, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x16, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x61, 0x64, 0x64, 0x50, 0x69,
	0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x18, 0x20,
	0x03, 0x28, 0x09, 0x52, 0x12, 0x61, 0x64, 0x64, 0x50, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63,
	0x65, 0x50, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74,
	0x18, 0x19, 0x20, 0x03, 0x28, 0x09, 0x52, 0x15, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x50, 0x69,
	0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x28, 0x0a,
	0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74,
	0x18, 0x1a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x16, 0x61, 0x64, 0x64, 0x42, 0x65,
	0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73,
	0x74, 0x18, 0x1b, 0x20, 0x03, 0x28, 0x09, 0x52, 0x16, 0x61, 0x64, 0x64, 0x42, 0x65, 0x57, 0x61,
	0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12,
	0x3c, 0x0a, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x42, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68,
	0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x1c, 0x20, 0x03,
	0x28, 0x09, 0x52, 0x19, 0x72, 0x65, 0x64, 0x75, 0x63, 0x65, 0x42, 0x65, 0x57, 0x61, 0x74, 0x63,
	0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x0a,
	0x13, 0x62, 0x65, 0x57, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x4c, 0x69, 0x73, 0x74, 0x18, 0x1d, 0x20, 0x03, 0x28, 0x09, 0x52, 0x13, 0x62, 0x65, 0x57, 0x61,
	0x74, 0x63, 0x68, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22,
	0x1d, 0x0a, 0x1b, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d,
	0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2c,
	0x0a, 0x12, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f,
	0x6d, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52,
	0x65, 0x73, 0x70, 0x22, 0x48, 0x0a, 0x18, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73,
	0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12,
	0x2c, 0x0a, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52,
	0x65, 0x71, 0x52, 0x09, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x22, 0x4c, 0x0a,
	0x19, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73,
	0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x73, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f,
	0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x52,
	0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x22, 0x2d, 0x0a, 0x11, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71,
	0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
	0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x22, 0x51, 0x0a, 0x12, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x3b, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47,
	0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52,
	0x65, 0x73, 0x70, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x34, 0x0a,
	0x1a, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x72,
	0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f,
	0x6d, 0x49, 0x44, 0x22, 0x9a, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x52, 0x0e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x3e, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49,
	0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e,
	0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f,
	0x22, 0x3c, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76,
	0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74,
	0x41, 0x70, 0x70, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9a,
	0x01, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69,
	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41,
	0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x72, 0x74, 0x63,
	0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x0a, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3e, 0x0a, 0x0f, 0x6f,
	0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69,
	0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c,
	0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0xb5, 0x01, 0x0a, 0x0f,
	0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12,
	0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05,
	0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x4f, 0x53,
	0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a,
	0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f,
	0x75, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x66,
	0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49,
	0x6e, 0x66, 0x6f, 0x22, 0x58, 0x0a, 0x0a, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65,
	0x72, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63,
	0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63,
	0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xc1, 0x03,
	0x0a, 0x0c, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x16,
	0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x49, 0x44, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x69, 0x6e, 0x76,
	0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x30, 0x0a, 0x13, 0x69, 0x6e,
	0x76, 0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d,
	0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72,
	0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67,
	0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e,
	0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70,
	0x4e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0c, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x72, 0x55,
	0x73, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63,
	0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0c, 0x69, 0x6e, 0x76,
	0x69, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64,
	0x54, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55,
	0x52, 0x4c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52,
	0x4c, 0x22, 0x41, 0x0a, 0x0b, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72,
	0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b,
	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b,
	0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3a, 0x0a, 0x0a, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52,
	0x4c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x65, 0x55, 0x52, 0x4c,
	0x22, 0xfc, 0x02, 0x0a, 0x0d, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65,
	0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x0b, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02,
	0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a,
	0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10,
	0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72,
	0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61,
	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61,
	0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d,
	0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x32, 0x0a, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18,
	0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4d, 0x65, 0x65, 0x74,
	0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0b, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55,
	0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a,
	0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x31, 0x0a, 0x0b,
	0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x0f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x22,
	0x92, 0x02, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76,
	0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65,
	0x71, 0x12, 0x36, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70,
	0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73,
	0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b,
	0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73,
	0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e,
	0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73,
	0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09,
	0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64,
	0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54,
	0x69, 0x6d, 0x65, 0x12, 0x2f, 0x0a, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65,
	0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x55,
	0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55,
	0x73, 0x65, 0x72, 0x73, 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50,
	0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67,
	0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70,
	0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f,
	0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73,
	0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xf4, 0x01, 0x0a, 0x08, 0x55, 0x73,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a,
	0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61,
	0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63,
	0x65, 0x55, 0x52, 0x4c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69,
	0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65,
	0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70,
	0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x2a, 0x0a, 0x10,
	0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x67, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x52, 0x65,
	0x63, 0x76, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x22, 0x6f, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76,
	0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x37, 0x0a, 0x0d, 0x73, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x11, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x52, 0x0d, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x73, 0x22, 0x2c, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x73,
	0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x73, 0x49, 0x44, 0x73, 0x22,
	0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52,
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0xca, 0x01, 0x0a, 0x14, 0x47,
	0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73,
	0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49,
	0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x55, 0x73, 0x65,
	0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x69, 0x6e, 0x65,
	0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74,
	0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72,
	0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12,
	0x36, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x70, 0x61, 0x67,
	0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x69, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4d, 0x65,
	0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x12, 0x3a, 0x0a, 0x0e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e,
	0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12,
	0x2e, 0x72, 0x74, 0x63, 0x2e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f,
	0x72, 0x64, 0x52, 0x0e, 0x6d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72,
	0x64, 0x73, 0x22, 0x33, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74,
	0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a,
	0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07,
	0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x73, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x61,
	0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a,
	0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x49, 0x6e, 0x74, 0x33, 0x32, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x23, 0x0a, 0x0b, 0x55, 0x49, 0x6e,
	0x74, 0x33, 0x32, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x21,
	0x0a, 0x09, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x22, 0x23, 0x0a, 0x0b, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x22, 0x0a, 0x0a, 0x42, 0x79, 0x74, 0x65, 0x73, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0c, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x32, 0xc6, 0x0b, 0x0a, 0x0a, 0x52,
	0x74, 0x63, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x56, 0x0a, 0x15, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62,
	0x6c, 0x65, 0x12, 0x1d, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d,
	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65,
	0x71, 0x1a, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4d, 0x65,
	0x73, 0x73, 0x61, 0x67, 0x65, 0x41, 0x73, 0x73, 0x65, 0x6d, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x12, 0x59, 0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f,
	0x6f, 0x6d, 0x42, 0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42,
	0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x42,
	0x79, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59, 0x0a, 0x16,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79,
	0x52, 0x6f, 0x6f, 0x6d, 0x49, 0x44, 0x12, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f,
	0x6d, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x42, 0x79, 0x52, 0x6f, 0x6f,
	0x6d, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x16, 0x2e, 0x72, 0x74, 0x63, 0x2e,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65,
	0x71, 0x1a, 0x17, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65,
	0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x17, 0x47, 0x65,
	0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x74, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x12, 0x27, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70,
	0x70, 0x52, 0x65, 0x71, 0x1a, 0x28, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e,
	0x66, 0x6f, 0x53, 0x74, 0x61, 0x72, 0x74, 0x41, 0x70, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50,
	0x0a, 0x13, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65,
	0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52,
	0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43,
	0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x4a, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65,
	0x65, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x19, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x4a, 0x6f, 0x69, 0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71,
	0x1a, 0x1a, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4a, 0x6f, 0x69,
	0x6e, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5c, 0x0a, 0x17,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74,
	0x69, 0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e,
	0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69,
	0x6e, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0f, 0x53, 0x69,
	0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x17, 0x2e,
	0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52,
	0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67,
	0x6e, 0x61, 0x6c, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x52, 0x6f, 0x6f, 0x6d, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x4a, 0x0a, 0x11, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65,
	0x74, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e,
	0x61, 0x6c, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x71,
	0x1a, 0x1a, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x47, 0x65, 0x74,
	0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x13,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x12, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71,
	0x1a, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x4f, 0x70, 0x65,
	0x72, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x59,
	0x0a, 0x16, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74,
	0x6f, 0x6d, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x12, 0x1e, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x53, 0x65, 0x6e, 0x64, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x53,
	0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x65, 0x0a, 0x1a, 0x47, 0x65, 0x74,
	0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x22, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65,
	0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x72, 0x74,
	0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x49, 0x6e, 0x76, 0x69, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70,
	0x12, 0x50, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c,
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1b, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65,
	0x6c, 0x65, 0x74, 0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65,
	0x73, 0x70, 0x12, 0x4a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67,
	0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65,
	0x74, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52,
	0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x65, 0x74,
	0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x53,
	0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52,
	0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x1c, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64,
	0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x72, 0x74, 0x63, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x4d, 0x65, 0x65, 0x74, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52,
	0x65, 0x73, 0x70, 0x42, 0x07, 0x5a, 0x05, 0x2e, 0x2f, 0x72, 0x74, 0x63, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_rtc_proto_rawDescOnce sync.Once
	file_rtc_proto_rawDescData = file_rtc_proto_rawDesc
)

func file_rtc_proto_rawDescGZIP() []byte {
	file_rtc_proto_rawDescOnce.Do(func() {
		file_rtc_proto_rawDescData = protoimpl.X.CompressGZIP(file_rtc_proto_rawDescData)
	})
	return file_rtc_proto_rawDescData
}

var file_rtc_proto_msgTypes = make([]protoimpl.MessageInfo, 76)
var file_rtc_proto_goTypes = []any{
	(*ParticipantMetaData)(nil),                    // 0: rtc.ParticipantMetaData
	(*GroupInfo)(nil),                              // 1: rtc.GroupInfo
	(*GroupMemberFullInfo)(nil),                    // 2: rtc.GroupMemberFullInfo
	(*PublicUserInfo)(nil),                         // 3: rtc.PublicUserInfo
	(*GetJoinTokenReq)(nil),                        // 4: rtc.GetJoinTokenReq
	(*GetJoinTokenResp)(nil),                       // 5: rtc.GetJoinTokenResp
	(*SignalReq)(nil),                              // 6: rtc.SignalReq
	(*SignalSendCustomSignalReq)(nil),              // 7: rtc.SignalSendCustomSignalReq
	(*SignalSendCustomSignalResp)(nil),             // 8: rtc.SignalSendCustomSignalResp
	(*SignalGetMeetingsReq)(nil),                   // 9: rtc.SignalGetMeetingsReq
	(*SignalGetMeetingsResp)(nil),                  // 10: rtc.SignalGetMeetingsResp
	(*SignalOperateStreamReq)(nil),                 // 11: rtc.SignalOperateStreamReq
	(*SignalOperateStreamResp)(nil),                // 12: rtc.SignalOperateStreamResp
	(*SignalOnStreamChangeReq)(nil),                // 13: rtc.SignalOnStreamChangeReq
	(*SignalCreateMeetingReq)(nil),                 // 14: rtc.SignalCreateMeetingReq
	(*SignalCreateMeetingResp)(nil),                // 15: rtc.SignalCreateMeetingResp
	(*SignalJoinMeetingReq)(nil),                   // 16: rtc.SignalJoinMeetingReq
	(*SignalJoinMeetingResp)(nil),                  // 17: rtc.SignalJoinMeetingResp
	(*SignalResp)(nil),                             // 18: rtc.SignalResp
	(*InvitationInfo)(nil),                         // 19: rtc.InvitationInfo
	(*MeetingInfo)(nil),                            // 20: rtc.MeetingInfo
	(*SignalInviteReq)(nil),                        // 21: rtc.SignalInviteReq
	(*SignalInviteResp)(nil),                       // 22: rtc.SignalInviteResp
	(*SignalInviteInGroupReq)(nil),                 // 23: rtc.SignalInviteInGroupReq
	(*SignalInviteInGroupResp)(nil),                // 24: rtc.SignalInviteInGroupResp
	(*SignalCancelReq)(nil),                        // 25: rtc.SignalCancelReq
	(*SignalCancelResp)(nil),                       // 26: rtc.SignalCancelResp
	(*SignalAcceptReq)(nil),                        // 27: rtc.SignalAcceptReq
	(*SignalAcceptResp)(nil),                       // 28: rtc.SignalAcceptResp
	(*SignalHungUpReq)(nil),                        // 29: rtc.SignalHungUpReq
	(*SignalHungUpResp)(nil),                       // 30: rtc.SignalHungUpResp
	(*SignalRejectReq)(nil),                        // 31: rtc.SignalRejectReq
	(*SignalRejectResp)(nil),                       // 32: rtc.SignalRejectResp
	(*SignalGetRoomByGroupIDReq)(nil),              // 33: rtc.SignalGetRoomByGroupIDReq
	(*SignalGetRoomByGroupIDResp)(nil),             // 34: rtc.SignalGetRoomByGroupIDResp
	(*SignalOnRoomParticipantConnectedReq)(nil),    // 35: rtc.SignalOnRoomParticipantConnectedReq
	(*SignalOnRoomParticipantDisconnectedReq)(nil), // 36: rtc.SignalOnRoomParticipantDisconnectedReq
	(*SignalGetTokenByRoomIDReq)(nil),              // 37: rtc.SignalGetTokenByRoomIDReq
	(*SignalGetTokenByRoomIDResp)(nil),             // 38: rtc.SignalGetTokenByRoomIDResp
	(*SignalUpdateMeetingInfoReq)(nil),             // 39: rtc.SignalUpdateMeetingInfoReq
	(*SignalUpdateMeetingInfoResp)(nil),            // 40: rtc.SignalUpdateMeetingInfoResp
	(*SignalCloseRoomReq)(nil),                     // 41: rtc.SignalCloseRoomReq
	(*SignalCloseRoomResp)(nil),                    // 42: rtc.SignalCloseRoomResp
	(*SignalMessageAssembleReq)(nil),               // 43: rtc.SignalMessageAssembleReq
	(*SignalMessageAssembleResp)(nil),              // 44: rtc.SignalMessageAssembleResp
	(*SignalGetRoomsReq)(nil),                      // 45: rtc.SignalGetRoomsReq
	(*SignalGetRoomsResp)(nil),                     // 46: rtc.SignalGetRoomsResp
	(*GetSignalInvitationInfoReq)(nil),             // 47: rtc.GetSignalInvitationInfoReq
	(*GetSignalInvitationInfoResp)(nil),            // 48: rtc.GetSignalInvitationInfoResp
	(*GetSignalInvitationInfoStartAppReq)(nil),     // 49: rtc.GetSignalInvitationInfoStartAppReq
	(*GetSignalInvitationInfoStartAppResp)(nil),    // 50: rtc.GetSignalInvitationInfoStartAppResp
	(*OfflinePushInfo)(nil),                        // 51: rtc.OfflinePushInfo
	(*SignalUser)(nil),                             // 52: rtc.SignalUser
	(*SignalRecord)(nil),                           // 53: rtc.SignalRecord
	(*MeetingUser)(nil),                            // 54: rtc.MeetingUser
	(*FileRecord)(nil),                             // 55: rtc.FileRecord
	(*MeetingRecord)(nil),                          // 56: rtc.MeetingRecord
	(*GetSignalInvitationRecordsReq)(nil),          // 57: rtc.GetSignalInvitationRecordsReq
	(*RequestPagination)(nil),                      // 58: rtc.RequestPagination
	(*UserInfo)(nil),                               // 59: rtc.UserInfo
	(*GetSignalInvitationRecordsResp)(nil),         // 60: rtc.GetSignalInvitationRecordsResp
	(*DeleteSignalRecordsReq)(nil),                 // 61: rtc.DeleteSignalRecordsReq
	(*DeleteSignalRecordsResp)(nil),                // 62: rtc.DeleteSignalRecordsResp
	(*GetMeetingRecordsReq)(nil),                   // 63: rtc.GetMeetingRecordsReq
	(*GetMeetingRecordsResp)(nil),                  // 64: rtc.GetMeetingRecordsResp
	(*DeleteMeetingRecordsReq)(nil),                // 65: rtc.DeleteMeetingRecordsReq
	(*DeleteMeetingRecordsResp)(nil),               // 66: rtc.DeleteMeetingRecordsResp
	(*DoubleValue)(nil),                            // 67: rtc.DoubleValue
	(*FloatValue)(nil),                             // 68: rtc.FloatValue
	(*Int64Value)(nil),                             // 69: rtc.Int64Value
	(*UInt64Value)(nil),                            // 70: rtc.UInt64Value
	(*Int32Value)(nil),                             // 71: rtc.Int32Value
	(*UInt32Value)(nil),                            // 72: rtc.UInt32Value
	(*BoolValue)(nil),                              // 73: rtc.BoolValue
	(*StringValue)(nil),                            // 74: rtc.StringValue
	(*BytesValue)(nil),                             // 75: rtc.BytesValue
}
var file_rtc_proto_depIdxs = []int32{
	1,  // 0: rtc.ParticipantMetaData.groupInfo:type_name -> rtc.GroupInfo
	2,  // 1: rtc.ParticipantMetaData.groupMemberInfo:type_name -> rtc.GroupMemberFullInfo
	3,  // 2: rtc.ParticipantMetaData.userInfo:type_name -> rtc.PublicUserInfo
	0,  // 3: rtc.GetJoinTokenReq.metaData:type_name -> rtc.ParticipantMetaData
	21, // 4: rtc.SignalReq.invite:type_name -> rtc.SignalInviteReq
	23, // 5: rtc.SignalReq.inviteInGroup:type_name -> rtc.SignalInviteInGroupReq
	25, // 6: rtc.SignalReq.cancel:type_name -> rtc.SignalCancelReq
	27, // 7: rtc.SignalReq.accept:type_name -> rtc.SignalAcceptReq
	29, // 8: rtc.SignalReq.hungUp:type_name -> rtc.SignalHungUpReq
	31, // 9: rtc.SignalReq.reject:type_name -> rtc.SignalRejectReq
	37, // 10: rtc.SignalReq.getTokenByRoomID:type_name -> rtc.SignalGetTokenByRoomIDReq
	20, // 11: rtc.SignalGetMeetingsResp.meetingInfoList:type_name -> rtc.MeetingInfo
	0,  // 12: rtc.SignalCreateMeetingReq.participant:type_name -> rtc.ParticipantMetaData
	0,  // 13: rtc.SignalJoinMeetingReq.participant:type_name -> rtc.ParticipantMetaData
	22, // 14: rtc.SignalResp.invite:type_name -> rtc.SignalInviteResp
	24, // 15: rtc.SignalResp.inviteInGroup:type_name -> rtc.SignalInviteInGroupResp
	26, // 16: rtc.SignalResp.cancel:type_name -> rtc.SignalCancelResp
	28, // 17: rtc.SignalResp.accept:type_name -> rtc.SignalAcceptResp
	30, // 18: rtc.SignalResp.hungUp:type_name -> rtc.SignalHungUpResp
	32, // 19: rtc.SignalResp.reject:type_name -> rtc.SignalRejectResp
	38, // 20: rtc.SignalResp.getTokenByRoomID:type_name -> rtc.SignalGetTokenByRoomIDResp
	19, // 21: rtc.SignalInviteReq.invitation:type_name -> rtc.InvitationInfo
	51, // 22: rtc.SignalInviteReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	0,  // 23: rtc.SignalInviteReq.participant:type_name -> rtc.ParticipantMetaData
	19, // 24: rtc.SignalInviteInGroupReq.invitation:type_name -> rtc.InvitationInfo
	51, // 25: rtc.SignalInviteInGroupReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	0,  // 26: rtc.SignalInviteInGroupReq.participant:type_name -> rtc.ParticipantMetaData
	19, // 27: rtc.SignalCancelReq.invitation:type_name -> rtc.InvitationInfo
	51, // 28: rtc.SignalCancelReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	0,  // 29: rtc.SignalCancelReq.participant:type_name -> rtc.ParticipantMetaData
	19, // 30: rtc.SignalAcceptReq.invitation:type_name -> rtc.InvitationInfo
	51, // 31: rtc.SignalAcceptReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	0,  // 32: rtc.SignalAcceptReq.participant:type_name -> rtc.ParticipantMetaData
	19, // 33: rtc.SignalHungUpReq.invitation:type_name -> rtc.InvitationInfo
	51, // 34: rtc.SignalHungUpReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	19, // 35: rtc.SignalRejectReq.invitation:type_name -> rtc.InvitationInfo
	51, // 36: rtc.SignalRejectReq.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	0,  // 37: rtc.SignalRejectReq.participant:type_name -> rtc.ParticipantMetaData
	19, // 38: rtc.SignalGetRoomByGroupIDResp.invitation:type_name -> rtc.InvitationInfo
	0,  // 39: rtc.SignalGetRoomByGroupIDResp.participant:type_name -> rtc.ParticipantMetaData
	19, // 40: rtc.SignalOnRoomParticipantConnectedReq.invitation:type_name -> rtc.InvitationInfo
	0,  // 41: rtc.SignalOnRoomParticipantConnectedReq.participant:type_name -> rtc.ParticipantMetaData
	19, // 42: rtc.SignalOnRoomParticipantDisconnectedReq.invitation:type_name -> rtc.InvitationInfo
	0,  // 43: rtc.SignalOnRoomParticipantDisconnectedReq.participant:type_name -> rtc.ParticipantMetaData
	0,  // 44: rtc.SignalGetTokenByRoomIDReq.participant:type_name -> rtc.ParticipantMetaData
	74, // 45: rtc.SignalUpdateMeetingInfoReq.meetingName:type_name -> rtc.StringValue
	74, // 46: rtc.SignalUpdateMeetingInfoReq.ex:type_name -> rtc.StringValue
	69, // 47: rtc.SignalUpdateMeetingInfoReq.startTime:type_name -> rtc.Int64Value
	69, // 48: rtc.SignalUpdateMeetingInfoReq.endTime:type_name -> rtc.Int64Value
	73, // 49: rtc.SignalUpdateMeetingInfoReq.participantCanUnmuteSelf:type_name -> rtc.BoolValue
	73, // 50: rtc.SignalUpdateMeetingInfoReq.participantCanEnableVideo:type_name -> rtc.BoolValue
	73, // 51: rtc.SignalUpdateMeetingInfoReq.onlyHostInviteUser:type_name -> rtc.BoolValue
	73, // 52: rtc.SignalUpdateMeetingInfoReq.onlyHostShareScreen:type_name -> rtc.BoolValue
	73, // 53: rtc.SignalUpdateMeetingInfoReq.joinDisableMicrophone:type_name -> rtc.BoolValue
	73, // 54: rtc.SignalUpdateMeetingInfoReq.joinDisableVideo:type_name -> rtc.BoolValue
	73, // 55: rtc.SignalUpdateMeetingInfoReq.isMuteAllVideo:type_name -> rtc.BoolValue
	73, // 56: rtc.SignalUpdateMeetingInfoReq.isMuteAllMicrophone:type_name -> rtc.BoolValue
	6,  // 57: rtc.SignalMessageAssembleReq.signalReq:type_name -> rtc.SignalReq
	18, // 58: rtc.SignalMessageAssembleResp.signalResp:type_name -> rtc.SignalResp
	34, // 59: rtc.SignalGetRoomsResp.roomList:type_name -> rtc.SignalGetRoomByGroupIDResp
	19, // 60: rtc.GetSignalInvitationInfoResp.invitationInfo:type_name -> rtc.InvitationInfo
	51, // 61: rtc.GetSignalInvitationInfoResp.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	19, // 62: rtc.GetSignalInvitationInfoStartAppResp.invitation:type_name -> rtc.InvitationInfo
	51, // 63: rtc.GetSignalInvitationInfoStartAppResp.offlinePushInfo:type_name -> rtc.OfflinePushInfo
	52, // 64: rtc.SignalRecord.inviterUsers:type_name -> rtc.SignalUser
	54, // 65: rtc.MeetingRecord.joinedUsers:type_name -> rtc.MeetingUser
	55, // 66: rtc.MeetingRecord.fileRecords:type_name -> rtc.FileRecord
	58, // 67: rtc.GetSignalInvitationRecordsReq.pagination:type_name -> rtc.RequestPagination
	59, // 68: rtc.GetSignalInvitationRecordsReq.JoinedUsers:type_name -> rtc.UserInfo
	53, // 69: rtc.GetSignalInvitationRecordsResp.signalRecords:type_name -> rtc.SignalRecord
	58, // 70: rtc.GetMeetingRecordsReq.pagination:type_name -> rtc.RequestPagination
	56, // 71: rtc.GetMeetingRecordsResp.meetingRecords:type_name -> rtc.MeetingRecord
	43, // 72: rtc.RtcService.SignalMessageAssemble:input_type -> rtc.SignalMessageAssembleReq
	33, // 73: rtc.RtcService.SignalGetRoomByGroupID:input_type -> rtc.SignalGetRoomByGroupIDReq
	37, // 74: rtc.RtcService.SignalGetTokenByRoomID:input_type -> rtc.SignalGetTokenByRoomIDReq
	45, // 75: rtc.RtcService.SignalGetRooms:input_type -> rtc.SignalGetRoomsReq
	47, // 76: rtc.RtcService.GetSignalInvitationInfo:input_type -> rtc.GetSignalInvitationInfoReq
	49, // 77: rtc.RtcService.GetSignalInvitationInfoStartApp:input_type -> rtc.GetSignalInvitationInfoStartAppReq
	14, // 78: rtc.RtcService.SignalCreateMeeting:input_type -> rtc.SignalCreateMeetingReq
	16, // 79: rtc.RtcService.SignalJoinMeeting:input_type -> rtc.SignalJoinMeetingReq
	39, // 80: rtc.RtcService.SignalUpdateMeetingInfo:input_type -> rtc.SignalUpdateMeetingInfoReq
	41, // 81: rtc.RtcService.SignalCloseRoom:input_type -> rtc.SignalCloseRoomReq
	9,  // 82: rtc.RtcService.SignalGetMeetings:input_type -> rtc.SignalGetMeetingsReq
	11, // 83: rtc.RtcService.SignalOperateStream:input_type -> rtc.SignalOperateStreamReq
	7,  // 84: rtc.RtcService.SignalSendCustomSignal:input_type -> rtc.SignalSendCustomSignalReq
	57, // 85: rtc.RtcService.GetSignalInvitationRecords:input_type -> rtc.GetSignalInvitationRecordsReq
	61, // 86: rtc.RtcService.DeleteSignalRecords:input_type -> rtc.DeleteSignalRecordsReq
	63, // 87: rtc.RtcService.GetMeetingRecords:input_type -> rtc.GetMeetingRecordsReq
	65, // 88: rtc.RtcService.DeleteMeetingRecords:input_type -> rtc.DeleteMeetingRecordsReq
	44, // 89: rtc.RtcService.SignalMessageAssemble:output_type -> rtc.SignalMessageAssembleResp
	34, // 90: rtc.RtcService.SignalGetRoomByGroupID:output_type -> rtc.SignalGetRoomByGroupIDResp
	38, // 91: rtc.RtcService.SignalGetTokenByRoomID:output_type -> rtc.SignalGetTokenByRoomIDResp
	46, // 92: rtc.RtcService.SignalGetRooms:output_type -> rtc.SignalGetRoomsResp
	48, // 93: rtc.RtcService.GetSignalInvitationInfo:output_type -> rtc.GetSignalInvitationInfoResp
	50, // 94: rtc.RtcService.GetSignalInvitationInfoStartApp:output_type -> rtc.GetSignalInvitationInfoStartAppResp
	15, // 95: rtc.RtcService.SignalCreateMeeting:output_type -> rtc.SignalCreateMeetingResp
	17, // 96: rtc.RtcService.SignalJoinMeeting:output_type -> rtc.SignalJoinMeetingResp
	40, // 97: rtc.RtcService.SignalUpdateMeetingInfo:output_type -> rtc.SignalUpdateMeetingInfoResp
	42, // 98: rtc.RtcService.SignalCloseRoom:output_type -> rtc.SignalCloseRoomResp
	10, // 99: rtc.RtcService.SignalGetMeetings:output_type -> rtc.SignalGetMeetingsResp
	12, // 100: rtc.RtcService.SignalOperateStream:output_type -> rtc.SignalOperateStreamResp
	8,  // 101: rtc.RtcService.SignalSendCustomSignal:output_type -> rtc.SignalSendCustomSignalResp
	60, // 102: rtc.RtcService.GetSignalInvitationRecords:output_type -> rtc.GetSignalInvitationRecordsResp
	62, // 103: rtc.RtcService.DeleteSignalRecords:output_type -> rtc.DeleteSignalRecordsResp
	64, // 104: rtc.RtcService.GetMeetingRecords:output_type -> rtc.GetMeetingRecordsResp
	66, // 105: rtc.RtcService.DeleteMeetingRecords:output_type -> rtc.DeleteMeetingRecordsResp
	89, // [89:106] is the sub-list for method output_type
	72, // [72:89] is the sub-list for method input_type
	72, // [72:72] is the sub-list for extension type_name
	72, // [72:72] is the sub-list for extension extendee
	0,  // [0:72] is the sub-list for field type_name
}

func init() { file_rtc_proto_init() }
func file_rtc_proto_init() {
	if File_rtc_proto != nil {
		return
	}
	file_rtc_proto_msgTypes[6].OneofWrappers = []any{
		(*SignalReq_Invite)(nil),
		(*SignalReq_InviteInGroup)(nil),
		(*SignalReq_Cancel)(nil),
		(*SignalReq_Accept)(nil),
		(*SignalReq_HungUp)(nil),
		(*SignalReq_Reject)(nil),
		(*SignalReq_GetTokenByRoomID)(nil),
	}
	file_rtc_proto_msgTypes[18].OneofWrappers = []any{
		(*SignalResp_Invite)(nil),
		(*SignalResp_InviteInGroup)(nil),
		(*SignalResp_Cancel)(nil),
		(*SignalResp_Accept)(nil),
		(*SignalResp_HungUp)(nil),
		(*SignalResp_Reject)(nil),
		(*SignalResp_GetTokenByRoomID)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_rtc_proto_rawDesc,
			NumEnums:      0,
			NumMessages:   76,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_rtc_proto_goTypes,
		DependencyIndexes: file_rtc_proto_depIdxs,
		MessageInfos:      file_rtc_proto_msgTypes,
	}.Build()
	File_rtc_proto = out.File
	file_rtc_proto_rawDesc = nil
	file_rtc_proto_goTypes = nil
	file_rtc_proto_depIdxs = nil
}
