From a328ced3d5ec946e88b52201e154c50655f05bc5 Mon Sep 17 00:00:00 2001 From: Paul Wells Date: Fri, 25 Oct 2024 05:26:48 -0700 Subject: [PATCH 01/18] clone proto slice util (#870) --- utils/guid/id.go | 23 +++++++++-------------- utils/proto.go | 8 ++++++++ 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/utils/guid/id.go b/utils/guid/id.go index 89da4e41..00dda832 100644 --- a/utils/guid/id.go +++ b/utils/guid/id.go @@ -30,10 +30,7 @@ import ( "github.com/livekit/protocol/utils/must" ) -const ( - Size = 12 - guidScratchSize = Size + 10 -) +const Size = 12 const ( RoomPrefix = "RM_" @@ -57,7 +54,7 @@ const ( var guidGeneratorPool = sync.Pool{ New: func() any { - return must.Get(newGenerator(guidScratchSize)) + return must.Get(newGenerator()) }, } @@ -96,19 +93,17 @@ func newB57Index() [256]byte { } type guidGenerator struct { - scratch []byte - rng *mrand.ChaCha8 + rng *mrand.ChaCha8 } -func newGenerator(scratchSize int) (*guidGenerator, error) { +func newGenerator() (*guidGenerator, error) { var seed [32]byte if _, err := rand.Read(seed[:]); err != nil { return nil, err } return &guidGenerator{ - scratch: make([]byte, scratchSize), - rng: mrand.NewChaCha8(seed), + rng: mrand.NewChaCha8(seed), }, nil } @@ -130,10 +125,10 @@ func (g *guidGenerator) readIDChars(b []byte) { } func (g *guidGenerator) New(prefix string) string { - s := append(g.scratch[:0], make([]byte, len(prefix)+Size)...) - copy(s, prefix) - g.readIDChars(s[len(prefix):]) - return string(s) + b := make([]byte, len(prefix)+Size) + copy(b, prefix) + g.readIDChars(b[len(prefix):]) + return unsafe.String(unsafe.SliceData(b), len(b)) } func guidPrefix[T livekit.Guid]() string { diff --git a/utils/proto.go b/utils/proto.go index 61389d00..53fb80e6 100644 --- a/utils/proto.go +++ b/utils/proto.go @@ -19,3 +19,11 @@ import "google.golang.org/protobuf/proto" func CloneProto[T proto.Message](m T) T { return proto.Clone(m).(T) } + +func CloneProtoSlice[T proto.Message](ms []T) []T { + cs := make([]T, len(ms)) + for i := range ms { + cs[i] = CloneProto(ms[i]) + } + return cs +} From 32abc4d3e929bc8bc914bf14349ca247d4d6dd8d Mon Sep 17 00:00:00 2001 From: David Colburn Date: Fri, 25 Oct 2024 10:10:50 -0700 Subject: [PATCH 02/18] krisp for outbound trunks (#868) * krisp for outbound trunks * generated protobuf * move to createSIPParticipantRequest * fix tointernal * Update protobufs/livekit_sip.proto Co-authored-by: David Zhao * generated protobuf --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: David Zhao --- livekit/livekit_sip.pb.go | 327 ++++++++++--------- livekit/livekit_sip.twirp.go | 281 ++++++++-------- protobufs/livekit_sip.proto | 6 +- protobufs/rpc/io.proto | 6 +- protobufs/rpc/sip.proto | 11 +- replay/cloud_replay.pb.go | 22 +- rpc/io.pb.go | 611 ++++++++++++++++------------------- rpc/io.psrpc.go | 180 +++++------ rpc/sip.go | 7 + rpc/sip.pb.go | 233 ++++++++----- rpc/sip.psrpc.go | 110 ++++--- 11 files changed, 919 insertions(+), 875 deletions(-) diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 7de24bd9..44524140 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -1980,6 +1980,8 @@ type CreateSIPParticipantRequest struct { RingingTimeout *durationpb.Duration `protobuf:"bytes,11,opt,name=ringing_timeout,json=ringingTimeout,proto3" json:"ringing_timeout,omitempty"` // Max call duration. MaxCallDuration *durationpb.Duration `protobuf:"bytes,12,opt,name=max_call_duration,json=maxCallDuration,proto3" json:"max_call_duration,omitempty"` + // Enable voice isolation for the callee. + EnableKrisp bool `protobuf:"varint,14,opt,name=enable_krisp,json=enableKrisp,proto3" json:"enable_krisp,omitempty"` // NEXT ID: 15 } func (x *CreateSIPParticipantRequest) Reset() { @@ -2104,6 +2106,13 @@ func (x *CreateSIPParticipantRequest) GetMaxCallDuration() *durationpb.Duration return nil } +func (x *CreateSIPParticipantRequest) GetEnableKrisp() bool { + if x != nil { + return x.EnableKrisp + } + return false +} + type SIPParticipantInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2763,7 +2772,7 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, - 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0xe8, 0x05, 0x0a, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x22, 0x8b, 0x06, 0x0a, 0x1b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, @@ -2805,165 +2814,167 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, - 0x78, 0x43, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x48, 0x0a, - 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, - 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xab, 0x01, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x50, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, - 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, - 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, - 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, - 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x1d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, - 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, - 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, 0x22, 0xb9, 0x03, - 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, - 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x49, - 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, - 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, 0x08, 0x66, 0x72, - 0x6f, 0x6d, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, 0x52, 0x07, 0x66, - 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x6f, 0x5f, 0x75, 0x72, 0x69, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x72, 0x69, 0x12, 0x37, - 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, - 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x63, 0x61, 0x6c, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, - 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x5f, - 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, - 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, - 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, 0x06, 0x53, 0x49, - 0x50, 0x55, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, - 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, - 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, - 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2a, 0x6b, 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, - 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x15, 0x0a, - 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, - 0x44, 0x50, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, - 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, - 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x4c, 0x53, - 0x10, 0x03, 0x2a, 0x68, 0x0a, 0x0d, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x53, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, - 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x43, - 0x53, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, - 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x5f, 0x41, 0x43, - 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x43, 0x53, 0x5f, 0x44, 0x49, - 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x03, 0x32, 0xba, 0x09, 0x0a, - 0x03, 0x53, 0x49, 0x50, 0x12, 0x50, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, - 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, - 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, - 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x26, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, - 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, - 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, - 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x22, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, - 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, - 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, - 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, - 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, - 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x2e, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, + 0x78, 0x43, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6b, 0x72, 0x69, 0x73, 0x70, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0b, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x4b, 0x72, 0x69, 0x73, 0x70, + 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xab, 0x01, 0x0a, 0x12, 0x53, + 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x72, + 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x22, 0xb5, 0x01, 0x0a, 0x1d, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, + 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, + 0x22, 0xb9, 0x03, 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x75, + 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x75, + 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, + 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x74, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x2a, 0x0a, + 0x08, 0x66, 0x72, 0x6f, 0x6d, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, + 0x52, 0x07, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x72, 0x69, 0x12, 0x26, 0x0a, 0x06, 0x74, 0x6f, 0x5f, + 0x75, 0x72, 0x69, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, 0x52, 0x05, 0x74, 0x6f, 0x55, 0x72, + 0x69, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, + 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x65, 0x64, 0x41, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, + 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x69, 0x73, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, + 0x06, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, + 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, + 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2a, 0x6b, 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x5f, + 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, + 0x54, 0x5f, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, + 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x02, 0x12, 0x15, + 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, + 0x54, 0x4c, 0x53, 0x10, 0x03, 0x2a, 0x68, 0x0a, 0x0d, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x53, 0x5f, 0x43, 0x41, + 0x4c, 0x4c, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x1a, 0x0a, + 0x16, 0x53, 0x43, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, + 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, 0x53, + 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x43, 0x53, + 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x03, 0x32, + 0xba, 0x09, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x12, 0x50, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, + 0x6b, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, + 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x22, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, + 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x49, + 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, - 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, - 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, - 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, - 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, - 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, - 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, - 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, - 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, - 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x58, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x14, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, + 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, + 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, + 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, + 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x58, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, + 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, + 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x46, 0x5a, 0x23, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/livekit/livekit_sip.twirp.go b/livekit/livekit_sip.twirp.go index fd17fcc1..f33db5fd 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -3868,145 +3868,146 @@ func (s *sIPServer) PathPrefix() string { } var twirpFileDescriptor4 = []byte{ - // 2233 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x5f, 0x73, 0xe3, 0x48, - 0x11, 0x5f, 0xdb, 0xf1, 0xbf, 0x76, 0xe2, 0x38, 0x93, 0x3f, 0xe7, 0x38, 0xc9, 0xee, 0x96, 0xf7, - 0xf6, 0xf6, 0xcf, 0x5d, 0x79, 0x0b, 0x6f, 0x71, 0xc0, 0x56, 0x1d, 0x94, 0x63, 0x67, 0xb3, 0x66, + // 2251 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xef, 0x72, 0xe3, 0x48, + 0x11, 0x5f, 0xdb, 0xf1, 0xbf, 0xb6, 0xe3, 0x38, 0x93, 0x3f, 0xe7, 0x38, 0xc9, 0xee, 0xe2, 0xbd, + 0xbd, 0xfd, 0x73, 0x57, 0xde, 0xc2, 0x5b, 0x1c, 0xb0, 0x55, 0x07, 0xe5, 0xb5, 0xb3, 0xbb, 0x66, 0x73, 0x8e, 0x91, 0x1d, 0x8a, 0xa3, 0x0e, 0x84, 0x62, 0x4d, 0xe2, 0x21, 0xb6, 0x24, 0xa4, 0x71, - 0x6e, 0xc3, 0x33, 0x54, 0xc1, 0xc7, 0xa0, 0xa8, 0xe2, 0x01, 0x9e, 0x79, 0x80, 0x6f, 0xc1, 0x07, - 0xe0, 0x9d, 0xe2, 0x53, 0x50, 0x33, 0x1a, 0xc9, 0x23, 0x59, 0x52, 0x9c, 0xe5, 0xae, 0xea, 0xde, - 0xa4, 0xee, 0x9e, 0x9e, 0x56, 0xf7, 0xaf, 0xbb, 0xa7, 0x47, 0xb0, 0x31, 0x21, 0xd7, 0xf8, 0x8a, - 0x50, 0xd5, 0x21, 0x56, 0xc3, 0xb2, 0x4d, 0x6a, 0xa2, 0xbc, 0x20, 0xd5, 0xee, 0x5f, 0x9a, 0xe6, - 0xe5, 0x04, 0xbf, 0xe0, 0xe4, 0xf3, 0xd9, 0xc5, 0x0b, 0x7d, 0x66, 0x6b, 0x94, 0x98, 0x86, 0x2b, - 0x58, 0xdb, 0x0b, 0xf3, 0xf1, 0xd4, 0xa2, 0x37, 0x82, 0xb9, 0xe5, 0x29, 0x9e, 0x9a, 0x3a, 0x9e, - 0x38, 0x2e, 0xb5, 0xfe, 0xef, 0x0c, 0x6c, 0xb7, 0x6d, 0xac, 0x51, 0x3c, 0xe8, 0xf6, 0x87, 0xf6, - 0xcc, 0xb8, 0x52, 0xf0, 0x6f, 0x66, 0xd8, 0xa1, 0xe8, 0x63, 0xd8, 0x20, 0xc6, 0xb9, 0x39, 0x33, - 0x74, 0x55, 0xd3, 0x75, 0x1b, 0x3b, 0x0e, 0x76, 0xaa, 0xa9, 0x87, 0x99, 0xa7, 0x45, 0xa5, 0x22, - 0x18, 0x2d, 0x8f, 0x8e, 0x9e, 0x41, 0xc5, 0x9c, 0xd1, 0x80, 0x74, 0x35, 0xfd, 0x30, 0xf5, 0xb4, - 0xa8, 0xac, 0x7b, 0x74, 0x21, 0x8c, 0x9e, 0x80, 0x4f, 0x52, 0x8d, 0xd9, 0xf4, 0x1c, 0xdb, 0xd5, - 0x0c, 0x97, 0x2c, 0x7b, 0xe4, 0x1e, 0xa7, 0xa2, 0x4f, 0x61, 0xdb, 0x33, 0xc0, 0x95, 0x73, 0x54, - 0x1b, 0x5f, 0xe2, 0x77, 0xd5, 0x15, 0x66, 0xc4, 0x61, 0xba, 0x9a, 0x52, 0x36, 0x85, 0x80, 0xbb, - 0xc2, 0x51, 0x18, 0x9b, 0x6d, 0x10, 0x5a, 0x57, 0x2d, 0x72, 0xb3, 0xcb, 0x41, 0x69, 0x66, 0xb4, - 0x27, 0x38, 0x73, 0xb0, 0x6d, 0x68, 0x53, 0x5c, 0xcd, 0xba, 0x46, 0x0b, 0xfa, 0x99, 0x20, 0xcb, - 0xa2, 0x96, 0xe6, 0x38, 0x5f, 0x99, 0xb6, 0x5e, 0xcd, 0x05, 0x44, 0xfb, 0x82, 0xcc, 0xfc, 0xe6, - 0x7f, 0x9f, 0xaf, 0x36, 0xcf, 0x65, 0x7d, 0x1f, 0xf9, 0x7a, 0x65, 0x61, 0x5f, 0x71, 0x21, 0x28, - 0xec, 0x6b, 0x46, 0xb0, 0xc2, 0x95, 0x01, 0xe7, 0xf3, 0x67, 0x54, 0x83, 0xc2, 0x14, 0x53, 0x4d, - 0xd7, 0xa8, 0x56, 0x2d, 0x71, 0xba, 0xff, 0xfe, 0x2a, 0x5d, 0x4d, 0xd5, 0xff, 0x92, 0x85, 0x55, - 0x2f, 0xb2, 0x5d, 0xe3, 0xc2, 0x44, 0x0f, 0x61, 0xd5, 0x21, 0x96, 0x4a, 0x19, 0x41, 0x25, 0x7a, - 0x35, 0xc5, 0x17, 0x81, 0x43, 0x2c, 0x57, 0x46, 0x47, 0x2f, 0x61, 0xe5, 0x8a, 0x18, 0x7a, 0xb5, - 0xfc, 0x30, 0xf5, 0xb4, 0xdc, 0x7c, 0xd0, 0x10, 0xb8, 0x69, 0xc8, 0x6a, 0x1a, 0xfc, 0xe9, 0x2d, - 0x31, 0x74, 0x85, 0x0b, 0x47, 0xa3, 0x25, 0x7d, 0x07, 0xb4, 0x64, 0x96, 0x46, 0xcb, 0x4a, 0x24, - 0x5a, 0x5e, 0x42, 0x91, 0xda, 0x9a, 0xe1, 0x58, 0xa6, 0x4d, 0xab, 0x6b, 0xdc, 0xf4, 0xed, 0xa0, - 0xe9, 0x82, 0xa9, 0xcc, 0xe5, 0xe2, 0x21, 0x96, 0xbd, 0x33, 0xc4, 0x60, 0x69, 0x88, 0xe5, 0x96, - 0x87, 0x58, 0xfe, 0x0e, 0x10, 0x2b, 0xdc, 0x05, 0x62, 0xc5, 0x5b, 0x20, 0x56, 0x8a, 0x81, 0xd8, - 0x6a, 0x10, 0x62, 0xf5, 0x0e, 0x14, 0x7d, 0x24, 0xa0, 0x0a, 0xac, 0x0e, 0x95, 0xb3, 0xde, 0x5b, - 0xf5, 0xe4, 0xe8, 0xb8, 0xd5, 0xfe, 0xa2, 0x72, 0x0f, 0x6d, 0xc0, 0x9a, 0x4b, 0xe9, 0xf6, 0x0e, - 0x4f, 0xcf, 0x7a, 0x9d, 0x4a, 0x0a, 0x21, 0x28, 0xbb, 0xa4, 0xd3, 0xb3, 0xa1, 0x4b, 0x4b, 0x73, - 0xa0, 0x2a, 0xb0, 0xef, 0xd7, 0xa1, 0xae, 0xfb, 0xbd, 0x81, 0x72, 0xd4, 0x84, 0x2c, 0xc7, 0x2c, - 0x07, 0x6c, 0xa9, 0xb9, 0x2f, 0xc7, 0x56, 0x96, 0x67, 0xe8, 0x54, 0x5c, 0xd1, 0xfa, 0xef, 0x73, - 0xb0, 0x19, 0xc1, 0x5e, 0x22, 0x07, 0x3c, 0x3f, 0xa4, 0x63, 0xfc, 0x90, 0x09, 0xfa, 0x01, 0x55, - 0x21, 0xef, 0x01, 0x81, 0x57, 0x27, 0xc5, 0x7b, 0x65, 0xee, 0xd7, 0x26, 0x13, 0xf3, 0x2b, 0x2c, - 0x27, 0x46, 0xd6, 0x4d, 0x0c, 0xc1, 0x98, 0x27, 0xc6, 0x13, 0x58, 0xf7, 0x84, 0x3d, 0x75, 0x39, - 0x17, 0x57, 0x82, 0xec, 0xe1, 0xea, 0x11, 0xac, 0x69, 0x33, 0x3a, 0x0e, 0x17, 0x98, 0x55, 0x46, - 0xf4, 0x23, 0xef, 0x09, 0x85, 0x0a, 0x0b, 0x17, 0xf2, 0x23, 0xde, 0x86, 0xfc, 0x18, 0x6b, 0xba, - 0x57, 0x25, 0x4b, 0xcd, 0x67, 0x49, 0x9e, 0x6d, 0xbc, 0x71, 0x65, 0x8f, 0x0c, 0x6a, 0xdf, 0x28, - 0xde, 0x4a, 0x44, 0x60, 0x5b, 0x3c, 0xaa, 0xd4, 0x54, 0x35, 0x4a, 0x6d, 0x72, 0x3e, 0xa3, 0xd8, - 0xcd, 0x8a, 0x52, 0xf3, 0xbb, 0xcb, 0xa8, 0x1c, 0x9a, 0x2d, 0x7f, 0x9d, 0xab, 0x7e, 0x73, 0xbc, - 0xc8, 0x41, 0x87, 0xb0, 0x6e, 0x13, 0xe3, 0x92, 0x18, 0x97, 0x2a, 0x25, 0x53, 0x6c, 0xce, 0x28, - 0x07, 0x6b, 0xa9, 0xb9, 0xdb, 0x70, 0xbb, 0x5f, 0xc3, 0xeb, 0x7e, 0x8d, 0x8e, 0xe8, 0x8e, 0x4a, - 0x59, 0xac, 0x18, 0xba, 0x0b, 0xd0, 0x11, 0x6c, 0x4c, 0xb5, 0x77, 0xea, 0x48, 0x9b, 0x4c, 0x54, - 0xaf, 0x85, 0x72, 0x68, 0x27, 0x6a, 0x59, 0x9f, 0x6a, 0xef, 0xda, 0xda, 0x64, 0xe2, 0x11, 0x98, - 0x7f, 0xaf, 0x6c, 0xe2, 0x58, 0x2a, 0x36, 0xb4, 0xf3, 0x09, 0xd6, 0x79, 0xd9, 0x29, 0x28, 0xab, - 0x9c, 0x78, 0xe4, 0xd2, 0x6a, 0xaf, 0x60, 0x55, 0xf6, 0x19, 0xaa, 0x40, 0xe6, 0x0a, 0xdf, 0x08, - 0xc8, 0xb1, 0x47, 0xb4, 0x05, 0xd9, 0x6b, 0x6d, 0x32, 0xf3, 0xc0, 0xe6, 0xbe, 0xbc, 0x4a, 0x7f, - 0x3f, 0x55, 0x7b, 0x0d, 0xd5, 0x38, 0xe7, 0xdc, 0x45, 0x4f, 0x7d, 0x08, 0x07, 0x7e, 0x6e, 0x9d, - 0x8a, 0x94, 0x0f, 0x24, 0xd7, 0xcb, 0x60, 0x72, 0x1d, 0xc8, 0xf1, 0x0a, 0x2c, 0x90, 0xb3, 0xeb, - 0x5f, 0x2b, 0xb0, 0x15, 0xc5, 0xff, 0x66, 0xd2, 0xcb, 0xeb, 0x13, 0x6e, 0xf5, 0xf7, 0x5e, 0x83, - 0x65, 0x3f, 0xbb, 0x64, 0xd9, 0x97, 0xb2, 0x35, 0x17, 0xcc, 0xd6, 0xaf, 0x2f, 0xaf, 0x3a, 0xe1, - 0xbc, 0x7a, 0x9e, 0xe8, 0xd4, 0x98, 0xc4, 0xfa, 0x75, 0x72, 0x62, 0x7d, 0xba, 0x94, 0xce, 0xe5, - 0x32, 0xeb, 0x5b, 0x81, 0xd4, 0xcf, 0x60, 0xf7, 0x18, 0xd3, 0x98, 0x16, 0x70, 0x2b, 0xae, 0xea, - 0x7d, 0xa8, 0x45, 0x2d, 0x77, 0x2c, 0xd3, 0x70, 0xf0, 0x7b, 0xb5, 0x90, 0x1f, 0x7a, 0x1a, 0x23, - 0xf3, 0xe6, 0x76, 0x8b, 0x14, 0xd8, 0x8b, 0x5c, 0x2f, 0x4c, 0x7a, 0xaf, 0xc4, 0xdb, 0x85, 0xcd, - 0x13, 0xe2, 0xd0, 0xd0, 0x81, 0x9d, 0x77, 0xd1, 0x63, 0xd8, 0x0a, 0xb2, 0xc4, 0x3e, 0x1f, 0x43, - 0x96, 0x50, 0x3c, 0x75, 0x0f, 0xf0, 0xa5, 0x70, 0x8a, 0xf8, 0xfa, 0xb9, 0x0c, 0x57, 0xb4, 0x0f, - 0x35, 0xa1, 0x28, 0x22, 0x12, 0xf5, 0x9f, 0xc0, 0x5e, 0x24, 0x77, 0xee, 0x68, 0x79, 0xb7, 0x5b, - 0x1c, 0xcd, 0x45, 0xeb, 0x07, 0xbe, 0xca, 0x28, 0x4f, 0xd7, 0x07, 0xb0, 0x1f, 0xcd, 0x9e, 0x3b, - 0x52, 0xde, 0xf2, 0x36, 0x47, 0xba, 0x7b, 0xfe, 0x00, 0xb6, 0x3b, 0x78, 0x82, 0x17, 0x67, 0x9f, - 0xdb, 0xe3, 0xfa, 0x1a, 0xb6, 0x07, 0xdd, 0x7e, 0x87, 0x38, 0x96, 0x46, 0x47, 0x63, 0x65, 0x36, - 0xc1, 0x1d, 0x62, 0xe3, 0x11, 0x45, 0x7b, 0x50, 0xb4, 0x4d, 0x73, 0xaa, 0xf2, 0xea, 0xe1, 0xae, - 0x2b, 0x30, 0x42, 0x8f, 0x55, 0x8e, 0x0a, 0x64, 0x2c, 0x62, 0x08, 0xd8, 0xb3, 0xc7, 0x7a, 0x0f, - 0x76, 0x43, 0x7a, 0xba, 0x86, 0x4e, 0xae, 0x89, 0x3e, 0xd3, 0x26, 0xe8, 0x01, 0x94, 0xb8, 0x2e, - 0xcb, 0xc6, 0x17, 0xe4, 0x9d, 0x67, 0x05, 0x23, 0xf5, 0x39, 0x25, 0x42, 0xdf, 0x78, 0xc1, 0x2e, - 0xd6, 0xb2, 0x30, 0x7e, 0x0f, 0x5d, 0x68, 0x1f, 0x8a, 0xb6, 0x66, 0xe8, 0xe6, 0x94, 0xfc, 0x16, - 0xf3, 0x92, 0x5c, 0x50, 0xe6, 0x84, 0xfa, 0x9f, 0xd2, 0xb0, 0x1e, 0xda, 0x0a, 0x29, 0xb0, 0xa5, - 0x8b, 0x77, 0xd5, 0x9e, 0x4d, 0xb0, 0xaa, 0x73, 0xa7, 0x08, 0x74, 0xdf, 0x97, 0x83, 0xb2, 0xe8, - 0xba, 0x37, 0xf7, 0x14, 0xa4, 0x2f, 0x3a, 0xf4, 0x97, 0x50, 0x0d, 0xea, 0x24, 0xbe, 0x83, 0xb8, - 0xb1, 0xa5, 0x66, 0x3d, 0x4e, 0xef, 0xdc, 0x95, 0x6f, 0xee, 0x29, 0x3b, 0x7a, 0xb4, 0x93, 0x17, - 0x6c, 0x1e, 0x71, 0x87, 0xf1, 0x0f, 0x4e, 0xb0, 0xd9, 0x75, 0x6b, 0xd8, 0x66, 0x97, 0x7a, 0x98, - 0x83, 0x15, 0xa6, 0xaa, 0xfe, 0xbb, 0x8c, 0x74, 0xaa, 0x95, 0x57, 0x7b, 0x40, 0xfb, 0xc4, 0x15, - 0x14, 0x0e, 0xaa, 0xc6, 0x6d, 0xa6, 0x70, 0x29, 0x86, 0x2d, 0x0f, 0x92, 0xde, 0x70, 0x55, 0xa0, - 0x2e, 0x20, 0x1d, 0xf4, 0x1c, 0x36, 0xc6, 0x44, 0xc7, 0xaa, 0x35, 0x36, 0x0d, 0x2c, 0x4f, 0xd6, - 0x05, 0x65, 0x9d, 0x31, 0xfa, 0x8c, 0x2e, 0x86, 0xa5, 0x88, 0xf9, 0x25, 0x17, 0x39, 0xbf, 0x78, - 0x8d, 0x7a, 0x25, 0xa6, 0x51, 0x67, 0x43, 0x8d, 0xfa, 0x0c, 0x40, 0x6a, 0x52, 0xf9, 0xd0, 0xe9, - 0x2f, 0xc9, 0x15, 0x8d, 0x70, 0x8f, 0x92, 0x14, 0xd5, 0x3e, 0x83, 0xf5, 0xff, 0xa7, 0xab, 0xfc, - 0x39, 0xc3, 0xe7, 0x80, 0x20, 0x34, 0x2e, 0x4c, 0xf4, 0x02, 0xb6, 0x58, 0x9a, 0x87, 0xe0, 0xe5, - 0xa5, 0xfb, 0x86, 0x43, 0xac, 0xc0, 0x12, 0xdd, 0x0f, 0x57, 0xfa, 0xee, 0xe1, 0xca, 0x2c, 0x13, - 0xae, 0x95, 0xa5, 0xc3, 0x95, 0x4f, 0x0c, 0x57, 0x36, 0x26, 0x5c, 0xb9, 0x50, 0xb8, 0x4e, 0x02, - 0xe1, 0x2a, 0xf0, 0x70, 0x7d, 0x12, 0x9f, 0x4d, 0x17, 0xe6, 0x37, 0x19, 0xa5, 0x79, 0xcb, 0x89, - 0x80, 0x87, 0xd4, 0x72, 0x82, 0xdc, 0x25, 0x5a, 0x4e, 0xf8, 0x23, 0xbc, 0xf2, 0x7f, 0x0a, 0xfb, - 0x7e, 0xf9, 0x8f, 0x4a, 0xce, 0xbb, 0xc2, 0xa3, 0xfe, 0x9f, 0x2c, 0xec, 0xf9, 0x18, 0xef, 0x6b, - 0x36, 0x25, 0x23, 0x62, 0x69, 0x06, 0x5d, 0xba, 0xad, 0xa0, 0xfb, 0x50, 0x62, 0x12, 0x7c, 0x32, - 0xa1, 0xa6, 0xf0, 0x51, 0xd1, 0x21, 0x16, 0x2b, 0x2c, 0x43, 0x33, 0xd8, 0x5d, 0x32, 0xa1, 0xee, - 0xf2, 0x1d, 0xd8, 0xb2, 0xe6, 0x9b, 0xaa, 0x44, 0xc7, 0x06, 0x25, 0xf4, 0x46, 0x24, 0xef, 0xa6, - 0xc4, 0xeb, 0x0a, 0x16, 0x7a, 0x06, 0x15, 0x79, 0x89, 0x74, 0xe4, 0x5d, 0x97, 0xe8, 0x51, 0xda, - 0x7d, 0x4c, 0x15, 0x16, 0xb4, 0x7f, 0xee, 0xc1, 0xeb, 0x1a, 0x76, 0xe4, 0x25, 0x12, 0xd4, 0xdc, - 0x23, 0xf1, 0x8f, 0x16, 0x2b, 0xc3, 0xa2, 0xd7, 0x1a, 0x12, 0x29, 0x8c, 0xbe, 0x6d, 0x2b, 0x8a, - 0xc7, 0xd2, 0x40, 0xa7, 0xd3, 0x0b, 0x2f, 0x0d, 0xd8, 0x33, 0x7a, 0x02, 0x6b, 0xd6, 0x44, 0xbb, - 0x51, 0xd9, 0x28, 0x48, 0x4d, 0xc3, 0xbd, 0x86, 0x29, 0xf0, 0x2b, 0x9e, 0x55, 0xc6, 0x50, 0x04, - 0x9d, 0x9d, 0xee, 0xb9, 0xa0, 0x4e, 0xb4, 0x09, 0x17, 0x14, 0x53, 0x1d, 0x23, 0x76, 0x04, 0x2d, - 0x3a, 0x7b, 0x21, 0x3a, 0x7b, 0xbf, 0x3d, 0x13, 0x6b, 0xed, 0x0d, 0xd4, 0xe2, 0xbd, 0x79, 0xa7, - 0x64, 0xfd, 0x5b, 0x0a, 0x50, 0x30, 0x5c, 0xbc, 0xa2, 0x3e, 0x86, 0x72, 0x10, 0x82, 0x42, 0xdb, - 0x5a, 0x00, 0x7c, 0xb1, 0x48, 0x4d, 0xc7, 0x23, 0x35, 0x11, 0xf9, 0x72, 0xda, 0x10, 0x5d, 0x00, - 0xde, 0x4b, 0x9b, 0xae, 0x5e, 0xff, 0x7b, 0x0a, 0x0e, 0xf8, 0x24, 0x78, 0x81, 0xed, 0xe8, 0xd4, - 0x8c, 0xb3, 0x28, 0xb5, 0xa4, 0x45, 0xe9, 0x90, 0x45, 0x0f, 0xa0, 0x44, 0xc5, 0x86, 0x2c, 0x91, - 0x5d, 0x83, 0xc1, 0x23, 0x0d, 0xcd, 0x45, 0x98, 0xad, 0x2c, 0xc2, 0xac, 0xfe, 0x8f, 0x0c, 0x94, - 0x06, 0xdd, 0x3e, 0xff, 0x0a, 0xe6, 0xde, 0x0f, 0x20, 0xef, 0x7d, 0xa3, 0x6b, 0x58, 0x6e, 0xc4, - 0x3f, 0x10, 0xed, 0x42, 0xc1, 0xaf, 0x2a, 0xae, 0x29, 0x79, 0xd1, 0x69, 0x92, 0x1d, 0xf7, 0x01, - 0xe4, 0x39, 0xd3, 0x77, 0x5a, 0x8e, 0xbd, 0x26, 0x44, 0x28, 0x1b, 0xef, 0x8f, 0xe7, 0x50, 0xb8, - 0xb0, 0xcd, 0xa9, 0x3a, 0xb3, 0x09, 0x4f, 0xae, 0x52, 0x73, 0x5d, 0xae, 0xc2, 0x67, 0x36, 0x51, - 0xf2, 0x4c, 0xe0, 0xcc, 0x26, 0xe8, 0x23, 0xc8, 0x51, 0x93, 0x4b, 0xe6, 0xa3, 0x25, 0xb3, 0xd4, - 0x64, 0x72, 0xdf, 0x83, 0x12, 0xff, 0x60, 0x87, 0x6a, 0x74, 0xe6, 0xf0, 0x5a, 0x53, 0x6e, 0xee, - 0xc8, 0xc2, 0xcc, 0x37, 0x03, 0xce, 0x55, 0x60, 0xe4, 0x3f, 0xa3, 0x03, 0x00, 0x87, 0x6a, 0x36, - 0xc5, 0xba, 0xaa, 0x51, 0x7e, 0xdd, 0x99, 0x51, 0x8a, 0x82, 0xd2, 0xa2, 0xcc, 0x5f, 0xd8, 0xd0, - 0x5d, 0x26, 0x70, 0x66, 0x9e, 0xbf, 0xb7, 0x28, 0x7a, 0x0d, 0x1b, 0x3a, 0x71, 0x46, 0xa6, 0x61, - 0xe0, 0x11, 0x55, 0x6d, 0xac, 0x39, 0xa6, 0xc1, 0x13, 0xb6, 0xdc, 0xdc, 0xf5, 0x37, 0xee, 0xf8, - 0x12, 0x0a, 0x17, 0x50, 0x2a, 0x7a, 0x88, 0x52, 0xff, 0x63, 0x0a, 0x72, 0xee, 0xc7, 0xb0, 0x7a, - 0x34, 0x73, 0xb0, 0x2d, 0x62, 0xc6, 0x9f, 0x19, 0x6d, 0x6c, 0x3a, 0xd4, 0xbb, 0x02, 0x61, 0xcf, - 0xa8, 0x0c, 0x69, 0x62, 0x89, 0x18, 0xa5, 0x89, 0xc5, 0x64, 0xf8, 0xbd, 0x86, 0x38, 0x7d, 0xf1, - 0xbb, 0x8b, 0xf7, 0xb9, 0xf0, 0x78, 0x7e, 0x25, 0x7e, 0x02, 0x78, 0x17, 0x20, 0x3b, 0x3c, 0x79, - 0xd5, 0xa1, 0xd2, 0xea, 0x0d, 0xfa, 0xa7, 0xca, 0x50, 0x6d, 0x9d, 0x0d, 0x4f, 0x2b, 0xf7, 0xd0, - 0x36, 0x6c, 0x04, 0xe9, 0x67, 0x9d, 0x7e, 0x25, 0xb5, 0x48, 0x1e, 0xb6, 0xfb, 0x95, 0x74, 0x04, - 0xf9, 0x64, 0x50, 0xc9, 0x3c, 0x1f, 0xc3, 0x5a, 0x20, 0x2e, 0x5c, 0xae, 0x3d, 0x50, 0xdb, 0xad, - 0x93, 0x13, 0xb5, 0xdb, 0x6b, 0x9f, 0x7e, 0xde, 0xed, 0x1d, 0x57, 0xee, 0xa1, 0x1a, 0xec, 0x30, - 0x72, 0xbf, 0xa5, 0x0c, 0xbb, 0xed, 0x6e, 0xbf, 0xd5, 0x1b, 0xaa, 0x3f, 0x3e, 0xed, 0xf6, 0x8e, - 0x3a, 0x95, 0x14, 0x2a, 0x03, 0x30, 0x5e, 0xab, 0x3d, 0xec, 0xfe, 0xf4, 0xa8, 0x92, 0x46, 0x5b, - 0x50, 0x61, 0xef, 0x9d, 0xee, 0xa0, 0x7d, 0xda, 0xeb, 0x1d, 0xb5, 0x87, 0x47, 0x9d, 0x4a, 0xa6, - 0xf9, 0xcf, 0x22, 0x64, 0x06, 0xdd, 0x3e, 0xea, 0xc3, 0xaa, 0x3c, 0xf5, 0xa2, 0x79, 0xf7, 0x8f, - 0x98, 0x93, 0x6b, 0x07, 0x31, 0x5c, 0xf7, 0x24, 0x51, 0xcf, 0xfc, 0x21, 0x9d, 0x42, 0x5f, 0x4a, - 0x7f, 0xc5, 0xe4, 0x89, 0x15, 0x3d, 0x5e, 0x6c, 0x59, 0x11, 0x03, 0x72, 0x2d, 0x71, 0xe4, 0x45, - 0x2a, 0xec, 0x44, 0xdf, 0xc7, 0xa1, 0x8f, 0x16, 0xd5, 0x47, 0x8d, 0xc3, 0xb5, 0xe4, 0xf9, 0x16, - 0xfd, 0x02, 0xd0, 0xe2, 0x3d, 0x08, 0x9a, 0xcf, 0x49, 0xb1, 0x77, 0x2c, 0xb5, 0x47, 0x89, 0x32, - 0xe2, 0xb0, 0xf5, 0x2b, 0xd8, 0x8c, 0xb8, 0xd4, 0x40, 0xe1, 0xb5, 0x91, 0x96, 0x7f, 0x98, 0x2c, - 0x34, 0xdf, 0x21, 0xe2, 0x82, 0x41, 0xda, 0x21, 0xfe, 0x72, 0x42, 0xda, 0x21, 0xe9, 0x8e, 0x62, - 0xe4, 0xdf, 0x94, 0x04, 0x3f, 0x62, 0x61, 0x75, 0xe4, 0x57, 0x3c, 0xbe, 0x45, 0x4a, 0x6c, 0x72, - 0x0c, 0xe5, 0xe0, 0x05, 0x03, 0x9a, 0xcf, 0x93, 0x91, 0x37, 0x0f, 0xb5, 0xe8, 0x9b, 0x99, 0x00, - 0x1e, 0x03, 0x13, 0xf7, 0xe3, 0xa5, 0x86, 0xab, 0x5a, 0xe2, 0x79, 0x58, 0xf2, 0x76, 0x40, 0xf7, - 0x82, 0xb7, 0xa3, 0x34, 0x7f, 0x98, 0x2c, 0x24, 0x1c, 0xf1, 0xa5, 0x74, 0xd3, 0x12, 0x63, 0x7f, - 0xd2, 0x51, 0xfc, 0x16, 0xfb, 0xbf, 0x80, 0xad, 0xa8, 0x03, 0xa4, 0x14, 0xcb, 0x84, 0xf3, 0x65, - 0x6d, 0x4f, 0xd6, 0x1d, 0x3e, 0xd0, 0xfc, 0x0c, 0x76, 0xa2, 0x0f, 0x0e, 0x52, 0xaa, 0x26, 0x9e, - 0x2c, 0x6a, 0x3b, 0x0b, 0xe7, 0xb3, 0xa3, 0xa9, 0x45, 0x6f, 0x0e, 0x5f, 0xff, 0xfc, 0xd1, 0x25, - 0xa1, 0xe3, 0xd9, 0x79, 0x63, 0x64, 0x4e, 0x5f, 0x08, 0x5d, 0xee, 0xaf, 0xfb, 0x91, 0x39, 0xf1, - 0x08, 0x7f, 0x4d, 0xaf, 0x9d, 0x90, 0x6b, 0xfc, 0x96, 0xd0, 0x46, 0x9f, 0xb1, 0xfe, 0x9b, 0x2e, - 0x8b, 0xf7, 0x57, 0xaf, 0x38, 0xe1, 0x3c, 0xc7, 0x97, 0xbc, 0xfc, 0x5f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0xb3, 0xee, 0x86, 0xe1, 0x39, 0x20, 0x00, 0x00, + 0x6e, 0xc3, 0x67, 0xa8, 0x82, 0xe2, 0x29, 0x28, 0xaa, 0xf8, 0x00, 0x9f, 0xf9, 0x00, 0x6f, 0xc1, + 0x03, 0xf0, 0x02, 0x3c, 0x05, 0x35, 0xa3, 0x91, 0x3c, 0x92, 0x25, 0xc5, 0x59, 0xb8, 0xaa, 0xfb, + 0x26, 0x75, 0xf7, 0xf4, 0xb4, 0xba, 0x7f, 0xdd, 0x3d, 0x3d, 0x82, 0xcd, 0x29, 0xb9, 0xc2, 0x97, + 0x84, 0xaa, 0x0e, 0xb1, 0x9a, 0x96, 0x6d, 0x52, 0x13, 0xe5, 0x05, 0xa9, 0x7e, 0xf7, 0xc2, 0x34, + 0x2f, 0xa6, 0xf8, 0x19, 0x27, 0x9f, 0xcd, 0xcf, 0x9f, 0xe9, 0x73, 0x5b, 0xa3, 0xc4, 0x34, 0x5c, + 0xc1, 0xfa, 0x7e, 0x98, 0x8f, 0x67, 0x16, 0xbd, 0x16, 0xcc, 0x6d, 0x4f, 0xf1, 0xcc, 0xd4, 0xf1, + 0xd4, 0x71, 0xa9, 0x8d, 0x7f, 0x67, 0x60, 0xa7, 0x63, 0x63, 0x8d, 0xe2, 0x61, 0x6f, 0x30, 0xb2, + 0xe7, 0xc6, 0xa5, 0x82, 0x7f, 0x3d, 0xc7, 0x0e, 0x45, 0x1f, 0xc3, 0x26, 0x31, 0xce, 0xcc, 0xb9, + 0xa1, 0xab, 0x9a, 0xae, 0xdb, 0xd8, 0x71, 0xb0, 0x53, 0x4b, 0xdd, 0xcf, 0x3c, 0x2e, 0x2a, 0x55, + 0xc1, 0x68, 0x7b, 0x74, 0xf4, 0x04, 0xaa, 0xe6, 0x9c, 0x06, 0xa4, 0x6b, 0xe9, 0xfb, 0xa9, 0xc7, + 0x45, 0x65, 0xc3, 0xa3, 0x0b, 0x61, 0xf4, 0x08, 0x7c, 0x92, 0x6a, 0xcc, 0x67, 0x67, 0xd8, 0xae, + 0x65, 0xb8, 0x64, 0xc5, 0x23, 0xf7, 0x39, 0x15, 0x7d, 0x0a, 0x3b, 0x9e, 0x01, 0xae, 0x9c, 0xa3, + 0xda, 0xf8, 0x02, 0xbf, 0xab, 0xad, 0x31, 0x23, 0x5e, 0xa6, 0x6b, 0x29, 0x65, 0x4b, 0x08, 0xb8, + 0x2b, 0x1c, 0x85, 0xb1, 0xd9, 0x06, 0xa1, 0x75, 0xb5, 0x22, 0x37, 0xbb, 0x12, 0x94, 0x66, 0x46, + 0x7b, 0x82, 0x73, 0x07, 0xdb, 0x86, 0x36, 0xc3, 0xb5, 0xac, 0x6b, 0xb4, 0xa0, 0x9f, 0x0a, 0xb2, + 0x2c, 0x6a, 0x69, 0x8e, 0xf3, 0x95, 0x69, 0xeb, 0xb5, 0x5c, 0x40, 0x74, 0x20, 0xc8, 0xcc, 0x6f, + 0xfe, 0xf7, 0xf9, 0x6a, 0xf3, 0x5c, 0xd6, 0xf7, 0x91, 0xaf, 0x57, 0x16, 0xf6, 0x15, 0x17, 0x82, + 0xc2, 0xbe, 0x66, 0x04, 0x6b, 0x5c, 0x19, 0x70, 0x3e, 0x7f, 0x46, 0x75, 0x28, 0xcc, 0x30, 0xd5, + 0x74, 0x8d, 0x6a, 0xb5, 0x12, 0xa7, 0xfb, 0xef, 0x2f, 0xd2, 0xb5, 0x54, 0xe3, 0x2f, 0x59, 0x28, + 0x7b, 0x91, 0xed, 0x19, 0xe7, 0x26, 0xba, 0x0f, 0x65, 0x87, 0x58, 0x2a, 0x65, 0x04, 0x95, 0xe8, + 0xb5, 0x14, 0x5f, 0x04, 0x0e, 0xb1, 0x5c, 0x19, 0x1d, 0x3d, 0x87, 0xb5, 0x4b, 0x62, 0xe8, 0xb5, + 0xca, 0xfd, 0xd4, 0xe3, 0x4a, 0xeb, 0x5e, 0x53, 0xe0, 0xa6, 0x29, 0xab, 0x69, 0xf2, 0xa7, 0xb7, + 0xc4, 0xd0, 0x15, 0x2e, 0x1c, 0x8d, 0x96, 0xf4, 0x2d, 0xd0, 0x92, 0x59, 0x19, 0x2d, 0x6b, 0x91, + 0x68, 0x79, 0x0e, 0x45, 0x6a, 0x6b, 0x86, 0x63, 0x99, 0x36, 0xad, 0xad, 0x73, 0xd3, 0x77, 0x82, + 0xa6, 0x0b, 0xa6, 0xb2, 0x90, 0x8b, 0x87, 0x58, 0xf6, 0xd6, 0x10, 0x83, 0x95, 0x21, 0x96, 0x5b, + 0x1d, 0x62, 0xf9, 0x5b, 0x40, 0xac, 0x70, 0x1b, 0x88, 0x15, 0x6f, 0x80, 0x58, 0x29, 0x06, 0x62, + 0xe5, 0x20, 0xc4, 0x1a, 0x5d, 0x28, 0xfa, 0x48, 0x40, 0x55, 0x28, 0x8f, 0x94, 0xd3, 0xfe, 0x5b, + 0xf5, 0xf8, 0xe8, 0x75, 0xbb, 0xf3, 0x45, 0xf5, 0x0e, 0xda, 0x84, 0x75, 0x97, 0xd2, 0xeb, 0xbf, + 0x3c, 0x39, 0xed, 0x77, 0xab, 0x29, 0x84, 0xa0, 0xe2, 0x92, 0x4e, 0x4e, 0x47, 0x2e, 0x2d, 0xcd, + 0x81, 0xaa, 0xc0, 0x81, 0x5f, 0x87, 0x7a, 0xee, 0xf7, 0x06, 0xca, 0x51, 0x0b, 0xb2, 0x1c, 0xb3, + 0x1c, 0xb0, 0xa5, 0xd6, 0x81, 0x1c, 0x5b, 0x59, 0x9e, 0xa1, 0x53, 0x71, 0x45, 0x1b, 0xbf, 0xcb, + 0xc1, 0x56, 0x04, 0x7b, 0x85, 0x1c, 0xf0, 0xfc, 0x90, 0x8e, 0xf1, 0x43, 0x26, 0xe8, 0x07, 0x54, + 0x83, 0xbc, 0x07, 0x04, 0x5e, 0x9d, 0x14, 0xef, 0x95, 0xb9, 0x5f, 0x9b, 0x4e, 0xcd, 0xaf, 0xb0, + 0x9c, 0x18, 0x59, 0x37, 0x31, 0x04, 0x63, 0x91, 0x18, 0x8f, 0x60, 0xc3, 0x13, 0xf6, 0xd4, 0xe5, + 0x5c, 0x5c, 0x09, 0xb2, 0x87, 0xab, 0x07, 0xb0, 0xae, 0xcd, 0xe9, 0x24, 0x5c, 0x60, 0xca, 0x8c, + 0xe8, 0x47, 0xde, 0x13, 0x0a, 0x15, 0x16, 0x2e, 0xe4, 0x47, 0xbc, 0x03, 0xf9, 0x09, 0xd6, 0x74, + 0xaf, 0x4a, 0x96, 0x5a, 0x4f, 0x92, 0x3c, 0xdb, 0x7c, 0xe3, 0xca, 0x1e, 0x19, 0xd4, 0xbe, 0x56, + 0xbc, 0x95, 0x88, 0xc0, 0x8e, 0x78, 0x54, 0xa9, 0xa9, 0x6a, 0x94, 0xda, 0xe4, 0x6c, 0x4e, 0xb1, + 0x9b, 0x15, 0xa5, 0xd6, 0x77, 0x56, 0x51, 0x39, 0x32, 0xdb, 0xfe, 0x3a, 0x57, 0xfd, 0xd6, 0x64, + 0x99, 0x83, 0x5e, 0xc2, 0x86, 0x4d, 0x8c, 0x0b, 0x62, 0x5c, 0xa8, 0x94, 0xcc, 0xb0, 0x39, 0xa7, + 0x1c, 0xac, 0xa5, 0xd6, 0x5e, 0xd3, 0xed, 0x7e, 0x4d, 0xaf, 0xfb, 0x35, 0xbb, 0xa2, 0x3b, 0x2a, + 0x15, 0xb1, 0x62, 0xe4, 0x2e, 0x40, 0x47, 0xb0, 0x39, 0xd3, 0xde, 0xa9, 0x63, 0x6d, 0x3a, 0x55, + 0xbd, 0x16, 0xca, 0xa1, 0x9d, 0xa8, 0x65, 0x63, 0xa6, 0xbd, 0xeb, 0x68, 0xd3, 0xa9, 0x47, 0x60, + 0xfe, 0xbd, 0xb4, 0x89, 0x63, 0xa9, 0xd8, 0xd0, 0xce, 0xa6, 0x58, 0xe7, 0x65, 0xa7, 0xa0, 0x94, + 0x39, 0xf1, 0xc8, 0xa5, 0xd5, 0x5f, 0x40, 0x59, 0xf6, 0x19, 0xaa, 0x42, 0xe6, 0x12, 0x5f, 0x0b, + 0xc8, 0xb1, 0x47, 0xb4, 0x0d, 0xd9, 0x2b, 0x6d, 0x3a, 0xf7, 0xc0, 0xe6, 0xbe, 0xbc, 0x48, 0x7f, + 0x2f, 0x55, 0x7f, 0x05, 0xb5, 0x38, 0xe7, 0xdc, 0x46, 0x4f, 0x63, 0x04, 0x87, 0x7e, 0x6e, 0x9d, + 0x88, 0x94, 0x0f, 0x24, 0xd7, 0xf3, 0x60, 0x72, 0x1d, 0xca, 0xf1, 0x0a, 0x2c, 0x90, 0xb3, 0xeb, + 0x5f, 0x6b, 0xb0, 0x1d, 0xc5, 0xff, 0x7a, 0xd2, 0xcb, 0xeb, 0x13, 0x6e, 0xf5, 0xf7, 0x5e, 0x83, + 0x65, 0x3f, 0xbb, 0x62, 0xd9, 0x97, 0xb2, 0x35, 0x17, 0xcc, 0xd6, 0xff, 0x5f, 0x5e, 0x75, 0xc3, + 0x79, 0xf5, 0x34, 0xd1, 0xa9, 0x31, 0x89, 0xf5, 0xab, 0xe4, 0xc4, 0xfa, 0x74, 0x25, 0x9d, 0xab, + 0x65, 0xd6, 0x37, 0x02, 0xa9, 0x9f, 0xc1, 0xde, 0x6b, 0x4c, 0x63, 0x5a, 0xc0, 0x8d, 0xb8, 0x6a, + 0x0c, 0xa0, 0x1e, 0xb5, 0xdc, 0xb1, 0x4c, 0xc3, 0xc1, 0xef, 0xd5, 0x42, 0x7e, 0xe0, 0x69, 0x8c, + 0xcc, 0x9b, 0x9b, 0x2d, 0x52, 0x60, 0x3f, 0x72, 0xbd, 0x30, 0xe9, 0xbd, 0x12, 0x6f, 0x0f, 0xb6, + 0x8e, 0x89, 0x43, 0x43, 0x07, 0x76, 0xde, 0x45, 0x5f, 0xc3, 0x76, 0x90, 0x25, 0xf6, 0xf9, 0x18, + 0xb2, 0x84, 0xe2, 0x99, 0x7b, 0x80, 0x2f, 0x85, 0x53, 0xc4, 0xd7, 0xcf, 0x65, 0xb8, 0xa2, 0x03, + 0xa8, 0x0b, 0x45, 0x11, 0x91, 0x68, 0xfc, 0x18, 0xf6, 0x23, 0xb9, 0x0b, 0x47, 0xcb, 0xbb, 0xdd, + 0xe0, 0x68, 0x2e, 0xda, 0x38, 0xf4, 0x55, 0x46, 0x79, 0xba, 0x31, 0x84, 0x83, 0x68, 0xf6, 0xc2, + 0x91, 0xf2, 0x96, 0x37, 0x39, 0xd2, 0xdd, 0xf3, 0xfb, 0xb0, 0xd3, 0xc5, 0x53, 0xbc, 0x3c, 0xfb, + 0xdc, 0x1c, 0xd7, 0x57, 0xb0, 0x33, 0xec, 0x0d, 0xba, 0xc4, 0xb1, 0x34, 0x3a, 0x9e, 0x28, 0xf3, + 0x29, 0xee, 0x12, 0x1b, 0x8f, 0x29, 0xda, 0x87, 0xa2, 0x6d, 0x9a, 0x33, 0x95, 0x57, 0x0f, 0x77, + 0x5d, 0x81, 0x11, 0xfa, 0xac, 0x72, 0x54, 0x21, 0x63, 0x11, 0x43, 0xc0, 0x9e, 0x3d, 0x36, 0xfa, + 0xb0, 0x17, 0xd2, 0xd3, 0x33, 0x74, 0x72, 0x45, 0xf4, 0xb9, 0x36, 0x45, 0xf7, 0xa0, 0xc4, 0x75, + 0x59, 0x36, 0x3e, 0x27, 0xef, 0x3c, 0x2b, 0x18, 0x69, 0xc0, 0x29, 0x11, 0xfa, 0x26, 0x4b, 0x76, + 0xb1, 0x96, 0x85, 0xf1, 0x7b, 0xe8, 0x42, 0x07, 0x50, 0xb4, 0x35, 0x43, 0x37, 0x67, 0xe4, 0x37, + 0x98, 0x97, 0xe4, 0x82, 0xb2, 0x20, 0x34, 0xfe, 0x94, 0x86, 0x8d, 0xd0, 0x56, 0x48, 0x81, 0x6d, + 0x5d, 0xbc, 0xab, 0xf6, 0x7c, 0x8a, 0x55, 0x9d, 0x3b, 0x45, 0xa0, 0xfb, 0xae, 0x1c, 0x94, 0x65, + 0xd7, 0xbd, 0xb9, 0xa3, 0x20, 0x7d, 0xd9, 0xa1, 0xbf, 0x80, 0x5a, 0x50, 0x27, 0xf1, 0x1d, 0xc4, + 0x8d, 0x2d, 0xb5, 0x1a, 0x71, 0x7a, 0x17, 0xae, 0x7c, 0x73, 0x47, 0xd9, 0xd5, 0xa3, 0x9d, 0xbc, + 0x64, 0xf3, 0x98, 0x3b, 0x8c, 0x7f, 0x70, 0x82, 0xcd, 0xae, 0x5b, 0xc3, 0x36, 0xbb, 0xd4, 0x97, + 0x39, 0x58, 0x63, 0xaa, 0x1a, 0xbf, 0xcd, 0x48, 0xa7, 0x5a, 0x79, 0xb5, 0x07, 0xb4, 0x4f, 0x5c, + 0x41, 0xe1, 0xa0, 0x5a, 0xdc, 0x66, 0x0a, 0x97, 0x62, 0xd8, 0xf2, 0x20, 0xe9, 0x0d, 0x57, 0x05, + 0xea, 0x02, 0xd2, 0x41, 0x4f, 0x61, 0x73, 0x42, 0x74, 0xac, 0x5a, 0x13, 0xd3, 0xc0, 0xf2, 0x64, + 0x5d, 0x50, 0x36, 0x18, 0x63, 0xc0, 0xe8, 0x62, 0x58, 0x8a, 0x98, 0x5f, 0x72, 0x91, 0xf3, 0x8b, + 0xd7, 0xa8, 0xd7, 0x62, 0x1a, 0x75, 0x36, 0xd4, 0xa8, 0x4f, 0x01, 0xa4, 0x26, 0x95, 0x0f, 0x9d, + 0xfe, 0x92, 0x5c, 0xd1, 0x0c, 0xf7, 0x28, 0x49, 0x51, 0xfd, 0x33, 0xd8, 0xf8, 0x5f, 0xba, 0xca, + 0x9f, 0x33, 0x7c, 0x0e, 0x08, 0x42, 0xe3, 0xdc, 0x44, 0xcf, 0x60, 0x9b, 0xa5, 0x79, 0x08, 0x5e, + 0x5e, 0xba, 0x6f, 0x3a, 0xc4, 0x0a, 0x2c, 0xd1, 0xfd, 0x70, 0xa5, 0x6f, 0x1f, 0xae, 0xcc, 0x2a, + 0xe1, 0x5a, 0x5b, 0x39, 0x5c, 0xf9, 0xc4, 0x70, 0x65, 0x63, 0xc2, 0x95, 0x0b, 0x85, 0xeb, 0x38, + 0x10, 0xae, 0x02, 0x0f, 0xd7, 0x27, 0xf1, 0xd9, 0x74, 0x6e, 0x7e, 0x9d, 0x51, 0x5a, 0xb4, 0x9c, + 0x08, 0x78, 0x48, 0x2d, 0x27, 0xc8, 0x5d, 0xa1, 0xe5, 0x84, 0x3f, 0xc2, 0x2b, 0xff, 0x27, 0x70, + 0xe0, 0x97, 0xff, 0xa8, 0xe4, 0xbc, 0x2d, 0x3c, 0x1a, 0x7f, 0xcc, 0xc1, 0xbe, 0x8f, 0xf1, 0x81, + 0x66, 0x53, 0x32, 0x26, 0x96, 0x66, 0xd0, 0x95, 0xdb, 0x0a, 0xba, 0x0b, 0x25, 0x26, 0xc1, 0x27, + 0x13, 0x6a, 0x0a, 0x1f, 0x15, 0x1d, 0x62, 0xb1, 0xc2, 0x32, 0x32, 0x83, 0xdd, 0x25, 0x13, 0xea, + 0x2e, 0xdf, 0x86, 0x6d, 0x6b, 0xb1, 0xa9, 0x4a, 0x74, 0x6c, 0x50, 0x42, 0xaf, 0x45, 0xf2, 0x6e, + 0x49, 0xbc, 0x9e, 0x60, 0xa1, 0x27, 0x50, 0x95, 0x97, 0x48, 0x47, 0xde, 0x0d, 0x89, 0x1e, 0xa5, + 0xdd, 0xc7, 0x54, 0x61, 0x49, 0xfb, 0xe7, 0x1e, 0xbc, 0xae, 0x60, 0x57, 0x5e, 0x22, 0x41, 0xcd, + 0x3d, 0x12, 0xff, 0x70, 0xb9, 0x32, 0x2c, 0x7b, 0xad, 0x29, 0x91, 0xc2, 0xe8, 0xdb, 0xb1, 0xa2, + 0x78, 0x2c, 0x0d, 0x74, 0x3a, 0x3b, 0xf7, 0xd2, 0x80, 0x3d, 0xa3, 0x47, 0xb0, 0x6e, 0x4d, 0xb5, + 0x6b, 0x95, 0x8d, 0x82, 0xd4, 0x34, 0xdc, 0x6b, 0x98, 0x02, 0xbf, 0xe2, 0x29, 0x33, 0x86, 0x22, + 0xe8, 0xec, 0x74, 0xcf, 0x05, 0x75, 0xa2, 0x4d, 0xb9, 0xa0, 0x98, 0xea, 0x18, 0xb1, 0x2b, 0x68, + 0xd1, 0xd9, 0x0b, 0xd1, 0xd9, 0xfb, 0x0d, 0x9a, 0x58, 0xbf, 0x05, 0x65, 0x77, 0x56, 0x55, 0xf9, + 0x8c, 0xca, 0xaf, 0xf8, 0x0a, 0x4a, 0xc9, 0xa5, 0xbd, 0x65, 0xa4, 0xfa, 0x1b, 0xa8, 0xc7, 0x3b, + 0xfc, 0x56, 0xf9, 0xfc, 0xb7, 0x14, 0xa0, 0x60, 0x44, 0x79, 0xd1, 0x7d, 0x08, 0x95, 0x20, 0x4a, + 0x85, 0xb6, 0xf5, 0x00, 0x3e, 0x63, 0xc1, 0x9c, 0x8e, 0x07, 0x73, 0x62, 0x72, 0xc8, 0x99, 0x45, + 0x74, 0x91, 0x13, 0x5e, 0x66, 0xf5, 0xf4, 0xc6, 0xdf, 0x53, 0x70, 0xc8, 0x87, 0xc5, 0x73, 0x6c, + 0x47, 0x67, 0x6f, 0x9c, 0x45, 0xa9, 0x15, 0x2d, 0x4a, 0x87, 0x2c, 0xba, 0x07, 0x25, 0x2a, 0x36, + 0x64, 0xb9, 0xee, 0x1a, 0x0c, 0x1e, 0x69, 0x64, 0x2e, 0x23, 0x71, 0x6d, 0x19, 0x89, 0x8d, 0x7f, + 0x64, 0xa0, 0x34, 0xec, 0x0d, 0xf8, 0x57, 0x30, 0xf7, 0x7e, 0x00, 0x79, 0xef, 0x1b, 0x5d, 0xc3, + 0x72, 0x63, 0xfe, 0x81, 0x68, 0x0f, 0x0a, 0x7e, 0xe1, 0x71, 0x4d, 0xc9, 0x8b, 0x66, 0x94, 0xec, + 0xb8, 0x0f, 0x20, 0xcf, 0x99, 0xbe, 0xd3, 0x72, 0xec, 0x35, 0x21, 0x42, 0xd9, 0x78, 0x7f, 0x3c, + 0x85, 0xc2, 0xb9, 0x6d, 0xce, 0xd4, 0xb9, 0x4d, 0x78, 0xfe, 0x95, 0x5a, 0x1b, 0x72, 0xa1, 0x3e, + 0xb5, 0x89, 0x92, 0x67, 0x02, 0xa7, 0x36, 0x41, 0x1f, 0x41, 0x8e, 0x9a, 0x5c, 0x32, 0x1f, 0x2d, + 0x99, 0xa5, 0x26, 0x93, 0xfb, 0x2e, 0x94, 0xf8, 0x07, 0x3b, 0x54, 0xa3, 0x73, 0x87, 0x97, 0xa3, + 0x4a, 0x6b, 0x57, 0x16, 0x66, 0xbe, 0x19, 0x72, 0xae, 0x02, 0x63, 0xff, 0x19, 0x1d, 0x02, 0x38, + 0x54, 0xb3, 0x29, 0xd6, 0x55, 0x8d, 0xf2, 0x1b, 0xd1, 0x8c, 0x52, 0x14, 0x94, 0x36, 0x65, 0xfe, + 0xc2, 0x86, 0xee, 0x32, 0x81, 0x33, 0xf3, 0xfc, 0xbd, 0x4d, 0xd1, 0x2b, 0xd8, 0xd4, 0x89, 0x33, + 0x36, 0x0d, 0x03, 0x8f, 0xa9, 0x6a, 0x63, 0xcd, 0x31, 0x0d, 0x9e, 0xd3, 0x95, 0xd6, 0x9e, 0xbf, + 0x71, 0xd7, 0x97, 0x50, 0xb8, 0x80, 0x52, 0xd5, 0x43, 0x94, 0xc6, 0x1f, 0x52, 0x90, 0x73, 0x3f, + 0x86, 0x95, 0xac, 0xb9, 0x83, 0x6d, 0x11, 0x33, 0xfe, 0xcc, 0x68, 0x13, 0xd3, 0xa1, 0xde, 0x2d, + 0x09, 0x7b, 0x46, 0x15, 0x48, 0x13, 0x4b, 0xc4, 0x28, 0x4d, 0x2c, 0x26, 0xc3, 0xaf, 0x3e, 0xc4, + 0x01, 0x8d, 0x5f, 0x6f, 0xbc, 0xcf, 0x9d, 0xc8, 0xd3, 0x4b, 0xf1, 0x9f, 0xc0, 0xbb, 0x23, 0xd9, + 0xe5, 0xc9, 0xab, 0x8e, 0x94, 0x76, 0x7f, 0x38, 0x38, 0x51, 0x46, 0x6a, 0xfb, 0x74, 0x74, 0x52, + 0xbd, 0x83, 0x76, 0x60, 0x33, 0x48, 0x3f, 0xed, 0x0e, 0xaa, 0xa9, 0x65, 0xf2, 0xa8, 0x33, 0xa8, + 0xa6, 0x23, 0xc8, 0xc7, 0xc3, 0x6a, 0xe6, 0xe9, 0x04, 0xd6, 0x03, 0x71, 0xe1, 0x72, 0x9d, 0xa1, + 0xda, 0x69, 0x1f, 0x1f, 0xab, 0xbd, 0x7e, 0xe7, 0xe4, 0xf3, 0x5e, 0xff, 0x75, 0xf5, 0x0e, 0xaa, + 0xc3, 0x2e, 0x23, 0x0f, 0xda, 0xca, 0xa8, 0xd7, 0xe9, 0x0d, 0xda, 0xfd, 0x91, 0xfa, 0xa3, 0x93, + 0x5e, 0xff, 0xa8, 0x5b, 0x4d, 0xa1, 0x0a, 0x00, 0xe3, 0xb5, 0x3b, 0xa3, 0xde, 0x4f, 0x8e, 0xaa, + 0x69, 0xb4, 0x0d, 0x55, 0xf6, 0xde, 0xed, 0x0d, 0x3b, 0x27, 0xfd, 0xfe, 0x51, 0x67, 0x74, 0xd4, + 0xad, 0x66, 0x5a, 0xff, 0x2c, 0x42, 0x66, 0xd8, 0x1b, 0xa0, 0x01, 0x94, 0xe5, 0xc1, 0x18, 0x2d, + 0x0e, 0x08, 0x11, 0xa3, 0x74, 0xfd, 0x30, 0x86, 0xeb, 0x1e, 0x36, 0x1a, 0x99, 0xdf, 0xa7, 0x53, + 0xe8, 0x4b, 0xe9, 0xc7, 0x99, 0x3c, 0xd4, 0xa2, 0x87, 0xcb, 0x5d, 0x2d, 0x62, 0x86, 0xae, 0x27, + 0x4e, 0xc5, 0x48, 0x85, 0xdd, 0xe8, 0x2b, 0x3b, 0xf4, 0xd1, 0xb2, 0xfa, 0xa8, 0x89, 0xb9, 0x9e, + 0x3c, 0x02, 0xa3, 0x9f, 0x03, 0x5a, 0xbe, 0x2a, 0x41, 0x8b, 0x51, 0x2a, 0xf6, 0x1a, 0xa6, 0xfe, + 0x20, 0x51, 0x46, 0x9c, 0xc7, 0x7e, 0x09, 0x5b, 0x11, 0xf7, 0x1e, 0x28, 0xbc, 0x36, 0xd2, 0xf2, + 0x0f, 0x93, 0x85, 0x16, 0x3b, 0x44, 0xdc, 0x41, 0x48, 0x3b, 0xc4, 0xdf, 0x5f, 0x48, 0x3b, 0x24, + 0x5d, 0x63, 0x8c, 0xfd, 0xcb, 0x94, 0xe0, 0x47, 0x2c, 0xad, 0x8e, 0xfc, 0x8a, 0x87, 0x37, 0x48, + 0x89, 0x4d, 0x5e, 0x43, 0x25, 0x78, 0x07, 0x81, 0x16, 0x23, 0x67, 0xe4, 0xe5, 0x44, 0x3d, 0xfa, + 0xf2, 0x26, 0x80, 0xc7, 0xc0, 0x50, 0xfe, 0x70, 0xa5, 0xf9, 0xab, 0x9e, 0x78, 0x64, 0x96, 0xbc, + 0x1d, 0xd0, 0xbd, 0xe4, 0xed, 0x28, 0xcd, 0x1f, 0x26, 0x0b, 0x09, 0x47, 0x7c, 0x29, 0x5d, 0xc6, + 0xc4, 0xd8, 0x9f, 0x74, 0x5a, 0xbf, 0xc1, 0xfe, 0x2f, 0x60, 0x3b, 0xea, 0x8c, 0x29, 0xc5, 0x32, + 0xe1, 0x08, 0x5a, 0xdf, 0x97, 0x75, 0x87, 0x0f, 0x34, 0x3f, 0x85, 0xdd, 0xe8, 0x83, 0x83, 0x94, + 0xaa, 0x89, 0x27, 0x8b, 0xfa, 0xee, 0xd2, 0x11, 0xee, 0x68, 0x66, 0xd1, 0xeb, 0x97, 0xaf, 0x7e, + 0xf6, 0xe0, 0x82, 0xd0, 0xc9, 0xfc, 0xac, 0x39, 0x36, 0x67, 0xcf, 0x84, 0x2e, 0xf7, 0xef, 0xfe, + 0xd8, 0x9c, 0x7a, 0x84, 0xbf, 0xa6, 0xd7, 0x8f, 0xc9, 0x15, 0x7e, 0x4b, 0x68, 0x73, 0xc0, 0x58, + 0xff, 0x49, 0x57, 0xc4, 0xfb, 0x8b, 0x17, 0x9c, 0x70, 0x96, 0xe3, 0x4b, 0x9e, 0xff, 0x37, 0x00, + 0x00, 0xff, 0xff, 0x60, 0x0a, 0x83, 0xd4, 0x5c, 0x20, 0x00, 0x00, } diff --git a/protobufs/livekit_sip.proto b/protobufs/livekit_sip.proto index a98b099d..e1984213 100644 --- a/protobufs/livekit_sip.proto +++ b/protobufs/livekit_sip.proto @@ -416,7 +416,9 @@ message CreateSIPParticipantRequest { // Max call duration. google.protobuf.Duration max_call_duration = 12; - // NEXT ID: 14 + // Enable voice isolation for the callee. + bool enable_krisp = 14; + // NEXT ID: 15 } message SIPParticipantInfo { @@ -430,7 +432,7 @@ message TransferSIPParticipantRequest { string participant_identity = 1; string room_name = 2; string transfer_to = 3; - + // Optionally play dialtone to the SIP participant as an audible indicator of being transferred bool play_dialtone = 4; } diff --git a/protobufs/rpc/io.proto b/protobufs/rpc/io.proto index 1714db11..6c0caa18 100644 --- a/protobufs/rpc/io.proto +++ b/protobufs/rpc/io.proto @@ -21,6 +21,7 @@ option go_package = "github.com/livekit/protocol/rpc"; import "livekit_egress.proto"; import "livekit_ingress.proto"; import "livekit_sip.proto"; +import "rpc/sip.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/duration.proto"; @@ -185,11 +186,6 @@ message UpdateSIPCallStateRequest { // NEXT ID: 2 } -enum SIPFeature { - NONE = 0; - KRISP_ENABLED = 1; -} - enum SIPDispatchResult { LEGACY_ACCEPT_OR_PIN = 0; // check request_pin field ACCEPT = 1; diff --git a/protobufs/rpc/sip.proto b/protobufs/rpc/sip.proto index 91b80603..dbae405b 100644 --- a/protobufs/rpc/sip.proto +++ b/protobufs/rpc/sip.proto @@ -82,12 +82,14 @@ message InternalCreateSIPParticipantRequest { map headers = 21; map headers_to_attributes = 22; + repeated SIPFeature enabled_features = 25; + // Max time for the callee to answer the call. google.protobuf.Duration ringing_timeout = 23; // Max call duration. google.protobuf.Duration max_call_duration = 24; - // NEXT ID: 25 + // NEXT ID: 26 } message InternalCreateSIPParticipantResponse { @@ -99,7 +101,12 @@ message InternalCreateSIPParticipantResponse { message InternalTransferSIPParticipantRequest { string sip_call_id = 1; string transfer_to = 2; - + // Optionally play dialtone to the SIP participant as an audible indicator of being transferred bool play_dialtone = 3; } + +enum SIPFeature { + NONE = 0; + KRISP_ENABLED = 1; +} diff --git a/replay/cloud_replay.pb.go b/replay/cloud_replay.pb.go index 7ff9a4b5..668043da 100644 --- a/replay/cloud_replay.pb.go +++ b/replay/cloud_replay.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v5.28.0 +// protoc-gen-go v1.31.0 +// protoc v4.25.3 // source: cloud_replay.proto package replay @@ -491,7 +491,7 @@ func file_cloud_replay_proto_rawDescGZIP() []byte { } var file_cloud_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_cloud_replay_proto_goTypes = []any{ +var file_cloud_replay_proto_goTypes = []interface{}{ (*ListReplaysRequest)(nil), // 0: replay.ListReplaysRequest (*ListReplaysResponse)(nil), // 1: replay.ListReplaysResponse (*ReplayInfo)(nil), // 2: replay.ReplayInfo @@ -527,7 +527,7 @@ func file_cloud_replay_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_cloud_replay_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplaysRequest); i { case 0: return &v.state @@ -539,7 +539,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplaysResponse); i { case 0: return &v.state @@ -551,7 +551,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplayInfo); i { case 0: return &v.state @@ -563,7 +563,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadReplayRequest); i { case 0: return &v.state @@ -575,7 +575,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadReplayResponse); i { case 0: return &v.state @@ -587,7 +587,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomSeekRequest); i { case 0: return &v.state @@ -599,7 +599,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseReplayRequest); i { case 0: return &v.state @@ -611,7 +611,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteReplayRequest); i { case 0: return &v.state diff --git a/rpc/io.pb.go b/rpc/io.pb.go index 41b9b1c9..a927dccc 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -37,52 +37,6 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type SIPFeature int32 - -const ( - SIPFeature_NONE SIPFeature = 0 - SIPFeature_KRISP_ENABLED SIPFeature = 1 -) - -// Enum value maps for SIPFeature. -var ( - SIPFeature_name = map[int32]string{ - 0: "NONE", - 1: "KRISP_ENABLED", - } - SIPFeature_value = map[string]int32{ - "NONE": 0, - "KRISP_ENABLED": 1, - } -) - -func (x SIPFeature) Enum() *SIPFeature { - p := new(SIPFeature) - *p = x - return p -} - -func (x SIPFeature) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (SIPFeature) Descriptor() protoreflect.EnumDescriptor { - return file_rpc_io_proto_enumTypes[0].Descriptor() -} - -func (SIPFeature) Type() protoreflect.EnumType { - return &file_rpc_io_proto_enumTypes[0] -} - -func (x SIPFeature) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use SIPFeature.Descriptor instead. -func (SIPFeature) EnumDescriptor() ([]byte, []int) { - return file_rpc_io_proto_rawDescGZIP(), []int{0} -} - type SIPDispatchResult int32 const ( @@ -122,11 +76,11 @@ func (x SIPDispatchResult) String() string { } func (SIPDispatchResult) Descriptor() protoreflect.EnumDescriptor { - return file_rpc_io_proto_enumTypes[1].Descriptor() + return file_rpc_io_proto_enumTypes[0].Descriptor() } func (SIPDispatchResult) Type() protoreflect.EnumType { - return &file_rpc_io_proto_enumTypes[1] + return &file_rpc_io_proto_enumTypes[0] } func (x SIPDispatchResult) Number() protoreflect.EnumNumber { @@ -135,7 +89,7 @@ func (x SIPDispatchResult) Number() protoreflect.EnumNumber { // Deprecated: Use SIPDispatchResult.Descriptor instead. func (SIPDispatchResult) EnumDescriptor() ([]byte, []int) { - return file_rpc_io_proto_rawDescGZIP(), []int{1} + return file_rpc_io_proto_rawDescGZIP(), []int{0} } type GetEgressRequest struct { @@ -954,246 +908,244 @@ var file_rpc_io_proto_rawDesc = []byte{ 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x15, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x22, 0x2f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x64, 0x22, 0x87, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x76, 0x67, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x43, - 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x63, - 0x70, 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, - 0x6d, 0x61, 0x78, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4b, - 0x65, 0x79, 0x22, 0x88, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, - 0x06, 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, - 0x73, 0x55, 0x72, 0x6c, 0x12, 0x55, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, - 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x72, - 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, - 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x6f, - 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x4c, - 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x67, 0x0a, - 0x19, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x49, - 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x73, - 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, - 0x72, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, - 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, + 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x72, 0x70, 0x63, 0x2f, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, + 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x2f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, + 0x22, 0x87, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0d, 0x61, 0x76, 0x67, 0x5f, 0x63, 0x70, 0x75, 0x5f, 0x75, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x61, 0x76, 0x67, 0x43, 0x70, + 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x70, + 0x75, 0x5f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0b, 0x6d, + 0x61, 0x78, 0x43, 0x70, 0x75, 0x55, 0x73, 0x61, 0x67, 0x65, 0x22, 0x55, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x4b, 0x65, + 0x79, 0x22, 0x88, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x28, 0x0a, 0x04, + 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, + 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, + 0x55, 0x72, 0x6c, 0x12, 0x55, 0x0a, 0x0e, 0x6c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x66, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4c, 0x6f, 0x67, 0x67, 0x69, 0x6e, 0x67, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, 0x6c, 0x6f, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x1a, 0x40, 0x0a, 0x12, 0x4c, 0x6f, + 0x67, 0x67, 0x69, 0x6e, 0x67, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, + 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x67, 0x0a, 0x19, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, + 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x12, 0x1f, + 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x22, 0xb0, 0x01, 0x0a, 0x21, 0x47, 0x65, 0x74, + 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, + 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, + 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xf6, 0x03, 0x0a, 0x1f, + 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, + 0x30, 0x0a, 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, 0x52, + 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, + 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, + 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x61, 0x6c, + 0x6c, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x61, + 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x12, 0x17, 0x0a, 0x07, 0x74, 0x6f, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x74, 0x6f, 0x48, 0x6f, 0x73, 0x74, 0x22, 0xb0, 0x01, 0x0a, 0x21, 0x47, 0x65, - 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, - 0x61, 0x73, 0x73, 0x77, 0x6f, 0x72, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x72, 0x6f, 0x70, 0x12, 0x20, 0x0a, 0x0c, 0x73, - 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x49, 0x64, 0x22, 0xf6, 0x03, 0x0a, - 0x1f, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, - 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, - 0x12, 0x30, 0x0a, 0x12, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, - 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x02, 0x18, 0x01, - 0x52, 0x10, 0x73, 0x69, 0x70, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, - 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x61, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x61, - 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x63, - 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x72, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x72, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x70, 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x05, 0x6e, 0x6f, 0x50, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, - 0x6c, 0x6c, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x10, 0x65, - 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x72, - 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x52, 0x0f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x1a, 0x42, 0x0a, 0x14, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x94, 0x09, 0x0a, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, - 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, - 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x65, 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, - 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, - 0x73, 0x12, 0x23, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x50, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, - 0x77, 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, - 0x55, 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, - 0x75, 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, 0x64, 0x69, 0x73, - 0x70, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, - 0x65, 0x63, 0x74, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, - 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, - 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x12, 0x72, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, - 0x6f, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, - 0x0e, 0x32, 0x0f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, - 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x63, - 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, - 0x61, 0x78, 0x43, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x48, - 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, + 0x12, 0x10, 0x0a, 0x03, 0x70, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, + 0x69, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x6e, 0x6f, 0x5f, 0x70, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x05, 0x6e, 0x6f, 0x50, 0x69, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x6c, + 0x6c, 0x65, 0x64, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x61, 0x6c, 0x6c, 0x65, 0x64, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x64, 0x0a, 0x10, 0x65, 0x78, + 0x74, 0x72, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x09, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, + 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x45, 0x78, 0x74, 0x72, 0x61, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x1a, 0x42, 0x0a, 0x14, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, - 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, - 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x19, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x63, 0x61, 0x6c, - 0x6c, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0x29, 0x0a, 0x0a, - 0x53, 0x49, 0x50, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, - 0x4e, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4b, 0x52, 0x49, 0x53, 0x50, 0x5f, 0x45, 0x4e, - 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x2a, 0x60, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x44, 0x69, - 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x14, - 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, 0x5f, 0x4f, 0x52, - 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x43, 0x45, 0x50, 0x54, - 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, 0x54, 0x5f, 0x50, 0x49, - 0x4e, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x03, 0x12, - 0x08, 0x0a, 0x04, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x04, 0x32, 0xc1, 0x06, 0x0a, 0x06, 0x49, 0x4f, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x45, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x37, - 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x15, 0x2e, 0x72, 0x70, - 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x42, - 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0x94, 0x09, 0x0a, 0x20, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, + 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, 0x6f, + 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, + 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x77, 0x0a, 0x16, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x40, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x15, 0x70, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x12, 0x23, 0x0a, 0x0b, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x69, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x15, 0x0a, 0x06, 0x77, + 0x73, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x77, 0x73, 0x55, + 0x72, 0x6c, 0x12, 0x2e, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x0c, 0x73, 0x69, 0x70, 0x5f, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, + 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x69, 0x70, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x49, 0x64, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x69, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x70, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x11, 0x73, 0x69, 0x70, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, + 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x6a, 0x65, + 0x63, 0x74, 0x49, 0x64, 0x12, 0x4c, 0x0a, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, + 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, + 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x12, 0x72, 0x0a, 0x15, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x5f, 0x74, 0x6f, + 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x3e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, + 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x0f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x54, + 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x61, + 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, + 0x78, 0x43, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x48, 0x0a, + 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, + 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, + 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x4e, 0x0a, 0x19, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x31, 0x0a, 0x09, 0x63, 0x61, 0x6c, 0x6c, + 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x08, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x2a, 0x60, 0x0a, 0x11, 0x53, + 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x47, 0x41, 0x43, 0x59, 0x5f, 0x41, 0x43, 0x43, 0x45, 0x50, + 0x54, 0x5f, 0x4f, 0x52, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, + 0x43, 0x45, 0x50, 0x54, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x45, 0x51, 0x55, 0x45, 0x53, + 0x54, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x45, 0x4a, 0x45, 0x43, + 0x54, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x52, 0x4f, 0x50, 0x10, 0x04, 0x32, 0xc1, 0x06, + 0x0a, 0x06, 0x49, 0x4f, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3b, 0x0a, 0x0c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3b, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x49, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x74, 0x79, 0x12, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x15, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0a, 0x4c, + 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x42, 0x0a, 0x0d, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x12, 0x19, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x3d, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x14, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6a, + 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x72, 0x70, + 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, + 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x18, 0x45, 0x76, + 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, + 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, + 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, + 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, + 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x1b, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x12, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x6a, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, - 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, - 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x67, 0x0a, 0x18, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, - 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x73, 0x12, 0x24, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, - 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, - 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, - 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x4c, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x21, 0x5a, - 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x70, 0x63, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x42, 0x21, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1208,29 +1160,29 @@ func file_rpc_io_proto_rawDescGZIP() []byte { return file_rpc_io_proto_rawDescData } -var file_rpc_io_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_rpc_io_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_rpc_io_proto_msgTypes = make([]protoimpl.MessageInfo, 15) var file_rpc_io_proto_goTypes = []any{ - (SIPFeature)(0), // 0: rpc.SIPFeature - (SIPDispatchResult)(0), // 1: rpc.SIPDispatchResult - (*GetEgressRequest)(nil), // 2: rpc.GetEgressRequest - (*UpdateMetricsRequest)(nil), // 3: rpc.UpdateMetricsRequest - (*GetIngressInfoRequest)(nil), // 4: rpc.GetIngressInfoRequest - (*GetIngressInfoResponse)(nil), // 5: rpc.GetIngressInfoResponse - (*UpdateIngressStateRequest)(nil), // 6: rpc.UpdateIngressStateRequest - (*GetSIPTrunkAuthenticationRequest)(nil), // 7: rpc.GetSIPTrunkAuthenticationRequest - (*GetSIPTrunkAuthenticationResponse)(nil), // 8: rpc.GetSIPTrunkAuthenticationResponse - (*EvaluateSIPDispatchRulesRequest)(nil), // 9: rpc.EvaluateSIPDispatchRulesRequest - (*EvaluateSIPDispatchRulesResponse)(nil), // 10: rpc.EvaluateSIPDispatchRulesResponse - (*UpdateSIPCallStateRequest)(nil), // 11: rpc.UpdateSIPCallStateRequest - nil, // 12: rpc.GetIngressInfoResponse.LoggingFieldsEntry - nil, // 13: rpc.EvaluateSIPDispatchRulesRequest.ExtraAttributesEntry - nil, // 14: rpc.EvaluateSIPDispatchRulesResponse.ParticipantAttributesEntry - nil, // 15: rpc.EvaluateSIPDispatchRulesResponse.HeadersEntry - nil, // 16: rpc.EvaluateSIPDispatchRulesResponse.HeadersToAttributesEntry - (*livekit.EgressInfo)(nil), // 17: livekit.EgressInfo - (*livekit.IngressInfo)(nil), // 18: livekit.IngressInfo - (*livekit.IngressState)(nil), // 19: livekit.IngressState + (SIPDispatchResult)(0), // 0: rpc.SIPDispatchResult + (*GetEgressRequest)(nil), // 1: rpc.GetEgressRequest + (*UpdateMetricsRequest)(nil), // 2: rpc.UpdateMetricsRequest + (*GetIngressInfoRequest)(nil), // 3: rpc.GetIngressInfoRequest + (*GetIngressInfoResponse)(nil), // 4: rpc.GetIngressInfoResponse + (*UpdateIngressStateRequest)(nil), // 5: rpc.UpdateIngressStateRequest + (*GetSIPTrunkAuthenticationRequest)(nil), // 6: rpc.GetSIPTrunkAuthenticationRequest + (*GetSIPTrunkAuthenticationResponse)(nil), // 7: rpc.GetSIPTrunkAuthenticationResponse + (*EvaluateSIPDispatchRulesRequest)(nil), // 8: rpc.EvaluateSIPDispatchRulesRequest + (*EvaluateSIPDispatchRulesResponse)(nil), // 9: rpc.EvaluateSIPDispatchRulesResponse + (*UpdateSIPCallStateRequest)(nil), // 10: rpc.UpdateSIPCallStateRequest + nil, // 11: rpc.GetIngressInfoResponse.LoggingFieldsEntry + nil, // 12: rpc.EvaluateSIPDispatchRulesRequest.ExtraAttributesEntry + nil, // 13: rpc.EvaluateSIPDispatchRulesResponse.ParticipantAttributesEntry + nil, // 14: rpc.EvaluateSIPDispatchRulesResponse.HeadersEntry + nil, // 15: rpc.EvaluateSIPDispatchRulesResponse.HeadersToAttributesEntry + (*livekit.EgressInfo)(nil), // 16: livekit.EgressInfo + (*livekit.IngressInfo)(nil), // 17: livekit.IngressInfo + (*livekit.IngressState)(nil), // 18: livekit.IngressState + (SIPFeature)(0), // 19: rpc.SIPFeature (*durationpb.Duration)(nil), // 20: google.protobuf.Duration (*livekit.SIPCallInfo)(nil), // 21: livekit.SIPCallInfo (*livekit.ListEgressRequest)(nil), // 22: livekit.ListEgressRequest @@ -1238,40 +1190,40 @@ var file_rpc_io_proto_goTypes = []any{ (*livekit.ListEgressResponse)(nil), // 24: livekit.ListEgressResponse } var file_rpc_io_proto_depIdxs = []int32{ - 17, // 0: rpc.UpdateMetricsRequest.info:type_name -> livekit.EgressInfo - 18, // 1: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo - 12, // 2: rpc.GetIngressInfoResponse.logging_fields:type_name -> rpc.GetIngressInfoResponse.LoggingFieldsEntry - 19, // 3: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState - 13, // 4: rpc.EvaluateSIPDispatchRulesRequest.extra_attributes:type_name -> rpc.EvaluateSIPDispatchRulesRequest.ExtraAttributesEntry - 14, // 5: rpc.EvaluateSIPDispatchRulesResponse.participant_attributes:type_name -> rpc.EvaluateSIPDispatchRulesResponse.ParticipantAttributesEntry - 1, // 6: rpc.EvaluateSIPDispatchRulesResponse.result:type_name -> rpc.SIPDispatchResult - 15, // 7: rpc.EvaluateSIPDispatchRulesResponse.headers:type_name -> rpc.EvaluateSIPDispatchRulesResponse.HeadersEntry - 16, // 8: rpc.EvaluateSIPDispatchRulesResponse.headers_to_attributes:type_name -> rpc.EvaluateSIPDispatchRulesResponse.HeadersToAttributesEntry - 0, // 9: rpc.EvaluateSIPDispatchRulesResponse.enabled_features:type_name -> rpc.SIPFeature + 16, // 0: rpc.UpdateMetricsRequest.info:type_name -> livekit.EgressInfo + 17, // 1: rpc.GetIngressInfoResponse.info:type_name -> livekit.IngressInfo + 11, // 2: rpc.GetIngressInfoResponse.logging_fields:type_name -> rpc.GetIngressInfoResponse.LoggingFieldsEntry + 18, // 3: rpc.UpdateIngressStateRequest.state:type_name -> livekit.IngressState + 12, // 4: rpc.EvaluateSIPDispatchRulesRequest.extra_attributes:type_name -> rpc.EvaluateSIPDispatchRulesRequest.ExtraAttributesEntry + 13, // 5: rpc.EvaluateSIPDispatchRulesResponse.participant_attributes:type_name -> rpc.EvaluateSIPDispatchRulesResponse.ParticipantAttributesEntry + 0, // 6: rpc.EvaluateSIPDispatchRulesResponse.result:type_name -> rpc.SIPDispatchResult + 14, // 7: rpc.EvaluateSIPDispatchRulesResponse.headers:type_name -> rpc.EvaluateSIPDispatchRulesResponse.HeadersEntry + 15, // 8: rpc.EvaluateSIPDispatchRulesResponse.headers_to_attributes:type_name -> rpc.EvaluateSIPDispatchRulesResponse.HeadersToAttributesEntry + 19, // 9: rpc.EvaluateSIPDispatchRulesResponse.enabled_features:type_name -> rpc.SIPFeature 20, // 10: rpc.EvaluateSIPDispatchRulesResponse.ringing_timeout:type_name -> google.protobuf.Duration 20, // 11: rpc.EvaluateSIPDispatchRulesResponse.max_call_duration:type_name -> google.protobuf.Duration 21, // 12: rpc.UpdateSIPCallStateRequest.call_info:type_name -> livekit.SIPCallInfo - 17, // 13: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo - 17, // 14: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo - 2, // 15: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest + 16, // 13: rpc.IOInfo.CreateEgress:input_type -> livekit.EgressInfo + 16, // 14: rpc.IOInfo.UpdateEgress:input_type -> livekit.EgressInfo + 1, // 15: rpc.IOInfo.GetEgress:input_type -> rpc.GetEgressRequest 22, // 16: rpc.IOInfo.ListEgress:input_type -> livekit.ListEgressRequest - 3, // 17: rpc.IOInfo.UpdateMetrics:input_type -> rpc.UpdateMetricsRequest - 18, // 18: rpc.IOInfo.CreateIngress:input_type -> livekit.IngressInfo - 4, // 19: rpc.IOInfo.GetIngressInfo:input_type -> rpc.GetIngressInfoRequest - 6, // 20: rpc.IOInfo.UpdateIngressState:input_type -> rpc.UpdateIngressStateRequest - 7, // 21: rpc.IOInfo.GetSIPTrunkAuthentication:input_type -> rpc.GetSIPTrunkAuthenticationRequest - 9, // 22: rpc.IOInfo.EvaluateSIPDispatchRules:input_type -> rpc.EvaluateSIPDispatchRulesRequest - 11, // 23: rpc.IOInfo.UpdateSIPCallState:input_type -> rpc.UpdateSIPCallStateRequest + 2, // 17: rpc.IOInfo.UpdateMetrics:input_type -> rpc.UpdateMetricsRequest + 17, // 18: rpc.IOInfo.CreateIngress:input_type -> livekit.IngressInfo + 3, // 19: rpc.IOInfo.GetIngressInfo:input_type -> rpc.GetIngressInfoRequest + 5, // 20: rpc.IOInfo.UpdateIngressState:input_type -> rpc.UpdateIngressStateRequest + 6, // 21: rpc.IOInfo.GetSIPTrunkAuthentication:input_type -> rpc.GetSIPTrunkAuthenticationRequest + 8, // 22: rpc.IOInfo.EvaluateSIPDispatchRules:input_type -> rpc.EvaluateSIPDispatchRulesRequest + 10, // 23: rpc.IOInfo.UpdateSIPCallState:input_type -> rpc.UpdateSIPCallStateRequest 23, // 24: rpc.IOInfo.CreateEgress:output_type -> google.protobuf.Empty 23, // 25: rpc.IOInfo.UpdateEgress:output_type -> google.protobuf.Empty - 17, // 26: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo + 16, // 26: rpc.IOInfo.GetEgress:output_type -> livekit.EgressInfo 24, // 27: rpc.IOInfo.ListEgress:output_type -> livekit.ListEgressResponse 23, // 28: rpc.IOInfo.UpdateMetrics:output_type -> google.protobuf.Empty 23, // 29: rpc.IOInfo.CreateIngress:output_type -> google.protobuf.Empty - 5, // 30: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse + 4, // 30: rpc.IOInfo.GetIngressInfo:output_type -> rpc.GetIngressInfoResponse 23, // 31: rpc.IOInfo.UpdateIngressState:output_type -> google.protobuf.Empty - 8, // 32: rpc.IOInfo.GetSIPTrunkAuthentication:output_type -> rpc.GetSIPTrunkAuthenticationResponse - 10, // 33: rpc.IOInfo.EvaluateSIPDispatchRules:output_type -> rpc.EvaluateSIPDispatchRulesResponse + 7, // 32: rpc.IOInfo.GetSIPTrunkAuthentication:output_type -> rpc.GetSIPTrunkAuthenticationResponse + 9, // 33: rpc.IOInfo.EvaluateSIPDispatchRules:output_type -> rpc.EvaluateSIPDispatchRulesResponse 23, // 34: rpc.IOInfo.UpdateSIPCallState:output_type -> google.protobuf.Empty 24, // [24:35] is the sub-list for method output_type 13, // [13:24] is the sub-list for method input_type @@ -1285,12 +1237,13 @@ func file_rpc_io_proto_init() { if File_rpc_io_proto != nil { return } + file_rpc_sip_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_io_proto_rawDesc, - NumEnums: 2, + NumEnums: 1, NumMessages: 15, NumExtensions: 0, NumServices: 1, diff --git a/rpc/io.psrpc.go b/rpc/io.psrpc.go index 1cb3823c..1b806559 100644 --- a/rpc/io.psrpc.go +++ b/rpc/io.psrpc.go @@ -294,95 +294,93 @@ func (s *iOInfoServer) Kill() { } var psrpcFileDescriptor4 = []byte{ - // 1431 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xdb, 0x56, 0xdb, 0x46, - 0x17, 0x8e, 0x6d, 0x70, 0xf0, 0x36, 0xd8, 0x66, 0x62, 0xf8, 0x8d, 0x59, 0x7f, 0x42, 0x9c, 0xa6, - 0x25, 0xe9, 0x5a, 0xa6, 0xa1, 0x17, 0x6d, 0xd3, 0xd5, 0xae, 0x70, 0x50, 0x88, 0x1a, 0x02, 0xae, - 0x80, 0x8b, 0xf6, 0x46, 0x1d, 0xa4, 0xc1, 0x28, 0xc8, 0x1a, 0x75, 0x66, 0x04, 0xe1, 0x09, 0xda, - 0x07, 0xe8, 0x03, 0xf4, 0x11, 0xfa, 0x0a, 0x7d, 0xa9, 0x5e, 0x77, 0xcd, 0x41, 0x46, 0xc6, 0x72, - 0x80, 0xde, 0x69, 0xf6, 0x69, 0xbe, 0x7d, 0x1a, 0x7f, 0x86, 0x59, 0x16, 0x7b, 0x6b, 0x01, 0xed, - 0xc6, 0x8c, 0x0a, 0x8a, 0x4a, 0x2c, 0xf6, 0xda, 0xcd, 0x30, 0x38, 0x27, 0x67, 0x81, 0x70, 0x49, - 0x9f, 0x11, 0xce, 0xb5, 0xaa, 0xbd, 0x90, 0x4a, 0x83, 0x28, 0x2b, 0x9e, 0x4f, 0xc5, 0x3c, 0x88, - 0x8d, 0x68, 0xb9, 0x4f, 0x69, 0x3f, 0x24, 0x6b, 0xea, 0x74, 0x9c, 0x9c, 0xac, 0x91, 0x41, 0x2c, - 0x2e, 0x8d, 0xf2, 0xe1, 0x75, 0xa5, 0x9f, 0x30, 0x2c, 0x02, 0x1a, 0x69, 0x7d, 0x67, 0x0d, 0x1a, - 0x3b, 0x44, 0x58, 0xea, 0x0a, 0x87, 0xfc, 0x9a, 0x10, 0x2e, 0xd0, 0x32, 0x54, 0x34, 0x14, 0x37, - 0xf0, 0x5b, 0x85, 0x95, 0xc2, 0x6a, 0xc5, 0x99, 0xd1, 0x02, 0xdb, 0xef, 0xfc, 0x56, 0x80, 0xe6, - 0x51, 0xec, 0x63, 0x41, 0xde, 0x11, 0xc1, 0x02, 0x6f, 0xe8, 0xf5, 0x19, 0x4c, 0x05, 0xd1, 0x09, - 0x55, 0x0e, 0xd5, 0xf5, 0x07, 0x5d, 0x03, 0xb4, 0xab, 0x63, 0xdb, 0xd1, 0x09, 0x75, 0x94, 0x01, - 0xea, 0xc0, 0x1c, 0x3e, 0xef, 0xbb, 0x5e, 0x9c, 0xb8, 0x09, 0xc7, 0x7d, 0xd2, 0x2a, 0xad, 0x14, - 0x56, 0x8b, 0x4e, 0x15, 0x9f, 0xf7, 0xb7, 0xe2, 0xe4, 0x48, 0x8a, 0xa4, 0xcd, 0x00, 0x7f, 0xc8, - 0xd8, 0x4c, 0x69, 0x9b, 0x01, 0xfe, 0x90, 0xda, 0x74, 0x8e, 0x60, 0x61, 0x87, 0x08, 0x3b, 0xba, - 0x8a, 0x6f, 0x90, 0xfc, 0x1f, 0xc0, 0x14, 0xed, 0x2a, 0x81, 0x8a, 0x91, 0xd8, 0xbe, 0x54, 0x73, - 0xc1, 0x08, 0x1e, 0xb8, 0x67, 0xe4, 0xb2, 0x55, 0xd4, 0x6a, 0x2d, 0x79, 0x4b, 0x2e, 0x3b, 0xbf, - 0x17, 0x61, 0xf1, 0x7a, 0x5c, 0x1e, 0xd3, 0x88, 0x13, 0xb4, 0x3a, 0x92, 0x62, 0x73, 0x98, 0x62, - 0xd6, 0x56, 0xe7, 0xd8, 0x84, 0x69, 0x41, 0xcf, 0x48, 0x64, 0xc2, 0xeb, 0x03, 0x5a, 0x80, 0xf2, - 0x05, 0x77, 0x13, 0x16, 0xaa, 0x94, 0x2b, 0xce, 0xf4, 0x05, 0x3f, 0x62, 0x21, 0x3a, 0x82, 0x5a, - 0x48, 0xfb, 0xfd, 0x20, 0xea, 0xbb, 0x27, 0x01, 0x09, 0x7d, 0xde, 0x9a, 0x5a, 0x29, 0xad, 0x56, - 0xd7, 0xbb, 0x5d, 0x16, 0x7b, 0xdd, 0x7c, 0x2c, 0xdd, 0x5d, 0xed, 0xf1, 0x5a, 0x39, 0x58, 0x91, - 0x60, 0x97, 0xce, 0x5c, 0x98, 0x95, 0xb5, 0x5f, 0x01, 0x1a, 0x37, 0x42, 0x0d, 0x28, 0xc9, 0xb4, - 0x75, 0x55, 0xe4, 0xa7, 0xc4, 0x7a, 0x8e, 0xc3, 0x84, 0xa4, 0x58, 0xd5, 0xe1, 0x65, 0xf1, 0xeb, - 0x42, 0xa7, 0x0f, 0x4b, 0xba, 0xd5, 0x06, 0xc0, 0x81, 0xc0, 0x82, 0xdc, 0xb2, 0xca, 0x9f, 0xc3, - 0x34, 0x97, 0xe6, 0x2a, 0x6a, 0x75, 0x7d, 0xe1, 0x7a, 0xb1, 0x74, 0x2c, 0x6d, 0xd3, 0xf9, 0xb3, - 0x00, 0x2b, 0x3b, 0x44, 0x1c, 0xd8, 0xbd, 0x43, 0x96, 0x44, 0x67, 0x1b, 0x89, 0x38, 0x25, 0x91, - 0x08, 0x3c, 0x35, 0xa9, 0xe9, 0x85, 0x0f, 0xa1, 0xca, 0x83, 0xd8, 0xf5, 0x70, 0x18, 0xca, 0x1b, - 0xcb, 0xa6, 0x71, 0x41, 0xbc, 0x85, 0xc3, 0xd0, 0xf6, 0x11, 0x82, 0xa9, 0x13, 0x46, 0x07, 0x26, - 0x0d, 0xf5, 0x8d, 0x6a, 0x50, 0x14, 0xd4, 0x54, 0xbb, 0x28, 0x28, 0x7a, 0x04, 0x55, 0xce, 0x3c, - 0x17, 0xfb, 0xbe, 0xc4, 0xa0, 0xa6, 0xaa, 0xe2, 0x00, 0x67, 0xde, 0x86, 0x96, 0xa0, 0xff, 0xc1, - 0x7d, 0x41, 0xdd, 0x53, 0xca, 0x45, 0x6b, 0x5a, 0x29, 0xcb, 0x82, 0xbe, 0xa1, 0x5c, 0x74, 0xfe, - 0x2a, 0xc0, 0xe3, 0x8f, 0x40, 0x34, 0x13, 0xd2, 0x86, 0x99, 0x84, 0x13, 0x16, 0xe1, 0x01, 0x49, - 0x37, 0x27, 0x3d, 0x4b, 0x5d, 0x8c, 0x39, 0xbf, 0xa0, 0xcc, 0x37, 0x18, 0x87, 0x67, 0x89, 0xdd, - 0x67, 0x34, 0x56, 0x48, 0x67, 0x1c, 0xf5, 0x8d, 0x56, 0x60, 0x56, 0xe6, 0x2b, 0xe4, 0x75, 0x32, - 0xe1, 0x14, 0x6c, 0x10, 0x2b, 0x04, 0x7a, 0x92, 0x63, 0x46, 0xdf, 0x13, 0x4f, 0x48, 0xbd, 0xc6, - 0x5b, 0x31, 0x12, 0xdb, 0xef, 0xfc, 0x53, 0x82, 0x47, 0x96, 0xec, 0x26, 0x16, 0xe4, 0xc0, 0xee, - 0x6d, 0x07, 0x3c, 0xc6, 0xc2, 0x3b, 0x75, 0x92, 0x90, 0xf0, 0x09, 0x45, 0x9d, 0xb9, 0x5e, 0xd4, - 0x2f, 0x00, 0x49, 0x7d, 0x8c, 0x99, 0x08, 0xbc, 0x20, 0xc6, 0x91, 0x18, 0x76, 0x7b, 0xb3, 0xd8, - 0x2a, 0x38, 0x0d, 0x1e, 0xc4, 0xbd, 0x2b, 0xa5, 0xed, 0x8f, 0xc1, 0x86, 0x31, 0xd8, 0x4f, 0xa1, - 0x26, 0xef, 0x93, 0xf3, 0x1e, 0x25, 0x83, 0x63, 0xc2, 0x4c, 0x39, 0xe6, 0x8c, 0x74, 0x4f, 0x09, - 0xd1, 0x13, 0x50, 0x02, 0xe2, 0xa7, 0x56, 0xba, 0x8d, 0xb3, 0x5a, 0x68, 0x8c, 0x6e, 0x6c, 0x68, - 0x03, 0x4a, 0x71, 0x10, 0x99, 0xe2, 0xc8, 0x4f, 0xb9, 0x85, 0x11, 0x75, 0xa5, 0xb0, 0xac, 0xaa, - 0x3d, 0x1d, 0xd1, 0x5e, 0x10, 0xc9, 0x48, 0xe6, 0x3a, 0xd5, 0xfd, 0xfb, 0x3a, 0x92, 0x16, 0xc9, - 0x09, 0x40, 0x3e, 0x34, 0xc8, 0x07, 0xc1, 0xb0, 0x8b, 0x85, 0x60, 0xc1, 0x71, 0x22, 0x08, 0x6f, - 0x55, 0xd4, 0xa2, 0x7e, 0xa3, 0x16, 0xf5, 0x86, 0x52, 0x77, 0x2d, 0xe9, 0xbc, 0x31, 0xf4, 0xd5, - 0x3b, 0x5b, 0x27, 0xa3, 0xd2, 0xf6, 0x26, 0x34, 0xf3, 0x0c, 0xef, 0xb4, 0xb7, 0x7f, 0x54, 0x60, - 0x65, 0x32, 0x1a, 0x33, 0xaa, 0xcb, 0x50, 0x61, 0x94, 0x0e, 0xdc, 0xec, 0xac, 0x4a, 0xc1, 0x9e, - 0x9c, 0xd5, 0x17, 0xd0, 0x1c, 0x6d, 0xb9, 0x9c, 0x75, 0x91, 0xbe, 0x96, 0x0f, 0xe2, 0x6c, 0xc7, - 0xb5, 0x0a, 0x3d, 0x83, 0x46, 0xd6, 0x45, 0x85, 0xd5, 0x45, 0xac, 0x67, 0xe4, 0x79, 0xd1, 0x07, - 0x44, 0x60, 0x1f, 0x0b, 0x6c, 0xa6, 0x2f, 0x1b, 0xfd, 0x9d, 0x51, 0xa1, 0x0b, 0x58, 0xcc, 0xba, - 0x64, 0x5a, 0x50, 0x55, 0x2d, 0x78, 0x75, 0x43, 0x0b, 0xcc, 0xab, 0x99, 0x19, 0xd5, 0xeb, 0x9d, - 0x58, 0x88, 0xf3, 0x74, 0xe8, 0x09, 0x54, 0x99, 0x6e, 0xa0, 0x1a, 0x19, 0xb5, 0xa0, 0x6a, 0xf2, - 0xc1, 0x88, 0xe5, 0xec, 0x0c, 0x9f, 0xfb, 0xa9, 0xfc, 0xe7, 0x7e, 0x3a, 0xfb, 0xdc, 0x77, 0xa1, - 0xcc, 0x08, 0x4f, 0x42, 0xa1, 0xe6, 0xaf, 0xb6, 0xbe, 0xa8, 0xa0, 0x67, 0x21, 0x2b, 0xad, 0x63, - 0xac, 0xc6, 0x16, 0xaa, 0x32, 0xb6, 0x50, 0x6b, 0xd0, 0x94, 0x16, 0xbe, 0xf1, 0x77, 0x59, 0x12, - 0x92, 0xab, 0xd5, 0x9b, 0xe7, 0x41, 0x9c, 0xad, 0xc6, 0xd8, 0xc3, 0x31, 0x7b, 0xed, 0xe1, 0x40, - 0xbb, 0x70, 0xff, 0x94, 0x60, 0x9f, 0x30, 0xde, 0x9a, 0x53, 0xd5, 0x5d, 0xbf, 0x5d, 0x75, 0xdf, - 0x68, 0x27, 0x5d, 0xcf, 0x34, 0x04, 0x62, 0xb0, 0x60, 0x3e, 0x5d, 0x41, 0xb3, 0x9d, 0xab, 0xa9, - 0xd8, 0xdf, 0xdf, 0x29, 0xf6, 0x21, 0xbd, 0xde, 0xb7, 0x07, 0xa7, 0xe3, 0x1a, 0xf4, 0x12, 0x1a, - 0x24, 0xc2, 0xc7, 0x72, 0x9b, 0x4f, 0x08, 0x16, 0x09, 0x23, 0xbc, 0x55, 0x5f, 0x29, 0xad, 0xd6, - 0xd6, 0xeb, 0x69, 0xb5, 0x5f, 0x6b, 0xb9, 0x53, 0x37, 0x86, 0xe6, 0xcc, 0xd1, 0x26, 0xd4, 0x59, - 0x10, 0xa9, 0x9f, 0x63, 0x11, 0x0c, 0x08, 0x4d, 0x44, 0xab, 0xa1, 0x7e, 0xc3, 0x96, 0xba, 0x9a, - 0x4c, 0x75, 0x53, 0x32, 0xd5, 0xdd, 0x36, 0x64, 0xca, 0xa9, 0x19, 0x8f, 0x43, 0xed, 0x80, 0x2c, - 0x98, 0x57, 0xfc, 0x45, 0x3e, 0xab, 0x29, 0xe3, 0x6a, 0xcd, 0xdf, 0x14, 0xa5, 0x2e, 0xe9, 0x0d, - 0x0e, 0xc3, 0x54, 0xd0, 0x7e, 0x03, 0xed, 0xc9, 0x13, 0x7b, 0x97, 0x27, 0xa1, 0xfd, 0x12, 0x66, - 0xb3, 0xdd, 0xb9, 0x93, 0xef, 0x6b, 0x68, 0x4d, 0xaa, 0xfe, 0x9d, 0x9e, 0xa5, 0xbd, 0x94, 0x4e, - 0x1c, 0xd8, 0x3d, 0x99, 0xe6, 0x08, 0x9d, 0x78, 0x01, 0x15, 0xfd, 0x23, 0x94, 0x47, 0xb0, 0x8c, - 0x83, 0x22, 0x40, 0x33, 0x9e, 0xf9, 0x7a, 0xfe, 0x0c, 0xe0, 0xaa, 0x8f, 0x68, 0x06, 0xa6, 0xf6, - 0xf6, 0xf7, 0xac, 0xc6, 0x3d, 0x34, 0x0f, 0x73, 0x6f, 0x1d, 0xfb, 0xa0, 0xe7, 0x5a, 0x7b, 0x1b, - 0x9b, 0xbb, 0xd6, 0x76, 0xa3, 0xf0, 0xfc, 0x17, 0x98, 0x1f, 0x5b, 0x30, 0xd4, 0x82, 0xe6, 0xae, - 0xb5, 0xb3, 0xb1, 0xf5, 0x93, 0xbb, 0xb1, 0xb5, 0x65, 0xf5, 0x0e, 0xdd, 0x7d, 0xc7, 0xed, 0xd9, - 0x7b, 0x8d, 0x7b, 0x08, 0xa0, 0xac, 0x45, 0x8d, 0x02, 0xaa, 0x43, 0xd5, 0xb1, 0x7e, 0x3c, 0xb2, - 0x0e, 0x0e, 0x95, 0xb2, 0x28, 0x95, 0x8e, 0xf5, 0x83, 0xb5, 0x75, 0xd8, 0x28, 0xc9, 0x4b, 0xb7, - 0x9d, 0xfd, 0x5e, 0x63, 0x6a, 0xfd, 0xef, 0x32, 0x94, 0xed, 0x7d, 0x89, 0x0b, 0x7d, 0x0b, 0xb3, - 0x5b, 0x8c, 0x60, 0x41, 0x34, 0xf5, 0x45, 0x79, 0x5c, 0xb8, 0xbd, 0x38, 0x36, 0x06, 0x96, 0xa4, - 0xed, 0xd2, 0x59, 0x17, 0xe9, 0xbf, 0x38, 0x7f, 0x05, 0x95, 0x21, 0x9b, 0x47, 0x0b, 0x29, 0x7d, - 0x1c, 0x61, 0xf7, 0xed, 0xbc, 0x80, 0xc8, 0x02, 0xd8, 0x0d, 0x78, 0xea, 0xd9, 0x1e, 0x9a, 0x5c, - 0x09, 0x53, 0xf7, 0xe5, 0x5c, 0x9d, 0xf9, 0x4d, 0xd9, 0x84, 0xb9, 0x91, 0xff, 0x06, 0x68, 0x49, - 0x61, 0xc8, 0xfb, 0xbf, 0x30, 0x31, 0x87, 0xef, 0x60, 0x4e, 0x57, 0xcf, 0x10, 0x45, 0x94, 0xcb, - 0xb3, 0x27, 0xba, 0xdb, 0x50, 0x1b, 0x65, 0xcc, 0xa8, 0x9d, 0x4b, 0xa3, 0xd3, 0x6c, 0x26, 0x53, - 0x6c, 0xb4, 0x0b, 0x68, 0x9c, 0xfe, 0xa2, 0x87, 0x99, 0x94, 0x72, 0x78, 0xf1, 0x44, 0x60, 0xef, - 0x61, 0x69, 0x22, 0x7f, 0x44, 0x4f, 0x53, 0x1c, 0x1f, 0xa5, 0xc0, 0xed, 0x4f, 0x6f, 0x32, 0x33, - 0xc8, 0xfb, 0xd0, 0x9a, 0xf4, 0xa0, 0xa2, 0x4f, 0x6e, 0x43, 0x56, 0xda, 0x4f, 0x6f, 0xf5, 0x2a, - 0x5f, 0x95, 0x28, 0xbb, 0xd2, 0x23, 0x25, 0xca, 0xd9, 0xf5, 0x49, 0x25, 0xda, 0x7c, 0xfc, 0xf3, - 0xa3, 0x7e, 0x20, 0x4e, 0x93, 0xe3, 0xae, 0x47, 0x07, 0x6b, 0xa6, 0xeb, 0xfa, 0xaf, 0xab, 0x47, - 0xc3, 0x35, 0x16, 0x7b, 0xc7, 0x65, 0x75, 0xfa, 0xf2, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf1, - 0x19, 0x7e, 0x85, 0x48, 0x0f, 0x00, 0x00, + // 1404 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xed, 0x56, 0x1b, 0xc5, + 0x1b, 0xff, 0x27, 0x81, 0x94, 0x3c, 0x81, 0x24, 0x4c, 0x03, 0xff, 0x65, 0x39, 0xb6, 0x34, 0xb5, + 0x8a, 0x7a, 0x4e, 0xb0, 0xf8, 0x41, 0xad, 0x47, 0x4f, 0x81, 0xa6, 0x34, 0x4a, 0x69, 0x5c, 0xe0, + 0x83, 0x7e, 0x59, 0x87, 0xdd, 0x21, 0x6c, 0xd9, 0xec, 0xac, 0x33, 0xb3, 0x50, 0xae, 0x40, 0x2f, + 0xc0, 0x0b, 0xf0, 0x12, 0xbc, 0x05, 0x6f, 0xca, 0xcf, 0x9e, 0x79, 0xd9, 0x64, 0x93, 0x6c, 0x0a, + 0xf8, 0x6d, 0xe7, 0xf7, 0xbc, 0xcc, 0xf3, 0x3a, 0xf9, 0x05, 0x16, 0x59, 0xec, 0x6d, 0x05, 0xb4, + 0x1d, 0x33, 0x2a, 0x28, 0x2a, 0xb1, 0xd8, 0xb3, 0x9b, 0x61, 0x70, 0x49, 0x2e, 0x02, 0xe1, 0x92, + 0x3e, 0x23, 0x9c, 0x6b, 0x91, 0xbd, 0x92, 0xa2, 0x41, 0x94, 0x85, 0x97, 0x53, 0x98, 0x07, 0xb1, + 0x81, 0x96, 0xa4, 0xcb, 0xd1, 0x71, 0xbd, 0x4f, 0x69, 0x3f, 0x24, 0x5b, 0xea, 0x74, 0x9a, 0x9c, + 0x6d, 0x91, 0x41, 0x2c, 0xae, 0x8d, 0xf0, 0xc1, 0xa4, 0xd0, 0x4f, 0x18, 0x16, 0x01, 0x8d, 0xb4, + 0xbc, 0xb5, 0x05, 0x8d, 0x7d, 0x22, 0x3a, 0xea, 0x46, 0x87, 0xfc, 0x9a, 0x10, 0x2e, 0xd0, 0x3a, + 0x54, 0x74, 0x64, 0x6e, 0xe0, 0x5b, 0x85, 0x8d, 0xc2, 0x66, 0xc5, 0x59, 0xd0, 0x40, 0xd7, 0x6f, + 0xfd, 0x56, 0x80, 0xe6, 0x49, 0xec, 0x63, 0x41, 0x5e, 0x13, 0xc1, 0x02, 0x6f, 0x68, 0xf5, 0x31, + 0xcc, 0x05, 0xd1, 0x19, 0x55, 0x06, 0xd5, 0xed, 0xfb, 0x6d, 0x13, 0x77, 0x5b, 0xfb, 0xee, 0x46, + 0x67, 0xd4, 0x51, 0x0a, 0xa8, 0x05, 0x4b, 0xf8, 0xb2, 0xef, 0x7a, 0x71, 0xe2, 0x26, 0x1c, 0xf7, + 0x89, 0x55, 0xda, 0x28, 0x6c, 0x16, 0x9d, 0x2a, 0xbe, 0xec, 0xef, 0xc5, 0xc9, 0x89, 0x84, 0xa4, + 0xce, 0x00, 0xbf, 0xcb, 0xe8, 0xcc, 0x69, 0x9d, 0x01, 0x7e, 0x97, 0xea, 0xb4, 0x4e, 0x60, 0x65, + 0x9f, 0x88, 0x6e, 0x34, 0xf2, 0x6f, 0x22, 0xf9, 0x00, 0xc0, 0xd4, 0x70, 0x94, 0x40, 0xc5, 0x20, + 0x5d, 0x5f, 0x8a, 0xb9, 0x60, 0x04, 0x0f, 0xdc, 0x0b, 0x72, 0x6d, 0x15, 0xb5, 0x58, 0x23, 0x3f, + 0x90, 0xeb, 0xd6, 0xef, 0x45, 0x58, 0x9d, 0xf4, 0xcb, 0x63, 0x1a, 0x71, 0x82, 0x36, 0xc7, 0x52, + 0x6c, 0x0e, 0x53, 0xcc, 0xea, 0xea, 0x1c, 0x9b, 0x30, 0x2f, 0xe8, 0x05, 0x89, 0x8c, 0x7b, 0x7d, + 0x40, 0x2b, 0x50, 0xbe, 0xe2, 0x6e, 0xc2, 0x42, 0x95, 0x72, 0xc5, 0x99, 0xbf, 0xe2, 0x27, 0x2c, + 0x44, 0x27, 0x50, 0x0b, 0x69, 0xbf, 0x1f, 0x44, 0x7d, 0xf7, 0x2c, 0x20, 0xa1, 0xcf, 0xad, 0xb9, + 0x8d, 0xd2, 0x66, 0x75, 0xbb, 0xdd, 0x66, 0xb1, 0xd7, 0xce, 0x8f, 0xa5, 0x7d, 0xa0, 0x2d, 0x5e, + 0x2a, 0x83, 0x4e, 0x24, 0xd8, 0xb5, 0xb3, 0x14, 0x66, 0x31, 0xfb, 0x39, 0xa0, 0x69, 0x25, 0xd4, + 0x80, 0x92, 0x4c, 0x5b, 0x57, 0x45, 0x7e, 0xca, 0x58, 0x2f, 0x71, 0x98, 0x90, 0x34, 0x56, 0x75, + 0x78, 0x56, 0xfc, 0xaa, 0xd0, 0xea, 0xc3, 0x9a, 0x6e, 0xb5, 0x09, 0xe0, 0x48, 0x60, 0x41, 0x6e, + 0x59, 0xe5, 0xcf, 0x60, 0x9e, 0x4b, 0x75, 0xe5, 0xb5, 0xba, 0xbd, 0x32, 0x59, 0x2c, 0xed, 0x4b, + 0xeb, 0xb4, 0xfe, 0x2c, 0xc0, 0xc6, 0x3e, 0x11, 0x47, 0xdd, 0xde, 0x31, 0x4b, 0xa2, 0x8b, 0x9d, + 0x44, 0x9c, 0x93, 0x48, 0x04, 0x9e, 0x9a, 0xd4, 0xf4, 0xc2, 0x07, 0x50, 0xe5, 0x41, 0xec, 0x7a, + 0x38, 0x0c, 0xe5, 0x8d, 0x65, 0xd3, 0xb8, 0x20, 0xde, 0xc3, 0x61, 0xd8, 0xf5, 0x11, 0x82, 0xb9, + 0x33, 0x46, 0x07, 0x26, 0x0d, 0xf5, 0x8d, 0x6a, 0x50, 0x14, 0xd4, 0x54, 0xbb, 0x28, 0x28, 0x7a, + 0x08, 0x55, 0xce, 0x3c, 0x17, 0xfb, 0xbe, 0x8c, 0x41, 0x4d, 0x55, 0xc5, 0x01, 0xce, 0xbc, 0x1d, + 0x8d, 0xa0, 0xff, 0xc3, 0x3d, 0x41, 0xdd, 0x73, 0xca, 0x85, 0x35, 0xaf, 0x84, 0x65, 0x41, 0x5f, + 0x51, 0x2e, 0x5a, 0x7f, 0x15, 0xe0, 0xd1, 0x7b, 0x42, 0x34, 0x13, 0x62, 0xc3, 0x42, 0xc2, 0x09, + 0x8b, 0xf0, 0x80, 0xa4, 0x9b, 0x93, 0x9e, 0xa5, 0x2c, 0xc6, 0x9c, 0x5f, 0x51, 0xe6, 0x9b, 0x18, + 0x87, 0x67, 0x19, 0xbb, 0xcf, 0x68, 0xac, 0x22, 0x5d, 0x70, 0xd4, 0x37, 0xda, 0x80, 0x45, 0x99, + 0xaf, 0x90, 0xd7, 0xc9, 0x84, 0xd3, 0x60, 0x83, 0x58, 0x45, 0xa0, 0x27, 0x39, 0x66, 0xf4, 0x2d, + 0xf1, 0x84, 0x94, 0xeb, 0x78, 0x2b, 0x06, 0xe9, 0xfa, 0xad, 0x7f, 0x4a, 0xf0, 0xb0, 0x23, 0xbb, + 0x89, 0x05, 0x39, 0xea, 0xf6, 0x5e, 0x04, 0x3c, 0xc6, 0xc2, 0x3b, 0x77, 0x92, 0x90, 0xf0, 0x19, + 0x45, 0x5d, 0x98, 0x2c, 0xea, 0xe7, 0x80, 0xa4, 0x3c, 0xc6, 0x4c, 0x04, 0x5e, 0x10, 0xe3, 0x48, + 0x0c, 0xbb, 0xbd, 0x5b, 0xb4, 0x0a, 0x4e, 0x83, 0x07, 0x71, 0x6f, 0x24, 0xec, 0xfa, 0x53, 0x61, + 0xc3, 0x54, 0xd8, 0x4f, 0xa0, 0x26, 0xef, 0x93, 0xf3, 0x1e, 0x25, 0x83, 0x53, 0xc2, 0x4c, 0x39, + 0x96, 0x0c, 0x7a, 0xa8, 0x40, 0xf4, 0x18, 0x14, 0x40, 0xfc, 0x54, 0x4b, 0xb7, 0x71, 0x51, 0x83, + 0x46, 0xe9, 0xc6, 0x86, 0x36, 0xa0, 0x14, 0x07, 0x91, 0x29, 0x8e, 0xfc, 0x94, 0x5b, 0x18, 0x51, + 0x57, 0x82, 0x65, 0x55, 0xed, 0xf9, 0x88, 0xf6, 0x82, 0x48, 0x7a, 0x32, 0xd7, 0xa9, 0xee, 0xdf, + 0xd3, 0x9e, 0x34, 0x24, 0x27, 0x00, 0xf9, 0xd0, 0x20, 0xef, 0x04, 0xc3, 0x2e, 0x16, 0x82, 0x05, + 0xa7, 0x89, 0x20, 0xdc, 0xaa, 0xa8, 0x45, 0xfd, 0x5a, 0x2d, 0xea, 0x0d, 0xa5, 0x6e, 0x77, 0xa4, + 0xf1, 0xce, 0xd0, 0x56, 0xef, 0x6c, 0x9d, 0x8c, 0xa3, 0xf6, 0x2e, 0x34, 0xf3, 0x14, 0xef, 0xb4, + 0xb7, 0x7f, 0x54, 0x60, 0x63, 0x76, 0x34, 0x66, 0x54, 0xd7, 0xa1, 0xc2, 0x28, 0x1d, 0xb8, 0xd9, + 0x59, 0x95, 0xc0, 0xa1, 0x9c, 0xd5, 0xa7, 0xd0, 0x1c, 0x6f, 0xb9, 0x9c, 0x75, 0x91, 0xbe, 0x96, + 0xf7, 0xe3, 0x6c, 0xc7, 0xb5, 0x08, 0x7d, 0x02, 0x8d, 0xac, 0x89, 0x72, 0xab, 0x8b, 0x58, 0xcf, + 0xe0, 0x79, 0xde, 0x07, 0x44, 0x60, 0x1f, 0x0b, 0x6c, 0xa6, 0x2f, 0xeb, 0xfd, 0xb5, 0x11, 0xa1, + 0x2b, 0x58, 0xcd, 0x9a, 0x64, 0x5a, 0x50, 0x55, 0x2d, 0x78, 0x7e, 0x43, 0x0b, 0xcc, 0xab, 0x99, + 0x19, 0xd5, 0xc9, 0x4e, 0xac, 0xc4, 0x79, 0x32, 0xf4, 0x18, 0xaa, 0x4c, 0x37, 0x50, 0x8d, 0x8c, + 0x5a, 0x50, 0x35, 0xf9, 0x60, 0x60, 0x39, 0x3b, 0xc3, 0xe7, 0x7e, 0x2e, 0xff, 0xb9, 0x9f, 0xcf, + 0x3e, 0xf7, 0x6d, 0x28, 0x33, 0xc2, 0x93, 0x50, 0xa8, 0xf9, 0xab, 0x6d, 0xaf, 0xaa, 0xd0, 0xb3, + 0x21, 0x2b, 0xa9, 0x63, 0xb4, 0xa6, 0x16, 0xaa, 0x32, 0xb5, 0x50, 0x5b, 0xd0, 0x94, 0x1a, 0xbe, + 0xb1, 0x77, 0x59, 0x12, 0x92, 0xd1, 0xea, 0x2d, 0xf3, 0x20, 0xce, 0x56, 0x63, 0xea, 0xe1, 0x58, + 0x9c, 0x78, 0x38, 0xd0, 0x01, 0xdc, 0x3b, 0x27, 0xd8, 0x27, 0x8c, 0x5b, 0x4b, 0xaa, 0xba, 0xdb, + 0xb7, 0xab, 0xee, 0x2b, 0x6d, 0xa4, 0xeb, 0x99, 0xba, 0x40, 0x0c, 0x56, 0xcc, 0xa7, 0x2b, 0x68, + 0xb6, 0x73, 0x35, 0xe5, 0xfb, 0xbb, 0x3b, 0xf9, 0x3e, 0xa6, 0x93, 0x7d, 0xbb, 0x7f, 0x3e, 0x2d, + 0x41, 0xcf, 0xa0, 0x41, 0x22, 0x7c, 0x2a, 0xb7, 0xf9, 0x8c, 0x60, 0x91, 0x30, 0xc2, 0xad, 0xfa, + 0x46, 0x69, 0xb3, 0xb6, 0x5d, 0x4f, 0xab, 0xfd, 0x52, 0xe3, 0x4e, 0xdd, 0x28, 0x9a, 0x33, 0x47, + 0xbb, 0x50, 0x67, 0x41, 0xa4, 0x7e, 0x8e, 0x45, 0x30, 0x20, 0x34, 0x11, 0x56, 0x43, 0xfd, 0x86, + 0xad, 0xb5, 0x35, 0x99, 0x6a, 0xa7, 0x64, 0xaa, 0xfd, 0xc2, 0x90, 0x29, 0xa7, 0x66, 0x2c, 0x8e, + 0xb5, 0x01, 0xea, 0xc0, 0xb2, 0xe2, 0x2f, 0xf2, 0x59, 0x4d, 0x19, 0x97, 0xb5, 0x7c, 0x93, 0x97, + 0xba, 0xa4, 0x37, 0x38, 0x0c, 0x53, 0xc0, 0x7e, 0x05, 0xf6, 0xec, 0x89, 0xbd, 0xcb, 0x93, 0x60, + 0x3f, 0x83, 0xc5, 0x6c, 0x77, 0xee, 0x64, 0xfb, 0x12, 0xac, 0x59, 0xd5, 0xbf, 0xd3, 0xb3, 0x74, + 0x98, 0xd2, 0x89, 0xa3, 0x6e, 0x4f, 0xa6, 0x39, 0x46, 0x27, 0x9e, 0x42, 0x45, 0xff, 0x08, 0xe5, + 0x11, 0x2c, 0x63, 0xa0, 0x08, 0xd0, 0x82, 0x67, 0xbe, 0x3e, 0xfd, 0x05, 0x96, 0xa7, 0xb6, 0x06, + 0x59, 0xd0, 0x3c, 0xe8, 0xec, 0xef, 0xec, 0xfd, 0xe4, 0xee, 0xec, 0xed, 0x75, 0x7a, 0xc7, 0xee, + 0x1b, 0xc7, 0xed, 0x75, 0x0f, 0x1b, 0xff, 0x43, 0x00, 0x65, 0x0d, 0x35, 0x0a, 0xa8, 0x0e, 0x55, + 0xa7, 0xf3, 0xe3, 0x49, 0xe7, 0xe8, 0x58, 0x09, 0x8b, 0x52, 0xe8, 0x74, 0xbe, 0xef, 0xec, 0x1d, + 0x37, 0x4a, 0x68, 0x01, 0xe6, 0x5e, 0x38, 0x6f, 0x7a, 0x8d, 0xb9, 0xed, 0xbf, 0xcb, 0x50, 0xee, + 0xbe, 0x91, 0x97, 0xa1, 0x6f, 0x60, 0x71, 0x8f, 0x11, 0x2c, 0x88, 0xe6, 0xb3, 0x28, 0x8f, 0xe0, + 0xda, 0xab, 0x53, 0xbd, 0xed, 0x48, 0x2e, 0x2e, 0x8d, 0x75, 0xe6, 0xff, 0xc5, 0xf8, 0x4b, 0xa8, + 0x0c, 0x29, 0x3a, 0x5a, 0x49, 0x39, 0xe1, 0x18, 0x65, 0xb7, 0xf3, 0x1c, 0xa2, 0x0e, 0xc0, 0x41, + 0xc0, 0x53, 0x4b, 0x7b, 0xa8, 0x32, 0x02, 0x53, 0xf3, 0xf5, 0x5c, 0x99, 0xf9, 0xa1, 0xd8, 0x85, + 0xa5, 0x31, 0xc2, 0x8f, 0xd6, 0x54, 0x0c, 0x79, 0x7f, 0x02, 0x66, 0xe6, 0xf0, 0x2d, 0x2c, 0xe9, + 0xea, 0x19, 0xf6, 0x87, 0x72, 0xc9, 0xf3, 0x4c, 0xf3, 0x2e, 0xd4, 0xc6, 0x69, 0x30, 0xb2, 0x73, + 0xb9, 0x71, 0x9a, 0xcd, 0x6c, 0xde, 0x8c, 0x0e, 0x00, 0x4d, 0x73, 0x5a, 0xf4, 0x20, 0x93, 0x52, + 0x0e, 0xd9, 0x9d, 0x19, 0xd8, 0x5b, 0x58, 0x9b, 0x49, 0x0a, 0xd1, 0x93, 0x34, 0x8e, 0xf7, 0xf2, + 0x5a, 0xfb, 0xa3, 0x9b, 0xd4, 0x4c, 0xe4, 0x7d, 0xb0, 0x66, 0xbd, 0x92, 0xe8, 0xc3, 0xdb, 0x30, + 0x10, 0xfb, 0xc9, 0xad, 0x9e, 0xda, 0x51, 0x89, 0xb2, 0x7b, 0x3a, 0x56, 0xa2, 0x9c, 0x05, 0x9e, + 0x55, 0xa2, 0xdd, 0x47, 0x3f, 0x3f, 0xec, 0x07, 0xe2, 0x3c, 0x39, 0x6d, 0x7b, 0x74, 0xb0, 0x65, + 0xba, 0xae, 0xff, 0x8f, 0x7a, 0x34, 0xdc, 0x62, 0xb1, 0x77, 0x5a, 0x56, 0xa7, 0x2f, 0xfe, 0x0d, + 0x00, 0x00, 0xff, 0xff, 0xb9, 0x2d, 0xeb, 0x7c, 0x2c, 0x0f, 0x00, 0x00, } diff --git a/rpc/sip.go b/rpc/sip.go index e6e99ed5..cdd273c0 100644 --- a/rpc/sip.go +++ b/rpc/sip.go @@ -45,6 +45,12 @@ func NewCreateSIPParticipantRequest( attrs[livekit.AttrSIPPhoneNumber] = req.SipCallTo attrs[livekit.AttrSIPTrunkNumber] = outboundNumber } + + var features []SIPFeature + if req.EnableKrisp { + features = append(features, SIPFeature_KRISP_ENABLED) + } + return &InternalCreateSIPParticipantRequest{ ProjectId: projectID, SipCallId: callID, @@ -67,6 +73,7 @@ func NewCreateSIPParticipantRequest( PlayDialtone: req.PlayRingtone || req.PlayDialtone, Headers: trunk.Headers, HeadersToAttributes: trunk.HeadersToAttributes, + EnabledFeatures: features, RingingTimeout: req.RingingTimeout, MaxCallDuration: req.MaxCallDuration, }, nil diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index 6e914978..beef73f9 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -38,6 +38,52 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type SIPFeature int32 + +const ( + SIPFeature_NONE SIPFeature = 0 + SIPFeature_KRISP_ENABLED SIPFeature = 1 +) + +// Enum value maps for SIPFeature. +var ( + SIPFeature_name = map[int32]string{ + 0: "NONE", + 1: "KRISP_ENABLED", + } + SIPFeature_value = map[string]int32{ + "NONE": 0, + "KRISP_ENABLED": 1, + } +) + +func (x SIPFeature) Enum() *SIPFeature { + p := new(SIPFeature) + *p = x + return p +} + +func (x SIPFeature) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SIPFeature) Descriptor() protoreflect.EnumDescriptor { + return file_rpc_sip_proto_enumTypes[0].Descriptor() +} + +func (SIPFeature) Type() protoreflect.EnumType { + return &file_rpc_sip_proto_enumTypes[0] +} + +func (x SIPFeature) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SIPFeature.Descriptor instead. +func (SIPFeature) EnumDescriptor() ([]byte, []int) { + return file_rpc_sip_proto_rawDescGZIP(), []int{0} +} + type InternalCreateSIPParticipantRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -74,6 +120,7 @@ type InternalCreateSIPParticipantRequest struct { PlayDialtone bool `protobuf:"varint,12,opt,name=play_dialtone,json=playDialtone,proto3" json:"play_dialtone,omitempty"` Headers map[string]string `protobuf:"bytes,21,rep,name=headers,proto3" json:"headers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` HeadersToAttributes map[string]string `protobuf:"bytes,22,rep,name=headers_to_attributes,json=headersToAttributes,proto3" json:"headers_to_attributes,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` + EnabledFeatures []SIPFeature `protobuf:"varint,25,rep,packed,name=enabled_features,json=enabledFeatures,proto3,enum=rpc.SIPFeature" json:"enabled_features,omitempty"` // Max time for the callee to answer the call. RingingTimeout *durationpb.Duration `protobuf:"bytes,23,opt,name=ringing_timeout,json=ringingTimeout,proto3" json:"ringing_timeout,omitempty"` // Max call duration. @@ -257,6 +304,13 @@ func (x *InternalCreateSIPParticipantRequest) GetHeadersToAttributes() map[strin return nil } +func (x *InternalCreateSIPParticipantRequest) GetEnabledFeatures() []SIPFeature { + if x != nil { + return x.EnabledFeatures + } + return nil +} + func (x *InternalCreateSIPParticipantRequest) GetRingingTimeout() *durationpb.Duration { if x != nil { return x.RingingTimeout @@ -404,7 +458,7 @@ var file_rpc_sip_proto_rawDesc = []byte{ 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0d, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x11, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x5f, 0x73, 0x69, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x22, 0x8b, 0x0a, 0x0a, 0x23, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, + 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x0a, 0x0a, 0x23, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, @@ -463,66 +517,73 @@ var file_rpc_sip_proto_rawDesc = []byte{ 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x13, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x69, 0x6e, 0x67, - 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x69, - 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x11, - 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x43, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x1a, 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, - 0x0c, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x3a, 0x0a, 0x10, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x19, 0x20, 0x03, + 0x28, 0x0e, 0x32, 0x0f, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x53, 0x49, 0x50, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x52, 0x0f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x46, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0f, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, 0x67, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x17, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x72, 0x69, 0x6e, 0x67, 0x69, 0x6e, + 0x67, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x18, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, + 0x6d, 0x61, 0x78, 0x43, 0x61, 0x6c, 0x6c, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, + 0x48, 0x0a, 0x1a, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x41, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x73, 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, - 0x01, 0x22, 0xa0, 0x01, 0x0a, 0x24, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, - 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, - 0x64, 0x12, 0x31, 0x0a, 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x13, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, - 0x6c, 0x6c, 0x49, 0x64, 0x22, 0x8d, 0x01, 0x0a, 0x25, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x12, - 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x69, 0x61, 0x6c, - 0x74, 0x6f, 0x6e, 0x65, 0x32, 0xf9, 0x01, 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x75, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, - 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x72, - 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, - 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x08, 0xb2, 0x89, 0x01, 0x04, 0x10, 0x01, 0x30, 0x01, 0x12, 0x73, 0x0a, 0x16, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, - 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, - 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x15, 0xb2, 0x89, 0x01, 0x11, 0x10, - 0x01, 0x1a, 0x0d, 0x12, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, - 0x42, 0x21, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3a, 0x0a, 0x0c, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x46, 0x0a, 0x18, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, + 0x54, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, + 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xa0, 0x01, + 0x0a, 0x24, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x31, 0x0a, + 0x14, 0x70, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x65, + 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x61, 0x72, + 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, + 0x22, 0x8d, 0x01, 0x0a, 0x25, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x69, + 0x70, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x69, 0x70, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x70, + 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, + 0x2a, 0x29, 0x0a, 0x0a, 0x53, 0x49, 0x50, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x08, + 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x4b, 0x52, 0x49, 0x53, + 0x50, 0x5f, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x32, 0xf9, 0x01, 0x0a, 0x0b, + 0x53, 0x49, 0x50, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x75, 0x0a, 0x14, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x12, 0x28, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, + 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, + 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, + 0x72, 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x08, 0xb2, 0x89, 0x01, 0x04, 0x10, 0x01, + 0x30, 0x01, 0x12, 0x73, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, + 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x72, + 0x70, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x22, 0x15, 0xb2, 0x89, 0x01, 0x11, 0x10, 0x01, 0x1a, 0x0d, 0x12, 0x0b, 0x73, 0x69, 0x70, 0x5f, + 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x21, 0x5a, 0x1f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x72, 0x70, 0x63, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -537,34 +598,37 @@ func file_rpc_sip_proto_rawDescGZIP() []byte { return file_rpc_sip_proto_rawDescData } +var file_rpc_sip_proto_enumTypes = make([]protoimpl.EnumInfo, 1) var file_rpc_sip_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_rpc_sip_proto_goTypes = []any{ - (*InternalCreateSIPParticipantRequest)(nil), // 0: rpc.InternalCreateSIPParticipantRequest - (*InternalCreateSIPParticipantResponse)(nil), // 1: rpc.InternalCreateSIPParticipantResponse - (*InternalTransferSIPParticipantRequest)(nil), // 2: rpc.InternalTransferSIPParticipantRequest - nil, // 3: rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry - nil, // 4: rpc.InternalCreateSIPParticipantRequest.HeadersEntry - nil, // 5: rpc.InternalCreateSIPParticipantRequest.HeadersToAttributesEntry - (livekit.SIPTransport)(0), // 6: livekit.SIPTransport - (*durationpb.Duration)(nil), // 7: google.protobuf.Duration - (*emptypb.Empty)(nil), // 8: google.protobuf.Empty + (SIPFeature)(0), // 0: rpc.SIPFeature + (*InternalCreateSIPParticipantRequest)(nil), // 1: rpc.InternalCreateSIPParticipantRequest + (*InternalCreateSIPParticipantResponse)(nil), // 2: rpc.InternalCreateSIPParticipantResponse + (*InternalTransferSIPParticipantRequest)(nil), // 3: rpc.InternalTransferSIPParticipantRequest + nil, // 4: rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry + nil, // 5: rpc.InternalCreateSIPParticipantRequest.HeadersEntry + nil, // 6: rpc.InternalCreateSIPParticipantRequest.HeadersToAttributesEntry + (livekit.SIPTransport)(0), // 7: livekit.SIPTransport + (*durationpb.Duration)(nil), // 8: google.protobuf.Duration + (*emptypb.Empty)(nil), // 9: google.protobuf.Empty } var file_rpc_sip_proto_depIdxs = []int32{ - 6, // 0: rpc.InternalCreateSIPParticipantRequest.transport:type_name -> livekit.SIPTransport - 3, // 1: rpc.InternalCreateSIPParticipantRequest.participant_attributes:type_name -> rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry - 4, // 2: rpc.InternalCreateSIPParticipantRequest.headers:type_name -> rpc.InternalCreateSIPParticipantRequest.HeadersEntry - 5, // 3: rpc.InternalCreateSIPParticipantRequest.headers_to_attributes:type_name -> rpc.InternalCreateSIPParticipantRequest.HeadersToAttributesEntry - 7, // 4: rpc.InternalCreateSIPParticipantRequest.ringing_timeout:type_name -> google.protobuf.Duration - 7, // 5: rpc.InternalCreateSIPParticipantRequest.max_call_duration:type_name -> google.protobuf.Duration - 0, // 6: rpc.SIPInternal.CreateSIPParticipant:input_type -> rpc.InternalCreateSIPParticipantRequest - 2, // 7: rpc.SIPInternal.TransferSIPParticipant:input_type -> rpc.InternalTransferSIPParticipantRequest - 1, // 8: rpc.SIPInternal.CreateSIPParticipant:output_type -> rpc.InternalCreateSIPParticipantResponse - 8, // 9: rpc.SIPInternal.TransferSIPParticipant:output_type -> google.protobuf.Empty - 8, // [8:10] is the sub-list for method output_type - 6, // [6:8] is the sub-list for method input_type - 6, // [6:6] is the sub-list for extension type_name - 6, // [6:6] is the sub-list for extension extendee - 0, // [0:6] is the sub-list for field type_name + 7, // 0: rpc.InternalCreateSIPParticipantRequest.transport:type_name -> livekit.SIPTransport + 4, // 1: rpc.InternalCreateSIPParticipantRequest.participant_attributes:type_name -> rpc.InternalCreateSIPParticipantRequest.ParticipantAttributesEntry + 5, // 2: rpc.InternalCreateSIPParticipantRequest.headers:type_name -> rpc.InternalCreateSIPParticipantRequest.HeadersEntry + 6, // 3: rpc.InternalCreateSIPParticipantRequest.headers_to_attributes:type_name -> rpc.InternalCreateSIPParticipantRequest.HeadersToAttributesEntry + 0, // 4: rpc.InternalCreateSIPParticipantRequest.enabled_features:type_name -> rpc.SIPFeature + 8, // 5: rpc.InternalCreateSIPParticipantRequest.ringing_timeout:type_name -> google.protobuf.Duration + 8, // 6: rpc.InternalCreateSIPParticipantRequest.max_call_duration:type_name -> google.protobuf.Duration + 1, // 7: rpc.SIPInternal.CreateSIPParticipant:input_type -> rpc.InternalCreateSIPParticipantRequest + 3, // 8: rpc.SIPInternal.TransferSIPParticipant:input_type -> rpc.InternalTransferSIPParticipantRequest + 2, // 9: rpc.SIPInternal.CreateSIPParticipant:output_type -> rpc.InternalCreateSIPParticipantResponse + 9, // 10: rpc.SIPInternal.TransferSIPParticipant:output_type -> google.protobuf.Empty + 9, // [9:11] is the sub-list for method output_type + 7, // [7:9] is the sub-list for method input_type + 7, // [7:7] is the sub-list for extension type_name + 7, // [7:7] is the sub-list for extension extendee + 0, // [0:7] is the sub-list for field type_name } func init() { file_rpc_sip_proto_init() } @@ -577,13 +641,14 @@ func file_rpc_sip_proto_init() { File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_rpc_sip_proto_rawDesc, - NumEnums: 0, + NumEnums: 1, NumMessages: 6, NumExtensions: 0, NumServices: 1, }, GoTypes: file_rpc_sip_proto_goTypes, DependencyIndexes: file_rpc_sip_proto_depIdxs, + EnumInfos: file_rpc_sip_proto_enumTypes, MessageInfos: file_rpc_sip_proto_msgTypes, }.Build() File_rpc_sip_proto = out.File diff --git a/rpc/sip.psrpc.go b/rpc/sip.psrpc.go index 3c0c3611..21fa01f2 100644 --- a/rpc/sip.psrpc.go +++ b/rpc/sip.psrpc.go @@ -150,57 +150,61 @@ func (s *sIPInternalServer) Kill() { } var psrpcFileDescriptor10 = []byte{ - // 819 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xc1, 0x6e, 0x1b, 0x37, - 0x10, 0x05, 0xad, 0x44, 0xb6, 0x46, 0x96, 0x2d, 0xd3, 0x96, 0xc2, 0x6e, 0xd0, 0x44, 0x55, 0x1a, - 0x40, 0xe9, 0x61, 0xd5, 0x3a, 0x28, 0x50, 0xe4, 0xd4, 0xc4, 0x71, 0x11, 0x1d, 0xda, 0x1a, 0xb2, - 0x7a, 0xe9, 0x65, 0x41, 0xed, 0xd2, 0x32, 0xeb, 0xdd, 0x25, 0x4b, 0x72, 0xe3, 0xa8, 0x7f, 0x10, - 0x14, 0xfd, 0x87, 0x7e, 0x43, 0x7e, 0xaf, 0x97, 0x82, 0xe4, 0xae, 0x23, 0x4b, 0x72, 0x62, 0xdf, - 0xf6, 0xbd, 0x37, 0xf3, 0x34, 0x1c, 0x6a, 0x86, 0xd0, 0x52, 0x32, 0x1e, 0x6a, 0x2e, 0x43, 0xa9, - 0x84, 0x11, 0xb8, 0xa6, 0x64, 0x1c, 0x3c, 0x9c, 0x09, 0x31, 0x4b, 0xd9, 0xd0, 0x51, 0xd3, 0xe2, - 0x6c, 0xc8, 0x32, 0x69, 0xe6, 0x3e, 0x22, 0x78, 0xb4, 0x2c, 0x26, 0x85, 0xa2, 0x86, 0x8b, 0xbc, - 0xd4, 0x5b, 0x42, 0x5a, 0xa4, 0x4b, 0xb8, 0x97, 0xf2, 0xb7, 0xec, 0x82, 0x9b, 0xe8, 0xea, 0x37, - 0xfa, 0x7f, 0x03, 0x3c, 0x19, 0xe5, 0x86, 0xa9, 0x9c, 0xa6, 0x47, 0x8a, 0x51, 0xc3, 0x4e, 0x47, - 0x27, 0x27, 0x54, 0x19, 0x1e, 0x73, 0x49, 0x73, 0x33, 0x66, 0x7f, 0x16, 0x4c, 0x1b, 0xfc, 0x25, - 0x80, 0x54, 0xe2, 0x0f, 0x16, 0x9b, 0x88, 0x27, 0x04, 0xf7, 0xd0, 0xa0, 0x31, 0x6e, 0x94, 0xcc, - 0x28, 0xc1, 0x8f, 0xa0, 0xa9, 0xb9, 0x8c, 0x62, 0x9a, 0xa6, 0x56, 0x6f, 0x79, 0x5d, 0x73, 0x79, - 0x44, 0xd3, 0x74, 0x94, 0xe0, 0x1e, 0x6c, 0x5b, 0xdd, 0xa8, 0x22, 0xbf, 0xb0, 0x01, 0xfb, 0x2e, - 0x00, 0x34, 0x97, 0x13, 0x4b, 0x8d, 0x12, 0x4c, 0x60, 0x93, 0x26, 0x89, 0x62, 0x5a, 0x93, 0x0d, - 0x27, 0x56, 0x10, 0x07, 0xb0, 0x75, 0x2e, 0xb4, 0xc9, 0x69, 0xc6, 0xc8, 0x81, 0x93, 0xae, 0x30, - 0x7e, 0x0e, 0x0d, 0xa3, 0x68, 0xae, 0xa5, 0x50, 0x86, 0xb4, 0x7b, 0x68, 0xb0, 0x73, 0xd8, 0x09, - 0xcb, 0x53, 0x86, 0xa7, 0xa3, 0x93, 0x49, 0x25, 0x8e, 0x3f, 0xc6, 0xe1, 0x2e, 0xd4, 0xf3, 0x22, - 0x9b, 0x32, 0x45, 0x6a, 0xce, 0xae, 0x44, 0xf8, 0x01, 0x6c, 0xba, 0x03, 0x18, 0x41, 0xee, 0x79, - 0xc1, 0xc2, 0x89, 0xb0, 0x15, 0x14, 0xda, 0xb6, 0x28, 0x63, 0xe4, 0xbe, 0xaf, 0xa0, 0xc2, 0x56, - 0x93, 0x54, 0xeb, 0x4b, 0xa1, 0x12, 0x52, 0xf7, 0x5a, 0x85, 0xf1, 0x43, 0x68, 0x28, 0x21, 0xb2, - 0xc8, 0x25, 0x6e, 0x7a, 0xd1, 0x12, 0xbf, 0xd8, 0xc4, 0xef, 0xe0, 0x40, 0x7e, 0xec, 0x73, 0xc4, - 0x13, 0x96, 0x1b, 0x6e, 0xe6, 0x64, 0xcb, 0xc5, 0xed, 0x2f, 0x68, 0xa3, 0x52, 0xc2, 0xcf, 0xa0, - 0xbd, 0x98, 0xe2, 0x6c, 0x77, 0x5c, 0xf8, 0xee, 0x02, 0xbf, 0xce, 0x3d, 0x63, 0x86, 0x26, 0xd4, - 0x50, 0xb2, 0xbb, 0xe2, 0xfe, 0x73, 0x29, 0xe1, 0xbf, 0xa0, 0xbb, 0x98, 0x42, 0x8d, 0x51, 0x7c, - 0x5a, 0x18, 0xa6, 0xc9, 0x5e, 0xaf, 0x36, 0x68, 0x1e, 0x1e, 0x85, 0x4a, 0xc6, 0xe1, 0x2d, 0xfe, - 0x2c, 0xe1, 0x02, 0xf5, 0xf2, 0xca, 0xe5, 0x38, 0x37, 0x6a, 0x3e, 0xee, 0xc8, 0x75, 0x1a, 0x3e, - 0x80, 0xfb, 0x46, 0x5c, 0xb0, 0x9c, 0x34, 0x5c, 0x7d, 0x1e, 0xe0, 0x0e, 0xd4, 0x2f, 0x75, 0x54, - 0xa8, 0x94, 0x80, 0xa7, 0x2f, 0xf5, 0x6f, 0x2a, 0xc5, 0x18, 0xee, 0x25, 0x26, 0x3b, 0x23, 0x4d, - 0x47, 0xba, 0x6f, 0xfc, 0x04, 0x5a, 0x32, 0xa5, 0xf3, 0x28, 0xe1, 0x34, 0x35, 0x22, 0x67, 0x64, - 0xbb, 0x87, 0x06, 0x5b, 0xe3, 0x6d, 0x4b, 0xbe, 0x2e, 0x39, 0xfc, 0x2b, 0x6c, 0x9e, 0x33, 0x9a, - 0x30, 0xa5, 0x49, 0xc7, 0x1d, 0xe9, 0xfb, 0x5b, 0x1f, 0xe9, 0x8d, 0xcf, 0xf3, 0x87, 0xa8, 0x5c, - 0x70, 0x01, 0x9d, 0xf2, 0x33, 0x32, 0x62, 0xb1, 0x63, 0x5d, 0x67, 0xff, 0xf2, 0xae, 0xf6, 0x13, - 0xb1, 0xdc, 0xaf, 0xfd, 0xf3, 0x55, 0x05, 0xbf, 0x82, 0x5d, 0xc5, 0xf3, 0x19, 0xcf, 0x67, 0x91, - 0xe1, 0x19, 0x13, 0x85, 0x21, 0x0f, 0x7a, 0x68, 0xd0, 0x3c, 0xfc, 0x22, 0xf4, 0x0b, 0x21, 0xac, - 0x16, 0x42, 0xf8, 0xba, 0x5c, 0x08, 0xe3, 0x9d, 0x32, 0x63, 0xe2, 0x13, 0xf0, 0x31, 0xec, 0x65, - 0xf4, 0x9d, 0x9f, 0xd8, 0x6a, 0x6b, 0x10, 0xf2, 0x39, 0x97, 0xdd, 0x8c, 0xbe, 0xb3, 0x23, 0x5d, - 0x11, 0xc1, 0x1b, 0x08, 0x6e, 0xbe, 0x6d, 0xdc, 0x86, 0xda, 0x05, 0x9b, 0x13, 0xe4, 0x2e, 0xca, - 0x7e, 0xda, 0x8b, 0x7e, 0x4b, 0xd3, 0x82, 0x95, 0x43, 0xee, 0xc1, 0x8b, 0x8d, 0x1f, 0x50, 0xf0, - 0x02, 0xb6, 0x17, 0x9b, 0x7c, 0xa7, 0xdc, 0x9f, 0x80, 0xdc, 0xd4, 0xc1, 0xbb, 0xf8, 0xf4, 0xff, - 0x45, 0xf0, 0xf5, 0xa7, 0xaf, 0x4b, 0x4b, 0x91, 0x6b, 0x86, 0x9f, 0xc2, 0xce, 0xf5, 0xe1, 0x2d, - 0xfd, 0x5b, 0xd7, 0xc6, 0xf6, 0xc6, 0x19, 0xdf, 0xb8, 0x79, 0xc6, 0x97, 0x36, 0x69, 0x6d, 0x69, - 0x93, 0xf6, 0xff, 0x41, 0xf0, 0xb4, 0x2a, 0xd1, 0x6d, 0xb7, 0x33, 0xa6, 0xd6, 0xaf, 0xec, 0x25, - 0x27, 0xb4, 0xbc, 0x93, 0x1f, 0x43, 0xd3, 0x94, 0x06, 0x76, 0xe5, 0xf9, 0x9a, 0xa0, 0xa2, 0x26, - 0x62, 0x75, 0xa6, 0x6a, 0xab, 0x33, 0x75, 0xf8, 0x1f, 0x82, 0xe6, 0xe9, 0xe8, 0xa4, 0x2a, 0x09, - 0x5f, 0xc2, 0xc1, 0xba, 0xce, 0xe1, 0xc1, 0x6d, 0x67, 0x21, 0x78, 0x76, 0x8b, 0x48, 0x7f, 0x0d, - 0x7d, 0xf8, 0xf0, 0x1e, 0xd5, 0xdb, 0xe8, 0x47, 0xf4, 0x2d, 0xc2, 0x1a, 0xba, 0xeb, 0xfb, 0x81, - 0xbf, 0xb9, 0x66, 0xf8, 0xc9, 0xa6, 0x05, 0xdd, 0x95, 0xff, 0xfe, 0xb1, 0x7d, 0x6f, 0xfb, 0x9d, - 0x0f, 0xef, 0xd1, 0x5e, 0x1b, 0x05, 0x2d, 0xbc, 0xd8, 0xd4, 0x57, 0x5f, 0xfd, 0xfe, 0x78, 0xc6, - 0xcd, 0x79, 0x31, 0x0d, 0x63, 0x91, 0x0d, 0xcb, 0x87, 0xc7, 0x3f, 0xc7, 0xb1, 0x48, 0x87, 0x4a, - 0xc6, 0xd3, 0xba, 0x43, 0xcf, 0xff, 0x0f, 0x00, 0x00, 0xff, 0xff, 0xf1, 0x5b, 0xae, 0x0e, 0xdd, - 0x07, 0x00, 0x00, + // 888 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x55, 0xcd, 0x72, 0xdb, 0x36, + 0x10, 0x2e, 0x2d, 0xc7, 0xb6, 0x56, 0xd6, 0x1f, 0x6c, 0x29, 0x88, 0x32, 0x4d, 0x54, 0xa5, 0x99, + 0x91, 0x73, 0xa0, 0x5a, 0x65, 0x3a, 0xd3, 0xf1, 0xa9, 0xfe, 0x51, 0x26, 0x9c, 0xb6, 0x8e, 0x46, + 0x52, 0x2f, 0xbd, 0x70, 0x20, 0x12, 0x96, 0x59, 0x93, 0x04, 0x0a, 0x80, 0x71, 0xd4, 0x37, 0xc8, + 0xa1, 0xef, 0xd0, 0x67, 0xc8, 0x4b, 0xf4, 0xa1, 0x7a, 0xe9, 0x10, 0x20, 0x6d, 0x59, 0x92, 0x13, + 0xfb, 0xc6, 0xfd, 0xbe, 0xdd, 0x8f, 0xc0, 0x02, 0xfb, 0x01, 0xca, 0x82, 0x7b, 0x3d, 0x19, 0x70, + 0x9b, 0x0b, 0xa6, 0x18, 0x2a, 0x08, 0xee, 0xb5, 0x9e, 0xce, 0x18, 0x9b, 0x85, 0xb4, 0xa7, 0xa1, + 0x69, 0x72, 0xde, 0xa3, 0x11, 0x57, 0x73, 0x93, 0xd1, 0x7a, 0xb6, 0x4c, 0xfa, 0x89, 0x20, 0x2a, + 0x60, 0x71, 0xc6, 0x97, 0x19, 0x4f, 0x23, 0x99, 0x85, 0xf5, 0x30, 0x78, 0x4f, 0x2f, 0x03, 0xe5, + 0x5e, 0xff, 0xa3, 0xf3, 0x2f, 0xc0, 0x0b, 0x27, 0x56, 0x54, 0xc4, 0x24, 0x3c, 0x11, 0x94, 0x28, + 0x3a, 0x76, 0x86, 0x43, 0x22, 0x54, 0xe0, 0x05, 0x9c, 0xc4, 0x6a, 0x44, 0xff, 0x4c, 0xa8, 0x54, + 0xe8, 0x6b, 0x00, 0x2e, 0xd8, 0x1f, 0xd4, 0x53, 0x6e, 0xe0, 0x63, 0xd4, 0xb6, 0xba, 0xc5, 0x51, + 0x31, 0x43, 0x1c, 0x1f, 0x3d, 0x83, 0x92, 0x0c, 0xb8, 0xeb, 0x91, 0x30, 0x4c, 0xf9, 0xb2, 0xe1, + 0x65, 0xc0, 0x4f, 0x48, 0x18, 0x3a, 0x3e, 0x6a, 0xc3, 0x6e, 0xca, 0x2b, 0x91, 0xc4, 0x97, 0x69, + 0xc2, 0x9e, 0x4e, 0x00, 0x19, 0xf0, 0x49, 0x0a, 0x39, 0x3e, 0xc2, 0xb0, 0x4d, 0x7c, 0x5f, 0x50, + 0x29, 0xf1, 0x86, 0x26, 0xf3, 0x10, 0xb5, 0x60, 0xe7, 0x82, 0x49, 0x15, 0x93, 0x88, 0xe2, 0x7d, + 0x4d, 0x5d, 0xc7, 0xe8, 0x35, 0x14, 0x95, 0x20, 0xb1, 0xe4, 0x4c, 0x28, 0x5c, 0x6b, 0x5b, 0xdd, + 0x4a, 0xbf, 0x61, 0x67, 0xbb, 0xb4, 0xc7, 0xce, 0x70, 0x92, 0x93, 0xa3, 0x9b, 0x3c, 0xd4, 0x84, + 0xad, 0x38, 0x89, 0xa6, 0x54, 0xe0, 0x82, 0x96, 0xcb, 0x22, 0xf4, 0x18, 0xb6, 0xf5, 0x06, 0x14, + 0xc3, 0x9b, 0x86, 0x48, 0xc3, 0x09, 0x4b, 0x57, 0x90, 0xc8, 0xb4, 0x45, 0x11, 0xc5, 0x8f, 0xcc, + 0x0a, 0xf2, 0x38, 0xe5, 0x38, 0x91, 0xf2, 0x8a, 0x09, 0x1f, 0x6f, 0x19, 0x2e, 0x8f, 0xd1, 0x53, + 0x28, 0x0a, 0xc6, 0x22, 0x57, 0x17, 0x6e, 0x1b, 0x32, 0x05, 0xce, 0xd2, 0xc2, 0xef, 0x61, 0x9f, + 0xdf, 0xf4, 0xd9, 0x0d, 0x7c, 0x1a, 0xab, 0x40, 0xcd, 0xf1, 0x8e, 0xce, 0xdb, 0x5b, 0xe0, 0x9c, + 0x8c, 0x42, 0x07, 0x50, 0x5b, 0x2c, 0xd1, 0xb2, 0x15, 0x9d, 0x5e, 0x5d, 0xc0, 0xd7, 0xa9, 0x47, + 0x54, 0x11, 0x9f, 0x28, 0x82, 0xab, 0x2b, 0xea, 0xbf, 0x66, 0x14, 0xfa, 0x0b, 0x9a, 0x8b, 0x25, + 0x44, 0x29, 0x11, 0x4c, 0x13, 0x45, 0x25, 0xae, 0xb7, 0x0b, 0xdd, 0x52, 0xff, 0xc4, 0x16, 0xdc, + 0xb3, 0xef, 0x71, 0x59, 0xec, 0x05, 0xe8, 0xe8, 0x5a, 0x65, 0x10, 0x2b, 0x31, 0x1f, 0x35, 0xf8, + 0x3a, 0x0e, 0xed, 0xc3, 0x23, 0xc5, 0x2e, 0x69, 0x8c, 0x8b, 0x7a, 0x7d, 0x26, 0x40, 0x0d, 0xd8, + 0xba, 0x92, 0x6e, 0x22, 0x42, 0x0c, 0x06, 0xbe, 0x92, 0xbf, 0x89, 0x10, 0x21, 0xd8, 0xf4, 0x55, + 0x74, 0x8e, 0x4b, 0x1a, 0xd4, 0xdf, 0xe8, 0x05, 0x94, 0x79, 0x48, 0xe6, 0xae, 0x1f, 0x90, 0x50, + 0xb1, 0x98, 0xe2, 0xdd, 0xb6, 0xd5, 0xdd, 0x19, 0xed, 0xa6, 0xe0, 0x69, 0x86, 0xa1, 0x77, 0xb0, + 0x7d, 0x41, 0x89, 0x4f, 0x85, 0xc4, 0x0d, 0xbd, 0xa5, 0x1f, 0xee, 0xbd, 0xa5, 0xb7, 0xa6, 0xce, + 0x6c, 0x22, 0x57, 0x41, 0x09, 0x34, 0xb2, 0x4f, 0x57, 0xb1, 0xc5, 0x8e, 0x35, 0xb5, 0xfc, 0xd1, + 0x43, 0xe5, 0x27, 0x6c, 0xb9, 0x5f, 0x7b, 0x17, 0xab, 0x0c, 0x3a, 0x84, 0x1a, 0x8d, 0xc9, 0x34, + 0xa4, 0xbe, 0x7b, 0x4e, 0x89, 0x4a, 0x04, 0x95, 0xf8, 0x49, 0xbb, 0xd0, 0xad, 0xf4, 0xab, 0xfa, + 0x8f, 0x63, 0x67, 0xf8, 0xc6, 0xe0, 0xa3, 0x6a, 0x96, 0x98, 0xc5, 0x12, 0x1d, 0x43, 0x55, 0x04, + 0xf1, 0x2c, 0x88, 0x67, 0xae, 0x0a, 0x22, 0xca, 0x12, 0x85, 0x1f, 0xb7, 0xad, 0x6e, 0xa9, 0xff, + 0xc4, 0x36, 0x66, 0x62, 0xe7, 0x66, 0x62, 0x9f, 0x66, 0x66, 0x32, 0xaa, 0x64, 0x15, 0x13, 0x53, + 0x80, 0x06, 0x50, 0x8f, 0xc8, 0x07, 0x33, 0xed, 0xb9, 0xe3, 0x60, 0xfc, 0x25, 0x95, 0x6a, 0x44, + 0x3e, 0xa4, 0x76, 0x90, 0x03, 0xad, 0xb7, 0xd0, 0xba, 0xfb, 0xa6, 0xa0, 0x1a, 0x14, 0x2e, 0xe9, + 0x1c, 0x5b, 0xfa, 0x90, 0xd3, 0xcf, 0xf4, 0x92, 0xbc, 0x27, 0x61, 0x42, 0x33, 0x83, 0x30, 0xc1, + 0xe1, 0xc6, 0x8f, 0x56, 0xeb, 0x10, 0x76, 0x17, 0x0f, 0xe8, 0x41, 0xb5, 0x6f, 0x00, 0xdf, 0xd5, + 0xfd, 0x87, 0xe8, 0x74, 0xfe, 0xb1, 0xe0, 0xdb, 0xcf, 0x1f, 0xb5, 0xe4, 0x2c, 0x96, 0x14, 0xbd, + 0x84, 0xca, 0xed, 0xc1, 0xcf, 0xf4, 0xcb, 0xb7, 0x46, 0xfe, 0x4e, 0x7f, 0xd8, 0xb8, 0xdb, 0x1f, + 0x96, 0x5c, 0xb8, 0xb0, 0xe4, 0xc2, 0x9d, 0xbf, 0x2d, 0x78, 0x99, 0x2f, 0x51, 0x3b, 0xe3, 0x39, + 0x15, 0xeb, 0xed, 0x7e, 0x49, 0xc9, 0x5a, 0xf6, 0xf3, 0xe7, 0x50, 0x52, 0x99, 0x40, 0x6a, 0x97, + 0x66, 0x4d, 0x90, 0x43, 0x13, 0xb6, 0x3a, 0x8f, 0x85, 0xd5, 0x79, 0x7c, 0x75, 0x00, 0x70, 0x73, + 0x55, 0xd1, 0x0e, 0x6c, 0x9e, 0xbd, 0x3b, 0x1b, 0xd4, 0xbe, 0x42, 0x75, 0x28, 0xff, 0x3c, 0x72, + 0xc6, 0x43, 0x77, 0x70, 0x76, 0x74, 0xfc, 0xcb, 0xe0, 0xb4, 0x66, 0xf5, 0xff, 0xb3, 0xa0, 0x34, + 0x76, 0x86, 0xf9, 0xea, 0xd1, 0x15, 0xec, 0xaf, 0x6b, 0x32, 0xea, 0xde, 0x77, 0xe4, 0x5a, 0x07, + 0xf7, 0xc8, 0x34, 0x27, 0xd6, 0x81, 0x4f, 0x1f, 0xad, 0xad, 0x9a, 0xf5, 0x93, 0xf5, 0x9d, 0x85, + 0x24, 0x34, 0xd7, 0xb7, 0x0e, 0xbd, 0xba, 0x25, 0xf8, 0xd9, 0xfe, 0xb6, 0x9a, 0x2b, 0x63, 0x32, + 0x48, 0x9f, 0xf5, 0x4e, 0xe3, 0xd3, 0x47, 0xab, 0x5e, 0xb3, 0x5a, 0x65, 0xb4, 0xd8, 0xff, 0xe3, + 0x6f, 0x7e, 0x7f, 0x3e, 0x0b, 0xd4, 0x45, 0x32, 0xb5, 0x3d, 0x16, 0xf5, 0xb2, 0xf7, 0xcd, 0xbc, + 0xfa, 0x1e, 0x0b, 0x7b, 0x82, 0x7b, 0xd3, 0x2d, 0x1d, 0xbd, 0xfe, 0x3f, 0x00, 0x00, 0xff, 0xff, + 0xb0, 0xfe, 0x47, 0x56, 0x44, 0x08, 0x00, 0x00, } From 318cb1a947112023e0f848f09ec476a804009e91 Mon Sep 17 00:00:00 2001 From: Paul Wells Date: Sat, 26 Oct 2024 08:34:30 -0700 Subject: [PATCH 03/18] update zapslog (#873) --- go.mod | 2 +- go.sum | 4 ++-- logger/slog.go | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index f9d32f35..3b52db6b 100644 --- a/go.mod +++ b/go.mod @@ -31,7 +31,7 @@ require ( go.uber.org/atomic v1.11.0 go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 - go.uber.org/zap/exp v0.2.0 + go.uber.org/zap/exp v0.3.0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 golang.org/x/mod v0.19.0 google.golang.org/grpc v1.65.0 diff --git a/go.sum b/go.sum index 1292f72e..ad29b181 100644 --- a/go.sum +++ b/go.sum @@ -203,8 +203,8 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= -go.uber.org/zap/exp v0.2.0 h1:FtGenNNeCATRB3CmB/yEUnjEFeJWpB/pMcy7e2bKPYs= -go.uber.org/zap/exp v0.2.0/go.mod h1:t0gqAIdh1MfKv9EwN/dLwfZnJxe9ITAZN78HEWPFWDQ= +go.uber.org/zap/exp v0.3.0 h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U= +go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= diff --git a/logger/slog.go b/logger/slog.go index 6190b2c2..5735284c 100644 --- a/logger/slog.go +++ b/logger/slog.go @@ -18,7 +18,7 @@ func ToSlogHandler(log Logger) slog.Handler { switch log := log.(type) { case ZapLogger: zlog := log.ToZap().Desugar() - return zapslog.NewHandler(zlog.Core(), &zapslog.HandlerOptions{AddSource: true}) + return zapslog.NewHandler(zlog.Core()) case LogRLogger: return logr.ToSlogHandler(log.toLogr()) } From ee0a12bd25a505255e1cb5d164cf22db3dc5a388 Mon Sep 17 00:00:00 2001 From: Benjamin Pracht Date: Mon, 28 Oct 2024 10:10:43 -0700 Subject: [PATCH 04/18] Add extra fields to SIP analytics events (#872) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- .changeset/wicked-games-cover.md | 5 + livekit/livekit_sip.pb.go | 251 +++++++++++++++------------ livekit/livekit_sip.twirp.go | 286 ++++++++++++++++--------------- protobufs/livekit_sip.proto | 9 +- replay/cloud_replay.pb.go | 22 +-- 5 files changed, 303 insertions(+), 270 deletions(-) create mode 100644 .changeset/wicked-games-cover.md diff --git a/.changeset/wicked-games-cover.md b/.changeset/wicked-games-cover.md new file mode 100644 index 00000000..1279ee77 --- /dev/null +++ b/.changeset/wicked-games-cover.md @@ -0,0 +1,5 @@ +--- +"@github.com/livekit/protocol": patch +--- + +Add extra fields to SIP analytics events diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 44524140..01f97396 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -95,6 +95,7 @@ const ( SIPCallStatus_SCS_PARTICIPANT_JOINED SIPCallStatus = 1 // SIP participant for outgoing call has been created. The SIP outgoing call is being established SIPCallStatus_SCS_ACTIVE SIPCallStatus = 2 // Call is ongoing. SIP participant is active in the LiveKit room SIPCallStatus_SCS_DISCONNECTED SIPCallStatus = 3 // Call has ended + SIPCallStatus_SCS_ERROR SIPCallStatus = 4 // Call has ended or never succeeded because of an error ) // Enum value maps for SIPCallStatus. @@ -104,12 +105,14 @@ var ( 1: "SCS_PARTICIPANT_JOINED", 2: "SCS_ACTIVE", 3: "SCS_DISCONNECTED", + 4: "SCS_ERROR", } SIPCallStatus_value = map[string]int32{ "SCS_CALL_INCOMING": 0, "SCS_PARTICIPANT_JOINED": 1, "SCS_ACTIVE": 2, "SCS_DISCONNECTED": 3, + "SCS_ERROR": 4, } ) @@ -2265,9 +2268,11 @@ type SIPCallInfo struct { FromUri *SIPUri `protobuf:"bytes,6,opt,name=from_uri,json=fromUri,proto3" json:"from_uri,omitempty"` ToUri *SIPUri `protobuf:"bytes,7,opt,name=to_uri,json=toUri,proto3" json:"to_uri,omitempty"` CallStatus SIPCallStatus `protobuf:"varint,8,opt,name=call_status,json=callStatus,proto3,enum=livekit.SIPCallStatus" json:"call_status,omitempty"` - StartedAt int64 `protobuf:"varint,9,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` - EndedAt int64 `protobuf:"varint,10,opt,name=ended_at,json=endedAt,proto3" json:"ended_at,omitempty"` - DisconnectReason DisconnectReason `protobuf:"varint,11,opt,name=disconnect_reason,json=disconnectReason,proto3,enum=livekit.DisconnectReason" json:"disconnect_reason,omitempty"` + CreatedAt int64 `protobuf:"varint,9,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` + StartedAt int64 `protobuf:"varint,10,opt,name=started_at,json=startedAt,proto3" json:"started_at,omitempty"` + EndedAt int64 `protobuf:"varint,11,opt,name=ended_at,json=endedAt,proto3" json:"ended_at,omitempty"` + DisconnectReason DisconnectReason `protobuf:"varint,12,opt,name=disconnect_reason,json=disconnectReason,proto3,enum=livekit.DisconnectReason" json:"disconnect_reason,omitempty"` + Error string `protobuf:"bytes,13,opt,name=error,proto3" json:"error,omitempty"` } func (x *SIPCallInfo) Reset() { @@ -2356,6 +2361,13 @@ func (x *SIPCallInfo) GetCallStatus() SIPCallStatus { return SIPCallStatus_SCS_CALL_INCOMING } +func (x *SIPCallInfo) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + func (x *SIPCallInfo) GetStartedAt() int64 { if x != nil { return x.StartedAt @@ -2377,6 +2389,13 @@ func (x *SIPCallInfo) GetDisconnectReason() DisconnectReason { return DisconnectReason_UNKNOWN_REASON } +func (x *SIPCallInfo) GetError() string { + if x != nil { + return x.Error + } + return "" +} + type SIPUri struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2844,7 +2863,7 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x0a, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x54, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x5f, 0x64, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x44, 0x69, 0x61, 0x6c, 0x74, 0x6f, 0x6e, 0x65, - 0x22, 0xb9, 0x03, 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0xee, 0x03, 0x0a, 0x0b, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x72, 0x75, 0x6e, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x72, 0x75, @@ -2863,118 +2882,122 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x69, 0x12, 0x37, 0x0a, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, - 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x41, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x69, 0x73, 0x63, - 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x89, 0x01, 0x0a, - 0x06, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, - 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, - 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, - 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2a, 0x6b, 0x0a, 0x0c, 0x53, 0x49, 0x50, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x49, 0x50, 0x5f, - 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, - 0x54, 0x5f, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, - 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x43, 0x50, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, - 0x54, 0x4c, 0x53, 0x10, 0x03, 0x2a, 0x68, 0x0a, 0x0d, 0x53, 0x49, 0x50, 0x43, 0x61, 0x6c, 0x6c, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x43, 0x53, 0x5f, 0x43, 0x41, - 0x4c, 0x4c, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x1a, 0x0a, - 0x16, 0x53, 0x43, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, 0x49, 0x50, 0x41, 0x4e, 0x54, - 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x43, 0x53, - 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x53, 0x43, 0x53, - 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x03, 0x32, - 0xba, 0x09, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x12, 0x50, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, - 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x16, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, - 0x6b, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x63, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, + 0x64, 0x41, 0x74, 0x12, 0x46, 0x0a, 0x11, 0x64, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, + 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x10, 0x64, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x22, 0x89, 0x01, 0x0a, 0x06, 0x53, 0x49, 0x50, 0x55, 0x72, 0x69, 0x12, 0x12, 0x0a, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, + 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2a, 0x6b, 0x0a, + 0x0c, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x16, 0x0a, + 0x12, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x41, + 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, + 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x55, 0x44, 0x50, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, + 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x43, + 0x50, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, 0x41, 0x4e, 0x53, + 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x4c, 0x53, 0x10, 0x03, 0x2a, 0x77, 0x0a, 0x0d, 0x53, 0x49, + 0x50, 0x43, 0x61, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x53, + 0x43, 0x53, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x5f, 0x49, 0x4e, 0x43, 0x4f, 0x4d, 0x49, 0x4e, 0x47, + 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x43, 0x53, 0x5f, 0x50, 0x41, 0x52, 0x54, 0x49, 0x43, + 0x49, 0x50, 0x41, 0x4e, 0x54, 0x5f, 0x4a, 0x4f, 0x49, 0x4e, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0e, + 0x0a, 0x0a, 0x53, 0x43, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x14, + 0x0a, 0x10, 0x53, 0x43, 0x53, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, + 0x45, 0x44, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x53, 0x5f, 0x45, 0x52, 0x52, 0x4f, + 0x52, 0x10, 0x04, 0x32, 0xba, 0x09, 0x0a, 0x03, 0x53, 0x49, 0x50, 0x12, 0x50, 0x0a, 0x0c, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1c, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, - 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, - 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x22, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, - 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x03, 0x88, 0x02, 0x01, 0x12, 0x5c, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5f, 0x0a, 0x16, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, + 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5d, 0x0a, 0x12, + 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x12, 0x22, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x49, - 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, - 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, - 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, - 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, - 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x63, 0x0a, 0x14, 0x4c, - 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, - 0x75, 0x6e, 0x6b, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, - 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, - 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, - 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, 0x15, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, - 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x23, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, - 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, - 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, 0x15, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, - 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, - 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x58, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, 0x49, - 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x12, 0x26, 0x2e, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x53, - 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x42, 0x46, 0x5a, 0x23, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, - 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, + 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x60, 0x0a, + 0x13, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x49, 0x6e, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x63, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, + 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, + 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x4f, + 0x75, 0x74, 0x62, 0x6f, 0x75, 0x6e, 0x64, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, + 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x12, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x75, 0x6e, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x5c, 0x0a, + 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x60, 0x0a, 0x13, 0x4c, + 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, + 0x6c, 0x65, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, + 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, + 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x5c, 0x0a, + 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x25, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, 0x74, + 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x44, 0x69, 0x73, 0x70, 0x61, + 0x74, 0x63, 0x68, 0x52, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x59, 0x0a, 0x14, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, + 0x61, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x58, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, + 0x12, 0x26, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x53, 0x49, 0x50, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, + 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, + 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, + 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/livekit/livekit_sip.twirp.go b/livekit/livekit_sip.twirp.go index f33db5fd..5cfe0f38 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -3868,146 +3868,148 @@ func (s *sIPServer) PathPrefix() string { } var twirpFileDescriptor4 = []byte{ - // 2251 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0xef, 0x72, 0xe3, 0x48, - 0x11, 0x5f, 0xdb, 0xf1, 0xbf, 0xb6, 0xe3, 0x38, 0x93, 0x3f, 0xe7, 0x38, 0xc9, 0xee, 0xe2, 0xbd, - 0xbd, 0xfd, 0x73, 0x57, 0xde, 0xc2, 0x5b, 0x1c, 0xb0, 0x55, 0x07, 0xe5, 0xb5, 0xb3, 0xbb, 0x66, - 0x73, 0x8e, 0x91, 0x1d, 0x8a, 0xa3, 0x0e, 0x84, 0x62, 0x4d, 0xe2, 0x21, 0xb6, 0x24, 0xa4, 0x71, - 0x6e, 0xc3, 0x67, 0xa8, 0x82, 0xe2, 0x29, 0x28, 0xaa, 0xf8, 0x00, 0x9f, 0xf9, 0x00, 0x6f, 0xc1, - 0x03, 0xf0, 0x02, 0x3c, 0x05, 0x35, 0xa3, 0x91, 0x3c, 0x92, 0x25, 0xc5, 0x59, 0xb8, 0xaa, 0xfb, - 0x26, 0x75, 0xf7, 0xf4, 0xb4, 0xba, 0x7f, 0xdd, 0x3d, 0x3d, 0x82, 0xcd, 0x29, 0xb9, 0xc2, 0x97, - 0x84, 0xaa, 0x0e, 0xb1, 0x9a, 0x96, 0x6d, 0x52, 0x13, 0xe5, 0x05, 0xa9, 0x7e, 0xf7, 0xc2, 0x34, - 0x2f, 0xa6, 0xf8, 0x19, 0x27, 0x9f, 0xcd, 0xcf, 0x9f, 0xe9, 0x73, 0x5b, 0xa3, 0xc4, 0x34, 0x5c, - 0xc1, 0xfa, 0x7e, 0x98, 0x8f, 0x67, 0x16, 0xbd, 0x16, 0xcc, 0x6d, 0x4f, 0xf1, 0xcc, 0xd4, 0xf1, - 0xd4, 0x71, 0xa9, 0x8d, 0x7f, 0x67, 0x60, 0xa7, 0x63, 0x63, 0x8d, 0xe2, 0x61, 0x6f, 0x30, 0xb2, - 0xe7, 0xc6, 0xa5, 0x82, 0x7f, 0x3d, 0xc7, 0x0e, 0x45, 0x1f, 0xc3, 0x26, 0x31, 0xce, 0xcc, 0xb9, - 0xa1, 0xab, 0x9a, 0xae, 0xdb, 0xd8, 0x71, 0xb0, 0x53, 0x4b, 0xdd, 0xcf, 0x3c, 0x2e, 0x2a, 0x55, - 0xc1, 0x68, 0x7b, 0x74, 0xf4, 0x04, 0xaa, 0xe6, 0x9c, 0x06, 0xa4, 0x6b, 0xe9, 0xfb, 0xa9, 0xc7, - 0x45, 0x65, 0xc3, 0xa3, 0x0b, 0x61, 0xf4, 0x08, 0x7c, 0x92, 0x6a, 0xcc, 0x67, 0x67, 0xd8, 0xae, - 0x65, 0xb8, 0x64, 0xc5, 0x23, 0xf7, 0x39, 0x15, 0x7d, 0x0a, 0x3b, 0x9e, 0x01, 0xae, 0x9c, 0xa3, - 0xda, 0xf8, 0x02, 0xbf, 0xab, 0xad, 0x31, 0x23, 0x5e, 0xa6, 0x6b, 0x29, 0x65, 0x4b, 0x08, 0xb8, - 0x2b, 0x1c, 0x85, 0xb1, 0xd9, 0x06, 0xa1, 0x75, 0xb5, 0x22, 0x37, 0xbb, 0x12, 0x94, 0x66, 0x46, - 0x7b, 0x82, 0x73, 0x07, 0xdb, 0x86, 0x36, 0xc3, 0xb5, 0xac, 0x6b, 0xb4, 0xa0, 0x9f, 0x0a, 0xb2, - 0x2c, 0x6a, 0x69, 0x8e, 0xf3, 0x95, 0x69, 0xeb, 0xb5, 0x5c, 0x40, 0x74, 0x20, 0xc8, 0xcc, 0x6f, - 0xfe, 0xf7, 0xf9, 0x6a, 0xf3, 0x5c, 0xd6, 0xf7, 0x91, 0xaf, 0x57, 0x16, 0xf6, 0x15, 0x17, 0x82, - 0xc2, 0xbe, 0x66, 0x04, 0x6b, 0x5c, 0x19, 0x70, 0x3e, 0x7f, 0x46, 0x75, 0x28, 0xcc, 0x30, 0xd5, - 0x74, 0x8d, 0x6a, 0xb5, 0x12, 0xa7, 0xfb, 0xef, 0x2f, 0xd2, 0xb5, 0x54, 0xe3, 0x2f, 0x59, 0x28, - 0x7b, 0x91, 0xed, 0x19, 0xe7, 0x26, 0xba, 0x0f, 0x65, 0x87, 0x58, 0x2a, 0x65, 0x04, 0x95, 0xe8, - 0xb5, 0x14, 0x5f, 0x04, 0x0e, 0xb1, 0x5c, 0x19, 0x1d, 0x3d, 0x87, 0xb5, 0x4b, 0x62, 0xe8, 0xb5, - 0xca, 0xfd, 0xd4, 0xe3, 0x4a, 0xeb, 0x5e, 0x53, 0xe0, 0xa6, 0x29, 0xab, 0x69, 0xf2, 0xa7, 0xb7, - 0xc4, 0xd0, 0x15, 0x2e, 0x1c, 0x8d, 0x96, 0xf4, 0x2d, 0xd0, 0x92, 0x59, 0x19, 0x2d, 0x6b, 0x91, - 0x68, 0x79, 0x0e, 0x45, 0x6a, 0x6b, 0x86, 0x63, 0x99, 0x36, 0xad, 0xad, 0x73, 0xd3, 0x77, 0x82, - 0xa6, 0x0b, 0xa6, 0xb2, 0x90, 0x8b, 0x87, 0x58, 0xf6, 0xd6, 0x10, 0x83, 0x95, 0x21, 0x96, 0x5b, - 0x1d, 0x62, 0xf9, 0x5b, 0x40, 0xac, 0x70, 0x1b, 0x88, 0x15, 0x6f, 0x80, 0x58, 0x29, 0x06, 0x62, - 0xe5, 0x20, 0xc4, 0x1a, 0x5d, 0x28, 0xfa, 0x48, 0x40, 0x55, 0x28, 0x8f, 0x94, 0xd3, 0xfe, 0x5b, - 0xf5, 0xf8, 0xe8, 0x75, 0xbb, 0xf3, 0x45, 0xf5, 0x0e, 0xda, 0x84, 0x75, 0x97, 0xd2, 0xeb, 0xbf, - 0x3c, 0x39, 0xed, 0x77, 0xab, 0x29, 0x84, 0xa0, 0xe2, 0x92, 0x4e, 0x4e, 0x47, 0x2e, 0x2d, 0xcd, - 0x81, 0xaa, 0xc0, 0x81, 0x5f, 0x87, 0x7a, 0xee, 0xf7, 0x06, 0xca, 0x51, 0x0b, 0xb2, 0x1c, 0xb3, - 0x1c, 0xb0, 0xa5, 0xd6, 0x81, 0x1c, 0x5b, 0x59, 0x9e, 0xa1, 0x53, 0x71, 0x45, 0x1b, 0xbf, 0xcb, - 0xc1, 0x56, 0x04, 0x7b, 0x85, 0x1c, 0xf0, 0xfc, 0x90, 0x8e, 0xf1, 0x43, 0x26, 0xe8, 0x07, 0x54, - 0x83, 0xbc, 0x07, 0x04, 0x5e, 0x9d, 0x14, 0xef, 0x95, 0xb9, 0x5f, 0x9b, 0x4e, 0xcd, 0xaf, 0xb0, - 0x9c, 0x18, 0x59, 0x37, 0x31, 0x04, 0x63, 0x91, 0x18, 0x8f, 0x60, 0xc3, 0x13, 0xf6, 0xd4, 0xe5, - 0x5c, 0x5c, 0x09, 0xb2, 0x87, 0xab, 0x07, 0xb0, 0xae, 0xcd, 0xe9, 0x24, 0x5c, 0x60, 0xca, 0x8c, - 0xe8, 0x47, 0xde, 0x13, 0x0a, 0x15, 0x16, 0x2e, 0xe4, 0x47, 0xbc, 0x03, 0xf9, 0x09, 0xd6, 0x74, - 0xaf, 0x4a, 0x96, 0x5a, 0x4f, 0x92, 0x3c, 0xdb, 0x7c, 0xe3, 0xca, 0x1e, 0x19, 0xd4, 0xbe, 0x56, - 0xbc, 0x95, 0x88, 0xc0, 0x8e, 0x78, 0x54, 0xa9, 0xa9, 0x6a, 0x94, 0xda, 0xe4, 0x6c, 0x4e, 0xb1, - 0x9b, 0x15, 0xa5, 0xd6, 0x77, 0x56, 0x51, 0x39, 0x32, 0xdb, 0xfe, 0x3a, 0x57, 0xfd, 0xd6, 0x64, - 0x99, 0x83, 0x5e, 0xc2, 0x86, 0x4d, 0x8c, 0x0b, 0x62, 0x5c, 0xa8, 0x94, 0xcc, 0xb0, 0x39, 0xa7, - 0x1c, 0xac, 0xa5, 0xd6, 0x5e, 0xd3, 0xed, 0x7e, 0x4d, 0xaf, 0xfb, 0x35, 0xbb, 0xa2, 0x3b, 0x2a, - 0x15, 0xb1, 0x62, 0xe4, 0x2e, 0x40, 0x47, 0xb0, 0x39, 0xd3, 0xde, 0xa9, 0x63, 0x6d, 0x3a, 0x55, - 0xbd, 0x16, 0xca, 0xa1, 0x9d, 0xa8, 0x65, 0x63, 0xa6, 0xbd, 0xeb, 0x68, 0xd3, 0xa9, 0x47, 0x60, - 0xfe, 0xbd, 0xb4, 0x89, 0x63, 0xa9, 0xd8, 0xd0, 0xce, 0xa6, 0x58, 0xe7, 0x65, 0xa7, 0xa0, 0x94, - 0x39, 0xf1, 0xc8, 0xa5, 0xd5, 0x5f, 0x40, 0x59, 0xf6, 0x19, 0xaa, 0x42, 0xe6, 0x12, 0x5f, 0x0b, - 0xc8, 0xb1, 0x47, 0xb4, 0x0d, 0xd9, 0x2b, 0x6d, 0x3a, 0xf7, 0xc0, 0xe6, 0xbe, 0xbc, 0x48, 0x7f, - 0x2f, 0x55, 0x7f, 0x05, 0xb5, 0x38, 0xe7, 0xdc, 0x46, 0x4f, 0x63, 0x04, 0x87, 0x7e, 0x6e, 0x9d, - 0x88, 0x94, 0x0f, 0x24, 0xd7, 0xf3, 0x60, 0x72, 0x1d, 0xca, 0xf1, 0x0a, 0x2c, 0x90, 0xb3, 0xeb, - 0x5f, 0x6b, 0xb0, 0x1d, 0xc5, 0xff, 0x7a, 0xd2, 0xcb, 0xeb, 0x13, 0x6e, 0xf5, 0xf7, 0x5e, 0x83, - 0x65, 0x3f, 0xbb, 0x62, 0xd9, 0x97, 0xb2, 0x35, 0x17, 0xcc, 0xd6, 0xff, 0x5f, 0x5e, 0x75, 0xc3, - 0x79, 0xf5, 0x34, 0xd1, 0xa9, 0x31, 0x89, 0xf5, 0xab, 0xe4, 0xc4, 0xfa, 0x74, 0x25, 0x9d, 0xab, - 0x65, 0xd6, 0x37, 0x02, 0xa9, 0x9f, 0xc1, 0xde, 0x6b, 0x4c, 0x63, 0x5a, 0xc0, 0x8d, 0xb8, 0x6a, - 0x0c, 0xa0, 0x1e, 0xb5, 0xdc, 0xb1, 0x4c, 0xc3, 0xc1, 0xef, 0xd5, 0x42, 0x7e, 0xe0, 0x69, 0x8c, - 0xcc, 0x9b, 0x9b, 0x2d, 0x52, 0x60, 0x3f, 0x72, 0xbd, 0x30, 0xe9, 0xbd, 0x12, 0x6f, 0x0f, 0xb6, - 0x8e, 0x89, 0x43, 0x43, 0x07, 0x76, 0xde, 0x45, 0x5f, 0xc3, 0x76, 0x90, 0x25, 0xf6, 0xf9, 0x18, - 0xb2, 0x84, 0xe2, 0x99, 0x7b, 0x80, 0x2f, 0x85, 0x53, 0xc4, 0xd7, 0xcf, 0x65, 0xb8, 0xa2, 0x03, - 0xa8, 0x0b, 0x45, 0x11, 0x91, 0x68, 0xfc, 0x18, 0xf6, 0x23, 0xb9, 0x0b, 0x47, 0xcb, 0xbb, 0xdd, - 0xe0, 0x68, 0x2e, 0xda, 0x38, 0xf4, 0x55, 0x46, 0x79, 0xba, 0x31, 0x84, 0x83, 0x68, 0xf6, 0xc2, - 0x91, 0xf2, 0x96, 0x37, 0x39, 0xd2, 0xdd, 0xf3, 0xfb, 0xb0, 0xd3, 0xc5, 0x53, 0xbc, 0x3c, 0xfb, - 0xdc, 0x1c, 0xd7, 0x57, 0xb0, 0x33, 0xec, 0x0d, 0xba, 0xc4, 0xb1, 0x34, 0x3a, 0x9e, 0x28, 0xf3, - 0x29, 0xee, 0x12, 0x1b, 0x8f, 0x29, 0xda, 0x87, 0xa2, 0x6d, 0x9a, 0x33, 0x95, 0x57, 0x0f, 0x77, - 0x5d, 0x81, 0x11, 0xfa, 0xac, 0x72, 0x54, 0x21, 0x63, 0x11, 0x43, 0xc0, 0x9e, 0x3d, 0x36, 0xfa, - 0xb0, 0x17, 0xd2, 0xd3, 0x33, 0x74, 0x72, 0x45, 0xf4, 0xb9, 0x36, 0x45, 0xf7, 0xa0, 0xc4, 0x75, - 0x59, 0x36, 0x3e, 0x27, 0xef, 0x3c, 0x2b, 0x18, 0x69, 0xc0, 0x29, 0x11, 0xfa, 0x26, 0x4b, 0x76, - 0xb1, 0x96, 0x85, 0xf1, 0x7b, 0xe8, 0x42, 0x07, 0x50, 0xb4, 0x35, 0x43, 0x37, 0x67, 0xe4, 0x37, - 0x98, 0x97, 0xe4, 0x82, 0xb2, 0x20, 0x34, 0xfe, 0x94, 0x86, 0x8d, 0xd0, 0x56, 0x48, 0x81, 0x6d, - 0x5d, 0xbc, 0xab, 0xf6, 0x7c, 0x8a, 0x55, 0x9d, 0x3b, 0x45, 0xa0, 0xfb, 0xae, 0x1c, 0x94, 0x65, - 0xd7, 0xbd, 0xb9, 0xa3, 0x20, 0x7d, 0xd9, 0xa1, 0xbf, 0x80, 0x5a, 0x50, 0x27, 0xf1, 0x1d, 0xc4, - 0x8d, 0x2d, 0xb5, 0x1a, 0x71, 0x7a, 0x17, 0xae, 0x7c, 0x73, 0x47, 0xd9, 0xd5, 0xa3, 0x9d, 0xbc, - 0x64, 0xf3, 0x98, 0x3b, 0x8c, 0x7f, 0x70, 0x82, 0xcd, 0xae, 0x5b, 0xc3, 0x36, 0xbb, 0xd4, 0x97, - 0x39, 0x58, 0x63, 0xaa, 0x1a, 0xbf, 0xcd, 0x48, 0xa7, 0x5a, 0x79, 0xb5, 0x07, 0xb4, 0x4f, 0x5c, - 0x41, 0xe1, 0xa0, 0x5a, 0xdc, 0x66, 0x0a, 0x97, 0x62, 0xd8, 0xf2, 0x20, 0xe9, 0x0d, 0x57, 0x05, - 0xea, 0x02, 0xd2, 0x41, 0x4f, 0x61, 0x73, 0x42, 0x74, 0xac, 0x5a, 0x13, 0xd3, 0xc0, 0xf2, 0x64, - 0x5d, 0x50, 0x36, 0x18, 0x63, 0xc0, 0xe8, 0x62, 0x58, 0x8a, 0x98, 0x5f, 0x72, 0x91, 0xf3, 0x8b, - 0xd7, 0xa8, 0xd7, 0x62, 0x1a, 0x75, 0x36, 0xd4, 0xa8, 0x4f, 0x01, 0xa4, 0x26, 0x95, 0x0f, 0x9d, - 0xfe, 0x92, 0x5c, 0xd1, 0x0c, 0xf7, 0x28, 0x49, 0x51, 0xfd, 0x33, 0xd8, 0xf8, 0x5f, 0xba, 0xca, - 0x9f, 0x33, 0x7c, 0x0e, 0x08, 0x42, 0xe3, 0xdc, 0x44, 0xcf, 0x60, 0x9b, 0xa5, 0x79, 0x08, 0x5e, - 0x5e, 0xba, 0x6f, 0x3a, 0xc4, 0x0a, 0x2c, 0xd1, 0xfd, 0x70, 0xa5, 0x6f, 0x1f, 0xae, 0xcc, 0x2a, - 0xe1, 0x5a, 0x5b, 0x39, 0x5c, 0xf9, 0xc4, 0x70, 0x65, 0x63, 0xc2, 0x95, 0x0b, 0x85, 0xeb, 0x38, - 0x10, 0xae, 0x02, 0x0f, 0xd7, 0x27, 0xf1, 0xd9, 0x74, 0x6e, 0x7e, 0x9d, 0x51, 0x5a, 0xb4, 0x9c, - 0x08, 0x78, 0x48, 0x2d, 0x27, 0xc8, 0x5d, 0xa1, 0xe5, 0x84, 0x3f, 0xc2, 0x2b, 0xff, 0x27, 0x70, - 0xe0, 0x97, 0xff, 0xa8, 0xe4, 0xbc, 0x2d, 0x3c, 0x1a, 0x7f, 0xcc, 0xc1, 0xbe, 0x8f, 0xf1, 0x81, - 0x66, 0x53, 0x32, 0x26, 0x96, 0x66, 0xd0, 0x95, 0xdb, 0x0a, 0xba, 0x0b, 0x25, 0x26, 0xc1, 0x27, - 0x13, 0x6a, 0x0a, 0x1f, 0x15, 0x1d, 0x62, 0xb1, 0xc2, 0x32, 0x32, 0x83, 0xdd, 0x25, 0x13, 0xea, - 0x2e, 0xdf, 0x86, 0x6d, 0x6b, 0xb1, 0xa9, 0x4a, 0x74, 0x6c, 0x50, 0x42, 0xaf, 0x45, 0xf2, 0x6e, - 0x49, 0xbc, 0x9e, 0x60, 0xa1, 0x27, 0x50, 0x95, 0x97, 0x48, 0x47, 0xde, 0x0d, 0x89, 0x1e, 0xa5, - 0xdd, 0xc7, 0x54, 0x61, 0x49, 0xfb, 0xe7, 0x1e, 0xbc, 0xae, 0x60, 0x57, 0x5e, 0x22, 0x41, 0xcd, - 0x3d, 0x12, 0xff, 0x70, 0xb9, 0x32, 0x2c, 0x7b, 0xad, 0x29, 0x91, 0xc2, 0xe8, 0xdb, 0xb1, 0xa2, - 0x78, 0x2c, 0x0d, 0x74, 0x3a, 0x3b, 0xf7, 0xd2, 0x80, 0x3d, 0xa3, 0x47, 0xb0, 0x6e, 0x4d, 0xb5, - 0x6b, 0x95, 0x8d, 0x82, 0xd4, 0x34, 0xdc, 0x6b, 0x98, 0x02, 0xbf, 0xe2, 0x29, 0x33, 0x86, 0x22, - 0xe8, 0xec, 0x74, 0xcf, 0x05, 0x75, 0xa2, 0x4d, 0xb9, 0xa0, 0x98, 0xea, 0x18, 0xb1, 0x2b, 0x68, - 0xd1, 0xd9, 0x0b, 0xd1, 0xd9, 0xfb, 0x0d, 0x9a, 0x58, 0xbf, 0x05, 0x65, 0x77, 0x56, 0x55, 0xf9, - 0x8c, 0xca, 0xaf, 0xf8, 0x0a, 0x4a, 0xc9, 0xa5, 0xbd, 0x65, 0xa4, 0xfa, 0x1b, 0xa8, 0xc7, 0x3b, - 0xfc, 0x56, 0xf9, 0xfc, 0xb7, 0x14, 0xa0, 0x60, 0x44, 0x79, 0xd1, 0x7d, 0x08, 0x95, 0x20, 0x4a, - 0x85, 0xb6, 0xf5, 0x00, 0x3e, 0x63, 0xc1, 0x9c, 0x8e, 0x07, 0x73, 0x62, 0x72, 0xc8, 0x99, 0x45, - 0x74, 0x91, 0x13, 0x5e, 0x66, 0xf5, 0xf4, 0xc6, 0xdf, 0x53, 0x70, 0xc8, 0x87, 0xc5, 0x73, 0x6c, - 0x47, 0x67, 0x6f, 0x9c, 0x45, 0xa9, 0x15, 0x2d, 0x4a, 0x87, 0x2c, 0xba, 0x07, 0x25, 0x2a, 0x36, - 0x64, 0xb9, 0xee, 0x1a, 0x0c, 0x1e, 0x69, 0x64, 0x2e, 0x23, 0x71, 0x6d, 0x19, 0x89, 0x8d, 0x7f, - 0x64, 0xa0, 0x34, 0xec, 0x0d, 0xf8, 0x57, 0x30, 0xf7, 0x7e, 0x00, 0x79, 0xef, 0x1b, 0x5d, 0xc3, - 0x72, 0x63, 0xfe, 0x81, 0x68, 0x0f, 0x0a, 0x7e, 0xe1, 0x71, 0x4d, 0xc9, 0x8b, 0x66, 0x94, 0xec, - 0xb8, 0x0f, 0x20, 0xcf, 0x99, 0xbe, 0xd3, 0x72, 0xec, 0x35, 0x21, 0x42, 0xd9, 0x78, 0x7f, 0x3c, - 0x85, 0xc2, 0xb9, 0x6d, 0xce, 0xd4, 0xb9, 0x4d, 0x78, 0xfe, 0x95, 0x5a, 0x1b, 0x72, 0xa1, 0x3e, - 0xb5, 0x89, 0x92, 0x67, 0x02, 0xa7, 0x36, 0x41, 0x1f, 0x41, 0x8e, 0x9a, 0x5c, 0x32, 0x1f, 0x2d, - 0x99, 0xa5, 0x26, 0x93, 0xfb, 0x2e, 0x94, 0xf8, 0x07, 0x3b, 0x54, 0xa3, 0x73, 0x87, 0x97, 0xa3, - 0x4a, 0x6b, 0x57, 0x16, 0x66, 0xbe, 0x19, 0x72, 0xae, 0x02, 0x63, 0xff, 0x19, 0x1d, 0x02, 0x38, - 0x54, 0xb3, 0x29, 0xd6, 0x55, 0x8d, 0xf2, 0x1b, 0xd1, 0x8c, 0x52, 0x14, 0x94, 0x36, 0x65, 0xfe, - 0xc2, 0x86, 0xee, 0x32, 0x81, 0x33, 0xf3, 0xfc, 0xbd, 0x4d, 0xd1, 0x2b, 0xd8, 0xd4, 0x89, 0x33, - 0x36, 0x0d, 0x03, 0x8f, 0xa9, 0x6a, 0x63, 0xcd, 0x31, 0x0d, 0x9e, 0xd3, 0x95, 0xd6, 0x9e, 0xbf, - 0x71, 0xd7, 0x97, 0x50, 0xb8, 0x80, 0x52, 0xd5, 0x43, 0x94, 0xc6, 0x1f, 0x52, 0x90, 0x73, 0x3f, - 0x86, 0x95, 0xac, 0xb9, 0x83, 0x6d, 0x11, 0x33, 0xfe, 0xcc, 0x68, 0x13, 0xd3, 0xa1, 0xde, 0x2d, - 0x09, 0x7b, 0x46, 0x15, 0x48, 0x13, 0x4b, 0xc4, 0x28, 0x4d, 0x2c, 0x26, 0xc3, 0xaf, 0x3e, 0xc4, - 0x01, 0x8d, 0x5f, 0x6f, 0xbc, 0xcf, 0x9d, 0xc8, 0xd3, 0x4b, 0xf1, 0x9f, 0xc0, 0xbb, 0x23, 0xd9, - 0xe5, 0xc9, 0xab, 0x8e, 0x94, 0x76, 0x7f, 0x38, 0x38, 0x51, 0x46, 0x6a, 0xfb, 0x74, 0x74, 0x52, - 0xbd, 0x83, 0x76, 0x60, 0x33, 0x48, 0x3f, 0xed, 0x0e, 0xaa, 0xa9, 0x65, 0xf2, 0xa8, 0x33, 0xa8, - 0xa6, 0x23, 0xc8, 0xc7, 0xc3, 0x6a, 0xe6, 0xe9, 0x04, 0xd6, 0x03, 0x71, 0xe1, 0x72, 0x9d, 0xa1, - 0xda, 0x69, 0x1f, 0x1f, 0xab, 0xbd, 0x7e, 0xe7, 0xe4, 0xf3, 0x5e, 0xff, 0x75, 0xf5, 0x0e, 0xaa, - 0xc3, 0x2e, 0x23, 0x0f, 0xda, 0xca, 0xa8, 0xd7, 0xe9, 0x0d, 0xda, 0xfd, 0x91, 0xfa, 0xa3, 0x93, - 0x5e, 0xff, 0xa8, 0x5b, 0x4d, 0xa1, 0x0a, 0x00, 0xe3, 0xb5, 0x3b, 0xa3, 0xde, 0x4f, 0x8e, 0xaa, - 0x69, 0xb4, 0x0d, 0x55, 0xf6, 0xde, 0xed, 0x0d, 0x3b, 0x27, 0xfd, 0xfe, 0x51, 0x67, 0x74, 0xd4, - 0xad, 0x66, 0x5a, 0xff, 0x2c, 0x42, 0x66, 0xd8, 0x1b, 0xa0, 0x01, 0x94, 0xe5, 0xc1, 0x18, 0x2d, - 0x0e, 0x08, 0x11, 0xa3, 0x74, 0xfd, 0x30, 0x86, 0xeb, 0x1e, 0x36, 0x1a, 0x99, 0xdf, 0xa7, 0x53, - 0xe8, 0x4b, 0xe9, 0xc7, 0x99, 0x3c, 0xd4, 0xa2, 0x87, 0xcb, 0x5d, 0x2d, 0x62, 0x86, 0xae, 0x27, - 0x4e, 0xc5, 0x48, 0x85, 0xdd, 0xe8, 0x2b, 0x3b, 0xf4, 0xd1, 0xb2, 0xfa, 0xa8, 0x89, 0xb9, 0x9e, - 0x3c, 0x02, 0xa3, 0x9f, 0x03, 0x5a, 0xbe, 0x2a, 0x41, 0x8b, 0x51, 0x2a, 0xf6, 0x1a, 0xa6, 0xfe, - 0x20, 0x51, 0x46, 0x9c, 0xc7, 0x7e, 0x09, 0x5b, 0x11, 0xf7, 0x1e, 0x28, 0xbc, 0x36, 0xd2, 0xf2, - 0x0f, 0x93, 0x85, 0x16, 0x3b, 0x44, 0xdc, 0x41, 0x48, 0x3b, 0xc4, 0xdf, 0x5f, 0x48, 0x3b, 0x24, - 0x5d, 0x63, 0x8c, 0xfd, 0xcb, 0x94, 0xe0, 0x47, 0x2c, 0xad, 0x8e, 0xfc, 0x8a, 0x87, 0x37, 0x48, - 0x89, 0x4d, 0x5e, 0x43, 0x25, 0x78, 0x07, 0x81, 0x16, 0x23, 0x67, 0xe4, 0xe5, 0x44, 0x3d, 0xfa, - 0xf2, 0x26, 0x80, 0xc7, 0xc0, 0x50, 0xfe, 0x70, 0xa5, 0xf9, 0xab, 0x9e, 0x78, 0x64, 0x96, 0xbc, - 0x1d, 0xd0, 0xbd, 0xe4, 0xed, 0x28, 0xcd, 0x1f, 0x26, 0x0b, 0x09, 0x47, 0x7c, 0x29, 0x5d, 0xc6, - 0xc4, 0xd8, 0x9f, 0x74, 0x5a, 0xbf, 0xc1, 0xfe, 0x2f, 0x60, 0x3b, 0xea, 0x8c, 0x29, 0xc5, 0x32, - 0xe1, 0x08, 0x5a, 0xdf, 0x97, 0x75, 0x87, 0x0f, 0x34, 0x3f, 0x85, 0xdd, 0xe8, 0x83, 0x83, 0x94, - 0xaa, 0x89, 0x27, 0x8b, 0xfa, 0xee, 0xd2, 0x11, 0xee, 0x68, 0x66, 0xd1, 0xeb, 0x97, 0xaf, 0x7e, - 0xf6, 0xe0, 0x82, 0xd0, 0xc9, 0xfc, 0xac, 0x39, 0x36, 0x67, 0xcf, 0x84, 0x2e, 0xf7, 0xef, 0xfe, - 0xd8, 0x9c, 0x7a, 0x84, 0xbf, 0xa6, 0xd7, 0x8f, 0xc9, 0x15, 0x7e, 0x4b, 0x68, 0x73, 0xc0, 0x58, - 0xff, 0x49, 0x57, 0xc4, 0xfb, 0x8b, 0x17, 0x9c, 0x70, 0x96, 0xe3, 0x4b, 0x9e, 0xff, 0x37, 0x00, - 0x00, 0xff, 0xff, 0x60, 0x0a, 0x83, 0xd4, 0x5c, 0x20, 0x00, 0x00, + // 2284 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x5a, 0xdd, 0x72, 0xe3, 0x58, + 0x11, 0x1e, 0xdb, 0xf1, 0x5f, 0x3b, 0x71, 0x9c, 0x93, 0x9f, 0x75, 0x9c, 0x64, 0x67, 0xf0, 0xec, + 0xec, 0xfc, 0xec, 0x96, 0xa7, 0xf0, 0x14, 0x0b, 0x4c, 0xd5, 0x42, 0x79, 0x6c, 0xcf, 0x8c, 0x99, + 0xac, 0x6d, 0x64, 0x87, 0x62, 0xa9, 0x05, 0xa1, 0x58, 0x27, 0xc9, 0x21, 0xb6, 0x24, 0xa4, 0xe3, + 0xcc, 0x84, 0x6b, 0xa8, 0x82, 0xe2, 0x29, 0x28, 0xaa, 0xb8, 0x80, 0x6b, 0x6e, 0x78, 0x0b, 0x1e, + 0x80, 0x17, 0xe0, 0x82, 0x67, 0xa0, 0xce, 0x8f, 0x64, 0x49, 0x96, 0x14, 0x67, 0x60, 0xab, 0xf6, + 0x4e, 0xea, 0xee, 0xd3, 0xa7, 0xd5, 0xfd, 0x75, 0xf7, 0xe9, 0x63, 0xc3, 0xd6, 0x94, 0x5c, 0xe1, + 0x4b, 0x42, 0x55, 0x87, 0x58, 0x0d, 0xcb, 0x36, 0xa9, 0x89, 0xf2, 0x92, 0x54, 0xfb, 0xf0, 0xdc, + 0x34, 0xcf, 0xa7, 0xf8, 0x29, 0x27, 0x9f, 0xce, 0xcf, 0x9e, 0xea, 0x73, 0x5b, 0xa3, 0xc4, 0x34, + 0x84, 0x60, 0xed, 0x20, 0xcc, 0xc7, 0x33, 0x8b, 0x5e, 0x4b, 0xe6, 0x8e, 0xab, 0x78, 0x66, 0xea, + 0x78, 0xea, 0x08, 0x6a, 0xfd, 0x5f, 0x19, 0xd8, 0x6d, 0xdb, 0x58, 0xa3, 0x78, 0xd4, 0x1b, 0x8e, + 0xed, 0xb9, 0x71, 0xa9, 0xe0, 0x5f, 0xcf, 0xb1, 0x43, 0xd1, 0x27, 0xb0, 0x45, 0x8c, 0x53, 0x73, + 0x6e, 0xe8, 0xaa, 0xa6, 0xeb, 0x36, 0x76, 0x1c, 0xec, 0x54, 0x53, 0xf7, 0x32, 0x8f, 0x8a, 0x4a, + 0x45, 0x32, 0x5a, 0x2e, 0x1d, 0x3d, 0x86, 0x8a, 0x39, 0xa7, 0x01, 0xe9, 0x6a, 0xfa, 0x5e, 0xea, + 0x51, 0x51, 0xd9, 0x74, 0xe9, 0x52, 0x18, 0x3d, 0x04, 0x8f, 0xa4, 0x1a, 0xf3, 0xd9, 0x29, 0xb6, + 0xab, 0x19, 0x2e, 0x59, 0x76, 0xc9, 0x7d, 0x4e, 0x45, 0x9f, 0xc1, 0xae, 0x6b, 0x80, 0x90, 0x73, + 0x54, 0x1b, 0x9f, 0xe3, 0x77, 0xd5, 0x35, 0x66, 0xc4, 0x8b, 0x74, 0x35, 0xa5, 0x6c, 0x4b, 0x01, + 0xb1, 0xc2, 0x51, 0x18, 0x9b, 0x6d, 0x10, 0x5a, 0x57, 0x2d, 0x72, 0xb3, 0xcb, 0x41, 0x69, 0x66, + 0xb4, 0x2b, 0x38, 0x77, 0xb0, 0x6d, 0x68, 0x33, 0x5c, 0xcd, 0x0a, 0xa3, 0x25, 0xfd, 0x44, 0x92, + 0xfd, 0xa2, 0x96, 0xe6, 0x38, 0x6f, 0x4d, 0x5b, 0xaf, 0xe6, 0x02, 0xa2, 0x43, 0x49, 0x66, 0x7e, + 0xf3, 0xbe, 0xcf, 0x53, 0x9b, 0xe7, 0xb2, 0x9e, 0x8f, 0x3c, 0xbd, 0x7e, 0x61, 0x4f, 0x71, 0x21, + 0x28, 0xec, 0x69, 0x46, 0xb0, 0xc6, 0x95, 0x01, 0xe7, 0xf3, 0x67, 0x54, 0x83, 0xc2, 0x0c, 0x53, + 0x4d, 0xd7, 0xa8, 0x56, 0x2d, 0x71, 0xba, 0xf7, 0xfe, 0x3c, 0x5d, 0x4d, 0xd5, 0xff, 0x92, 0x85, + 0x75, 0x37, 0xb2, 0x3d, 0xe3, 0xcc, 0x44, 0xf7, 0x60, 0xdd, 0x21, 0x96, 0x4a, 0x19, 0x41, 0x25, + 0x7a, 0x35, 0xc5, 0x17, 0x81, 0x43, 0x2c, 0x21, 0xa3, 0xa3, 0x67, 0xb0, 0x76, 0x49, 0x0c, 0xbd, + 0x5a, 0xbe, 0x97, 0x7a, 0x54, 0x6e, 0xde, 0x6d, 0x48, 0xdc, 0x34, 0xfc, 0x6a, 0x1a, 0xfc, 0xe9, + 0x0d, 0x31, 0x74, 0x85, 0x0b, 0x47, 0xa3, 0x25, 0x7d, 0x0b, 0xb4, 0x64, 0x56, 0x46, 0xcb, 0x5a, + 0x24, 0x5a, 0x9e, 0x41, 0x91, 0xda, 0x9a, 0xe1, 0x58, 0xa6, 0x4d, 0xab, 0x1b, 0xdc, 0xf4, 0xdd, + 0xa0, 0xe9, 0x92, 0xa9, 0x2c, 0xe4, 0xe2, 0x21, 0x96, 0xbd, 0x35, 0xc4, 0x60, 0x65, 0x88, 0xe5, + 0x56, 0x87, 0x58, 0xfe, 0x16, 0x10, 0x2b, 0xdc, 0x06, 0x62, 0xc5, 0x1b, 0x20, 0x56, 0x8a, 0x81, + 0xd8, 0x7a, 0x10, 0x62, 0xf5, 0x0e, 0x14, 0x3d, 0x24, 0xa0, 0x0a, 0xac, 0x8f, 0x95, 0x93, 0xfe, + 0x1b, 0xf5, 0xb8, 0xfb, 0xaa, 0xd5, 0xfe, 0xb2, 0x72, 0x07, 0x6d, 0xc1, 0x86, 0xa0, 0xf4, 0xfa, + 0x2f, 0x06, 0x27, 0xfd, 0x4e, 0x25, 0x85, 0x10, 0x94, 0x05, 0x69, 0x70, 0x32, 0x16, 0xb4, 0x34, + 0x07, 0xaa, 0x02, 0x87, 0x5e, 0x1d, 0xea, 0x89, 0xef, 0x0d, 0x94, 0xa3, 0x26, 0x64, 0x39, 0x66, + 0x39, 0x60, 0x4b, 0xcd, 0x43, 0x7f, 0x6c, 0xfd, 0xf2, 0x0c, 0x9d, 0x8a, 0x10, 0xad, 0xff, 0x2e, + 0x07, 0xdb, 0x11, 0xec, 0x15, 0x72, 0xc0, 0xf5, 0x43, 0x3a, 0xc6, 0x0f, 0x99, 0xa0, 0x1f, 0x50, + 0x15, 0xf2, 0x2e, 0x10, 0x78, 0x75, 0x52, 0xdc, 0x57, 0xe6, 0x7e, 0x6d, 0x3a, 0x35, 0xdf, 0x62, + 0x7f, 0x62, 0x64, 0x45, 0x62, 0x48, 0xc6, 0x22, 0x31, 0x1e, 0xc2, 0xa6, 0x2b, 0xec, 0xaa, 0xcb, + 0x09, 0x5c, 0x49, 0xb2, 0x8b, 0xab, 0xfb, 0xb0, 0xa1, 0xcd, 0xe9, 0x45, 0xb8, 0xc0, 0xac, 0x33, + 0xa2, 0x17, 0x79, 0x57, 0x28, 0x54, 0x58, 0xb8, 0x90, 0x17, 0xf1, 0x36, 0xe4, 0x2f, 0xb0, 0xa6, + 0xbb, 0x55, 0xb2, 0xd4, 0x7c, 0x9c, 0xe4, 0xd9, 0xc6, 0x6b, 0x21, 0xdb, 0x35, 0xa8, 0x7d, 0xad, + 0xb8, 0x2b, 0x11, 0x81, 0x5d, 0xf9, 0xa8, 0x52, 0x53, 0xd5, 0x28, 0xb5, 0xc9, 0xe9, 0x9c, 0x62, + 0x91, 0x15, 0xa5, 0xe6, 0x77, 0x56, 0x51, 0x39, 0x36, 0x5b, 0xde, 0x3a, 0xa1, 0x7e, 0xfb, 0x62, + 0x99, 0x83, 0x5e, 0xc0, 0xa6, 0x4d, 0x8c, 0x73, 0x62, 0x9c, 0xab, 0x94, 0xcc, 0xb0, 0x39, 0xa7, + 0x1c, 0xac, 0xa5, 0xe6, 0x7e, 0x43, 0x74, 0xbf, 0x86, 0xdb, 0xfd, 0x1a, 0x1d, 0xd9, 0x1d, 0x95, + 0xb2, 0x5c, 0x31, 0x16, 0x0b, 0x50, 0x17, 0xb6, 0x66, 0xda, 0x3b, 0x75, 0xa2, 0x4d, 0xa7, 0xaa, + 0xdb, 0x42, 0x39, 0xb4, 0x13, 0xb5, 0x6c, 0xce, 0xb4, 0x77, 0x6d, 0x6d, 0x3a, 0x75, 0x09, 0xcc, + 0xbf, 0x97, 0x36, 0x71, 0x2c, 0x15, 0x1b, 0xda, 0xe9, 0x14, 0xeb, 0xbc, 0xec, 0x14, 0x94, 0x75, + 0x4e, 0xec, 0x0a, 0x5a, 0xed, 0x39, 0xac, 0xfb, 0x7d, 0x86, 0x2a, 0x90, 0xb9, 0xc4, 0xd7, 0x12, + 0x72, 0xec, 0x11, 0xed, 0x40, 0xf6, 0x4a, 0x9b, 0xce, 0x5d, 0xb0, 0x89, 0x97, 0xe7, 0xe9, 0xef, + 0xa5, 0x6a, 0x2f, 0xa1, 0x1a, 0xe7, 0x9c, 0xdb, 0xe8, 0xa9, 0x8f, 0xe1, 0xc8, 0xcb, 0xad, 0x81, + 0x4c, 0xf9, 0x40, 0x72, 0x3d, 0x0b, 0x26, 0xd7, 0x91, 0x3f, 0x5e, 0x81, 0x05, 0xfe, 0xec, 0xfa, + 0xe7, 0x1a, 0xec, 0x44, 0xf1, 0xbf, 0x9e, 0xf4, 0x72, 0xfb, 0x84, 0xa8, 0xfe, 0xee, 0x6b, 0xb0, + 0xec, 0x67, 0x57, 0x2c, 0xfb, 0xbe, 0x6c, 0xcd, 0x05, 0xb3, 0xf5, 0xff, 0x97, 0x57, 0x9d, 0x70, + 0x5e, 0x3d, 0x49, 0x74, 0x6a, 0x4c, 0x62, 0xfd, 0x2a, 0x39, 0xb1, 0x3e, 0x5b, 0x49, 0xe7, 0x6a, + 0x99, 0xf5, 0x8d, 0x40, 0xea, 0xe7, 0xb0, 0xff, 0x0a, 0xd3, 0x98, 0x16, 0x70, 0x23, 0xae, 0xea, + 0x43, 0xa8, 0x45, 0x2d, 0x77, 0x2c, 0xd3, 0x70, 0xf0, 0x7b, 0xb5, 0x90, 0x1f, 0xb8, 0x1a, 0x23, + 0xf3, 0xe6, 0x66, 0x8b, 0x14, 0x38, 0x88, 0x5c, 0x2f, 0x4d, 0x7a, 0xaf, 0xc4, 0xdb, 0x87, 0xed, + 0x63, 0xe2, 0xd0, 0xd0, 0x81, 0x9d, 0x77, 0xd1, 0x57, 0xb0, 0x13, 0x64, 0xc9, 0x7d, 0x3e, 0x81, + 0x2c, 0xa1, 0x78, 0x26, 0x0e, 0xf0, 0xa5, 0x70, 0x8a, 0x78, 0xfa, 0xb9, 0x0c, 0x57, 0x74, 0x08, + 0x35, 0xa9, 0x28, 0x22, 0x12, 0xf5, 0x1f, 0xc3, 0x41, 0x24, 0x77, 0xe1, 0x68, 0xff, 0x6e, 0x37, + 0x38, 0x9a, 0x8b, 0xd6, 0x8f, 0x3c, 0x95, 0x51, 0x9e, 0xae, 0x8f, 0xe0, 0x30, 0x9a, 0xbd, 0x70, + 0xa4, 0x7f, 0xcb, 0x9b, 0x1c, 0x29, 0xf6, 0xfc, 0x3e, 0xec, 0x76, 0xf0, 0x14, 0x2f, 0xcf, 0x3e, + 0x37, 0xc7, 0xf5, 0x25, 0xec, 0x8e, 0x7a, 0xc3, 0x0e, 0x71, 0x2c, 0x8d, 0x4e, 0x2e, 0x94, 0xf9, + 0x14, 0x77, 0x88, 0x8d, 0x27, 0x14, 0x1d, 0x40, 0xd1, 0x36, 0xcd, 0x99, 0xca, 0xab, 0x87, 0x58, + 0x57, 0x60, 0x84, 0x3e, 0xab, 0x1c, 0x15, 0xc8, 0x58, 0xc4, 0x90, 0xb0, 0x67, 0x8f, 0xf5, 0x3e, + 0xec, 0x87, 0xf4, 0xf4, 0x0c, 0x9d, 0x5c, 0x11, 0x7d, 0xae, 0x4d, 0xd1, 0x5d, 0x28, 0x71, 0x5d, + 0x96, 0x8d, 0xcf, 0xc8, 0x3b, 0xd7, 0x0a, 0x46, 0x1a, 0x72, 0x4a, 0x84, 0xbe, 0x8b, 0x25, 0xbb, + 0x58, 0xcb, 0xc2, 0xf8, 0x3d, 0x74, 0xa1, 0x43, 0x28, 0xda, 0x9a, 0xa1, 0x9b, 0x33, 0xf2, 0x1b, + 0xcc, 0x4b, 0x72, 0x41, 0x59, 0x10, 0xea, 0x7f, 0x4a, 0xc3, 0x66, 0x68, 0x2b, 0xa4, 0xc0, 0x8e, + 0x2e, 0xdf, 0x55, 0x7b, 0x3e, 0xc5, 0xaa, 0xce, 0x9d, 0x22, 0xd1, 0xfd, 0xa1, 0x3f, 0x28, 0xcb, + 0xae, 0x7b, 0x7d, 0x47, 0x41, 0xfa, 0xb2, 0x43, 0x7f, 0x01, 0xd5, 0xa0, 0x4e, 0xe2, 0x39, 0x88, + 0x1b, 0x5b, 0x6a, 0xd6, 0xe3, 0xf4, 0x2e, 0x5c, 0xf9, 0xfa, 0x8e, 0xb2, 0xa7, 0x47, 0x3b, 0x79, + 0xc9, 0xe6, 0x09, 0x77, 0x18, 0xff, 0xe0, 0x04, 0x9b, 0x85, 0x5b, 0xc3, 0x36, 0x0b, 0xea, 0x8b, + 0x1c, 0xac, 0x31, 0x55, 0xf5, 0xdf, 0x66, 0x7c, 0xa7, 0x5a, 0xff, 0x6a, 0x17, 0x68, 0x9f, 0x0a, + 0x41, 0xe9, 0xa0, 0x6a, 0xdc, 0x66, 0x0a, 0x97, 0x62, 0xd8, 0x72, 0x21, 0xe9, 0x0e, 0x57, 0x05, + 0x2a, 0x00, 0xe9, 0xa0, 0x27, 0xb0, 0x75, 0x41, 0x74, 0xac, 0x5a, 0x17, 0xa6, 0x81, 0xfd, 0x93, + 0x75, 0x41, 0xd9, 0x64, 0x8c, 0x21, 0xa3, 0xcb, 0x61, 0x29, 0x62, 0x7e, 0xc9, 0x45, 0xce, 0x2f, + 0x6e, 0xa3, 0x5e, 0x8b, 0x69, 0xd4, 0xd9, 0x50, 0xa3, 0x3e, 0x01, 0xf0, 0x35, 0xa9, 0x7c, 0xe8, + 0xf4, 0x97, 0xe4, 0x8a, 0x46, 0xb8, 0x47, 0xf9, 0x14, 0xd5, 0x3e, 0x87, 0xcd, 0xff, 0xa5, 0xab, + 0xfc, 0x39, 0xc3, 0xe7, 0x80, 0x20, 0x34, 0xce, 0x4c, 0xf4, 0x14, 0x76, 0x58, 0x9a, 0x87, 0xe0, + 0xe5, 0xa6, 0xfb, 0x96, 0x43, 0xac, 0xc0, 0x12, 0xdd, 0x0b, 0x57, 0xfa, 0xf6, 0xe1, 0xca, 0xac, + 0x12, 0xae, 0xb5, 0x95, 0xc3, 0x95, 0x4f, 0x0c, 0x57, 0x36, 0x26, 0x5c, 0xb9, 0x50, 0xb8, 0x8e, + 0x03, 0xe1, 0x2a, 0xf0, 0x70, 0x7d, 0x1a, 0x9f, 0x4d, 0x67, 0xe6, 0xd7, 0x19, 0xa5, 0x45, 0xcb, + 0x89, 0x80, 0x87, 0xaf, 0xe5, 0x04, 0xb9, 0x2b, 0xb4, 0x9c, 0xf0, 0x47, 0xb8, 0xe5, 0x7f, 0x00, + 0x87, 0x5e, 0xf9, 0x8f, 0x4a, 0xce, 0xdb, 0xc2, 0xa3, 0xfe, 0xc7, 0x1c, 0x1c, 0x78, 0x18, 0x1f, + 0x6a, 0x36, 0x25, 0x13, 0x62, 0x69, 0x06, 0x5d, 0xb9, 0xad, 0xa0, 0x0f, 0xa1, 0xc4, 0x24, 0xf8, + 0x64, 0x42, 0x4d, 0xe9, 0xa3, 0xa2, 0x43, 0x2c, 0x56, 0x58, 0xc6, 0x66, 0xb0, 0xbb, 0x64, 0x42, + 0xdd, 0xe5, 0xdb, 0xb0, 0x63, 0x2d, 0x36, 0x55, 0x89, 0x8e, 0x0d, 0x4a, 0xe8, 0xb5, 0x4c, 0xde, + 0x6d, 0x1f, 0xaf, 0x27, 0x59, 0xe8, 0x31, 0x54, 0xfc, 0x4b, 0x7c, 0x47, 0xde, 0x4d, 0x1f, 0x3d, + 0x4a, 0xbb, 0x87, 0xa9, 0xc2, 0x92, 0xf6, 0x2f, 0x5c, 0x78, 0x5d, 0xc1, 0x9e, 0x7f, 0x89, 0x0f, + 0x6a, 0xe2, 0x48, 0xfc, 0xc3, 0xe5, 0xca, 0xb0, 0xec, 0xb5, 0x86, 0x8f, 0x14, 0x46, 0xdf, 0xae, + 0x15, 0xc5, 0x63, 0x69, 0xa0, 0xd3, 0xd9, 0x99, 0x9b, 0x06, 0xec, 0x19, 0x3d, 0x84, 0x0d, 0x6b, + 0xaa, 0x5d, 0xab, 0x6c, 0x14, 0xa4, 0xa6, 0x21, 0xae, 0x61, 0x0a, 0xfc, 0x8a, 0x67, 0x9d, 0x31, + 0x14, 0x49, 0x67, 0xa7, 0x7b, 0x2e, 0xa8, 0x13, 0x6d, 0xca, 0x05, 0xe5, 0x54, 0xc7, 0x88, 0x1d, + 0x49, 0x8b, 0xce, 0x5e, 0x88, 0xce, 0xde, 0x6f, 0xd0, 0xc4, 0xfa, 0x2d, 0x58, 0x17, 0xb3, 0xaa, + 0xca, 0x67, 0x54, 0x7e, 0xc5, 0x57, 0x50, 0x4a, 0x82, 0xf6, 0x86, 0x91, 0x6a, 0xaf, 0xa1, 0x16, + 0xef, 0xf0, 0x5b, 0xe5, 0xf3, 0xdf, 0x52, 0x80, 0x82, 0x11, 0xe5, 0x45, 0xf7, 0x01, 0x94, 0x83, + 0x28, 0x95, 0xda, 0x36, 0x02, 0xf8, 0x8c, 0x05, 0x73, 0x3a, 0x1e, 0xcc, 0x89, 0xc9, 0xe1, 0xcf, + 0x2c, 0xa2, 0xcb, 0x9c, 0x70, 0x33, 0xab, 0xa7, 0xd7, 0xff, 0x9e, 0x82, 0x23, 0x3e, 0x2c, 0x9e, + 0x61, 0x3b, 0x3a, 0x7b, 0xe3, 0x2c, 0x4a, 0xad, 0x68, 0x51, 0x3a, 0x64, 0xd1, 0x5d, 0x28, 0x51, + 0xb9, 0x21, 0xcb, 0x75, 0x61, 0x30, 0xb8, 0xa4, 0xb1, 0xb9, 0x8c, 0xc4, 0xb5, 0x65, 0x24, 0xd6, + 0xff, 0x93, 0x81, 0xd2, 0xa8, 0x37, 0xe4, 0x5f, 0xc1, 0xdc, 0xfb, 0x01, 0xe4, 0xdd, 0x6f, 0x14, + 0x86, 0xe5, 0x26, 0xfc, 0x03, 0xd1, 0x3e, 0x14, 0xbc, 0xc2, 0x23, 0x4c, 0xc9, 0xcb, 0x66, 0x94, + 0xec, 0xb8, 0x0f, 0x20, 0xcf, 0x99, 0x9e, 0xd3, 0x72, 0xec, 0x35, 0x21, 0x42, 0xd9, 0x78, 0x7f, + 0x3c, 0x81, 0xc2, 0x99, 0x6d, 0xce, 0xd4, 0xb9, 0x4d, 0x78, 0xfe, 0x95, 0x9a, 0x9b, 0xfe, 0x42, + 0x7d, 0x62, 0x13, 0x25, 0xcf, 0x04, 0x4e, 0x6c, 0x82, 0x3e, 0x86, 0x1c, 0x35, 0xb9, 0x64, 0x3e, + 0x5a, 0x32, 0x4b, 0x4d, 0x26, 0xf7, 0x5d, 0x28, 0xf1, 0x0f, 0x76, 0xa8, 0x46, 0xe7, 0x0e, 0x2f, + 0x47, 0xe5, 0xe6, 0x9e, 0x5f, 0x98, 0xf9, 0x66, 0xc4, 0xb9, 0x0a, 0x4c, 0xbc, 0x67, 0x74, 0x04, + 0x30, 0xe1, 0x65, 0x47, 0x57, 0x35, 0xca, 0x6f, 0x44, 0x33, 0x4a, 0x51, 0x52, 0x5a, 0x94, 0xb1, + 0x1d, 0xaa, 0xd9, 0x92, 0x0d, 0x82, 0x2d, 0x29, 0x2d, 0xca, 0xdc, 0x89, 0x0d, 0x5d, 0x30, 0x4b, + 0x9c, 0x99, 0xe7, 0xef, 0x2d, 0x8a, 0x5e, 0xc2, 0x96, 0x4e, 0x9c, 0x89, 0x69, 0x18, 0x78, 0x42, + 0x55, 0x1b, 0x6b, 0x8e, 0x4c, 0xd6, 0x72, 0x73, 0xdf, 0xb3, 0xab, 0xe3, 0x49, 0x28, 0x5c, 0x40, + 0xa9, 0xe8, 0x21, 0x0a, 0x4b, 0x2d, 0x6c, 0xdb, 0xa6, 0xcd, 0x2b, 0x50, 0x51, 0x11, 0x2f, 0xf5, + 0x3f, 0xa4, 0x20, 0x27, 0x3c, 0xc0, 0xea, 0xdc, 0xdc, 0xc1, 0xb6, 0x0c, 0x34, 0x7f, 0x66, 0xb4, + 0x0b, 0xd3, 0xa1, 0xee, 0xd5, 0x0a, 0x7b, 0x46, 0x65, 0x48, 0x13, 0x4b, 0x06, 0x36, 0x4d, 0x2c, + 0x26, 0xc3, 0xef, 0x4b, 0xe4, 0xa9, 0x8e, 0xdf, 0x89, 0xbc, 0xcf, 0x45, 0xca, 0x93, 0x4b, 0xf9, + 0xe3, 0x82, 0x7b, 0xb1, 0xb2, 0xc7, 0x33, 0x5e, 0x1d, 0x2b, 0xad, 0xfe, 0x68, 0x38, 0x50, 0xc6, + 0x6a, 0xeb, 0x64, 0x3c, 0xa8, 0xdc, 0x41, 0xbb, 0xb0, 0x15, 0xa4, 0x9f, 0x74, 0x86, 0x95, 0xd4, + 0x32, 0x79, 0xdc, 0x1e, 0x56, 0xd2, 0x11, 0xe4, 0xe3, 0x51, 0x25, 0xf3, 0xe4, 0x2d, 0x6c, 0x04, + 0x82, 0xc9, 0xe5, 0xda, 0x23, 0xb5, 0xdd, 0x3a, 0x3e, 0x56, 0x7b, 0xfd, 0xf6, 0xe0, 0x8b, 0x5e, + 0xff, 0x55, 0xe5, 0x0e, 0xaa, 0xc1, 0x1e, 0x23, 0x0f, 0x5b, 0xca, 0xb8, 0xd7, 0xee, 0x0d, 0x5b, + 0xfd, 0xb1, 0xfa, 0xa3, 0x41, 0xaf, 0xdf, 0xed, 0x54, 0x52, 0xa8, 0x0c, 0xc0, 0x78, 0xad, 0xf6, + 0xb8, 0xf7, 0x93, 0x6e, 0x25, 0x8d, 0x76, 0xa0, 0xc2, 0xde, 0x3b, 0xbd, 0x51, 0x7b, 0xd0, 0xef, + 0x77, 0xdb, 0xe3, 0x6e, 0xa7, 0x92, 0x41, 0x1b, 0x50, 0x64, 0xd4, 0xae, 0xa2, 0x0c, 0x94, 0xca, + 0x5a, 0xf3, 0x1f, 0x45, 0xc8, 0x8c, 0x7a, 0x43, 0x34, 0x84, 0x75, 0xff, 0x70, 0x8d, 0x16, 0x87, + 0x8c, 0x88, 0x71, 0xbc, 0x76, 0x14, 0xc3, 0x15, 0x07, 0x96, 0x7a, 0xe6, 0xf7, 0xe9, 0x14, 0xfa, + 0xca, 0xf7, 0xe3, 0x9b, 0x7f, 0x30, 0x46, 0x0f, 0x96, 0x3b, 0x63, 0xc4, 0x1c, 0x5e, 0x4b, 0x9c, + 0xac, 0x91, 0x0a, 0x7b, 0xd1, 0xd7, 0x7e, 0xe8, 0xe3, 0x65, 0xf5, 0x51, 0x53, 0x77, 0x2d, 0x79, + 0x8c, 0x46, 0x3f, 0x07, 0xb4, 0x7c, 0xdd, 0x82, 0x16, 0xe3, 0x58, 0xec, 0x55, 0x4e, 0xed, 0x7e, + 0xa2, 0x8c, 0x3c, 0xd3, 0xfd, 0x12, 0xb6, 0x23, 0xee, 0x4e, 0x50, 0x78, 0x6d, 0xa4, 0xe5, 0x1f, + 0x25, 0x0b, 0x2d, 0x76, 0x88, 0xb8, 0xc7, 0xf0, 0xed, 0x10, 0x7f, 0x07, 0xe2, 0xdb, 0x21, 0xe9, + 0x2a, 0x64, 0xe2, 0x5d, 0xc8, 0x04, 0x3f, 0x62, 0x69, 0x75, 0xe4, 0x57, 0x3c, 0xb8, 0x41, 0x4a, + 0x6e, 0xf2, 0x0a, 0xca, 0xc1, 0x7b, 0x0c, 0xb4, 0x18, 0x5b, 0x23, 0x2f, 0x38, 0x6a, 0xd1, 0x17, + 0x40, 0x01, 0x3c, 0x06, 0x06, 0xfb, 0x07, 0x2b, 0xcd, 0x70, 0xb5, 0xc4, 0x63, 0xb7, 0xcf, 0xdb, + 0x01, 0xdd, 0x4b, 0xde, 0x8e, 0xd2, 0xfc, 0x51, 0xb2, 0x90, 0x74, 0xc4, 0x57, 0xbe, 0x0b, 0x9d, + 0x18, 0xfb, 0x93, 0x4e, 0xfc, 0x37, 0xd8, 0xff, 0x25, 0xec, 0x44, 0x9d, 0x53, 0x7d, 0xb1, 0x4c, + 0x38, 0xc6, 0xd6, 0x0e, 0xfc, 0xba, 0xc3, 0x87, 0xa2, 0x9f, 0xc2, 0x5e, 0xf4, 0xe1, 0xc3, 0x97, + 0xaa, 0x89, 0xa7, 0x93, 0xda, 0xde, 0xd2, 0x31, 0xb0, 0x3b, 0xb3, 0xe8, 0xf5, 0x8b, 0x97, 0x3f, + 0xbb, 0x7f, 0x4e, 0xe8, 0xc5, 0xfc, 0xb4, 0x31, 0x31, 0x67, 0x4f, 0xa5, 0x2e, 0xf1, 0x0f, 0x81, + 0x89, 0x39, 0x75, 0x09, 0x7f, 0x4d, 0x6f, 0x1c, 0x93, 0x2b, 0xfc, 0x86, 0xd0, 0xc6, 0x90, 0xb1, + 0xfe, 0x9d, 0x2e, 0xcb, 0xf7, 0xe7, 0xcf, 0x39, 0xe1, 0x34, 0xc7, 0x97, 0x3c, 0xfb, 0x6f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x04, 0x8a, 0xd6, 0x42, 0xa0, 0x20, 0x00, 0x00, } diff --git a/protobufs/livekit_sip.proto b/protobufs/livekit_sip.proto index e1984213..b617174f 100644 --- a/protobufs/livekit_sip.proto +++ b/protobufs/livekit_sip.proto @@ -446,9 +446,11 @@ message SIPCallInfo { SIPUri from_uri = 6; SIPUri to_uri = 7; SIPCallStatus call_status = 8; - int64 started_at = 9; - int64 ended_at = 10; - DisconnectReason disconnect_reason = 11; + int64 created_at = 9; + int64 started_at = 10; + int64 ended_at = 11; + DisconnectReason disconnect_reason = 12; + string error = 13; } message SIPUri { @@ -464,4 +466,5 @@ enum SIPCallStatus { SCS_PARTICIPANT_JOINED = 1; // SIP participant for outgoing call has been created. The SIP outgoing call is being established SCS_ACTIVE = 2; // Call is ongoing. SIP participant is active in the LiveKit room SCS_DISCONNECTED = 3; // Call has ended + SCS_ERROR = 4; // Call has ended or never succeeded because of an error } diff --git a/replay/cloud_replay.pb.go b/replay/cloud_replay.pb.go index 668043da..7ff9a4b5 100644 --- a/replay/cloud_replay.pb.go +++ b/replay/cloud_replay.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.31.0 -// protoc v4.25.3 +// protoc-gen-go v1.34.2 +// protoc v5.28.0 // source: cloud_replay.proto package replay @@ -491,7 +491,7 @@ func file_cloud_replay_proto_rawDescGZIP() []byte { } var file_cloud_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_cloud_replay_proto_goTypes = []interface{}{ +var file_cloud_replay_proto_goTypes = []any{ (*ListReplaysRequest)(nil), // 0: replay.ListReplaysRequest (*ListReplaysResponse)(nil), // 1: replay.ListReplaysResponse (*ReplayInfo)(nil), // 2: replay.ReplayInfo @@ -527,7 +527,7 @@ func file_cloud_replay_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_cloud_replay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[0].Exporter = func(v any, i int) any { switch v := v.(*ListReplaysRequest); i { case 0: return &v.state @@ -539,7 +539,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[1].Exporter = func(v any, i int) any { switch v := v.(*ListReplaysResponse); i { case 0: return &v.state @@ -551,7 +551,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[2].Exporter = func(v any, i int) any { switch v := v.(*ReplayInfo); i { case 0: return &v.state @@ -563,7 +563,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[3].Exporter = func(v any, i int) any { switch v := v.(*LoadReplayRequest); i { case 0: return &v.state @@ -575,7 +575,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[4].Exporter = func(v any, i int) any { switch v := v.(*LoadReplayResponse); i { case 0: return &v.state @@ -587,7 +587,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[5].Exporter = func(v any, i int) any { switch v := v.(*RoomSeekRequest); i { case 0: return &v.state @@ -599,7 +599,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[6].Exporter = func(v any, i int) any { switch v := v.(*CloseReplayRequest); i { case 0: return &v.state @@ -611,7 +611,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_cloud_replay_proto_msgTypes[7].Exporter = func(v any, i int) any { switch v := v.(*DeleteReplayRequest); i { case 0: return &v.state From 41d3cc21c186b6c6d8776965065d6d0318e0da7f Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 31 Oct 2024 00:50:33 -0700 Subject: [PATCH 05/18] Include room agent dispatch protobufs in JS export (#875) * Include room agent dispatch protobufs in JS export * changeset --- .changeset/brave-otters-invite.md | 5 +++++ packages/javascript/src/index.d.ts | 15 ++++++++------- 2 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 .changeset/brave-otters-invite.md diff --git a/.changeset/brave-otters-invite.md b/.changeset/brave-otters-invite.md new file mode 100644 index 00000000..220c484b --- /dev/null +++ b/.changeset/brave-otters-invite.md @@ -0,0 +1,5 @@ +--- +"@livekit/protocol": patch +--- + +Include room agent dispatch protobufs in JS export diff --git a/packages/javascript/src/index.d.ts b/packages/javascript/src/index.d.ts index 35350748..094183bb 100644 --- a/packages/javascript/src/index.d.ts +++ b/packages/javascript/src/index.d.ts @@ -1,11 +1,12 @@ -export * from "./gen/version.js"; -export * from "./gen/livekit_room_pb.js"; +export { protoInt64 } from "@bufbuild/protobuf"; +export * from "./gen/livekit_agent_dispatch_pb.js"; export * from "./gen/livekit_agent_pb.js"; -export * from "./gen/livekit_models_pb.js"; -export * from "./gen/livekit_rtc_pb.js"; -export * from "./gen/livekit_webhook_pb.js"; export * from "./gen/livekit_egress_pb.js"; export * from "./gen/livekit_ingress_pb.js"; -export * from "./gen/livekit_sip_pb.js"; export * from "./gen/livekit_metrics_pb.js"; -export { protoInt64 } from "@bufbuild/protobuf"; +export * from "./gen/livekit_models_pb.js"; +export * from "./gen/livekit_room_pb.js"; +export * from "./gen/livekit_rtc_pb.js"; +export * from "./gen/livekit_sip_pb.js"; +export * from "./gen/livekit_webhook_pb.js"; +export * from "./gen/version.js"; From cb533ee7246b753c5e77ded8d10e6e5062cf4c1d Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 31 Oct 2024 01:05:58 -0700 Subject: [PATCH 06/18] Remove @ that broke changeset (#876) --- .changeset/wicked-games-cover.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changeset/wicked-games-cover.md b/.changeset/wicked-games-cover.md index 1279ee77..4fc30ae5 100644 --- a/.changeset/wicked-games-cover.md +++ b/.changeset/wicked-games-cover.md @@ -1,5 +1,5 @@ --- -"@github.com/livekit/protocol": patch +"github.com/livekit/protocol": patch --- Add extra fields to SIP analytics events From 3aee320bc87c9ce02d0f51a9155b5817647b287d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 01:07:35 -0700 Subject: [PATCH 07/18] Version Packages (#877) Co-authored-by: github-actions[bot] --- .changeset/brave-otters-invite.md | 5 ----- .changeset/wicked-games-cover.md | 5 ----- CHANGELOG.md | 6 ++++++ package.json | 2 +- packages/javascript/CHANGELOG.md | 6 ++++++ packages/javascript/package.json | 2 +- 6 files changed, 14 insertions(+), 12 deletions(-) delete mode 100644 .changeset/brave-otters-invite.md delete mode 100644 .changeset/wicked-games-cover.md diff --git a/.changeset/brave-otters-invite.md b/.changeset/brave-otters-invite.md deleted file mode 100644 index 220c484b..00000000 --- a/.changeset/brave-otters-invite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@livekit/protocol": patch ---- - -Include room agent dispatch protobufs in JS export diff --git a/.changeset/wicked-games-cover.md b/.changeset/wicked-games-cover.md deleted file mode 100644 index 4fc30ae5..00000000 --- a/.changeset/wicked-games-cover.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"github.com/livekit/protocol": patch ---- - -Add extra fields to SIP analytics events diff --git a/CHANGELOG.md b/CHANGELOG.md index 6420a03c..e1344449 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,11 @@ # github.com/livekit/protocol +## 1.27.1 + +### Patch Changes + +- Add extra fields to SIP analytics events - [#872](https://github.com/livekit/protocol/pull/872) ([@biglittlebigben](https://github.com/biglittlebigben)) + ## 1.27.0 ### Minor Changes diff --git a/package.json b/package.json index 61591206..1eb136ac 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "github.com/livekit/protocol", "private": true, - "version": "1.27.0", + "version": "1.27.1", "scripts": { "changeset": "changeset", "ci:publish": "pnpm --filter @livekit/protocol run build && changeset publish" diff --git a/packages/javascript/CHANGELOG.md b/packages/javascript/CHANGELOG.md index 3079e602..b2ddc25d 100644 --- a/packages/javascript/CHANGELOG.md +++ b/packages/javascript/CHANGELOG.md @@ -1,5 +1,11 @@ # @livekit/protocol +## 1.27.1 + +### Patch Changes + +- Include room agent dispatch protobufs in JS export - [#875](https://github.com/livekit/protocol/pull/875) ([@davidzhao](https://github.com/davidzhao)) + ## 1.27.0 ### Minor Changes diff --git a/packages/javascript/package.json b/packages/javascript/package.json index 4f674d37..2f56411d 100644 --- a/packages/javascript/package.json +++ b/packages/javascript/package.json @@ -1,6 +1,6 @@ { "name": "@livekit/protocol", - "version": "1.27.0", + "version": "1.27.1", "description": "", "type": "module", "main": "src/index.js", From 95e69930e0852f0701034be29f3a941a994f9f15 Mon Sep 17 00:00:00 2001 From: David Colburn Date: Thu, 31 Oct 2024 10:27:37 -0700 Subject: [PATCH 08/18] remove separate presigned url (#874) * remove separate presigned url * generated protobuf --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- livekit/livekit_egress.pb.go | 396 ++++++++++++++++---------------- livekit/livekit_egress.twirp.go | 375 +++++++++++++++--------------- protobufs/livekit_egress.proto | 3 +- 3 files changed, 380 insertions(+), 394 deletions(-) diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index cfbb08ee..297a0e1f 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -2740,13 +2740,12 @@ type EgressInfo struct { // *EgressInfo_Stream // *EgressInfo_File // *EgressInfo_Segments - Result isEgressInfo_Result `protobuf_oneof:"result"` - StreamResults []*StreamInfo `protobuf:"bytes,15,rep,name=stream_results,json=streamResults,proto3" json:"stream_results,omitempty"` - FileResults []*FileInfo `protobuf:"bytes,16,rep,name=file_results,json=fileResults,proto3" json:"file_results,omitempty"` - SegmentResults []*SegmentsInfo `protobuf:"bytes,17,rep,name=segment_results,json=segmentResults,proto3" json:"segment_results,omitempty"` - ImageResults []*ImagesInfo `protobuf:"bytes,20,rep,name=image_results,json=imageResults,proto3" json:"image_results,omitempty"` - ManifestLocation string `protobuf:"bytes,23,opt,name=manifest_location,json=manifestLocation,proto3" json:"manifest_location,omitempty"` - ManifestPresignedUrl string `protobuf:"bytes,24,opt,name=manifest_presigned_url,json=manifestPresignedUrl,proto3" json:"manifest_presigned_url,omitempty"` // next ID: 24 + Result isEgressInfo_Result `protobuf_oneof:"result"` + StreamResults []*StreamInfo `protobuf:"bytes,15,rep,name=stream_results,json=streamResults,proto3" json:"stream_results,omitempty"` + FileResults []*FileInfo `protobuf:"bytes,16,rep,name=file_results,json=fileResults,proto3" json:"file_results,omitempty"` + SegmentResults []*SegmentsInfo `protobuf:"bytes,17,rep,name=segment_results,json=segmentResults,proto3" json:"segment_results,omitempty"` + ImageResults []*ImagesInfo `protobuf:"bytes,20,rep,name=image_results,json=imageResults,proto3" json:"image_results,omitempty"` + ManifestLocation string `protobuf:"bytes,23,opt,name=manifest_location,json=manifestLocation,proto3" json:"manifest_location,omitempty"` // next ID: 25 } func (x *EgressInfo) Reset() { @@ -2957,13 +2956,6 @@ func (x *EgressInfo) GetManifestLocation() string { return "" } -func (x *EgressInfo) GetManifestPresignedUrl() string { - if x != nil { - return x.ManifestPresignedUrl - } - return "" -} - type isEgressInfo_Request interface { isEgressInfo_Request() } @@ -4042,7 +4034,7 @@ var file_livekit_egress_proto_rawDesc = []byte{ 0x6d, 0x73, 0x22, 0x30, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x64, 0x22, 0x81, 0x09, 0x0a, 0x0a, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x73, 0x73, 0x49, 0x64, 0x22, 0xcb, 0x08, 0x0a, 0x0a, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -4109,198 +4101,194 @@ var file_livekit_egress_proto_rawDesc = []byte{ 0x66, 0x6f, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, - 0x16, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x65, 0x64, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, - 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x50, 0x72, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, - 0x55, 0x72, 0x6c, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x08, - 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3d, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x3a, 0x02, 0x18, 0x01, 0x22, 0xee, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, - 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x2e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0c, - 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, 0x53, 0x48, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x22, 0xac, 0x01, 0x0a, 0x08, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xd3, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, - 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, - 0x12, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x76, 0x65, 0x50, - 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x70, - 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x76, 0x65, - 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x6c, - 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, - 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x22, 0x90, 0x01, - 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, - 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, - 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, - 0x22, 0x9a, 0x02, 0x0a, 0x15, 0x41, 0x75, 0x74, 0x6f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, - 0x70, 0x61, 0x6e, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, - 0x65, 0x73, 0x65, 0x74, 0x12, 0x36, 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x48, 0x00, 0x52, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0c, - 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x63, - 0x6f, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x0b, - 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x73, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x52, 0x0e, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, - 0x74, 0x73, 0x42, 0x09, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x02, - 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, - 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, - 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, - 0x33, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x26, 0x0a, - 0x03, 0x67, 0x63, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, 0x43, 0x50, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, - 0x52, 0x03, 0x67, 0x63, 0x70, 0x12, 0x30, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, - 0x7a, 0x75, 0x72, 0x65, 0x42, 0x6c, 0x6f, 0x62, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, - 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x6c, 0x69, 0x4f, 0x53, - 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x41, 0x6c, 0x69, 0x4f, 0x53, 0x53, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, - 0x52, 0x06, 0x61, 0x6c, 0x69, 0x4f, 0x53, 0x53, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, - 0x75, 0x74, 0x2a, 0x39, 0x0a, 0x0f, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, - 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x54, 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, - 0x50, 0x34, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x47, 0x47, 0x10, 0x02, 0x2a, 0x4e, 0x0a, - 0x15, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, - 0x54, 0x5f, 0x53, 0x45, 0x47, 0x4d, 0x45, 0x4e, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, - 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x48, - 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x01, 0x2a, 0x2f, 0x0a, - 0x13, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x75, - 0x66, 0x66, 0x69, 0x78, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x00, 0x12, - 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x01, 0x2a, 0x45, - 0x0a, 0x0f, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, - 0x78, 0x12, 0x16, 0x0a, 0x12, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x46, 0x46, 0x49, - 0x58, 0x5f, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4d, 0x41, - 0x47, 0x45, 0x5f, 0x53, 0x55, 0x46, 0x46, 0x49, 0x58, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, - 0x41, 0x4d, 0x50, 0x10, 0x01, 0x2a, 0x39, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x46, 0x41, 0x55, - 0x4c, 0x54, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x52, 0x54, 0x4d, 0x50, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x52, 0x54, 0x10, 0x02, - 0x2a, 0xcf, 0x01, 0x0a, 0x15, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x32, - 0x36, 0x34, 0x5f, 0x37, 0x32, 0x30, 0x50, 0x5f, 0x33, 0x30, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, - 0x48, 0x32, 0x36, 0x34, 0x5f, 0x37, 0x32, 0x30, 0x50, 0x5f, 0x36, 0x30, 0x10, 0x01, 0x12, 0x11, - 0x0a, 0x0d, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, 0x33, 0x30, 0x10, - 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, - 0x36, 0x30, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x52, 0x41, 0x49, 0x54, - 0x5f, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x37, 0x32, 0x30, 0x50, 0x5f, 0x33, 0x30, 0x10, 0x04, 0x12, - 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x52, 0x41, 0x49, 0x54, 0x5f, 0x48, 0x32, 0x36, 0x34, - 0x5f, 0x37, 0x32, 0x30, 0x50, 0x5f, 0x36, 0x30, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, - 0x52, 0x54, 0x52, 0x41, 0x49, 0x54, 0x5f, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, - 0x50, 0x5f, 0x33, 0x30, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x52, 0x41, - 0x49, 0x54, 0x5f, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, 0x36, 0x30, - 0x10, 0x07, 0x2a, 0x9f, 0x01, 0x0a, 0x0c, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x54, - 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x47, 0x52, 0x45, - 0x53, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x45, - 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, - 0x0a, 0x0f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, - 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, - 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x47, - 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, - 0x45, 0x44, 0x10, 0x06, 0x32, 0x9c, 0x05, 0x0a, 0x06, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x54, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x72, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x70, - 0x6f, 0x73, 0x69, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, - 0x69, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x40, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x65, - 0x62, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x57, 0x65, 0x62, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x50, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, - 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, - 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x19, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, - 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x45, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, + 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x22, 0x3d, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x3a, 0x02, 0x18, + 0x01, 0x22, 0xee, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x72, 0x6c, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x32, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x22, 0x2e, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0a, 0x0a, 0x06, + 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x49, 0x4e, 0x49, + 0x53, 0x48, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, + 0x10, 0x02, 0x22, 0xac, 0x01, 0x0a, 0x08, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1a, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xd3, 0x02, 0x0a, 0x0c, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x79, 0x6c, + 0x69, 0x73, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x6c, 0x69, 0x76, 0x65, 0x5f, + 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, + 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x70, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x6c, 0x61, 0x79, 0x6c, + 0x69, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x14, 0x6c, 0x69, 0x76, 0x65, 0x50, 0x6c, 0x61, 0x79, 0x6c, 0x69, 0x73, 0x74, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0c, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x0a, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x0a, 0x0f, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x66, 0x69, 0x6c, 0x65, 0x6e, 0x61, 0x6d, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, + 0x1f, 0x0a, 0x0b, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x19, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x41, 0x74, 0x22, 0x9a, 0x02, 0x0a, 0x15, 0x41, + 0x75, 0x74, 0x6f, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, 0x74, 0x45, 0x67, + 0x72, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x36, + 0x0a, 0x08, 0x61, 0x64, 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, + 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x48, 0x00, 0x52, 0x08, 0x61, 0x64, + 0x76, 0x61, 0x6e, 0x63, 0x65, 0x64, 0x12, 0x3d, 0x0a, 0x0c, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6f, + 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x46, 0x69, + 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x0b, 0x66, 0x69, 0x6c, 0x65, 0x4f, 0x75, + 0x74, 0x70, 0x75, 0x74, 0x73, 0x12, 0x45, 0x0a, 0x0f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x5f, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x52, 0x0e, 0x73, 0x65, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x73, 0x42, 0x09, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x92, 0x02, 0x0a, 0x0f, 0x41, 0x75, 0x74, 0x6f, + 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, + 0x69, 0x6c, 0x65, 0x70, 0x61, 0x74, 0x68, 0x12, 0x29, 0x0a, 0x10, 0x64, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x4d, 0x61, 0x6e, 0x69, 0x66, 0x65, + 0x73, 0x74, 0x12, 0x23, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x33, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x26, 0x0a, 0x03, 0x67, 0x63, 0x70, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x47, + 0x43, 0x50, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x03, 0x67, 0x63, 0x70, 0x12, + 0x30, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, + 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x42, 0x6c, + 0x6f, 0x62, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, + 0x65, 0x12, 0x2f, 0x0a, 0x06, 0x61, 0x6c, 0x69, 0x4f, 0x53, 0x53, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x41, 0x6c, 0x69, 0x4f, + 0x53, 0x53, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x48, 0x00, 0x52, 0x06, 0x61, 0x6c, 0x69, 0x4f, + 0x53, 0x53, 0x42, 0x08, 0x0a, 0x06, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x2a, 0x39, 0x0a, 0x0f, + 0x45, 0x6e, 0x63, 0x6f, 0x64, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x14, 0x0a, 0x10, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x54, + 0x59, 0x50, 0x45, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x50, 0x34, 0x10, 0x01, 0x12, 0x07, + 0x0a, 0x03, 0x4f, 0x47, 0x47, 0x10, 0x02, 0x2a, 0x4e, 0x0a, 0x15, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x53, 0x45, 0x47, 0x4d, + 0x45, 0x4e, 0x54, 0x45, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x5f, 0x50, 0x52, 0x4f, 0x54, 0x4f, + 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x4c, 0x53, 0x5f, 0x50, 0x52, 0x4f, + 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x01, 0x2a, 0x2f, 0x0a, 0x13, 0x53, 0x65, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x65, 0x64, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x09, + 0x0a, 0x05, 0x49, 0x4e, 0x44, 0x45, 0x58, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, + 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x01, 0x2a, 0x45, 0x0a, 0x0f, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x46, 0x69, 0x6c, 0x65, 0x53, 0x75, 0x66, 0x66, 0x69, 0x78, 0x12, 0x16, 0x0a, 0x12, 0x49, + 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x46, 0x46, 0x49, 0x58, 0x5f, 0x49, 0x4e, 0x44, 0x45, + 0x58, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x49, 0x4d, 0x41, 0x47, 0x45, 0x5f, 0x53, 0x55, 0x46, + 0x46, 0x49, 0x58, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10, 0x01, 0x2a, + 0x39, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x5f, 0x50, 0x52, 0x4f, + 0x54, 0x4f, 0x43, 0x4f, 0x4c, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x52, 0x54, 0x4d, 0x50, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x52, 0x54, 0x10, 0x02, 0x2a, 0xcf, 0x01, 0x0a, 0x15, 0x45, + 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x37, 0x32, 0x30, + 0x50, 0x5f, 0x33, 0x30, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x37, + 0x32, 0x30, 0x50, 0x5f, 0x36, 0x30, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x48, 0x32, 0x36, 0x34, + 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, 0x33, 0x30, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x48, + 0x32, 0x36, 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, 0x36, 0x30, 0x10, 0x03, 0x12, 0x19, + 0x0a, 0x15, 0x50, 0x4f, 0x52, 0x54, 0x52, 0x41, 0x49, 0x54, 0x5f, 0x48, 0x32, 0x36, 0x34, 0x5f, + 0x37, 0x32, 0x30, 0x50, 0x5f, 0x33, 0x30, 0x10, 0x04, 0x12, 0x19, 0x0a, 0x15, 0x50, 0x4f, 0x52, + 0x54, 0x52, 0x41, 0x49, 0x54, 0x5f, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x37, 0x32, 0x30, 0x50, 0x5f, + 0x36, 0x30, 0x10, 0x05, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x52, 0x41, 0x49, 0x54, + 0x5f, 0x48, 0x32, 0x36, 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, 0x33, 0x30, 0x10, 0x06, + 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x4f, 0x52, 0x54, 0x52, 0x41, 0x49, 0x54, 0x5f, 0x48, 0x32, 0x36, + 0x34, 0x5f, 0x31, 0x30, 0x38, 0x30, 0x50, 0x5f, 0x36, 0x30, 0x10, 0x07, 0x2a, 0x9f, 0x01, 0x0a, + 0x0c, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x13, 0x0a, + 0x0f, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x43, 0x54, + 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, + 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x47, 0x52, 0x45, + 0x53, 0x53, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x03, 0x12, 0x11, 0x0a, + 0x0d, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x04, + 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x41, 0x42, 0x4f, 0x52, 0x54, + 0x45, 0x44, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x45, 0x47, 0x52, 0x45, 0x53, 0x53, 0x5f, 0x4c, + 0x49, 0x4d, 0x49, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x43, 0x48, 0x45, 0x44, 0x10, 0x06, 0x32, 0x9c, + 0x05, 0x0a, 0x06, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x54, 0x0a, 0x18, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x52, 0x6f, 0x6f, 0x6d, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x40, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x57, 0x65, 0x62, 0x45, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x19, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x57, 0x65, 0x62, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x44, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, - 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, - 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, - 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, - 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, - 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x6f, - 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, + 0x6f, 0x12, 0x50, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x72, 0x74, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, + 0x69, 0x70, 0x61, 0x6e, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x21, 0x2e, 0x6c, 0x69, + 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x69, 0x63, 0x69, 0x70, 0x61, 0x6e, + 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, - 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, - 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6e, 0x66, 0x6f, 0x12, 0x56, 0x0a, 0x19, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, + 0x6b, 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x12, 0x24, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, + 0x43, 0x6f, 0x6d, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x65, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, + 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x10, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, + 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, + 0x74, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x4c, 0x61, 0x79, 0x6f, 0x75, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x1c, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x45, 0x0a, 0x0a, 0x4c, 0x69, 0x73, 0x74, 0x45, + 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, + 0x4c, 0x69, 0x73, 0x74, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1b, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, + 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, + 0x0a, 0x0a, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x12, 0x1a, 0x2e, 0x6c, + 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x13, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2e, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x46, 0x5a, + 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, + 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/livekit/livekit_egress.twirp.go b/livekit/livekit_egress.twirp.go index 08e01784..1e5c9c08 100644 --- a/livekit/livekit_egress.twirp.go +++ b/livekit/livekit_egress.twirp.go @@ -2754,195 +2754,194 @@ func (s *egressServer) PathPrefix() string { } var twirpFileDescriptor1 = []byte{ - // 3030 bytes of a gzipped FileDescriptorProto + // 3009 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x49, 0x73, 0x1b, 0xc7, 0xf5, 0xe7, 0x0c, 0xb6, 0xc1, 0xc3, 0xc2, 0x61, 0x8b, 0x92, 0x21, 0xca, 0x7f, 0x8b, 0x86, 0xbc, 0xc8, 0xb4, 0x4d, 0xf1, 0x2f, 0xca, 0xb2, 0x2c, 0xc7, 0x4e, 0x40, 0x12, 0x24, 0x11, 0x73, 0x41, - 0x06, 0xa0, 0xed, 0xe4, 0x32, 0x35, 0xc4, 0x34, 0xc1, 0x29, 0x0e, 0x66, 0xe0, 0x99, 0x06, 0x65, - 0xb8, 0x72, 0xc9, 0x2d, 0xc7, 0x2c, 0xb7, 0x54, 0xaa, 0x72, 0xc9, 0x29, 0x95, 0xca, 0x35, 0xe7, - 0x5c, 0x93, 0x4a, 0xe5, 0x90, 0x2f, 0x91, 0x4a, 0x55, 0x72, 0xc8, 0x27, 0x48, 0xf5, 0x32, 0x0b, - 0x06, 0x43, 0x0a, 0x14, 0x55, 0x95, 0x43, 0x72, 0x9b, 0x7e, 0x1b, 0x5e, 0xf7, 0xfb, 0xf5, 0xeb, - 0x7e, 0xaf, 0x01, 0x8b, 0xb6, 0x75, 0x8e, 0xcf, 0x2c, 0xa2, 0xe3, 0xbe, 0x87, 0x7d, 0x7f, 0x75, - 0xe8, 0xb9, 0xc4, 0x45, 0x05, 0x41, 0x5d, 0x0a, 0xd9, 0x03, 0xd7, 0xc4, 0xb6, 0x60, 0xd7, 0xff, - 0x96, 0x83, 0x25, 0xcd, 0x75, 0x07, 0x9b, 0xee, 0x60, 0xe8, 0xfa, 0x16, 0xc1, 0x4d, 0xa6, 0xac, - 0xe1, 0xaf, 0x46, 0xd8, 0x27, 0xe8, 0x0e, 0x14, 0x3d, 0xd7, 0x1d, 0xe8, 0x8e, 0x31, 0xc0, 0x35, - 0x69, 0x59, 0xba, 0x5f, 0xd4, 0x14, 0x4a, 0x38, 0x30, 0x06, 0x18, 0xdd, 0x82, 0xbc, 0x6d, 0x8c, - 0xdd, 0x11, 0xa9, 0xc9, 0x8c, 0x23, 0x46, 0xe8, 0xff, 0x00, 0x8c, 0x91, 0x69, 0xb9, 0xba, 0xeb, - 0xd8, 0xe3, 0x5a, 0x66, 0x59, 0xba, 0xaf, 0x68, 0x45, 0x46, 0x39, 0x74, 0xec, 0x31, 0x65, 0x9f, - 0x5b, 0x26, 0x16, 0xec, 0x2c, 0x67, 0x33, 0x0a, 0x63, 0xbf, 0x05, 0xf3, 0xbd, 0x91, 0x4f, 0xdc, - 0x81, 0x7e, 0x6c, 0xf8, 0x58, 0x1f, 0x79, 0x76, 0x2d, 0xc7, 0xcc, 0x57, 0x38, 0x79, 0xc3, 0xf0, - 0xf1, 0x91, 0x67, 0xa3, 0x47, 0x90, 0x3d, 0xb1, 0x6c, 0x5c, 0xcb, 0x2f, 0x4b, 0xf7, 0x4b, 0x0f, - 0x97, 0x56, 0xc5, 0xf4, 0x56, 0x9b, 0x4e, 0xcf, 0x35, 0xb1, 0xb9, 0x6d, 0xd9, 0xf8, 0x70, 0x44, - 0x86, 0x23, 0xb2, 0x21, 0xd7, 0xa4, 0xdd, 0x39, 0x8d, 0x49, 0xa3, 0x75, 0xc8, 0xfb, 0xc4, 0xc3, - 0xc6, 0xa0, 0x56, 0x60, 0x7a, 0x37, 0x43, 0xbd, 0x0e, 0x23, 0x4f, 0xa8, 0x08, 0x51, 0xf4, 0x29, - 0x28, 0x3e, 0xee, 0x0f, 0xb0, 0x43, 0xfc, 0x1a, 0x30, 0xb5, 0x57, 0x23, 0x35, 0xce, 0x48, 0xf9, - 0xc1, 0x50, 0x07, 0x3d, 0x81, 0xfc, 0xd0, 0xc3, 0x3e, 0x26, 0x35, 0x65, 0x59, 0xba, 0x5f, 0x7d, - 0xf8, 0xda, 0xa4, 0xb3, 0x96, 0xd3, 0x3f, 0x1c, 0x12, 0xcb, 0x75, 0xfc, 0x36, 0x93, 0xda, 0x95, - 0x34, 0x21, 0x8f, 0x1e, 0x83, 0x62, 0x98, 0xe7, 0x86, 0xd3, 0xc3, 0x66, 0xad, 0xc8, 0x7e, 0xb9, - 0x76, 0x91, 0xee, 0xae, 0xa4, 0x85, 0xb2, 0xe8, 0x13, 0x28, 0xd3, 0xe9, 0xea, 0x2e, 0x73, 0xc8, - 0xaf, 0x95, 0x96, 0x33, 0x97, 0x2f, 0x92, 0x56, 0x3a, 0x09, 0xbf, 0x7d, 0xf4, 0x2d, 0xa8, 0xf2, - 0xa9, 0x87, 0x06, 0xca, 0xcc, 0x40, 0xfa, 0x6a, 0x69, 0x15, 0x3f, 0x36, 0xf2, 0x51, 0x13, 0xe6, - 0xc5, 0xd4, 0x43, 0xf5, 0x0a, 0x53, 0xbf, 0x74, 0xd5, 0xb4, 0xaa, 0x50, 0x0a, 0xcc, 0x7c, 0x04, - 0x15, 0x6b, 0x60, 0xf4, 0xa3, 0x49, 0x54, 0x99, 0x91, 0xc5, 0xd0, 0x48, 0x8b, 0x72, 0x85, 0x72, - 0xd9, 0x8a, 0x06, 0xfe, 0x86, 0x02, 0x79, 0xae, 0xb4, 0x51, 0x84, 0x82, 0xcb, 0xd7, 0xa7, 0xfe, - 0x87, 0x1c, 0xa8, 0x5f, 0xe0, 0xe3, 0x49, 0x80, 0xab, 0x90, 0xa1, 0x08, 0xe3, 0xd0, 0xa6, 0x9f, - 0x09, 0xf4, 0xca, 0x97, 0xa3, 0x37, 0x93, 0x44, 0xef, 0x7b, 0x80, 0x8c, 0x67, 0x86, 0x45, 0x74, - 0x9f, 0x18, 0x1e, 0xd1, 0x7d, 0xab, 0xef, 0x18, 0x76, 0xad, 0xcc, 0xc4, 0x54, 0xc6, 0xe9, 0x50, - 0x46, 0x87, 0xd1, 0x43, 0x0c, 0x67, 0x5f, 0x10, 0xc3, 0xb9, 0x17, 0xc3, 0x70, 0xfe, 0x5a, 0x18, - 0x2e, 0x5c, 0x03, 0xc3, 0xca, 0x35, 0x30, 0x5c, 0xbc, 0x2e, 0x86, 0xe1, 0x7a, 0x18, 0x2e, 0xbd, - 0x0c, 0x0c, 0x57, 0xae, 0x87, 0xe1, 0x7f, 0x65, 0xa0, 0xd6, 0x36, 0x3c, 0x62, 0xf5, 0xac, 0xa1, - 0xe1, 0x90, 0x2b, 0x24, 0xeb, 0x25, 0x50, 0x2c, 0x13, 0x3b, 0xc4, 0x22, 0x63, 0x91, 0xae, 0xc3, - 0x31, 0x7a, 0x1d, 0xca, 0x7e, 0xcf, 0xc3, 0xd8, 0xd1, 0xfd, 0x53, 0xc3, 0xc3, 0x02, 0xd5, 0x25, - 0x4e, 0xeb, 0x50, 0x52, 0x2c, 0xfc, 0xd9, 0x99, 0xc2, 0x3f, 0x97, 0x1a, 0xfe, 0xdc, 0x73, 0xc2, - 0x3f, 0x77, 0x49, 0xf8, 0xf3, 0xd7, 0x0d, 0x7f, 0xe1, 0x7a, 0xe1, 0x57, 0x5e, 0x46, 0xf8, 0x8b, - 0x33, 0x87, 0x3f, 0x16, 0xf4, 0xdf, 0xe7, 0xe0, 0x4e, 0xd7, 0x33, 0x7a, 0x67, 0x2f, 0x72, 0x48, - 0xbf, 0x01, 0x55, 0x9e, 0xce, 0x08, 0xb5, 0xa0, 0x5b, 0xa6, 0x88, 0x7e, 0x99, 0x51, 0x99, 0xd9, - 0x96, 0x49, 0xa5, 0x78, 0x56, 0x0b, 0xa5, 0x32, 0x5c, 0x8a, 0x51, 0x03, 0xa9, 0xff, 0x50, 0xba, - 0x52, 0xae, 0x95, 0xae, 0xf2, 0xd7, 0x48, 0x57, 0x85, 0xff, 0x1d, 0xb9, 0xd7, 0x4a, 0x57, 0xbf, - 0x93, 0x00, 0x31, 0xf0, 0x5c, 0x01, 0xb0, 0xb7, 0x41, 0x49, 0x40, 0xb5, 0x40, 0x04, 0xfe, 0x1e, - 0x08, 0xfc, 0x65, 0x58, 0x58, 0x6e, 0x87, 0x5e, 0x6d, 0x59, 0x1e, 0xee, 0x91, 0x68, 0x5e, 0x21, - 0xf4, 0xde, 0x84, 0xca, 0x33, 0x7c, 0xec, 0xbb, 0xbd, 0x33, 0x4c, 0xd8, 0x4d, 0x92, 0x22, 0xb7, - 0xb8, 0x3b, 0xa7, 0x95, 0x43, 0xf2, 0x91, 0x67, 0x47, 0xbe, 0xd7, 0xff, 0x24, 0xc3, 0xc2, 0x54, - 0xa0, 0xd0, 0x07, 0x50, 0x64, 0xa1, 0x25, 0xe3, 0x21, 0xf7, 0xb7, 0x9a, 0xc4, 0x04, 0x17, 0xef, - 0x8e, 0x87, 0x58, 0x53, 0x4e, 0xc4, 0x17, 0x4d, 0xb9, 0xf4, 0x7b, 0x68, 0x90, 0xd3, 0x20, 0xe5, - 0x06, 0x63, 0xf4, 0x0e, 0xa8, 0xa6, 0xe5, 0x1b, 0xc7, 0x36, 0xd6, 0x07, 0x86, 0x63, 0x9d, 0x60, - 0x9f, 0x23, 0x55, 0xd1, 0xe6, 0x05, 0x7d, 0x5f, 0x90, 0xd1, 0x3d, 0x90, 0xfd, 0x75, 0x31, 0xe7, - 0x85, 0x28, 0x9c, 0xeb, 0x47, 0x43, 0xdb, 0x35, 0xcc, 0xdd, 0x39, 0x4d, 0xf6, 0xd7, 0xd1, 0x5b, - 0x90, 0xe9, 0xf7, 0x86, 0x62, 0x67, 0xa2, 0x50, 0x6a, 0x67, 0xb3, 0x1d, 0x8a, 0x51, 0x01, 0xb4, - 0x06, 0x39, 0xe3, 0x9b, 0x91, 0x87, 0xa7, 0x52, 0x71, 0x83, 0x52, 0x37, 0x6c, 0xf7, 0x38, 0x94, - 0xe7, 0x82, 0xe8, 0x01, 0xe4, 0x0d, 0xdb, 0x3a, 0xec, 0x74, 0xa6, 0x6e, 0xcc, 0x0d, 0x46, 0x0e, - 0xe5, 0x85, 0x58, 0x6c, 0x35, 0x7f, 0x9d, 0x85, 0x1b, 0x29, 0xb0, 0x43, 0x4f, 0x41, 0x61, 0xd5, - 0x47, 0xcf, 0xb5, 0xc5, 0x72, 0xbe, 0x96, 0x0e, 0xd3, 0xb6, 0x90, 0xd2, 0x42, 0x79, 0xf4, 0x36, - 0xcc, 0xd3, 0x45, 0xa4, 0xd0, 0xd1, 0x87, 0x1e, 0x3e, 0xb1, 0xbe, 0x16, 0x6b, 0x5b, 0x0d, 0xc8, - 0x6d, 0x46, 0x45, 0xf7, 0xa0, 0x32, 0xb4, 0x8d, 0xb1, 0x6d, 0xf9, 0x84, 0x03, 0x4d, 0x64, 0xb4, - 0x80, 0xc8, 0xc0, 0xf6, 0x1e, 0x20, 0xfa, 0xc3, 0xfa, 0xa4, 0x64, 0x89, 0x49, 0xaa, 0x94, 0xd3, - 0x8e, 0x4b, 0xbf, 0x03, 0x6a, 0xb0, 0xcb, 0xcc, 0x91, 0x67, 0x50, 0x8c, 0xb3, 0x15, 0xaf, 0x68, - 0xc1, 0xee, 0xdb, 0x12, 0x64, 0xba, 0x21, 0x43, 0x37, 0xfd, 0xd1, 0x09, 0x75, 0x13, 0xd8, 0x4c, - 0x2f, 0xd8, 0x90, 0x1d, 0x26, 0x13, 0x4d, 0x82, 0x8f, 0x53, 0x61, 0xa2, 0x5c, 0x06, 0x93, 0xdc, - 0x4c, 0x30, 0xc9, 0xcf, 0x0c, 0x93, 0xc2, 0xd5, 0x61, 0x52, 0xbc, 0x2a, 0x4c, 0x7e, 0x2e, 0x83, - 0x9a, 0xdc, 0xc2, 0x13, 0x9b, 0x47, 0x9a, 0x61, 0xf3, 0xe4, 0x2e, 0x5b, 0x15, 0x79, 0xa6, 0x55, - 0xc9, 0xcc, 0xbc, 0x2a, 0xd9, 0xab, 0xaf, 0x4a, 0xfe, 0xaa, 0xab, 0xf2, 0x8f, 0x0c, 0x94, 0x62, - 0xe9, 0x96, 0x4e, 0xba, 0x67, 0x0c, 0xc9, 0xc8, 0xc3, 0xba, 0xe5, 0x10, 0xec, 0x9d, 0x1b, 0x7c, - 0xf3, 0x54, 0xb4, 0x79, 0x41, 0x6f, 0x09, 0x32, 0x5a, 0x84, 0xdc, 0x33, 0xcb, 0x14, 0x59, 0x27, - 0xa7, 0xf1, 0x01, 0x2d, 0xd7, 0x4f, 0xb1, 0xd5, 0x3f, 0x25, 0x6c, 0xa2, 0x39, 0x4d, 0x8c, 0xd2, - 0x76, 0x54, 0x36, 0x75, 0x47, 0x35, 0xa6, 0x31, 0x9d, 0x4b, 0x24, 0x43, 0xe6, 0xf0, 0x25, 0x78, - 0x7e, 0x04, 0x25, 0x7e, 0xc0, 0xd0, 0x9c, 0xd9, 0x13, 0x67, 0xf3, 0x8d, 0x49, 0xf5, 0x4d, 0xca, - 0xd2, 0xc0, 0x0a, 0xbf, 0x53, 0xe3, 0x5d, 0xb8, 0x2c, 0xde, 0xca, 0x4c, 0xf1, 0x2e, 0xce, 0x1c, - 0x6f, 0xb8, 0x7a, 0xbc, 0x4b, 0x57, 0x8d, 0xf7, 0x9f, 0x33, 0xa0, 0x04, 0x7e, 0xb2, 0x22, 0xb4, - 0xd7, 0xc3, 0xbe, 0xaf, 0x9f, 0xe1, 0xb1, 0xc0, 0x7f, 0x91, 0x53, 0x3e, 0xc3, 0x63, 0x1a, 0x4a, - 0x1f, 0xf7, 0x3c, 0x1c, 0x76, 0x5e, 0xf8, 0x88, 0xe6, 0x3c, 0x1f, 0xfb, 0xbe, 0xe5, 0x3a, 0x3a, - 0x71, 0xcf, 0xb0, 0x23, 0x32, 0x59, 0x59, 0x10, 0xbb, 0x94, 0x46, 0x95, 0x3d, 0xdc, 0xa7, 0xb9, - 0x8b, 0x67, 0x44, 0x31, 0xa2, 0x3b, 0x0e, 0x3b, 0xe6, 0xd0, 0xb5, 0x1c, 0x22, 0x00, 0x10, 0x8e, - 0xa9, 0xce, 0xf1, 0x88, 0x1e, 0x97, 0xa2, 0x17, 0x23, 0x46, 0xe8, 0x3e, 0xa8, 0x27, 0xae, 0xd7, - 0xc3, 0x3a, 0xdd, 0x97, 0xba, 0x4f, 0xc6, 0xa2, 0x21, 0xa3, 0x68, 0x55, 0x46, 0x6f, 0x1b, 0xe4, - 0xb4, 0x43, 0xa9, 0xe8, 0x63, 0x50, 0x06, 0x98, 0x18, 0xa6, 0x41, 0x0c, 0x71, 0x13, 0xbf, 0x3b, - 0x15, 0x9e, 0xd5, 0x7d, 0x21, 0xd1, 0x74, 0x88, 0x37, 0xd6, 0x42, 0x05, 0x54, 0x83, 0x02, 0x31, - 0xfa, 0x7d, 0xcb, 0xe9, 0xb3, 0xd0, 0xd2, 0x2b, 0x01, 0x1f, 0xa2, 0x07, 0x70, 0xa3, 0xe7, 0x3a, - 0x84, 0xa5, 0x64, 0xcb, 0x67, 0xb7, 0x63, 0x3a, 0xb3, 0x22, 0x93, 0x42, 0x82, 0xb5, 0x15, 0x71, - 0xd0, 0x0a, 0xe4, 0x86, 0x9e, 0xfb, 0xf5, 0x58, 0xc4, 0x34, 0xba, 0xda, 0xb4, 0x29, 0x75, 0xd3, - 0x75, 0x4e, 0xac, 0xbe, 0xc6, 0x45, 0x96, 0x3e, 0x86, 0xca, 0x84, 0x47, 0x48, 0x85, 0x4c, 0x14, - 0x0f, 0xfa, 0x49, 0xb7, 0xda, 0xb9, 0x61, 0x8f, 0xb0, 0x08, 0x04, 0x1f, 0x3c, 0x95, 0x9f, 0x48, - 0xf5, 0xaf, 0xa0, 0x18, 0x02, 0x0a, 0x2d, 0x43, 0xa9, 0xe7, 0x61, 0x56, 0x6f, 0x19, 0xb6, 0x2f, - 0x0c, 0xc4, 0x49, 0xb1, 0x15, 0x96, 0x27, 0x56, 0x38, 0xf4, 0x37, 0xf3, 0x5c, 0x7f, 0xeb, 0x3f, - 0x84, 0xf9, 0x04, 0x32, 0x69, 0x69, 0x67, 0xf4, 0x7a, 0xee, 0xc8, 0x21, 0xf1, 0xdb, 0x56, 0x49, - 0xd0, 0xd8, 0xa9, 0x76, 0x17, 0x82, 0x21, 0x03, 0x1b, 0xff, 0x79, 0x10, 0x24, 0x8a, 0xb6, 0x37, - 0xa1, 0x4a, 0x17, 0xd2, 0xb0, 0x1c, 0xec, 0xc5, 0x8f, 0xd2, 0x4a, 0x48, 0xa5, 0x76, 0xea, 0x3f, - 0x95, 0xa0, 0x1c, 0x47, 0xf9, 0x8b, 0x82, 0xf8, 0x25, 0xe2, 0xb3, 0xfe, 0x05, 0x94, 0x62, 0xeb, - 0x94, 0xd2, 0xed, 0x59, 0x02, 0x65, 0xe4, 0x63, 0x8f, 0xcd, 0x4a, 0xdc, 0xd1, 0x82, 0x31, 0xe5, - 0x0d, 0x0d, 0xdf, 0x7f, 0xe6, 0x7a, 0x41, 0x39, 0x14, 0x8e, 0xeb, 0x5f, 0x40, 0x39, 0x7e, 0x1f, - 0x47, 0xeb, 0x53, 0x57, 0x9a, 0x57, 0x12, 0x17, 0xf7, 0x94, 0xbb, 0x0c, 0x82, 0xec, 0xc8, 0xb3, - 0xfd, 0x9a, 0xbc, 0x9c, 0xb9, 0x5f, 0xd4, 0xd8, 0x77, 0xfd, 0x8f, 0x19, 0x98, 0x4f, 0x94, 0x19, - 0x51, 0x3e, 0x97, 0xd2, 0xf3, 0xb9, 0x3c, 0x91, 0xcf, 0x17, 0x21, 0x67, 0xe2, 0x21, 0x39, 0x15, - 0x69, 0x9e, 0x0f, 0xd0, 0xab, 0x50, 0x3c, 0xf1, 0x8c, 0x01, 0xf6, 0x0c, 0xc2, 0xcf, 0xaf, 0x9c, - 0x16, 0x11, 0x68, 0x5e, 0xe6, 0x55, 0x22, 0xcf, 0xcb, 0xb9, 0x44, 0x5e, 0x6e, 0x50, 0x9e, 0xc8, - 0xcb, 0x46, 0xf8, 0x4d, 0xd3, 0x0d, 0xd7, 0x3a, 0xb6, 0x08, 0xb3, 0x9b, 0x67, 0x76, 0x79, 0x69, - 0xb9, 0xc1, 0x69, 0x91, 0xd0, 0x57, 0x23, 0xc3, 0xb6, 0xc8, 0x98, 0xe5, 0xa4, 0x40, 0xe8, 0x7b, - 0x9c, 0x46, 0xcf, 0x20, 0x2e, 0x74, 0xe2, 0xd1, 0x1a, 0xc1, 0xe9, 0x8d, 0x59, 0x82, 0xcf, 0x69, - 0xbc, 0x78, 0xdd, 0x0e, 0xa8, 0xd4, 0x51, 0x5e, 0xa8, 0x72, 0x47, 0x95, 0x84, 0xa3, 0x9f, 0x53, - 0x9e, 0x70, 0xf4, 0x3c, 0xfc, 0xa6, 0x3e, 0x70, 0xad, 0xc0, 0xd1, 0x22, 0xf7, 0x81, 0x11, 0x63, - 0x8e, 0x72, 0xa1, 0xc0, 0xd1, 0x72, 0x4c, 0x28, 0x70, 0xf4, 0x3d, 0x40, 0x67, 0x78, 0xac, 0xb3, - 0x95, 0x8b, 0xce, 0x61, 0x9a, 0x4b, 0x24, 0x4d, 0x3d, 0xc3, 0xe3, 0x6d, 0xca, 0x08, 0x0e, 0xe2, - 0xfa, 0x77, 0xe1, 0xc6, 0xd1, 0xd0, 0x34, 0x08, 0xde, 0x63, 0x9d, 0xf1, 0x58, 0xfd, 0xc3, 0x7b, - 0xf4, 0xb4, 0xc6, 0x11, 0x97, 0x1b, 0x4e, 0x68, 0x99, 0x17, 0x75, 0xd5, 0xeb, 0x3f, 0x96, 0x02, - 0x63, 0x1c, 0x4f, 0x33, 0x19, 0x7b, 0x0b, 0xe6, 0x0d, 0xd3, 0x14, 0xe5, 0x9c, 0x1e, 0x03, 0x5b, - 0xc5, 0x30, 0x4d, 0x0e, 0xdd, 0x23, 0xcf, 0xf6, 0xe9, 0xb4, 0x3c, 0x3c, 0x70, 0xcf, 0xf1, 0x84, - 0x68, 0x86, 0x89, 0xaa, 0x9c, 0x13, 0x49, 0xd7, 0x31, 0x2c, 0xec, 0x59, 0xfe, 0x55, 0xba, 0x4f, - 0x13, 0x4e, 0xca, 0xd3, 0x33, 0x36, 0x7a, 0xc4, 0x3a, 0x0f, 0x1a, 0x4f, 0x62, 0x54, 0xff, 0x36, - 0xa0, 0xf8, 0xcf, 0xf8, 0x43, 0xd7, 0xf1, 0xe9, 0x25, 0x3c, 0x67, 0x11, 0x3c, 0xa0, 0x49, 0x94, - 0x9e, 0x22, 0x51, 0xec, 0xb9, 0x5c, 0xcb, 0x39, 0x71, 0x35, 0x2e, 0x51, 0x5f, 0x83, 0x85, 0x0e, - 0x71, 0x87, 0x53, 0x7e, 0x5e, 0xb8, 0x5e, 0xf5, 0x1f, 0x15, 0x01, 0x22, 0x3b, 0x97, 0xaf, 0xed, - 0x2b, 0x50, 0x60, 0x13, 0x0e, 0x67, 0x94, 0xa7, 0xc3, 0x96, 0x39, 0xb9, 0x12, 0x95, 0xc4, 0x4a, - 0xbc, 0x0f, 0x79, 0x9f, 0x18, 0x64, 0xe4, 0xb3, 0xc9, 0x56, 0x63, 0x37, 0x04, 0xfe, 0xbb, 0x1d, - 0xc6, 0xd4, 0x84, 0x10, 0xcd, 0xa1, 0xac, 0x93, 0x8c, 0x4d, 0xdd, 0x20, 0x0c, 0x67, 0x19, 0xad, - 0x28, 0x28, 0x0d, 0x42, 0x8b, 0x65, 0xec, 0x98, 0x9c, 0x59, 0x62, 0xcc, 0x02, 0x1b, 0x37, 0xd8, - 0x2b, 0xcc, 0x88, 0xc1, 0x85, 0x31, 0x11, 0xd7, 0x14, 0x94, 0x06, 0xa1, 0x47, 0xaa, 0x89, 0x89, - 0x61, 0xd9, 0x7e, 0xed, 0x26, 0x3f, 0x52, 0xc5, 0x90, 0xe6, 0x0f, 0xec, 0x79, 0xae, 0x27, 0x0e, - 0x51, 0x3e, 0xa0, 0xe6, 0xd8, 0x07, 0xdb, 0x78, 0xb5, 0x5b, 0x3c, 0x81, 0x30, 0x0a, 0xdd, 0x62, - 0x68, 0x0f, 0xaa, 0x6c, 0xce, 0xbd, 0xa0, 0x45, 0x25, 0xee, 0xc8, 0xf7, 0xc2, 0xe9, 0x5d, 0xfc, - 0xca, 0xb4, 0x3b, 0xa7, 0x55, 0xbc, 0x38, 0x17, 0xbd, 0x0f, 0x99, 0x67, 0xf8, 0xb8, 0x56, 0x4d, - 0xd4, 0xf9, 0xc9, 0xee, 0x3d, 0xbd, 0xa7, 0x3d, 0xc3, 0xc7, 0xa8, 0x09, 0xa5, 0x61, 0xd4, 0x14, - 0xad, 0xdd, 0x60, 0x6a, 0xaf, 0x47, 0x27, 0xe5, 0x05, 0x0d, 0xd3, 0xdd, 0x39, 0x2d, 0xae, 0x87, - 0x0e, 0x61, 0x9e, 0x77, 0x1e, 0xa2, 0x49, 0xf0, 0x72, 0xea, 0x8d, 0xd0, 0xd4, 0x25, 0x6d, 0xb8, - 0xdd, 0x39, 0xad, 0x4a, 0x26, 0xd8, 0x68, 0x1d, 0x72, 0x8c, 0x22, 0x2e, 0xff, 0x77, 0x26, 0xcd, - 0x24, 0xb5, 0xb9, 0x2c, 0xfa, 0x20, 0xf1, 0x42, 0x95, 0x3c, 0x47, 0x28, 0x30, 0xe9, 0xb6, 0x60, - 0x2d, 0x2f, 0x29, 0x6c, 0x98, 0xbd, 0x2b, 0x7a, 0x23, 0xc9, 0xab, 0x2f, 0xbd, 0x8c, 0x53, 0x15, - 0x21, 0xce, 0xfb, 0x22, 0x1f, 0xc6, 0xba, 0x6b, 0xe5, 0x64, 0x53, 0x4e, 0x30, 0x62, 0x4a, 0x51, - 0x5b, 0xed, 0x69, 0xd8, 0xa5, 0xf2, 0xb0, 0x3f, 0xb2, 0x89, 0x5f, 0x9b, 0x4f, 0xec, 0xc2, 0xc8, - 0xc9, 0xa0, 0x47, 0xa5, 0x71, 0x49, 0xf4, 0x48, 0x34, 0xc8, 0x02, 0x4d, 0x95, 0x69, 0x4e, 0x7b, - 0xca, 0xfb, 0x62, 0x81, 0xd6, 0xa7, 0x51, 0x67, 0x2b, 0x50, 0x5c, 0x48, 0x36, 0xc6, 0x62, 0x1e, - 0x87, 0x2d, 0xad, 0x40, 0xff, 0x49, 0xd0, 0xd2, 0x0a, 0xb4, 0x17, 0x13, 0x0e, 0xb3, 0x9a, 0x83, - 0xeb, 0xf2, 0x8e, 0x56, 0xa0, 0xf9, 0x2e, 0x2c, 0x04, 0xd5, 0x86, 0x6e, 0xbb, 0x3d, 0x5e, 0xee, - 0xbf, 0xc2, 0x5b, 0x03, 0x01, 0x63, 0x4f, 0xd0, 0xd1, 0x23, 0xb8, 0x15, 0x0a, 0x0f, 0x3d, 0xec, - 0x5b, 0x7d, 0x07, 0x9b, 0xac, 0xe5, 0x54, 0x63, 0x1a, 0x8b, 0x01, 0xb7, 0x1d, 0x30, 0x8f, 0x3c, - 0x7b, 0xa3, 0x08, 0x05, 0x8f, 0xc7, 0x9f, 0x16, 0x02, 0xdc, 0xc3, 0xfa, 0x27, 0x50, 0x9d, 0x8c, - 0x34, 0x7a, 0x1b, 0xb2, 0x96, 0x73, 0xe2, 0x4e, 0x65, 0xbc, 0xd8, 0x5a, 0x33, 0x81, 0xa7, 0x72, - 0x4d, 0xaa, 0xff, 0x53, 0x02, 0x88, 0x18, 0xe9, 0x0f, 0x5c, 0xb1, 0x94, 0x22, 0x5f, 0x96, 0x52, - 0x32, 0x93, 0x29, 0x65, 0x09, 0x94, 0x89, 0xbe, 0x47, 0x46, 0x0b, 0xc7, 0xe8, 0x61, 0x98, 0xd7, - 0xf8, 0xe5, 0x61, 0x29, 0xc5, 0xcb, 0xd5, 0x44, 0x72, 0x0b, 0x33, 0x4d, 0x3e, 0x96, 0x69, 0xea, - 0xab, 0x90, 0xe7, 0x72, 0x08, 0x20, 0xdf, 0xd8, 0xec, 0xb6, 0x3e, 0x6f, 0xaa, 0x73, 0xa8, 0x0c, - 0xca, 0x76, 0xeb, 0xa0, 0xd5, 0xd9, 0x6d, 0x6e, 0xa9, 0x12, 0xe5, 0x6c, 0x37, 0x5a, 0x7b, 0xcd, - 0x2d, 0x55, 0xae, 0xff, 0x56, 0x02, 0x25, 0xc0, 0x4e, 0xd0, 0x36, 0x88, 0x1f, 0x42, 0xc1, 0xf8, - 0x25, 0x4d, 0x3c, 0x9f, 0x98, 0x38, 0x82, 0xac, 0x6f, 0x7d, 0x83, 0xc5, 0x82, 0xb0, 0x6f, 0x2a, - 0x1f, 0x22, 0x86, 0x5f, 0x48, 0xc3, 0x71, 0xfd, 0xaf, 0x32, 0x94, 0xe3, 0x88, 0x9d, 0x6e, 0x54, - 0x49, 0x33, 0x37, 0xaa, 0x94, 0x0b, 0x1a, 0x55, 0x71, 0x7f, 0xe5, 0x0b, 0xfc, 0xcd, 0xc4, 0xfc, - 0x7d, 0x17, 0x16, 0x42, 0xc3, 0xa1, 0xe3, 0xfc, 0x8e, 0xad, 0x06, 0x8c, 0x38, 0xd4, 0x27, 0x5d, - 0x09, 0x35, 0xf8, 0x81, 0xb1, 0x18, 0x77, 0x27, 0xd4, 0x62, 0xa5, 0x29, 0xdf, 0xc7, 0xac, 0xb0, - 0x60, 0xeb, 0x92, 0xa1, 0xa5, 0x29, 0x23, 0x6e, 0x52, 0x5a, 0x22, 0x42, 0xf9, 0xcb, 0x22, 0x54, - 0x98, 0x88, 0x50, 0xfd, 0x27, 0x12, 0x40, 0xb4, 0x93, 0x67, 0xef, 0x69, 0xdc, 0x8d, 0x1a, 0x12, - 0xd4, 0x29, 0x89, 0x59, 0x0d, 0x7a, 0x0f, 0xd3, 0x2e, 0x5d, 0x01, 0x34, 0xf5, 0x5f, 0xc8, 0x70, - 0xb3, 0x31, 0x22, 0xee, 0xd4, 0xf1, 0x13, 0x7b, 0x9c, 0x90, 0xae, 0xf1, 0x98, 0x26, 0x5f, 0xe3, - 0x31, 0x2d, 0x73, 0xb5, 0xc7, 0x89, 0x94, 0xe7, 0x85, 0xec, 0xd5, 0x9f, 0x17, 0xe2, 0x2f, 0x03, - 0x3f, 0x93, 0x61, 0x9e, 0x2e, 0x4e, 0xec, 0x24, 0xfc, 0xaf, 0x6f, 0xf9, 0xad, 0x7c, 0x24, 0x4a, - 0xbf, 0xe8, 0x35, 0x01, 0x2d, 0x82, 0xba, 0xd5, 0xdc, 0x6e, 0x1c, 0xed, 0x75, 0xf5, 0xed, 0xd6, - 0x5e, 0xb3, 0xfb, 0xfd, 0x36, 0x4d, 0x86, 0x05, 0xc8, 0xec, 0xb7, 0x1f, 0xa9, 0x12, 0xfd, 0x38, - 0xdc, 0xd9, 0x51, 0xe5, 0x95, 0x03, 0xb8, 0x99, 0xda, 0x39, 0x47, 0xf7, 0xe0, 0x6e, 0x60, 0xa0, - 0xd3, 0xdc, 0xd9, 0x6f, 0x1e, 0x74, 0x9b, 0x5b, 0xcc, 0x94, 0xde, 0xd6, 0x0e, 0xbb, 0x87, 0x9b, - 0x87, 0x7b, 0xea, 0x1c, 0x52, 0xa1, 0xbc, 0xbb, 0xd7, 0x89, 0x28, 0xd2, 0xca, 0x83, 0x44, 0xe7, - 0x5e, 0xf4, 0xef, 0x8a, 0x90, 0x6b, 0x1d, 0x6c, 0x35, 0xbf, 0x54, 0xe7, 0x50, 0x05, 0x8a, 0xdd, - 0xd6, 0x7e, 0xb3, 0xd3, 0x6d, 0xec, 0xb7, 0x55, 0x69, 0xa5, 0x09, 0xf3, 0x89, 0xe6, 0x1f, 0xba, - 0x05, 0xa8, 0xb5, 0xdf, 0xd8, 0x69, 0xea, 0x9d, 0xa3, 0xed, 0xed, 0xd6, 0x97, 0x7a, 0xa0, 0xb9, - 0x04, 0xb7, 0x26, 0xe8, 0x71, 0x33, 0x1f, 0x05, 0x87, 0x5f, 0x38, 0x81, 0xd8, 0x0a, 0xc4, 0x3c, - 0x56, 0x20, 0xab, 0x75, 0xa9, 0x06, 0x5d, 0x82, 0x8e, 0xd6, 0x55, 0xe5, 0x95, 0xbf, 0x48, 0x70, - 0x33, 0x75, 0xff, 0xb0, 0xe9, 0x3d, 0x7c, 0xfc, 0x48, 0xff, 0xf0, 0xe1, 0x5a, 0x5b, 0x5f, 0x5f, - 0x13, 0x13, 0x0e, 0x29, 0x8f, 0xd7, 0x54, 0x09, 0x2d, 0x40, 0x85, 0x51, 0xfe, 0x7f, 0xed, 0x09, - 0x17, 0x92, 0x13, 0xa4, 0xc7, 0x6b, 0x6a, 0x06, 0xdd, 0x86, 0x9b, 0xed, 0x43, 0xad, 0xab, 0x35, - 0x5a, 0x5d, 0x7d, 0xc2, 0x64, 0xf6, 0x02, 0xd6, 0xe3, 0x35, 0x35, 0x47, 0x27, 0x3c, 0xc9, 0x0a, - 0x7f, 0x24, 0x7f, 0x11, 0xef, 0xf1, 0x9a, 0x5a, 0x58, 0xf9, 0x95, 0x04, 0xe5, 0x78, 0x55, 0x80, - 0x6e, 0xc0, 0x7c, 0x73, 0x47, 0x6b, 0x76, 0x3a, 0x7a, 0xa7, 0xdb, 0xd0, 0xba, 0xad, 0x83, 0x1d, - 0x75, 0x8e, 0xba, 0x29, 0x88, 0xe2, 0xb0, 0x94, 0x62, 0xa4, 0xe6, 0xc1, 0x16, 0x95, 0x92, 0x63, - 0xaa, 0x9b, 0x87, 0xfb, 0xed, 0xbd, 0x66, 0xb7, 0xa9, 0x66, 0x62, 0x72, 0xe2, 0x34, 0xcd, 0x22, - 0x04, 0xd5, 0xc0, 0xda, 0xc6, 0xa1, 0xd6, 0x6d, 0x6e, 0xa9, 0x39, 0x54, 0x83, 0x45, 0x41, 0xdb, - 0x6b, 0xed, 0xb7, 0xba, 0xba, 0xd6, 0x6c, 0x6c, 0xd2, 0x73, 0x38, 0xff, 0xf0, 0x97, 0x39, 0xc8, - 0x8b, 0xdd, 0xdb, 0x85, 0x1a, 0xfb, 0x6b, 0x4b, 0xca, 0x3d, 0x1f, 0xcd, 0x52, 0x05, 0x2c, 0xa5, - 0x55, 0x72, 0xe8, 0x3b, 0x14, 0x0f, 0x86, 0x47, 0xc2, 0xab, 0x3f, 0xba, 0xb8, 0x1c, 0x48, 0xb7, - 0xd0, 0x86, 0x5b, 0xcc, 0xc2, 0x74, 0x1a, 0x7e, 0x7e, 0x85, 0x90, 0x6e, 0xf1, 0x73, 0xb8, 0xcd, - 0x2c, 0xa6, 0x15, 0x03, 0x68, 0xa6, 0x5a, 0x21, 0xdd, 0xee, 0x16, 0xa8, 0x91, 0x5d, 0x61, 0xee, - 0xb2, 0x9a, 0x21, 0xdd, 0x4a, 0x03, 0xca, 0xf1, 0x9e, 0x03, 0x8a, 0x52, 0x74, 0x4a, 0x2b, 0xe2, - 0x39, 0x26, 0xf8, 0x56, 0x9c, 0x32, 0x31, 0xd1, 0x80, 0x48, 0x37, 0xd1, 0x04, 0x88, 0x6a, 0x77, - 0x14, 0x1d, 0x34, 0x53, 0x7d, 0x83, 0xa5, 0x3b, 0xa9, 0x3c, 0x51, 0xec, 0x7f, 0x42, 0xef, 0xb2, - 0x41, 0x05, 0x8f, 0xe2, 0x77, 0xca, 0x44, 0x59, 0x9f, 0xea, 0xc5, 0xc6, 0xf6, 0x0f, 0xee, 0xf5, - 0x2d, 0x72, 0x3a, 0x3a, 0x5e, 0xed, 0xb9, 0x83, 0x07, 0x42, 0xe0, 0x41, 0xd0, 0x7f, 0x0b, 0x08, - 0xbf, 0x91, 0x2b, 0x7b, 0xd6, 0x39, 0xfe, 0x8c, 0x37, 0x55, 0x89, 0xfb, 0x77, 0xb9, 0x2a, 0xc6, - 0x4f, 0x9f, 0x32, 0xc2, 0x71, 0x9e, 0xa9, 0xac, 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xe7, 0x40, - 0x56, 0x6e, 0x63, 0x29, 0x00, 0x00, + 0x06, 0xa0, 0xed, 0xe4, 0x32, 0x35, 0xc4, 0x34, 0xc9, 0x29, 0x0e, 0x66, 0xe0, 0x99, 0x06, 0x65, + 0xb8, 0xf2, 0x01, 0x72, 0xcc, 0x72, 0x4b, 0xa5, 0x2a, 0x97, 0x9c, 0x52, 0xa9, 0x5c, 0x73, 0xce, + 0x35, 0xae, 0x54, 0x0e, 0xf9, 0x12, 0xa9, 0x54, 0x25, 0x87, 0x7c, 0x82, 0x54, 0x2f, 0xb3, 0x60, + 0x30, 0xa4, 0x40, 0x41, 0x55, 0x39, 0x24, 0xb7, 0xee, 0xb7, 0xe1, 0x75, 0xbf, 0x5f, 0xbf, 0x7e, + 0xfd, 0x06, 0xb0, 0x68, 0x5b, 0x17, 0xf8, 0xdc, 0x22, 0x3a, 0x3e, 0xf5, 0xb0, 0xef, 0xaf, 0x0e, + 0x3c, 0x97, 0xb8, 0xa8, 0x20, 0xa8, 0x4b, 0x21, 0xbb, 0xef, 0x9a, 0xd8, 0x16, 0xec, 0xfa, 0xdf, + 0x72, 0xb0, 0xa4, 0xb9, 0x6e, 0x7f, 0xd3, 0xed, 0x0f, 0x5c, 0xdf, 0x22, 0xb8, 0xc9, 0x94, 0x35, + 0xfc, 0xd5, 0x10, 0xfb, 0x04, 0xdd, 0x81, 0xa2, 0xe7, 0xba, 0x7d, 0xdd, 0x31, 0xfa, 0xb8, 0x26, + 0x2d, 0x4b, 0xf7, 0x8b, 0x9a, 0x42, 0x09, 0x07, 0x46, 0x1f, 0xa3, 0x5b, 0x90, 0xb7, 0x8d, 0x91, + 0x3b, 0x24, 0x35, 0x99, 0x71, 0xc4, 0x0c, 0xfd, 0x1f, 0x80, 0x31, 0x34, 0x2d, 0x57, 0x77, 0x1d, + 0x7b, 0x54, 0xcb, 0x2c, 0x4b, 0xf7, 0x15, 0xad, 0xc8, 0x28, 0x87, 0x8e, 0x3d, 0xa2, 0xec, 0x0b, + 0xcb, 0xc4, 0x82, 0x9d, 0xe5, 0x6c, 0x46, 0x61, 0xec, 0xb7, 0x60, 0xbe, 0x37, 0xf4, 0x89, 0xdb, + 0xd7, 0x8f, 0x0d, 0x1f, 0xeb, 0x43, 0xcf, 0xae, 0xe5, 0x98, 0xf9, 0x0a, 0x27, 0x6f, 0x18, 0x3e, + 0x3e, 0xf2, 0x6c, 0xf4, 0x08, 0xb2, 0x27, 0x96, 0x8d, 0x6b, 0xf9, 0x65, 0xe9, 0x7e, 0xe9, 0xe1, + 0xd2, 0xaa, 0x58, 0xde, 0x6a, 0xd3, 0xe9, 0xb9, 0x26, 0x36, 0xb7, 0x2d, 0x1b, 0x1f, 0x0e, 0xc9, + 0x60, 0x48, 0x36, 0xe4, 0x9a, 0xb4, 0x3b, 0xa7, 0x31, 0x69, 0xb4, 0x0e, 0x79, 0x9f, 0x78, 0xd8, + 0xe8, 0xd7, 0x0a, 0x4c, 0xef, 0x66, 0xa8, 0xd7, 0x61, 0xe4, 0x31, 0x15, 0x21, 0x8a, 0x3e, 0x05, + 0xc5, 0xc7, 0xa7, 0x7d, 0xec, 0x10, 0xbf, 0x06, 0x4c, 0xed, 0xd5, 0x48, 0x8d, 0x33, 0x52, 0x7e, + 0x30, 0xd4, 0x41, 0x4f, 0x20, 0x3f, 0xf0, 0xb0, 0x8f, 0x49, 0x4d, 0x59, 0x96, 0xee, 0x57, 0x1f, + 0xbe, 0x36, 0xee, 0xac, 0xe5, 0x9c, 0x1e, 0x0e, 0x88, 0xe5, 0x3a, 0x7e, 0x9b, 0x49, 0xed, 0x4a, + 0x9a, 0x90, 0x47, 0x8f, 0x41, 0x31, 0xcc, 0x0b, 0xc3, 0xe9, 0x61, 0xb3, 0x56, 0x64, 0xbf, 0x5c, + 0xbb, 0x4c, 0x77, 0x57, 0xd2, 0x42, 0x59, 0xf4, 0x09, 0x94, 0xe9, 0x72, 0x75, 0x97, 0x39, 0xe4, + 0xd7, 0x4a, 0xcb, 0x99, 0xab, 0x37, 0x49, 0x2b, 0x9d, 0x84, 0x63, 0x1f, 0x7d, 0x07, 0xaa, 0x7c, + 0xe9, 0xa1, 0x81, 0x32, 0x33, 0x90, 0xbe, 0x5b, 0x5a, 0xc5, 0x8f, 0xcd, 0x7c, 0xd4, 0x84, 0x79, + 0xb1, 0xf4, 0x50, 0xbd, 0xc2, 0xd4, 0xaf, 0xdc, 0x35, 0xad, 0x2a, 0x94, 0x02, 0x33, 0x1f, 0x41, + 0xc5, 0xea, 0x1b, 0xa7, 0xd1, 0x22, 0xaa, 0xcc, 0xc8, 0x62, 0x68, 0xa4, 0x45, 0xb9, 0x42, 0xb9, + 0x6c, 0x45, 0x13, 0x7f, 0x43, 0x81, 0x3c, 0x57, 0xda, 0x28, 0x42, 0xc1, 0xe5, 0xfb, 0x53, 0xff, + 0x63, 0x0e, 0xd4, 0x2f, 0xf0, 0xf1, 0x38, 0xc0, 0x55, 0xc8, 0x50, 0x84, 0x71, 0x68, 0xd3, 0x61, + 0x02, 0xbd, 0xf2, 0xd5, 0xe8, 0xcd, 0x24, 0xd1, 0xfb, 0x1e, 0x20, 0xe3, 0x99, 0x61, 0x11, 0xdd, + 0x27, 0x86, 0x47, 0x74, 0xdf, 0x3a, 0x75, 0x0c, 0xbb, 0x56, 0x66, 0x62, 0x2a, 0xe3, 0x74, 0x28, + 0xa3, 0xc3, 0xe8, 0x21, 0x86, 0xb3, 0x2f, 0x88, 0xe1, 0xdc, 0x8b, 0x61, 0x38, 0x3f, 0x13, 0x86, + 0x0b, 0x33, 0x60, 0x58, 0x99, 0x01, 0xc3, 0xc5, 0x59, 0x31, 0x0c, 0xb3, 0x61, 0xb8, 0xf4, 0x32, + 0x30, 0x5c, 0x99, 0x0d, 0xc3, 0xff, 0xca, 0x40, 0xad, 0x6d, 0x78, 0xc4, 0xea, 0x59, 0x03, 0xc3, + 0x21, 0xd7, 0x48, 0xd6, 0x4b, 0xa0, 0x58, 0x26, 0x76, 0x88, 0x45, 0x46, 0x22, 0x5d, 0x87, 0x73, + 0xf4, 0x3a, 0x94, 0xfd, 0x9e, 0x87, 0xb1, 0xa3, 0xfb, 0x67, 0x86, 0x87, 0x05, 0xaa, 0x4b, 0x9c, + 0xd6, 0xa1, 0xa4, 0x58, 0xf8, 0xb3, 0x53, 0x85, 0x7f, 0x2e, 0x35, 0xfc, 0xb9, 0xe7, 0x84, 0x7f, + 0xee, 0x8a, 0xf0, 0xe7, 0x67, 0x0d, 0x7f, 0x61, 0xb6, 0xf0, 0x2b, 0x2f, 0x23, 0xfc, 0xc5, 0xa9, + 0xc3, 0x1f, 0x0b, 0xfa, 0x1f, 0x72, 0x70, 0xa7, 0xeb, 0x19, 0xbd, 0xf3, 0x17, 0xb9, 0xa4, 0xdf, + 0x80, 0x2a, 0x4f, 0x67, 0x84, 0x5a, 0xd0, 0x2d, 0x53, 0x44, 0xbf, 0xcc, 0xa8, 0xcc, 0x6c, 0xcb, + 0xa4, 0x52, 0x3c, 0xab, 0x85, 0x52, 0x19, 0x2e, 0xc5, 0xa8, 0x81, 0xd4, 0x7f, 0x28, 0x5d, 0x29, + 0x33, 0xa5, 0xab, 0xfc, 0x0c, 0xe9, 0xaa, 0xf0, 0xbf, 0x2b, 0x77, 0xa6, 0x74, 0xf5, 0x7b, 0x09, + 0x10, 0x03, 0xcf, 0x35, 0x00, 0x7b, 0x1b, 0x94, 0x04, 0x54, 0x0b, 0x44, 0xe0, 0xef, 0x81, 0xc0, + 0x5f, 0x86, 0x85, 0xe5, 0x76, 0xe8, 0xd5, 0x96, 0xe5, 0xe1, 0x1e, 0x89, 0xd6, 0x15, 0x42, 0xef, + 0x4d, 0xa8, 0x3c, 0xc3, 0xc7, 0xbe, 0xdb, 0x3b, 0xc7, 0x84, 0x55, 0x92, 0x14, 0xb9, 0xc5, 0xdd, + 0x39, 0xad, 0x1c, 0x92, 0x8f, 0x3c, 0x3b, 0xf2, 0xbd, 0xfe, 0xad, 0x0c, 0x0b, 0x13, 0x81, 0x42, + 0x1f, 0x40, 0x91, 0x85, 0x96, 0x8c, 0x06, 0xdc, 0xdf, 0x6a, 0x12, 0x13, 0x5c, 0xbc, 0x3b, 0x1a, + 0x60, 0x4d, 0x39, 0x11, 0x23, 0x9a, 0x72, 0xe9, 0x78, 0x60, 0x90, 0xb3, 0x20, 0xe5, 0x06, 0x73, + 0xf4, 0x0e, 0xa8, 0xa6, 0xe5, 0x1b, 0xc7, 0x36, 0xd6, 0xfb, 0x86, 0x63, 0x9d, 0x60, 0x9f, 0x23, + 0x55, 0xd1, 0xe6, 0x05, 0x7d, 0x5f, 0x90, 0xd1, 0x3d, 0x90, 0xfd, 0x75, 0xb1, 0xe6, 0x85, 0x28, + 0x9c, 0xeb, 0x47, 0x03, 0xdb, 0x35, 0xcc, 0xdd, 0x39, 0x4d, 0xf6, 0xd7, 0xd1, 0x5b, 0x90, 0x39, + 0xed, 0x0d, 0xc4, 0xc9, 0x44, 0xa1, 0xd4, 0xce, 0x66, 0x3b, 0x14, 0xa3, 0x02, 0x68, 0x0d, 0x72, + 0xc6, 0x37, 0x43, 0x0f, 0x4f, 0xa4, 0xe2, 0x06, 0xa5, 0x6e, 0xd8, 0xee, 0x71, 0x28, 0xcf, 0x05, + 0xd1, 0x03, 0xc8, 0x1b, 0xb6, 0x75, 0xd8, 0xe9, 0x4c, 0x54, 0xcc, 0x0d, 0x46, 0x0e, 0xe5, 0x85, + 0x58, 0x6c, 0x37, 0x7f, 0x93, 0x85, 0x1b, 0x29, 0xb0, 0x43, 0x4f, 0x41, 0x61, 0xaf, 0x8f, 0x9e, + 0x6b, 0x8b, 0xed, 0x7c, 0x2d, 0x1d, 0xa6, 0x6d, 0x21, 0xa5, 0x85, 0xf2, 0xe8, 0x6d, 0x98, 0xa7, + 0x9b, 0x48, 0xa1, 0xa3, 0x0f, 0x3c, 0x7c, 0x62, 0x7d, 0x2d, 0xf6, 0xb6, 0x1a, 0x90, 0xdb, 0x8c, + 0x8a, 0xee, 0x41, 0x65, 0x60, 0x1b, 0x23, 0xdb, 0xf2, 0x09, 0x07, 0x9a, 0xc8, 0x68, 0x01, 0x91, + 0x81, 0xed, 0x3d, 0x40, 0xf4, 0x87, 0xf5, 0x71, 0xc9, 0x12, 0x93, 0x54, 0x29, 0xa7, 0x1d, 0x97, + 0x7e, 0x07, 0xd4, 0xe0, 0x94, 0x99, 0x43, 0xcf, 0xa0, 0x18, 0x67, 0x3b, 0x5e, 0xd1, 0x82, 0xd3, + 0xb7, 0x25, 0xc8, 0xf4, 0x40, 0x86, 0x6e, 0xfa, 0xc3, 0x13, 0xea, 0x26, 0xb0, 0x95, 0x5e, 0x72, + 0x20, 0x3b, 0x4c, 0x26, 0x5a, 0x04, 0x9f, 0xa7, 0xc2, 0x44, 0xb9, 0x0a, 0x26, 0xb9, 0xa9, 0x60, + 0x92, 0x9f, 0x1a, 0x26, 0x85, 0xeb, 0xc3, 0xa4, 0x78, 0x5d, 0x98, 0xfc, 0x42, 0x06, 0x35, 0x79, + 0x84, 0xc7, 0x0e, 0x8f, 0x34, 0xc5, 0xe1, 0xc9, 0x5d, 0xb5, 0x2b, 0xf2, 0x54, 0xbb, 0x92, 0x99, + 0x7a, 0x57, 0xb2, 0xd7, 0xdf, 0x95, 0xfc, 0x75, 0x77, 0xe5, 0x1f, 0x19, 0x28, 0xc5, 0xd2, 0x2d, + 0x5d, 0x74, 0xcf, 0x18, 0x90, 0xa1, 0x87, 0x75, 0xcb, 0x21, 0xd8, 0xbb, 0x30, 0xf8, 0xe1, 0xa9, + 0x68, 0xf3, 0x82, 0xde, 0x12, 0x64, 0xb4, 0x08, 0xb9, 0x67, 0x96, 0x29, 0xb2, 0x4e, 0x4e, 0xe3, + 0x13, 0xfa, 0x5c, 0x3f, 0xc3, 0xd6, 0xe9, 0x19, 0x61, 0x0b, 0xcd, 0x69, 0x62, 0x96, 0x76, 0xa2, + 0xb2, 0xa9, 0x27, 0xaa, 0x31, 0x89, 0xe9, 0x5c, 0x22, 0x19, 0x32, 0x87, 0xaf, 0xc0, 0xf3, 0x23, + 0x28, 0xf1, 0x0b, 0x86, 0xe6, 0xcc, 0x9e, 0xb8, 0x9b, 0x6f, 0x8c, 0xab, 0x6f, 0x52, 0x96, 0x06, + 0x56, 0x38, 0x4e, 0x8d, 0x77, 0xe1, 0xaa, 0x78, 0x2b, 0x53, 0xc5, 0xbb, 0x38, 0x75, 0xbc, 0xe1, + 0xfa, 0xf1, 0x2e, 0x5d, 0x37, 0xde, 0x7f, 0xce, 0x80, 0x12, 0xf8, 0xc9, 0x1e, 0xa1, 0xbd, 0x1e, + 0xf6, 0x7d, 0xfd, 0x1c, 0x8f, 0x04, 0xfe, 0x8b, 0x9c, 0xf2, 0x19, 0x1e, 0xd1, 0x50, 0xfa, 0xb8, + 0xe7, 0xe1, 0xb0, 0xf3, 0xc2, 0x67, 0x34, 0xe7, 0xf9, 0xd8, 0xf7, 0x2d, 0xd7, 0xd1, 0x89, 0x7b, + 0x8e, 0x1d, 0x91, 0xc9, 0xca, 0x82, 0xd8, 0xa5, 0x34, 0xaa, 0xec, 0xe1, 0x53, 0x9a, 0xbb, 0x78, + 0x46, 0x14, 0x33, 0x7a, 0xe2, 0xb0, 0x63, 0x0e, 0x5c, 0xcb, 0x21, 0x02, 0x00, 0xe1, 0x9c, 0xea, + 0x1c, 0x0f, 0xe9, 0x75, 0x29, 0x7a, 0x31, 0x62, 0x86, 0xee, 0x83, 0x7a, 0xe2, 0x7a, 0x3d, 0xac, + 0xd3, 0x73, 0xa9, 0xfb, 0x64, 0x24, 0x1a, 0x32, 0x8a, 0x56, 0x65, 0xf4, 0xb6, 0x41, 0xce, 0x3a, + 0x94, 0x8a, 0x3e, 0x06, 0xa5, 0x8f, 0x89, 0x61, 0x1a, 0xc4, 0x10, 0x95, 0xf8, 0xdd, 0x89, 0xf0, + 0xac, 0xee, 0x0b, 0x89, 0xa6, 0x43, 0xbc, 0x91, 0x16, 0x2a, 0xa0, 0x1a, 0x14, 0x88, 0x71, 0x7a, + 0x6a, 0x39, 0xa7, 0x2c, 0xb4, 0xb4, 0x24, 0xe0, 0x53, 0xf4, 0x00, 0x6e, 0xf4, 0x5c, 0x87, 0xb0, + 0x94, 0x6c, 0xf9, 0xac, 0x3a, 0xa6, 0x2b, 0x2b, 0x32, 0x29, 0x24, 0x58, 0x5b, 0x11, 0x07, 0xad, + 0x40, 0x6e, 0xe0, 0xb9, 0x5f, 0x8f, 0x44, 0x4c, 0xa3, 0xd2, 0xa6, 0x4d, 0xa9, 0x9b, 0xae, 0x73, + 0x62, 0x9d, 0x6a, 0x5c, 0x64, 0xe9, 0x63, 0xa8, 0x8c, 0x79, 0x84, 0x54, 0xc8, 0x44, 0xf1, 0xa0, + 0x43, 0x7a, 0xd4, 0x2e, 0x0c, 0x7b, 0x88, 0x45, 0x20, 0xf8, 0xe4, 0xa9, 0xfc, 0x44, 0xaa, 0x7f, + 0x05, 0xc5, 0x10, 0x50, 0x68, 0x19, 0x4a, 0x3d, 0x0f, 0xb3, 0xf7, 0x96, 0x61, 0xfb, 0xc2, 0x40, + 0x9c, 0x14, 0xdb, 0x61, 0x79, 0x6c, 0x87, 0x43, 0x7f, 0x33, 0xcf, 0xf5, 0xb7, 0xfe, 0x63, 0x98, + 0x4f, 0x20, 0x93, 0x3e, 0xed, 0x8c, 0x5e, 0xcf, 0x1d, 0x3a, 0x24, 0x5e, 0x6d, 0x95, 0x04, 0x8d, + 0xdd, 0x6a, 0x77, 0x21, 0x98, 0x32, 0xb0, 0xf1, 0x9f, 0x07, 0x41, 0xa2, 0x68, 0x7b, 0x13, 0xaa, + 0x74, 0x23, 0x0d, 0xcb, 0xc1, 0x5e, 0xfc, 0x2a, 0xad, 0x84, 0x54, 0x6a, 0xa7, 0xfe, 0x33, 0x09, + 0xca, 0x71, 0x94, 0xbf, 0x28, 0x88, 0x5f, 0x22, 0x3e, 0xeb, 0x5f, 0x40, 0x29, 0xb6, 0x4f, 0x29, + 0xdd, 0x9e, 0x25, 0x50, 0x86, 0x3e, 0xf6, 0xd8, 0xaa, 0x44, 0x8d, 0x16, 0xcc, 0x29, 0x6f, 0x60, + 0xf8, 0xfe, 0x33, 0xd7, 0x0b, 0x9e, 0x43, 0xe1, 0xbc, 0xfe, 0x05, 0x94, 0xe3, 0xf5, 0x38, 0x5a, + 0x9f, 0x28, 0x69, 0x5e, 0x49, 0x14, 0xee, 0x29, 0xb5, 0x0c, 0x82, 0xec, 0xd0, 0xb3, 0xfd, 0x9a, + 0xbc, 0x9c, 0xb9, 0x5f, 0xd4, 0xd8, 0xb8, 0xfe, 0xa7, 0x0c, 0xcc, 0x27, 0x9e, 0x19, 0x51, 0x3e, + 0x97, 0xd2, 0xf3, 0xb9, 0x3c, 0x96, 0xcf, 0x17, 0x21, 0x67, 0xe2, 0x01, 0x39, 0x13, 0x69, 0x9e, + 0x4f, 0xd0, 0xab, 0x50, 0x3c, 0xf1, 0x8c, 0x3e, 0xf6, 0x0c, 0xc2, 0xef, 0xaf, 0x9c, 0x16, 0x11, + 0x68, 0x5e, 0xe6, 0xaf, 0x44, 0x9e, 0x97, 0x73, 0x89, 0xbc, 0xdc, 0xa0, 0x3c, 0x91, 0x97, 0x8d, + 0x70, 0x4c, 0xd3, 0x0d, 0xd7, 0x3a, 0xb6, 0x08, 0xb3, 0x9b, 0x67, 0x76, 0xf9, 0xd3, 0x72, 0x83, + 0xd3, 0x22, 0xa1, 0xaf, 0x86, 0x86, 0x6d, 0x91, 0x11, 0xcb, 0x49, 0x81, 0xd0, 0x0f, 0x38, 0x8d, + 0xde, 0x41, 0x5c, 0xe8, 0xc4, 0xa3, 0x6f, 0x04, 0xa7, 0x37, 0x62, 0x09, 0x3e, 0xa7, 0xf1, 0xc7, + 0xeb, 0x76, 0x40, 0xa5, 0x8e, 0xf2, 0x87, 0x2a, 0x77, 0x54, 0x49, 0x38, 0xfa, 0x39, 0xe5, 0x09, + 0x47, 0x2f, 0xc2, 0x31, 0xf5, 0x81, 0x6b, 0x05, 0x8e, 0x16, 0xb9, 0x0f, 0x8c, 0x18, 0x73, 0x94, + 0x0b, 0x05, 0x8e, 0x96, 0x63, 0x42, 0x81, 0xa3, 0xef, 0x01, 0x3a, 0xc7, 0x23, 0x9d, 0xed, 0x5c, + 0x74, 0x0f, 0xd3, 0x5c, 0x22, 0x69, 0xea, 0x39, 0x1e, 0x6d, 0x53, 0x46, 0x70, 0x11, 0xd7, 0xbf, + 0x0f, 0x37, 0x8e, 0x06, 0xa6, 0x41, 0xf0, 0x1e, 0xeb, 0x8c, 0xc7, 0xde, 0x3f, 0xbc, 0x47, 0x4f, + 0xdf, 0x38, 0xa2, 0xb8, 0xe1, 0x84, 0x96, 0x79, 0x59, 0x57, 0xbd, 0xfe, 0x13, 0x29, 0x30, 0xc6, + 0xf1, 0x34, 0x95, 0xb1, 0xb7, 0x60, 0xde, 0x30, 0x4d, 0xf1, 0x9c, 0xd3, 0x63, 0x60, 0xab, 0x18, + 0xa6, 0xc9, 0xa1, 0x7b, 0xe4, 0xd9, 0x3e, 0x5d, 0x96, 0x87, 0xfb, 0xee, 0x05, 0x1e, 0x13, 0xcd, + 0x30, 0x51, 0x95, 0x73, 0x22, 0xe9, 0x3a, 0x86, 0x85, 0x3d, 0xcb, 0xbf, 0x4e, 0xf7, 0x69, 0xcc, + 0x49, 0x79, 0x72, 0xc5, 0x46, 0x8f, 0x58, 0x17, 0x41, 0xe3, 0x49, 0xcc, 0xea, 0xdf, 0x05, 0x14, + 0xff, 0x19, 0x7f, 0xe0, 0x3a, 0x3e, 0x2d, 0xc2, 0x73, 0x16, 0xc1, 0x7d, 0x9a, 0x44, 0xe9, 0x2d, + 0x12, 0xc5, 0x9e, 0xcb, 0xb5, 0x9c, 0x13, 0x57, 0xe3, 0x12, 0xf5, 0x35, 0x58, 0xe8, 0x10, 0x77, + 0x30, 0xe1, 0xe7, 0xa5, 0xfb, 0x55, 0xff, 0x56, 0x01, 0x88, 0xec, 0x5c, 0xbd, 0xb7, 0xaf, 0x40, + 0x81, 0x2d, 0x38, 0x5c, 0x51, 0x9e, 0x4e, 0x5b, 0xe6, 0xf8, 0x4e, 0x54, 0x12, 0x3b, 0xf1, 0x3e, + 0xe4, 0x7d, 0x62, 0x90, 0xa1, 0xcf, 0x16, 0x5b, 0x8d, 0x55, 0x08, 0xfc, 0x77, 0x3b, 0x8c, 0xa9, + 0x09, 0x21, 0x9a, 0x43, 0x59, 0x27, 0x19, 0x9b, 0xba, 0x41, 0x18, 0xce, 0x32, 0x5a, 0x51, 0x50, + 0x1a, 0x84, 0x3e, 0x96, 0xb1, 0x63, 0x72, 0x66, 0x89, 0x31, 0x0b, 0x6c, 0xde, 0x60, 0x5f, 0x61, + 0x86, 0x0c, 0x2e, 0x8c, 0x89, 0xb8, 0xa6, 0xa0, 0x34, 0x08, 0xbd, 0x52, 0x4d, 0x4c, 0x0c, 0xcb, + 0xf6, 0x6b, 0x37, 0xf9, 0x95, 0x2a, 0xa6, 0x34, 0x7f, 0x60, 0xcf, 0x73, 0x3d, 0x71, 0x89, 0xf2, + 0x09, 0x35, 0xc7, 0x06, 0xec, 0xe0, 0xd5, 0x6e, 0xf1, 0x04, 0xc2, 0x28, 0xf4, 0x88, 0xa1, 0x3d, + 0xa8, 0xb2, 0x35, 0xf7, 0x82, 0x16, 0x95, 0xa8, 0x91, 0xef, 0x85, 0xcb, 0xbb, 0xfc, 0x2b, 0xd3, + 0xee, 0x9c, 0x56, 0xf1, 0xe2, 0x5c, 0xf4, 0x3e, 0x64, 0x9e, 0xe1, 0xe3, 0x5a, 0x35, 0xf1, 0xce, + 0x4f, 0x76, 0xef, 0x69, 0x9d, 0xf6, 0x0c, 0x1f, 0xa3, 0x26, 0x94, 0x06, 0x51, 0x53, 0xb4, 0x76, + 0x83, 0xa9, 0xbd, 0x1e, 0xdd, 0x94, 0x97, 0x34, 0x4c, 0x77, 0xe7, 0xb4, 0xb8, 0x1e, 0x3a, 0x84, + 0x79, 0xde, 0x79, 0x88, 0x16, 0xc1, 0x9f, 0x53, 0x6f, 0x84, 0xa6, 0xae, 0x68, 0xc3, 0xed, 0xce, + 0x69, 0x55, 0x32, 0xc6, 0x46, 0xeb, 0x90, 0x63, 0x14, 0x51, 0xfc, 0xdf, 0x19, 0x37, 0x93, 0xd4, + 0xe6, 0xb2, 0xe8, 0x83, 0xc4, 0x17, 0xaa, 0xe4, 0x3d, 0x42, 0x81, 0x49, 0x8f, 0x05, 0x6b, 0x79, + 0x49, 0x61, 0xc3, 0xec, 0x5d, 0xd1, 0x1b, 0x49, 0x96, 0xbe, 0xb4, 0x18, 0xa7, 0x2a, 0x42, 0x9c, + 0xf7, 0x45, 0x3e, 0x8c, 0x75, 0xd7, 0xca, 0xc9, 0xa6, 0x9c, 0x60, 0xc4, 0x94, 0xa2, 0xb6, 0xda, + 0xd3, 0xb0, 0x4b, 0xe5, 0x61, 0x7f, 0x68, 0x13, 0xbf, 0x36, 0x9f, 0x38, 0x85, 0x91, 0x93, 0x41, + 0x8f, 0x4a, 0xe3, 0x92, 0xe8, 0x91, 0x68, 0x90, 0x05, 0x9a, 0x2a, 0xd3, 0x9c, 0xf4, 0x94, 0xf7, + 0xc5, 0x02, 0xad, 0x4f, 0xa3, 0xce, 0x56, 0xa0, 0xb8, 0x90, 0x6c, 0x8c, 0xc5, 0x3c, 0x0e, 0x5b, + 0x5a, 0x81, 0xfe, 0x93, 0xa0, 0xa5, 0x15, 0x68, 0x2f, 0x26, 0x1c, 0x66, 0x6f, 0x0e, 0xae, 0xcb, + 0x3b, 0x5a, 0x81, 0xe6, 0xbb, 0xb0, 0x10, 0xbc, 0x36, 0x74, 0xdb, 0xed, 0xf1, 0xe7, 0xfe, 0x2b, + 0xbc, 0x35, 0x10, 0x30, 0xf6, 0x04, 0x7d, 0xa3, 0x08, 0x05, 0x8f, 0x47, 0x92, 0x96, 0xf4, 0xfc, + 0xb7, 0xea, 0x9f, 0x40, 0x75, 0x3c, 0x66, 0xe8, 0x6d, 0xc8, 0x5a, 0xce, 0x89, 0x3b, 0x91, 0xbb, + 0x62, 0xbb, 0xc6, 0x04, 0x9e, 0xca, 0x35, 0xa9, 0xfe, 0x4f, 0x09, 0x20, 0x62, 0xa4, 0x7f, 0xaa, + 0x8a, 0x25, 0x07, 0xf9, 0xaa, 0xe4, 0x90, 0x19, 0x4f, 0x0e, 0x4b, 0xa0, 0x8c, 0x75, 0x30, 0x32, + 0x5a, 0x38, 0x47, 0x0f, 0xc3, 0x0c, 0xc5, 0xcb, 0x80, 0xa5, 0x14, 0x2f, 0x57, 0x13, 0x69, 0x2a, + 0xcc, 0x19, 0xf9, 0x58, 0xce, 0xa8, 0xaf, 0x42, 0x9e, 0xcb, 0x21, 0x80, 0x7c, 0x63, 0xb3, 0xdb, + 0xfa, 0xbc, 0xa9, 0xce, 0xa1, 0x32, 0x28, 0xdb, 0xad, 0x83, 0x56, 0x67, 0xb7, 0xb9, 0xa5, 0x4a, + 0x94, 0xb3, 0xdd, 0x68, 0xed, 0x35, 0xb7, 0x54, 0xb9, 0xfe, 0x3b, 0x09, 0x94, 0x00, 0x05, 0x41, + 0x03, 0x20, 0x7e, 0x9d, 0x04, 0xf3, 0x97, 0xb4, 0xf0, 0x7c, 0x62, 0xe1, 0x08, 0xb2, 0xbe, 0xf5, + 0x0d, 0x16, 0x1b, 0xc2, 0xc6, 0x54, 0x3e, 0x8c, 0x3d, 0x2f, 0x2d, 0xc3, 0x79, 0xfd, 0xaf, 0x32, + 0x94, 0xe3, 0xd8, 0x9b, 0x6c, 0x39, 0x49, 0x53, 0xb7, 0x9c, 0x94, 0x4b, 0x5a, 0x4e, 0x71, 0x7f, + 0xe5, 0x4b, 0xfc, 0xcd, 0xc4, 0xfc, 0x7d, 0x17, 0x16, 0x42, 0xc3, 0xa1, 0xe3, 0xbc, 0x5a, 0x56, + 0x03, 0x46, 0x00, 0x5a, 0xf4, 0x08, 0x6e, 0x8d, 0xbb, 0x12, 0x6a, 0xf0, 0xd4, 0xbf, 0x18, 0x77, + 0x27, 0xd4, 0x62, 0x8f, 0x4c, 0x7e, 0x22, 0xd9, 0x13, 0x81, 0xed, 0x4b, 0x86, 0x3e, 0x32, 0x19, + 0x71, 0x93, 0xd2, 0x12, 0x11, 0xca, 0x5f, 0x15, 0xa1, 0xc2, 0x58, 0x84, 0xea, 0x3f, 0x95, 0x00, + 0xa2, 0x33, 0x39, 0x7d, 0x77, 0xe2, 0x6e, 0xd4, 0x5a, 0xa0, 0x4e, 0x49, 0xcc, 0x6a, 0xd0, 0x45, + 0x98, 0x74, 0xe9, 0x1a, 0xa0, 0xa9, 0xff, 0x52, 0x86, 0x9b, 0x8d, 0x21, 0x71, 0x27, 0x2e, 0x92, + 0xd8, 0x67, 0x06, 0x69, 0x86, 0xcf, 0x62, 0xf2, 0x0c, 0x9f, 0xc5, 0x32, 0xd7, 0xfb, 0xcc, 0x90, + 0xf2, 0xa1, 0x20, 0x7b, 0xfd, 0x0f, 0x05, 0xf1, 0x1e, 0xff, 0xcf, 0x65, 0x98, 0xa7, 0x9b, 0x13, + 0xbb, 0xd3, 0xfe, 0xeb, 0x9b, 0x77, 0x2b, 0x1f, 0x89, 0x47, 0x5c, 0xf4, 0x5d, 0x00, 0x2d, 0x82, + 0xba, 0xd5, 0xdc, 0x6e, 0x1c, 0xed, 0x75, 0xf5, 0xed, 0xd6, 0x5e, 0xb3, 0xfb, 0xc3, 0x36, 0x4d, + 0x86, 0x05, 0xc8, 0xec, 0xb7, 0x1f, 0xa9, 0x12, 0x1d, 0x1c, 0xee, 0xec, 0xa8, 0xf2, 0xca, 0x01, + 0xdc, 0x4c, 0xed, 0x81, 0xa3, 0x7b, 0x70, 0x37, 0x30, 0xd0, 0x69, 0xee, 0xec, 0x37, 0x0f, 0xba, + 0xcd, 0x2d, 0x66, 0x4a, 0x6f, 0x6b, 0x87, 0xdd, 0xc3, 0xcd, 0xc3, 0x3d, 0x75, 0x0e, 0xa9, 0x50, + 0xde, 0xdd, 0xeb, 0x44, 0x14, 0x69, 0xe5, 0x41, 0xa2, 0x07, 0x2f, 0x3a, 0x71, 0x45, 0xc8, 0xb5, + 0x0e, 0xb6, 0x9a, 0x5f, 0xaa, 0x73, 0xa8, 0x02, 0xc5, 0x6e, 0x6b, 0xbf, 0xd9, 0xe9, 0x36, 0xf6, + 0xdb, 0xaa, 0xb4, 0xd2, 0x84, 0xf9, 0x44, 0x1b, 0x0f, 0xdd, 0x02, 0xd4, 0xda, 0x6f, 0xec, 0x34, + 0xf5, 0xce, 0xd1, 0xf6, 0x76, 0xeb, 0x4b, 0x3d, 0xd0, 0x5c, 0x82, 0x5b, 0x63, 0xf4, 0xb8, 0x99, + 0x8f, 0x82, 0xcb, 0x2f, 0x5c, 0x40, 0x6c, 0x07, 0x62, 0x1e, 0x2b, 0x90, 0xd5, 0xba, 0x54, 0x83, + 0x6e, 0x41, 0x47, 0xeb, 0xaa, 0xf2, 0xca, 0x5f, 0x24, 0xb8, 0x99, 0x7a, 0x7e, 0xd8, 0xf2, 0x1e, + 0x3e, 0x7e, 0xa4, 0x7f, 0xf8, 0x70, 0xad, 0xad, 0xaf, 0xaf, 0x89, 0x05, 0x87, 0x94, 0xc7, 0x6b, + 0xaa, 0x84, 0x16, 0xa0, 0xc2, 0x28, 0xff, 0xbf, 0xf6, 0x84, 0x0b, 0xc9, 0x09, 0xd2, 0xe3, 0x35, + 0x35, 0x83, 0x6e, 0xc3, 0xcd, 0xf6, 0xa1, 0xd6, 0xd5, 0x1a, 0xad, 0xae, 0x3e, 0x66, 0x32, 0x7b, + 0x09, 0xeb, 0xf1, 0x9a, 0x9a, 0xa3, 0x0b, 0x1e, 0x67, 0x85, 0x3f, 0x92, 0xbf, 0x8c, 0xf7, 0x78, + 0x4d, 0x2d, 0xac, 0xfc, 0x5a, 0x82, 0x72, 0xbc, 0xbe, 0x47, 0x37, 0x60, 0xbe, 0xb9, 0xa3, 0x35, + 0x3b, 0x1d, 0xbd, 0xd3, 0x6d, 0x68, 0xdd, 0xd6, 0xc1, 0x8e, 0x3a, 0x47, 0xdd, 0x14, 0x44, 0x71, + 0x59, 0x4a, 0x31, 0x52, 0xf3, 0x60, 0x8b, 0x4a, 0xc9, 0x31, 0xd5, 0xcd, 0xc3, 0xfd, 0xf6, 0x5e, + 0xb3, 0xdb, 0x54, 0x33, 0x31, 0x39, 0x71, 0x9b, 0x66, 0x11, 0x82, 0x6a, 0x60, 0x6d, 0xe3, 0x50, + 0xeb, 0x36, 0xb7, 0xd4, 0x1c, 0xaa, 0xc1, 0xa2, 0xa0, 0xed, 0xb5, 0xf6, 0x5b, 0x5d, 0x5d, 0x6b, + 0x36, 0x36, 0xe9, 0x3d, 0x9c, 0x7f, 0xf8, 0xab, 0x1c, 0xe4, 0xc5, 0xe9, 0xed, 0x42, 0x8d, 0xfd, + 0x49, 0x25, 0xa5, 0x62, 0x47, 0xd3, 0xd4, 0xf3, 0x4b, 0x69, 0x6f, 0x32, 0xf4, 0x3d, 0x8a, 0x07, + 0xc3, 0x23, 0x61, 0x11, 0x8f, 0x2e, 0x2f, 0xec, 0xd3, 0x2d, 0xb4, 0xe1, 0x16, 0xb3, 0x30, 0x99, + 0x86, 0x9f, 0x5f, 0xeb, 0xa7, 0x5b, 0xfc, 0x1c, 0x6e, 0x33, 0x8b, 0x69, 0x65, 0x3d, 0x9a, 0xaa, + 0xea, 0x4f, 0xb7, 0xbb, 0x05, 0x6a, 0x64, 0x57, 0x98, 0xbb, 0xaa, 0xfa, 0x4f, 0xb7, 0xd2, 0x80, + 0x72, 0xbc, 0x7b, 0x80, 0xa2, 0x14, 0x9d, 0xd2, 0x54, 0x78, 0x8e, 0x09, 0x7e, 0x14, 0x27, 0x4c, + 0x8c, 0xb5, 0x12, 0xd2, 0x4d, 0x34, 0x01, 0xa2, 0x57, 0x38, 0x8a, 0x2e, 0x9a, 0x89, 0x0e, 0xc0, + 0xd2, 0x9d, 0x54, 0x9e, 0x78, 0xb6, 0x7f, 0x42, 0x6b, 0xd9, 0xe0, 0x2d, 0x8e, 0xe2, 0x35, 0x65, + 0xe2, 0x81, 0x9e, 0xea, 0xc5, 0xc6, 0xf6, 0x8f, 0xee, 0x9d, 0x5a, 0xe4, 0x6c, 0x78, 0xbc, 0xda, + 0x73, 0xfb, 0x0f, 0x84, 0xc0, 0x83, 0xa0, 0x93, 0x16, 0x10, 0x7e, 0x2b, 0x57, 0xf6, 0xac, 0x0b, + 0xfc, 0x19, 0x6f, 0x8f, 0x12, 0xf7, 0xef, 0x72, 0x55, 0xcc, 0x9f, 0x3e, 0x65, 0x84, 0xe3, 0x3c, + 0x53, 0x59, 0xff, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5f, 0x76, 0xb2, 0x48, 0x2d, 0x29, 0x00, + 0x00, } diff --git a/protobufs/livekit_egress.proto b/protobufs/livekit_egress.proto index d1a29537..211dd4fb 100644 --- a/protobufs/livekit_egress.proto +++ b/protobufs/livekit_egress.proto @@ -349,8 +349,7 @@ message EgressInfo { repeated SegmentsInfo segment_results = 17; repeated ImagesInfo image_results = 20; string manifest_location = 23; - string manifest_presigned_url = 24; - // next ID: 24 + // next ID: 25 } message StreamInfoList { From 1274a4f9cefcc44004484fa3da8cdfede978693d Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 31 Oct 2024 14:53:11 -0700 Subject: [PATCH 09/18] Update dependency @changesets/cli to v2.27.9 (#830) Generated by renovateBot Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- pnpm-lock.yaml | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 96b55ab7..34182de8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ importers: devDependencies: '@changesets/cli': specifier: ^2.27.1 - version: 2.27.8 + version: 2.27.9 '@livekit/changesets-changelog-github': specifier: ^0.0.4 version: 0.0.4 @@ -30,8 +30,8 @@ importers: packages: - '@babel/runtime@7.25.6': - resolution: {integrity: sha512-VBj9MYyDb9tuLq7yzqjgzt6Q+IBQLrGZfdjOekyEirZPHxXWoTSGUTMrpsfi58Up73d13NfYLv8HT9vmznjzhQ==} + '@babel/runtime@7.25.7': + resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} engines: {node: '>=6.9.0'} '@bufbuild/protobuf@1.10.0': @@ -59,8 +59,8 @@ packages: '@changesets/changelog-git@0.2.0': resolution: {integrity: sha512-bHOx97iFI4OClIT35Lok3sJAwM31VbUM++gnMBV16fdbtBhgYu4dxsphBF/0AZZsyAHMrnM0yFcj5gZM1py6uQ==} - '@changesets/cli@2.27.8': - resolution: {integrity: sha512-gZNyh+LdSsI82wBSHLQ3QN5J30P4uHKJ4fXgoGwQxfXwYFTJzDdvIJasZn8rYQtmKhyQuiBj4SSnLuKlxKWq4w==} + '@changesets/cli@2.27.9': + resolution: {integrity: sha512-q42a/ZbDnxPpCb5Wkm6tMVIxgeI9C/bexntzTeCFBrQEdpisQqk8kCHllYZMDjYtEc1ZzumbMJAG8H0Z4rdvjg==} hasBin: true '@changesets/config@3.0.3': @@ -135,9 +135,6 @@ packages: '@types/node@12.20.55': resolution: {integrity: sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==} - '@types/semver@7.5.8': - resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} - '@typescript/vfs@1.5.3': resolution: {integrity: sha512-OSZ/o3wwD5VPZVdGGsXWk7sRGRtwrGnqA4zwmb33FTs7Wxmad0QTkQCbaNyqWA8hL09TCwAthdp8yjFA5G1lvw==} peerDependencies: @@ -556,7 +553,7 @@ packages: snapshots: - '@babel/runtime@7.25.6': + '@babel/runtime@7.25.7': dependencies: regenerator-runtime: 0.14.1 @@ -607,7 +604,7 @@ snapshots: dependencies: '@changesets/types': 6.0.0 - '@changesets/cli@2.27.8': + '@changesets/cli@2.27.9': dependencies: '@changesets/apply-release-plan': 7.0.5 '@changesets/assemble-release-plan': 6.0.4 @@ -624,14 +621,12 @@ snapshots: '@changesets/types': 6.0.0 '@changesets/write': 0.3.2 '@manypkg/get-packages': 1.1.3 - '@types/semver': 7.5.8 ansi-colors: 4.1.3 ci-info: 3.9.0 enquirer: 2.4.1 external-editor: 3.1.0 fs-extra: 7.0.1 mri: 1.2.0 - outdent: 0.5.0 p-limit: 2.3.0 package-manager-detector: 0.2.0 picocolors: 1.1.0 @@ -741,14 +736,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.25.6 + '@babel/runtime': 7.25.7 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -769,8 +764,6 @@ snapshots: '@types/node@12.20.55': {} - '@types/semver@7.5.8': {} - '@typescript/vfs@1.5.3(typescript@4.5.2)': dependencies: debug: 4.3.5 From 5bd7e73f315a4496a4f0ca778d7a94de8b432f00 Mon Sep 17 00:00:00 2001 From: Denys Smirnov Date: Fri, 1 Nov 2024 17:37:48 +0200 Subject: [PATCH 10/18] Add disconnect reason for SIP failures. (#845) --- .changeset/mean-glasses-reflect.md | 6 +++ livekit/livekit_models.pb.go | 68 ++++++++++++++++-------------- protobufs/livekit_models.proto | 2 + 3 files changed, 45 insertions(+), 31 deletions(-) create mode 100644 .changeset/mean-glasses-reflect.md diff --git a/.changeset/mean-glasses-reflect.md b/.changeset/mean-glasses-reflect.md new file mode 100644 index 00000000..59205602 --- /dev/null +++ b/.changeset/mean-glasses-reflect.md @@ -0,0 +1,6 @@ +--- +"@livekit/protocol": minor +"github.com/livekit/protocol": minor +--- + +Add disconnect reason for SIP failures. diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index d3b504ed..4e17b4f2 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -470,6 +470,8 @@ const ( DisconnectReason_USER_UNAVAILABLE DisconnectReason = 11 // SIP callee rejected the call (busy) DisconnectReason_USER_REJECTED DisconnectReason = 12 + // SIP protocol failure or unexpected response + DisconnectReason_SIP_TRUNK_FAILURE DisconnectReason = 13 ) // Enum value maps for DisconnectReason. @@ -488,6 +490,7 @@ var ( 10: "ROOM_CLOSED", 11: "USER_UNAVAILABLE", 12: "USER_REJECTED", + 13: "SIP_TRUNK_FAILURE", } DisconnectReason_value = map[string]int32{ "UNKNOWN_REASON": 0, @@ -503,6 +506,7 @@ var ( "ROOM_CLOSED": 10, "USER_UNAVAILABLE": 11, "USER_REJECTED": 12, + "SIP_TRUNK_FAILURE": 13, } ) @@ -5030,7 +5034,7 @@ var file_livekit_models_proto_rawDesc = []byte{ 0x03, 0x2a, 0x3b, 0x0a, 0x13, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x53, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0x95, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x2a, 0xac, 0x02, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x4c, 0x49, 0x45, 0x4e, @@ -5048,36 +5052,38 @@ var file_livekit_models_proto_rawDesc = []byte{ 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x43, 0x4c, 0x4f, 0x53, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x41, 0x56, 0x41, 0x49, 0x4c, 0x41, 0x42, 0x4c, 0x45, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x4a, 0x45, - 0x43, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x2a, 0x89, 0x01, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6e, - 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x52, - 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x52, - 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x44, 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, - 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x52, 0x5f, 0x50, 0x55, 0x42, - 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, - 0x18, 0x0a, 0x14, 0x52, 0x52, 0x5f, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x52, - 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x52, 0x5f, - 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x41, 0x4e, 0x44, 0x49, 0x44, 0x41, 0x54, 0x45, - 0x10, 0x04, 0x2a, 0x54, 0x0a, 0x11, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x45, 0x5f, 0x55, 0x4e, - 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x5f, 0x43, 0x4f, - 0x44, 0x45, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, - 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, - 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x2a, 0xa3, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x64, - 0x69, 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x0d, - 0x0a, 0x09, 0x54, 0x46, 0x5f, 0x53, 0x54, 0x45, 0x52, 0x45, 0x4f, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x54, 0x46, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x54, 0x58, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, - 0x54, 0x46, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x47, 0x41, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, - 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x45, 0x43, 0x48, - 0x4f, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, - 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x53, 0x55, 0x50, - 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x46, - 0x5f, 0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, - 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x42, 0x46, - 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, - 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, - 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, - 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x43, 0x54, 0x45, 0x44, 0x10, 0x0c, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x49, 0x50, 0x5f, 0x54, 0x52, + 0x55, 0x4e, 0x4b, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x0d, 0x2a, 0x89, 0x01, + 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, + 0x00, 0x12, 0x1a, 0x0a, 0x16, 0x52, 0x52, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x41, 0x4c, 0x5f, 0x44, + 0x49, 0x53, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x17, 0x0a, + 0x13, 0x52, 0x52, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x5f, 0x46, 0x41, + 0x49, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x52, 0x5f, 0x53, 0x55, 0x42, + 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x03, + 0x12, 0x17, 0x0a, 0x13, 0x52, 0x52, 0x5f, 0x53, 0x57, 0x49, 0x54, 0x43, 0x48, 0x5f, 0x43, 0x41, + 0x4e, 0x44, 0x49, 0x44, 0x41, 0x54, 0x45, 0x10, 0x04, 0x2a, 0x54, 0x0a, 0x11, 0x53, 0x75, 0x62, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x0e, + 0x0a, 0x0a, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x18, + 0x0a, 0x14, 0x53, 0x45, 0x5f, 0x43, 0x4f, 0x44, 0x45, 0x43, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, + 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, 0x5f, 0x54, + 0x52, 0x41, 0x43, 0x4b, 0x5f, 0x4e, 0x4f, 0x54, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x02, 0x2a, + 0xa3, 0x01, 0x0a, 0x11, 0x41, 0x75, 0x64, 0x69, 0x6f, 0x54, 0x72, 0x61, 0x63, 0x6b, 0x46, 0x65, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x5f, 0x53, 0x54, 0x45, 0x52, + 0x45, 0x4f, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x46, 0x5f, 0x4e, 0x4f, 0x5f, 0x44, 0x54, + 0x58, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x5f, 0x47, + 0x41, 0x49, 0x4e, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x10, 0x02, 0x12, 0x18, 0x0a, + 0x14, 0x54, 0x46, 0x5f, 0x45, 0x43, 0x48, 0x4f, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, + 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x54, 0x46, 0x5f, 0x4e, 0x4f, + 0x49, 0x53, 0x45, 0x5f, 0x53, 0x55, 0x50, 0x50, 0x52, 0x45, 0x53, 0x53, 0x49, 0x4f, 0x4e, 0x10, + 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x54, 0x46, 0x5f, 0x45, 0x4e, 0x48, 0x41, 0x4e, 0x43, 0x45, 0x44, + 0x5f, 0x4e, 0x4f, 0x49, 0x53, 0x45, 0x5f, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x41, 0x54, + 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, + 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, + 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protobufs/livekit_models.proto b/protobufs/livekit_models.proto index 262c2a3d..fb4bed49 100644 --- a/protobufs/livekit_models.proto +++ b/protobufs/livekit_models.proto @@ -447,6 +447,8 @@ enum DisconnectReason { USER_UNAVAILABLE = 11; // SIP callee rejected the call (busy) USER_REJECTED = 12; + // SIP protocol failure or unexpected response + SIP_TRUNK_FAILURE = 13; } message RTPDrift { From 3c72d6581b6f62bf290e85d07edfca00bf9988cb Mon Sep 17 00:00:00 2001 From: Denys Smirnov Date: Thu, 7 Nov 2024 16:33:05 +0200 Subject: [PATCH 11/18] Annotate SIP validation errors with Twirp codes. (#879) --- .changeset/unlucky-apples-sleep.md | 5 +++++ sip/sip.go | 19 +++++++++++-------- 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 .changeset/unlucky-apples-sleep.md diff --git a/.changeset/unlucky-apples-sleep.md b/.changeset/unlucky-apples-sleep.md new file mode 100644 index 00000000..b9509718 --- /dev/null +++ b/.changeset/unlucky-apples-sleep.md @@ -0,0 +1,5 @@ +--- +"github.com/livekit/protocol": patch +--- + +Annotate SIP errors with Twirp codes. diff --git a/sip/sip.go b/sip/sip.go index 08c75304..17f47f15 100644 --- a/sip/sip.go +++ b/sip/sip.go @@ -18,6 +18,7 @@ import ( "crypto/sha256" "encoding/hex" "fmt" + "github.com/twitchtv/twirp" "maps" "math" "net/netip" @@ -151,7 +152,7 @@ func ValidateDispatchRules(rules []*livekit.SIPDispatchRuleInfo) error { key := ruleKey{Pin: pin, Trunk: trunk, Number: normalizeNumber(number)} r2 := byRuleKey[key] if r2 != nil { - return fmt.Errorf("Conflicting SIP Dispatch Rules: same Trunk+Number+PIN combination for for %q and %q", + return twirp.NewErrorf(twirp.InvalidArgument, "Conflicting SIP Dispatch Rules: same Trunk+Number+PIN combination for for %q and %q", printID(r.SipDispatchRuleId), printID(r2.SipDispatchRuleId)) } byRuleKey[key] = r @@ -217,7 +218,7 @@ func normalizeNumber(num string) string { func validateTrunkInbound(byInbound map[string]*livekit.SIPInboundTrunkInfo, t *livekit.SIPInboundTrunkInfo) error { if len(t.AllowedNumbers) == 0 { if t2 := byInbound[""]; t2 != nil { - return fmt.Errorf("Conflicting inbound SIP Trunks: %q and %q, using the same number(s) %s without AllowedNumbers set", + return twirp.NewErrorf(twirp.InvalidArgument, "Conflicting inbound SIP Trunks: %q and %q, using the same number(s) %s without AllowedNumbers set", printID(t.SipTrunkId), printID(t2.SipTrunkId), printNumbers(t.Numbers)) } byInbound[""] = t @@ -226,7 +227,7 @@ func validateTrunkInbound(byInbound map[string]*livekit.SIPInboundTrunkInfo, t * inboundKey := normalizeNumber(num) t2 := byInbound[inboundKey] if t2 != nil { - return fmt.Errorf("Conflicting inbound SIP Trunks: %q and %q, using the same number(s) %s and AllowedNumber %q", + return twirp.NewErrorf(twirp.InvalidArgument, "Conflicting inbound SIP Trunks: %q and %q, using the same number(s) %s and AllowedNumber %q", printID(t.SipTrunkId), printID(t2.SipTrunkId), printNumbers(t.Numbers), num) } byInbound[inboundKey] = t @@ -333,7 +334,7 @@ func MatchTrunk(trunks []*livekit.SIPInboundTrunkInfo, srcIP netip.Addr, calling if normalizeNumber(num) == calledNorm { // Trunk specific to the number. if selectedTrunk != nil { - return nil, fmt.Errorf("Multiple SIP Trunks matched for %q", called) + return nil, twirp.NewErrorf(twirp.FailedPrecondition, "Multiple SIP Trunks matched for %q", called) } selectedTrunk = tr // Keep searching! We want to know if there are any conflicting Trunk definitions. @@ -345,7 +346,7 @@ func MatchTrunk(trunks []*livekit.SIPInboundTrunkInfo, srcIP netip.Addr, calling return selectedTrunk, nil } if defaultTrunkCnt > 1 { - return nil, fmt.Errorf("Multiple default SIP Trunks matched for %q", called) + return nil, twirp.NewErrorf(twirp.FailedPrecondition, "Multiple default SIP Trunks matched for %q", called) } // Could still be nil here. return defaultTrunk, nil @@ -357,7 +358,8 @@ func MatchDispatchRule(trunk *livekit.SIPInboundTrunkInfo, rules []*livekit.SIPD // Trunk can still be nil here in case none matched or were defined. // This is still fine, but only in case we'll match exactly one wildcard dispatch rule. if len(rules) == 0 { - return nil, &ErrNoDispatchMatched{NoRules: true, NoTrunks: trunk == nil, CalledNumber: req.CalledNumber} + err := &ErrNoDispatchMatched{NoRules: true, NoTrunks: trunk == nil, CalledNumber: req.CalledNumber} + return nil, twirp.WrapError(twirp.NewErrorf(twirp.FailedPrecondition, err.Error()), err) } // We split the matched dispatch rules into two sets in relation to Trunks: specific and default (aka wildcard). // First, attempt to match any of the specific rules, where we did match the Trunk ID. @@ -420,7 +422,8 @@ func MatchDispatchRule(trunk *livekit.SIPInboundTrunkInfo, rules []*livekit.SIPD } else if best != nil { return best, nil } - return nil, &ErrNoDispatchMatched{NoRules: false, NoTrunks: trunk == nil, CalledNumber: req.CalledNumber} + err = &ErrNoDispatchMatched{NoRules: false, NoTrunks: trunk == nil, CalledNumber: req.CalledNumber} + return nil, twirp.WrapError(twirp.NewErrorf(twirp.FailedPrecondition, err.Error()), err) } // EvaluateDispatchRule checks a selected Dispatch Rule against the provided request. @@ -477,7 +480,7 @@ func EvaluateDispatchRule(projectID string, trunk *livekit.SIPInboundTrunkInfo, } if rulePin != sentPin { // This should never happen in practice, because matchSIPDispatchRule should remove rules with the wrong pin. - return nil, fmt.Errorf("Incorrect PIN for SIP room") + return nil, twirp.NewError(twirp.PermissionDenied, "Incorrect PIN for SIP room") } } else { // Pin was sent, but room doesn't require one. Assume user accidentally pressed phone button. From 391b78ffe9a7a5c49e78b5607f91e80b8da73a9c Mon Sep 17 00:00:00 2001 From: David Colburn Date: Tue, 12 Nov 2024 10:24:53 -0800 Subject: [PATCH 12/18] EgressInfo helpers (#880) * EgressInfo helpers * add backup_used to egress info * generated protobuf * update helper --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- livekit/livekit_egress.go | 82 +++++++ livekit/livekit_egress.pb.go | 27 ++- livekit/livekit_egress.twirp.go | 379 ++++++++++++++++---------------- protobufs/livekit_egress.proto | 3 +- 4 files changed, 293 insertions(+), 198 deletions(-) create mode 100644 livekit/livekit_egress.go diff --git a/livekit/livekit_egress.go b/livekit/livekit_egress.go new file mode 100644 index 00000000..c6e3da71 --- /dev/null +++ b/livekit/livekit_egress.go @@ -0,0 +1,82 @@ +package livekit + +import ( + "errors" + "fmt" + "net/http" + "time" + + "github.com/livekit/psrpc" +) + +const ( + MsgLimitReached = "Session limit reached" + MsgStartNotReceived = "Start signal not received" + MsgLimitReachedWithoutStart = "Session limit reached before start signal" + MsgStoppedBeforeStarted = "Stop called before pipeline could start" + + EndReasonAPI = "StopEgress API" + EndReasonKilled = "Process killed" + EndReasonSrcClosed = "Source closed" + EndReasonLimitReached = "Session limit reached" + EndReasonStreamsStopped = "All streams stopped" + EndReasonFailure = "Failure" +) + +func (e *EgressInfo) UpdateStatus(status EgressStatus) { + e.Status = status + e.UpdatedAt = time.Now().UnixNano() +} + +func (e *EgressInfo) SetBackupUsed() { + e.BackupStorageUsed = true + e.UpdatedAt = time.Now().UnixNano() +} + +func (e *EgressInfo) SetEndReason(reason string) { + e.Details = fmt.Sprintf("End reason: %s", reason) +} + +func (e *EgressInfo) SetLimitReached() { + now := time.Now().UnixNano() + e.Status = EgressStatus_EGRESS_LIMIT_REACHED + e.Error = MsgLimitReached + e.ErrorCode = int32(http.StatusRequestEntityTooLarge) + e.UpdatedAt = now + e.EndedAt = now +} + +func (e *EgressInfo) SetAborted(msg string) { + now := time.Now().UnixNano() + e.Status = EgressStatus_EGRESS_ABORTED + e.Error = msg + e.ErrorCode = int32(http.StatusPreconditionFailed) + e.UpdatedAt = now + e.EndedAt = now +} + +func (e *EgressInfo) SetFailed(err error) { + now := time.Now().UnixNano() + e.Status = EgressStatus_EGRESS_FAILED + e.UpdatedAt = now + e.EndedAt = now + e.Error = err.Error() + if e.Details == "" { + e.SetEndReason(EndReasonFailure) + } + + var p psrpc.Error + if errors.As(err, &p) { + // unknown is treated the same as an internal error (500) + if !errors.Is(p.Code(), psrpc.Unknown) { + e.ErrorCode = int32(p.ToHttp()) + } + } +} + +func (e *EgressInfo) SetComplete() { + now := time.Now().UnixNano() + e.Status = EgressStatus_EGRESS_COMPLETE + e.UpdatedAt = now + e.EndedAt = now +} diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index 297a0e1f..c6402581 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -2740,12 +2740,13 @@ type EgressInfo struct { // *EgressInfo_Stream // *EgressInfo_File // *EgressInfo_Segments - Result isEgressInfo_Result `protobuf_oneof:"result"` - StreamResults []*StreamInfo `protobuf:"bytes,15,rep,name=stream_results,json=streamResults,proto3" json:"stream_results,omitempty"` - FileResults []*FileInfo `protobuf:"bytes,16,rep,name=file_results,json=fileResults,proto3" json:"file_results,omitempty"` - SegmentResults []*SegmentsInfo `protobuf:"bytes,17,rep,name=segment_results,json=segmentResults,proto3" json:"segment_results,omitempty"` - ImageResults []*ImagesInfo `protobuf:"bytes,20,rep,name=image_results,json=imageResults,proto3" json:"image_results,omitempty"` - ManifestLocation string `protobuf:"bytes,23,opt,name=manifest_location,json=manifestLocation,proto3" json:"manifest_location,omitempty"` // next ID: 25 + Result isEgressInfo_Result `protobuf_oneof:"result"` + StreamResults []*StreamInfo `protobuf:"bytes,15,rep,name=stream_results,json=streamResults,proto3" json:"stream_results,omitempty"` + FileResults []*FileInfo `protobuf:"bytes,16,rep,name=file_results,json=fileResults,proto3" json:"file_results,omitempty"` + SegmentResults []*SegmentsInfo `protobuf:"bytes,17,rep,name=segment_results,json=segmentResults,proto3" json:"segment_results,omitempty"` + ImageResults []*ImagesInfo `protobuf:"bytes,20,rep,name=image_results,json=imageResults,proto3" json:"image_results,omitempty"` + ManifestLocation string `protobuf:"bytes,23,opt,name=manifest_location,json=manifestLocation,proto3" json:"manifest_location,omitempty"` + BackupStorageUsed bool `protobuf:"varint,25,opt,name=backup_storage_used,json=backupStorageUsed,proto3" json:"backup_storage_used,omitempty"` // next ID: 26 } func (x *EgressInfo) Reset() { @@ -2956,6 +2957,13 @@ func (x *EgressInfo) GetManifestLocation() string { return "" } +func (x *EgressInfo) GetBackupStorageUsed() bool { + if x != nil { + return x.BackupStorageUsed + } + return false +} + type isEgressInfo_Request interface { isEgressInfo_Request() } @@ -4034,7 +4042,7 @@ var file_livekit_egress_proto_rawDesc = []byte{ 0x6d, 0x73, 0x22, 0x30, 0x0a, 0x11, 0x53, 0x74, 0x6f, 0x70, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x67, 0x72, 0x65, - 0x73, 0x73, 0x49, 0x64, 0x22, 0xcb, 0x08, 0x0a, 0x0a, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, + 0x73, 0x73, 0x49, 0x64, 0x22, 0xfb, 0x08, 0x0a, 0x0a, 0x45, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, @@ -4101,7 +4109,10 @@ var file_livekit_egress_proto_rawDesc = []byte{ 0x66, 0x6f, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x6d, 0x61, 0x6e, 0x69, 0x66, 0x65, 0x73, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x6d, 0x61, 0x6e, - 0x69, 0x66, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x09, 0x0a, + 0x69, 0x66, 0x65, 0x73, 0x74, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, + 0x13, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x62, 0x61, 0x63, 0x6b, + 0x75, 0x70, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x55, 0x73, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x3d, 0x0a, 0x0e, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, diff --git a/livekit/livekit_egress.twirp.go b/livekit/livekit_egress.twirp.go index 1e5c9c08..ac29380c 100644 --- a/livekit/livekit_egress.twirp.go +++ b/livekit/livekit_egress.twirp.go @@ -2754,194 +2754,195 @@ func (s *egressServer) PathPrefix() string { } var twirpFileDescriptor1 = []byte{ - // 3009 bytes of a gzipped FileDescriptorProto + // 3038 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xec, 0x5a, 0x49, 0x73, 0x1b, 0xc7, - 0xf5, 0xe7, 0x0c, 0xb6, 0xc1, 0xc3, 0xc2, 0x61, 0x8b, 0x92, 0x21, 0xca, 0x7f, 0x8b, 0x86, 0xbc, - 0xc8, 0xb4, 0x4d, 0xf1, 0x2f, 0xca, 0xb2, 0x2c, 0xc7, 0x4e, 0x40, 0x12, 0x24, 0x11, 0x73, 0x41, - 0x06, 0xa0, 0xed, 0xe4, 0x32, 0x35, 0xc4, 0x34, 0xc9, 0x29, 0x0e, 0x66, 0xe0, 0x99, 0x06, 0x65, - 0xb8, 0xf2, 0x01, 0x72, 0xcc, 0x72, 0x4b, 0xa5, 0x2a, 0x97, 0x9c, 0x52, 0xa9, 0x5c, 0x73, 0xce, - 0x35, 0xae, 0x54, 0x0e, 0xf9, 0x12, 0xa9, 0x54, 0x25, 0x87, 0x7c, 0x82, 0x54, 0x2f, 0xb3, 0x60, - 0x30, 0xa4, 0x40, 0x41, 0x55, 0x39, 0x24, 0xb7, 0xee, 0xb7, 0xe1, 0x75, 0xbf, 0x5f, 0xbf, 0x7e, - 0xfd, 0x06, 0xb0, 0x68, 0x5b, 0x17, 0xf8, 0xdc, 0x22, 0x3a, 0x3e, 0xf5, 0xb0, 0xef, 0xaf, 0x0e, - 0x3c, 0x97, 0xb8, 0xa8, 0x20, 0xa8, 0x4b, 0x21, 0xbb, 0xef, 0x9a, 0xd8, 0x16, 0xec, 0xfa, 0xdf, - 0x72, 0xb0, 0xa4, 0xb9, 0x6e, 0x7f, 0xd3, 0xed, 0x0f, 0x5c, 0xdf, 0x22, 0xb8, 0xc9, 0x94, 0x35, - 0xfc, 0xd5, 0x10, 0xfb, 0x04, 0xdd, 0x81, 0xa2, 0xe7, 0xba, 0x7d, 0xdd, 0x31, 0xfa, 0xb8, 0x26, - 0x2d, 0x4b, 0xf7, 0x8b, 0x9a, 0x42, 0x09, 0x07, 0x46, 0x1f, 0xa3, 0x5b, 0x90, 0xb7, 0x8d, 0x91, - 0x3b, 0x24, 0x35, 0x99, 0x71, 0xc4, 0x0c, 0xfd, 0x1f, 0x80, 0x31, 0x34, 0x2d, 0x57, 0x77, 0x1d, - 0x7b, 0x54, 0xcb, 0x2c, 0x4b, 0xf7, 0x15, 0xad, 0xc8, 0x28, 0x87, 0x8e, 0x3d, 0xa2, 0xec, 0x0b, - 0xcb, 0xc4, 0x82, 0x9d, 0xe5, 0x6c, 0x46, 0x61, 0xec, 0xb7, 0x60, 0xbe, 0x37, 0xf4, 0x89, 0xdb, - 0xd7, 0x8f, 0x0d, 0x1f, 0xeb, 0x43, 0xcf, 0xae, 0xe5, 0x98, 0xf9, 0x0a, 0x27, 0x6f, 0x18, 0x3e, - 0x3e, 0xf2, 0x6c, 0xf4, 0x08, 0xb2, 0x27, 0x96, 0x8d, 0x6b, 0xf9, 0x65, 0xe9, 0x7e, 0xe9, 0xe1, - 0xd2, 0xaa, 0x58, 0xde, 0x6a, 0xd3, 0xe9, 0xb9, 0x26, 0x36, 0xb7, 0x2d, 0x1b, 0x1f, 0x0e, 0xc9, - 0x60, 0x48, 0x36, 0xe4, 0x9a, 0xb4, 0x3b, 0xa7, 0x31, 0x69, 0xb4, 0x0e, 0x79, 0x9f, 0x78, 0xd8, - 0xe8, 0xd7, 0x0a, 0x4c, 0xef, 0x66, 0xa8, 0xd7, 0x61, 0xe4, 0x31, 0x15, 0x21, 0x8a, 0x3e, 0x05, - 0xc5, 0xc7, 0xa7, 0x7d, 0xec, 0x10, 0xbf, 0x06, 0x4c, 0xed, 0xd5, 0x48, 0x8d, 0x33, 0x52, 0x7e, - 0x30, 0xd4, 0x41, 0x4f, 0x20, 0x3f, 0xf0, 0xb0, 0x8f, 0x49, 0x4d, 0x59, 0x96, 0xee, 0x57, 0x1f, - 0xbe, 0x36, 0xee, 0xac, 0xe5, 0x9c, 0x1e, 0x0e, 0x88, 0xe5, 0x3a, 0x7e, 0x9b, 0x49, 0xed, 0x4a, - 0x9a, 0x90, 0x47, 0x8f, 0x41, 0x31, 0xcc, 0x0b, 0xc3, 0xe9, 0x61, 0xb3, 0x56, 0x64, 0xbf, 0x5c, - 0xbb, 0x4c, 0x77, 0x57, 0xd2, 0x42, 0x59, 0xf4, 0x09, 0x94, 0xe9, 0x72, 0x75, 0x97, 0x39, 0xe4, - 0xd7, 0x4a, 0xcb, 0x99, 0xab, 0x37, 0x49, 0x2b, 0x9d, 0x84, 0x63, 0x1f, 0x7d, 0x07, 0xaa, 0x7c, - 0xe9, 0xa1, 0x81, 0x32, 0x33, 0x90, 0xbe, 0x5b, 0x5a, 0xc5, 0x8f, 0xcd, 0x7c, 0xd4, 0x84, 0x79, - 0xb1, 0xf4, 0x50, 0xbd, 0xc2, 0xd4, 0xaf, 0xdc, 0x35, 0xad, 0x2a, 0x94, 0x02, 0x33, 0x1f, 0x41, - 0xc5, 0xea, 0x1b, 0xa7, 0xd1, 0x22, 0xaa, 0xcc, 0xc8, 0x62, 0x68, 0xa4, 0x45, 0xb9, 0x42, 0xb9, - 0x6c, 0x45, 0x13, 0x7f, 0x43, 0x81, 0x3c, 0x57, 0xda, 0x28, 0x42, 0xc1, 0xe5, 0xfb, 0x53, 0xff, - 0x63, 0x0e, 0xd4, 0x2f, 0xf0, 0xf1, 0x38, 0xc0, 0x55, 0xc8, 0x50, 0x84, 0x71, 0x68, 0xd3, 0x61, - 0x02, 0xbd, 0xf2, 0xd5, 0xe8, 0xcd, 0x24, 0xd1, 0xfb, 0x1e, 0x20, 0xe3, 0x99, 0x61, 0x11, 0xdd, - 0x27, 0x86, 0x47, 0x74, 0xdf, 0x3a, 0x75, 0x0c, 0xbb, 0x56, 0x66, 0x62, 0x2a, 0xe3, 0x74, 0x28, - 0xa3, 0xc3, 0xe8, 0x21, 0x86, 0xb3, 0x2f, 0x88, 0xe1, 0xdc, 0x8b, 0x61, 0x38, 0x3f, 0x13, 0x86, - 0x0b, 0x33, 0x60, 0x58, 0x99, 0x01, 0xc3, 0xc5, 0x59, 0x31, 0x0c, 0xb3, 0x61, 0xb8, 0xf4, 0x32, - 0x30, 0x5c, 0x99, 0x0d, 0xc3, 0xff, 0xca, 0x40, 0xad, 0x6d, 0x78, 0xc4, 0xea, 0x59, 0x03, 0xc3, - 0x21, 0xd7, 0x48, 0xd6, 0x4b, 0xa0, 0x58, 0x26, 0x76, 0x88, 0x45, 0x46, 0x22, 0x5d, 0x87, 0x73, - 0xf4, 0x3a, 0x94, 0xfd, 0x9e, 0x87, 0xb1, 0xa3, 0xfb, 0x67, 0x86, 0x87, 0x05, 0xaa, 0x4b, 0x9c, - 0xd6, 0xa1, 0xa4, 0x58, 0xf8, 0xb3, 0x53, 0x85, 0x7f, 0x2e, 0x35, 0xfc, 0xb9, 0xe7, 0x84, 0x7f, - 0xee, 0x8a, 0xf0, 0xe7, 0x67, 0x0d, 0x7f, 0x61, 0xb6, 0xf0, 0x2b, 0x2f, 0x23, 0xfc, 0xc5, 0xa9, - 0xc3, 0x1f, 0x0b, 0xfa, 0x1f, 0x72, 0x70, 0xa7, 0xeb, 0x19, 0xbd, 0xf3, 0x17, 0xb9, 0xa4, 0xdf, - 0x80, 0x2a, 0x4f, 0x67, 0x84, 0x5a, 0xd0, 0x2d, 0x53, 0x44, 0xbf, 0xcc, 0xa8, 0xcc, 0x6c, 0xcb, - 0xa4, 0x52, 0x3c, 0xab, 0x85, 0x52, 0x19, 0x2e, 0xc5, 0xa8, 0x81, 0xd4, 0x7f, 0x28, 0x5d, 0x29, - 0x33, 0xa5, 0xab, 0xfc, 0x0c, 0xe9, 0xaa, 0xf0, 0xbf, 0x2b, 0x77, 0xa6, 0x74, 0xf5, 0x7b, 0x09, - 0x10, 0x03, 0xcf, 0x35, 0x00, 0x7b, 0x1b, 0x94, 0x04, 0x54, 0x0b, 0x44, 0xe0, 0xef, 0x81, 0xc0, - 0x5f, 0x86, 0x85, 0xe5, 0x76, 0xe8, 0xd5, 0x96, 0xe5, 0xe1, 0x1e, 0x89, 0xd6, 0x15, 0x42, 0xef, - 0x4d, 0xa8, 0x3c, 0xc3, 0xc7, 0xbe, 0xdb, 0x3b, 0xc7, 0x84, 0x55, 0x92, 0x14, 0xb9, 0xc5, 0xdd, - 0x39, 0xad, 0x1c, 0x92, 0x8f, 0x3c, 0x3b, 0xf2, 0xbd, 0xfe, 0xad, 0x0c, 0x0b, 0x13, 0x81, 0x42, - 0x1f, 0x40, 0x91, 0x85, 0x96, 0x8c, 0x06, 0xdc, 0xdf, 0x6a, 0x12, 0x13, 0x5c, 0xbc, 0x3b, 0x1a, - 0x60, 0x4d, 0x39, 0x11, 0x23, 0x9a, 0x72, 0xe9, 0x78, 0x60, 0x90, 0xb3, 0x20, 0xe5, 0x06, 0x73, - 0xf4, 0x0e, 0xa8, 0xa6, 0xe5, 0x1b, 0xc7, 0x36, 0xd6, 0xfb, 0x86, 0x63, 0x9d, 0x60, 0x9f, 0x23, - 0x55, 0xd1, 0xe6, 0x05, 0x7d, 0x5f, 0x90, 0xd1, 0x3d, 0x90, 0xfd, 0x75, 0xb1, 0xe6, 0x85, 0x28, - 0x9c, 0xeb, 0x47, 0x03, 0xdb, 0x35, 0xcc, 0xdd, 0x39, 0x4d, 0xf6, 0xd7, 0xd1, 0x5b, 0x90, 0x39, - 0xed, 0x0d, 0xc4, 0xc9, 0x44, 0xa1, 0xd4, 0xce, 0x66, 0x3b, 0x14, 0xa3, 0x02, 0x68, 0x0d, 0x72, - 0xc6, 0x37, 0x43, 0x0f, 0x4f, 0xa4, 0xe2, 0x06, 0xa5, 0x6e, 0xd8, 0xee, 0x71, 0x28, 0xcf, 0x05, - 0xd1, 0x03, 0xc8, 0x1b, 0xb6, 0x75, 0xd8, 0xe9, 0x4c, 0x54, 0xcc, 0x0d, 0x46, 0x0e, 0xe5, 0x85, - 0x58, 0x6c, 0x37, 0x7f, 0x93, 0x85, 0x1b, 0x29, 0xb0, 0x43, 0x4f, 0x41, 0x61, 0xaf, 0x8f, 0x9e, - 0x6b, 0x8b, 0xed, 0x7c, 0x2d, 0x1d, 0xa6, 0x6d, 0x21, 0xa5, 0x85, 0xf2, 0xe8, 0x6d, 0x98, 0xa7, - 0x9b, 0x48, 0xa1, 0xa3, 0x0f, 0x3c, 0x7c, 0x62, 0x7d, 0x2d, 0xf6, 0xb6, 0x1a, 0x90, 0xdb, 0x8c, - 0x8a, 0xee, 0x41, 0x65, 0x60, 0x1b, 0x23, 0xdb, 0xf2, 0x09, 0x07, 0x9a, 0xc8, 0x68, 0x01, 0x91, - 0x81, 0xed, 0x3d, 0x40, 0xf4, 0x87, 0xf5, 0x71, 0xc9, 0x12, 0x93, 0x54, 0x29, 0xa7, 0x1d, 0x97, - 0x7e, 0x07, 0xd4, 0xe0, 0x94, 0x99, 0x43, 0xcf, 0xa0, 0x18, 0x67, 0x3b, 0x5e, 0xd1, 0x82, 0xd3, - 0xb7, 0x25, 0xc8, 0xf4, 0x40, 0x86, 0x6e, 0xfa, 0xc3, 0x13, 0xea, 0x26, 0xb0, 0x95, 0x5e, 0x72, - 0x20, 0x3b, 0x4c, 0x26, 0x5a, 0x04, 0x9f, 0xa7, 0xc2, 0x44, 0xb9, 0x0a, 0x26, 0xb9, 0xa9, 0x60, - 0x92, 0x9f, 0x1a, 0x26, 0x85, 0xeb, 0xc3, 0xa4, 0x78, 0x5d, 0x98, 0xfc, 0x42, 0x06, 0x35, 0x79, - 0x84, 0xc7, 0x0e, 0x8f, 0x34, 0xc5, 0xe1, 0xc9, 0x5d, 0xb5, 0x2b, 0xf2, 0x54, 0xbb, 0x92, 0x99, - 0x7a, 0x57, 0xb2, 0xd7, 0xdf, 0x95, 0xfc, 0x75, 0x77, 0xe5, 0x1f, 0x19, 0x28, 0xc5, 0xd2, 0x2d, - 0x5d, 0x74, 0xcf, 0x18, 0x90, 0xa1, 0x87, 0x75, 0xcb, 0x21, 0xd8, 0xbb, 0x30, 0xf8, 0xe1, 0xa9, - 0x68, 0xf3, 0x82, 0xde, 0x12, 0x64, 0xb4, 0x08, 0xb9, 0x67, 0x96, 0x29, 0xb2, 0x4e, 0x4e, 0xe3, - 0x13, 0xfa, 0x5c, 0x3f, 0xc3, 0xd6, 0xe9, 0x19, 0x61, 0x0b, 0xcd, 0x69, 0x62, 0x96, 0x76, 0xa2, - 0xb2, 0xa9, 0x27, 0xaa, 0x31, 0x89, 0xe9, 0x5c, 0x22, 0x19, 0x32, 0x87, 0xaf, 0xc0, 0xf3, 0x23, - 0x28, 0xf1, 0x0b, 0x86, 0xe6, 0xcc, 0x9e, 0xb8, 0x9b, 0x6f, 0x8c, 0xab, 0x6f, 0x52, 0x96, 0x06, - 0x56, 0x38, 0x4e, 0x8d, 0x77, 0xe1, 0xaa, 0x78, 0x2b, 0x53, 0xc5, 0xbb, 0x38, 0x75, 0xbc, 0xe1, - 0xfa, 0xf1, 0x2e, 0x5d, 0x37, 0xde, 0x7f, 0xce, 0x80, 0x12, 0xf8, 0xc9, 0x1e, 0xa1, 0xbd, 0x1e, - 0xf6, 0x7d, 0xfd, 0x1c, 0x8f, 0x04, 0xfe, 0x8b, 0x9c, 0xf2, 0x19, 0x1e, 0xd1, 0x50, 0xfa, 0xb8, - 0xe7, 0xe1, 0xb0, 0xf3, 0xc2, 0x67, 0x34, 0xe7, 0xf9, 0xd8, 0xf7, 0x2d, 0xd7, 0xd1, 0x89, 0x7b, - 0x8e, 0x1d, 0x91, 0xc9, 0xca, 0x82, 0xd8, 0xa5, 0x34, 0xaa, 0xec, 0xe1, 0x53, 0x9a, 0xbb, 0x78, - 0x46, 0x14, 0x33, 0x7a, 0xe2, 0xb0, 0x63, 0x0e, 0x5c, 0xcb, 0x21, 0x02, 0x00, 0xe1, 0x9c, 0xea, - 0x1c, 0x0f, 0xe9, 0x75, 0x29, 0x7a, 0x31, 0x62, 0x86, 0xee, 0x83, 0x7a, 0xe2, 0x7a, 0x3d, 0xac, - 0xd3, 0x73, 0xa9, 0xfb, 0x64, 0x24, 0x1a, 0x32, 0x8a, 0x56, 0x65, 0xf4, 0xb6, 0x41, 0xce, 0x3a, - 0x94, 0x8a, 0x3e, 0x06, 0xa5, 0x8f, 0x89, 0x61, 0x1a, 0xc4, 0x10, 0x95, 0xf8, 0xdd, 0x89, 0xf0, - 0xac, 0xee, 0x0b, 0x89, 0xa6, 0x43, 0xbc, 0x91, 0x16, 0x2a, 0xa0, 0x1a, 0x14, 0x88, 0x71, 0x7a, - 0x6a, 0x39, 0xa7, 0x2c, 0xb4, 0xb4, 0x24, 0xe0, 0x53, 0xf4, 0x00, 0x6e, 0xf4, 0x5c, 0x87, 0xb0, - 0x94, 0x6c, 0xf9, 0xac, 0x3a, 0xa6, 0x2b, 0x2b, 0x32, 0x29, 0x24, 0x58, 0x5b, 0x11, 0x07, 0xad, - 0x40, 0x6e, 0xe0, 0xb9, 0x5f, 0x8f, 0x44, 0x4c, 0xa3, 0xd2, 0xa6, 0x4d, 0xa9, 0x9b, 0xae, 0x73, - 0x62, 0x9d, 0x6a, 0x5c, 0x64, 0xe9, 0x63, 0xa8, 0x8c, 0x79, 0x84, 0x54, 0xc8, 0x44, 0xf1, 0xa0, - 0x43, 0x7a, 0xd4, 0x2e, 0x0c, 0x7b, 0x88, 0x45, 0x20, 0xf8, 0xe4, 0xa9, 0xfc, 0x44, 0xaa, 0x7f, - 0x05, 0xc5, 0x10, 0x50, 0x68, 0x19, 0x4a, 0x3d, 0x0f, 0xb3, 0xf7, 0x96, 0x61, 0xfb, 0xc2, 0x40, - 0x9c, 0x14, 0xdb, 0x61, 0x79, 0x6c, 0x87, 0x43, 0x7f, 0x33, 0xcf, 0xf5, 0xb7, 0xfe, 0x63, 0x98, - 0x4f, 0x20, 0x93, 0x3e, 0xed, 0x8c, 0x5e, 0xcf, 0x1d, 0x3a, 0x24, 0x5e, 0x6d, 0x95, 0x04, 0x8d, - 0xdd, 0x6a, 0x77, 0x21, 0x98, 0x32, 0xb0, 0xf1, 0x9f, 0x07, 0x41, 0xa2, 0x68, 0x7b, 0x13, 0xaa, - 0x74, 0x23, 0x0d, 0xcb, 0xc1, 0x5e, 0xfc, 0x2a, 0xad, 0x84, 0x54, 0x6a, 0xa7, 0xfe, 0x33, 0x09, - 0xca, 0x71, 0x94, 0xbf, 0x28, 0x88, 0x5f, 0x22, 0x3e, 0xeb, 0x5f, 0x40, 0x29, 0xb6, 0x4f, 0x29, - 0xdd, 0x9e, 0x25, 0x50, 0x86, 0x3e, 0xf6, 0xd8, 0xaa, 0x44, 0x8d, 0x16, 0xcc, 0x29, 0x6f, 0x60, - 0xf8, 0xfe, 0x33, 0xd7, 0x0b, 0x9e, 0x43, 0xe1, 0xbc, 0xfe, 0x05, 0x94, 0xe3, 0xf5, 0x38, 0x5a, - 0x9f, 0x28, 0x69, 0x5e, 0x49, 0x14, 0xee, 0x29, 0xb5, 0x0c, 0x82, 0xec, 0xd0, 0xb3, 0xfd, 0x9a, - 0xbc, 0x9c, 0xb9, 0x5f, 0xd4, 0xd8, 0xb8, 0xfe, 0xa7, 0x0c, 0xcc, 0x27, 0x9e, 0x19, 0x51, 0x3e, - 0x97, 0xd2, 0xf3, 0xb9, 0x3c, 0x96, 0xcf, 0x17, 0x21, 0x67, 0xe2, 0x01, 0x39, 0x13, 0x69, 0x9e, - 0x4f, 0xd0, 0xab, 0x50, 0x3c, 0xf1, 0x8c, 0x3e, 0xf6, 0x0c, 0xc2, 0xef, 0xaf, 0x9c, 0x16, 0x11, - 0x68, 0x5e, 0xe6, 0xaf, 0x44, 0x9e, 0x97, 0x73, 0x89, 0xbc, 0xdc, 0xa0, 0x3c, 0x91, 0x97, 0x8d, - 0x70, 0x4c, 0xd3, 0x0d, 0xd7, 0x3a, 0xb6, 0x08, 0xb3, 0x9b, 0x67, 0x76, 0xf9, 0xd3, 0x72, 0x83, - 0xd3, 0x22, 0xa1, 0xaf, 0x86, 0x86, 0x6d, 0x91, 0x11, 0xcb, 0x49, 0x81, 0xd0, 0x0f, 0x38, 0x8d, - 0xde, 0x41, 0x5c, 0xe8, 0xc4, 0xa3, 0x6f, 0x04, 0xa7, 0x37, 0x62, 0x09, 0x3e, 0xa7, 0xf1, 0xc7, - 0xeb, 0x76, 0x40, 0xa5, 0x8e, 0xf2, 0x87, 0x2a, 0x77, 0x54, 0x49, 0x38, 0xfa, 0x39, 0xe5, 0x09, - 0x47, 0x2f, 0xc2, 0x31, 0xf5, 0x81, 0x6b, 0x05, 0x8e, 0x16, 0xb9, 0x0f, 0x8c, 0x18, 0x73, 0x94, - 0x0b, 0x05, 0x8e, 0x96, 0x63, 0x42, 0x81, 0xa3, 0xef, 0x01, 0x3a, 0xc7, 0x23, 0x9d, 0xed, 0x5c, - 0x74, 0x0f, 0xd3, 0x5c, 0x22, 0x69, 0xea, 0x39, 0x1e, 0x6d, 0x53, 0x46, 0x70, 0x11, 0xd7, 0xbf, - 0x0f, 0x37, 0x8e, 0x06, 0xa6, 0x41, 0xf0, 0x1e, 0xeb, 0x8c, 0xc7, 0xde, 0x3f, 0xbc, 0x47, 0x4f, - 0xdf, 0x38, 0xa2, 0xb8, 0xe1, 0x84, 0x96, 0x79, 0x59, 0x57, 0xbd, 0xfe, 0x13, 0x29, 0x30, 0xc6, - 0xf1, 0x34, 0x95, 0xb1, 0xb7, 0x60, 0xde, 0x30, 0x4d, 0xf1, 0x9c, 0xd3, 0x63, 0x60, 0xab, 0x18, - 0xa6, 0xc9, 0xa1, 0x7b, 0xe4, 0xd9, 0x3e, 0x5d, 0x96, 0x87, 0xfb, 0xee, 0x05, 0x1e, 0x13, 0xcd, - 0x30, 0x51, 0x95, 0x73, 0x22, 0xe9, 0x3a, 0x86, 0x85, 0x3d, 0xcb, 0xbf, 0x4e, 0xf7, 0x69, 0xcc, - 0x49, 0x79, 0x72, 0xc5, 0x46, 0x8f, 0x58, 0x17, 0x41, 0xe3, 0x49, 0xcc, 0xea, 0xdf, 0x05, 0x14, - 0xff, 0x19, 0x7f, 0xe0, 0x3a, 0x3e, 0x2d, 0xc2, 0x73, 0x16, 0xc1, 0x7d, 0x9a, 0x44, 0xe9, 0x2d, - 0x12, 0xc5, 0x9e, 0xcb, 0xb5, 0x9c, 0x13, 0x57, 0xe3, 0x12, 0xf5, 0x35, 0x58, 0xe8, 0x10, 0x77, - 0x30, 0xe1, 0xe7, 0xa5, 0xfb, 0x55, 0xff, 0x56, 0x01, 0x88, 0xec, 0x5c, 0xbd, 0xb7, 0xaf, 0x40, - 0x81, 0x2d, 0x38, 0x5c, 0x51, 0x9e, 0x4e, 0x5b, 0xe6, 0xf8, 0x4e, 0x54, 0x12, 0x3b, 0xf1, 0x3e, - 0xe4, 0x7d, 0x62, 0x90, 0xa1, 0xcf, 0x16, 0x5b, 0x8d, 0x55, 0x08, 0xfc, 0x77, 0x3b, 0x8c, 0xa9, - 0x09, 0x21, 0x9a, 0x43, 0x59, 0x27, 0x19, 0x9b, 0xba, 0x41, 0x18, 0xce, 0x32, 0x5a, 0x51, 0x50, - 0x1a, 0x84, 0x3e, 0x96, 0xb1, 0x63, 0x72, 0x66, 0x89, 0x31, 0x0b, 0x6c, 0xde, 0x60, 0x5f, 0x61, - 0x86, 0x0c, 0x2e, 0x8c, 0x89, 0xb8, 0xa6, 0xa0, 0x34, 0x08, 0xbd, 0x52, 0x4d, 0x4c, 0x0c, 0xcb, - 0xf6, 0x6b, 0x37, 0xf9, 0x95, 0x2a, 0xa6, 0x34, 0x7f, 0x60, 0xcf, 0x73, 0x3d, 0x71, 0x89, 0xf2, - 0x09, 0x35, 0xc7, 0x06, 0xec, 0xe0, 0xd5, 0x6e, 0xf1, 0x04, 0xc2, 0x28, 0xf4, 0x88, 0xa1, 0x3d, - 0xa8, 0xb2, 0x35, 0xf7, 0x82, 0x16, 0x95, 0xa8, 0x91, 0xef, 0x85, 0xcb, 0xbb, 0xfc, 0x2b, 0xd3, - 0xee, 0x9c, 0x56, 0xf1, 0xe2, 0x5c, 0xf4, 0x3e, 0x64, 0x9e, 0xe1, 0xe3, 0x5a, 0x35, 0xf1, 0xce, - 0x4f, 0x76, 0xef, 0x69, 0x9d, 0xf6, 0x0c, 0x1f, 0xa3, 0x26, 0x94, 0x06, 0x51, 0x53, 0xb4, 0x76, - 0x83, 0xa9, 0xbd, 0x1e, 0xdd, 0x94, 0x97, 0x34, 0x4c, 0x77, 0xe7, 0xb4, 0xb8, 0x1e, 0x3a, 0x84, - 0x79, 0xde, 0x79, 0x88, 0x16, 0xc1, 0x9f, 0x53, 0x6f, 0x84, 0xa6, 0xae, 0x68, 0xc3, 0xed, 0xce, - 0x69, 0x55, 0x32, 0xc6, 0x46, 0xeb, 0x90, 0x63, 0x14, 0x51, 0xfc, 0xdf, 0x19, 0x37, 0x93, 0xd4, - 0xe6, 0xb2, 0xe8, 0x83, 0xc4, 0x17, 0xaa, 0xe4, 0x3d, 0x42, 0x81, 0x49, 0x8f, 0x05, 0x6b, 0x79, - 0x49, 0x61, 0xc3, 0xec, 0x5d, 0xd1, 0x1b, 0x49, 0x96, 0xbe, 0xb4, 0x18, 0xa7, 0x2a, 0x42, 0x9c, - 0xf7, 0x45, 0x3e, 0x8c, 0x75, 0xd7, 0xca, 0xc9, 0xa6, 0x9c, 0x60, 0xc4, 0x94, 0xa2, 0xb6, 0xda, - 0xd3, 0xb0, 0x4b, 0xe5, 0x61, 0x7f, 0x68, 0x13, 0xbf, 0x36, 0x9f, 0x38, 0x85, 0x91, 0x93, 0x41, - 0x8f, 0x4a, 0xe3, 0x92, 0xe8, 0x91, 0x68, 0x90, 0x05, 0x9a, 0x2a, 0xd3, 0x9c, 0xf4, 0x94, 0xf7, - 0xc5, 0x02, 0xad, 0x4f, 0xa3, 0xce, 0x56, 0xa0, 0xb8, 0x90, 0x6c, 0x8c, 0xc5, 0x3c, 0x0e, 0x5b, - 0x5a, 0x81, 0xfe, 0x93, 0xa0, 0xa5, 0x15, 0x68, 0x2f, 0x26, 0x1c, 0x66, 0x6f, 0x0e, 0xae, 0xcb, - 0x3b, 0x5a, 0x81, 0xe6, 0xbb, 0xb0, 0x10, 0xbc, 0x36, 0x74, 0xdb, 0xed, 0xf1, 0xe7, 0xfe, 0x2b, - 0xbc, 0x35, 0x10, 0x30, 0xf6, 0x04, 0x7d, 0xa3, 0x08, 0x05, 0x8f, 0x47, 0x92, 0x96, 0xf4, 0xfc, - 0xb7, 0xea, 0x9f, 0x40, 0x75, 0x3c, 0x66, 0xe8, 0x6d, 0xc8, 0x5a, 0xce, 0x89, 0x3b, 0x91, 0xbb, - 0x62, 0xbb, 0xc6, 0x04, 0x9e, 0xca, 0x35, 0xa9, 0xfe, 0x4f, 0x09, 0x20, 0x62, 0xa4, 0x7f, 0xaa, - 0x8a, 0x25, 0x07, 0xf9, 0xaa, 0xe4, 0x90, 0x19, 0x4f, 0x0e, 0x4b, 0xa0, 0x8c, 0x75, 0x30, 0x32, - 0x5a, 0x38, 0x47, 0x0f, 0xc3, 0x0c, 0xc5, 0xcb, 0x80, 0xa5, 0x14, 0x2f, 0x57, 0x13, 0x69, 0x2a, - 0xcc, 0x19, 0xf9, 0x58, 0xce, 0xa8, 0xaf, 0x42, 0x9e, 0xcb, 0x21, 0x80, 0x7c, 0x63, 0xb3, 0xdb, - 0xfa, 0xbc, 0xa9, 0xce, 0xa1, 0x32, 0x28, 0xdb, 0xad, 0x83, 0x56, 0x67, 0xb7, 0xb9, 0xa5, 0x4a, - 0x94, 0xb3, 0xdd, 0x68, 0xed, 0x35, 0xb7, 0x54, 0xb9, 0xfe, 0x3b, 0x09, 0x94, 0x00, 0x05, 0x41, - 0x03, 0x20, 0x7e, 0x9d, 0x04, 0xf3, 0x97, 0xb4, 0xf0, 0x7c, 0x62, 0xe1, 0x08, 0xb2, 0xbe, 0xf5, - 0x0d, 0x16, 0x1b, 0xc2, 0xc6, 0x54, 0x3e, 0x8c, 0x3d, 0x2f, 0x2d, 0xc3, 0x79, 0xfd, 0xaf, 0x32, - 0x94, 0xe3, 0xd8, 0x9b, 0x6c, 0x39, 0x49, 0x53, 0xb7, 0x9c, 0x94, 0x4b, 0x5a, 0x4e, 0x71, 0x7f, - 0xe5, 0x4b, 0xfc, 0xcd, 0xc4, 0xfc, 0x7d, 0x17, 0x16, 0x42, 0xc3, 0xa1, 0xe3, 0xbc, 0x5a, 0x56, - 0x03, 0x46, 0x00, 0x5a, 0xf4, 0x08, 0x6e, 0x8d, 0xbb, 0x12, 0x6a, 0xf0, 0xd4, 0xbf, 0x18, 0x77, - 0x27, 0xd4, 0x62, 0x8f, 0x4c, 0x7e, 0x22, 0xd9, 0x13, 0x81, 0xed, 0x4b, 0x86, 0x3e, 0x32, 0x19, - 0x71, 0x93, 0xd2, 0x12, 0x11, 0xca, 0x5f, 0x15, 0xa1, 0xc2, 0x58, 0x84, 0xea, 0x3f, 0x95, 0x00, - 0xa2, 0x33, 0x39, 0x7d, 0x77, 0xe2, 0x6e, 0xd4, 0x5a, 0xa0, 0x4e, 0x49, 0xcc, 0x6a, 0xd0, 0x45, - 0x98, 0x74, 0xe9, 0x1a, 0xa0, 0xa9, 0xff, 0x52, 0x86, 0x9b, 0x8d, 0x21, 0x71, 0x27, 0x2e, 0x92, - 0xd8, 0x67, 0x06, 0x69, 0x86, 0xcf, 0x62, 0xf2, 0x0c, 0x9f, 0xc5, 0x32, 0xd7, 0xfb, 0xcc, 0x90, - 0xf2, 0xa1, 0x20, 0x7b, 0xfd, 0x0f, 0x05, 0xf1, 0x1e, 0xff, 0xcf, 0x65, 0x98, 0xa7, 0x9b, 0x13, - 0xbb, 0xd3, 0xfe, 0xeb, 0x9b, 0x77, 0x2b, 0x1f, 0x89, 0x47, 0x5c, 0xf4, 0x5d, 0x00, 0x2d, 0x82, - 0xba, 0xd5, 0xdc, 0x6e, 0x1c, 0xed, 0x75, 0xf5, 0xed, 0xd6, 0x5e, 0xb3, 0xfb, 0xc3, 0x36, 0x4d, - 0x86, 0x05, 0xc8, 0xec, 0xb7, 0x1f, 0xa9, 0x12, 0x1d, 0x1c, 0xee, 0xec, 0xa8, 0xf2, 0xca, 0x01, - 0xdc, 0x4c, 0xed, 0x81, 0xa3, 0x7b, 0x70, 0x37, 0x30, 0xd0, 0x69, 0xee, 0xec, 0x37, 0x0f, 0xba, - 0xcd, 0x2d, 0x66, 0x4a, 0x6f, 0x6b, 0x87, 0xdd, 0xc3, 0xcd, 0xc3, 0x3d, 0x75, 0x0e, 0xa9, 0x50, - 0xde, 0xdd, 0xeb, 0x44, 0x14, 0x69, 0xe5, 0x41, 0xa2, 0x07, 0x2f, 0x3a, 0x71, 0x45, 0xc8, 0xb5, - 0x0e, 0xb6, 0x9a, 0x5f, 0xaa, 0x73, 0xa8, 0x02, 0xc5, 0x6e, 0x6b, 0xbf, 0xd9, 0xe9, 0x36, 0xf6, - 0xdb, 0xaa, 0xb4, 0xd2, 0x84, 0xf9, 0x44, 0x1b, 0x0f, 0xdd, 0x02, 0xd4, 0xda, 0x6f, 0xec, 0x34, - 0xf5, 0xce, 0xd1, 0xf6, 0x76, 0xeb, 0x4b, 0x3d, 0xd0, 0x5c, 0x82, 0x5b, 0x63, 0xf4, 0xb8, 0x99, - 0x8f, 0x82, 0xcb, 0x2f, 0x5c, 0x40, 0x6c, 0x07, 0x62, 0x1e, 0x2b, 0x90, 0xd5, 0xba, 0x54, 0x83, - 0x6e, 0x41, 0x47, 0xeb, 0xaa, 0xf2, 0xca, 0x5f, 0x24, 0xb8, 0x99, 0x7a, 0x7e, 0xd8, 0xf2, 0x1e, - 0x3e, 0x7e, 0xa4, 0x7f, 0xf8, 0x70, 0xad, 0xad, 0xaf, 0xaf, 0x89, 0x05, 0x87, 0x94, 0xc7, 0x6b, - 0xaa, 0x84, 0x16, 0xa0, 0xc2, 0x28, 0xff, 0xbf, 0xf6, 0x84, 0x0b, 0xc9, 0x09, 0xd2, 0xe3, 0x35, - 0x35, 0x83, 0x6e, 0xc3, 0xcd, 0xf6, 0xa1, 0xd6, 0xd5, 0x1a, 0xad, 0xae, 0x3e, 0x66, 0x32, 0x7b, - 0x09, 0xeb, 0xf1, 0x9a, 0x9a, 0xa3, 0x0b, 0x1e, 0x67, 0x85, 0x3f, 0x92, 0xbf, 0x8c, 0xf7, 0x78, - 0x4d, 0x2d, 0xac, 0xfc, 0x5a, 0x82, 0x72, 0xbc, 0xbe, 0x47, 0x37, 0x60, 0xbe, 0xb9, 0xa3, 0x35, - 0x3b, 0x1d, 0xbd, 0xd3, 0x6d, 0x68, 0xdd, 0xd6, 0xc1, 0x8e, 0x3a, 0x47, 0xdd, 0x14, 0x44, 0x71, - 0x59, 0x4a, 0x31, 0x52, 0xf3, 0x60, 0x8b, 0x4a, 0xc9, 0x31, 0xd5, 0xcd, 0xc3, 0xfd, 0xf6, 0x5e, - 0xb3, 0xdb, 0x54, 0x33, 0x31, 0x39, 0x71, 0x9b, 0x66, 0x11, 0x82, 0x6a, 0x60, 0x6d, 0xe3, 0x50, - 0xeb, 0x36, 0xb7, 0xd4, 0x1c, 0xaa, 0xc1, 0xa2, 0xa0, 0xed, 0xb5, 0xf6, 0x5b, 0x5d, 0x5d, 0x6b, - 0x36, 0x36, 0xe9, 0x3d, 0x9c, 0x7f, 0xf8, 0xab, 0x1c, 0xe4, 0xc5, 0xe9, 0xed, 0x42, 0x8d, 0xfd, - 0x49, 0x25, 0xa5, 0x62, 0x47, 0xd3, 0xd4, 0xf3, 0x4b, 0x69, 0x6f, 0x32, 0xf4, 0x3d, 0x8a, 0x07, - 0xc3, 0x23, 0x61, 0x11, 0x8f, 0x2e, 0x2f, 0xec, 0xd3, 0x2d, 0xb4, 0xe1, 0x16, 0xb3, 0x30, 0x99, - 0x86, 0x9f, 0x5f, 0xeb, 0xa7, 0x5b, 0xfc, 0x1c, 0x6e, 0x33, 0x8b, 0x69, 0x65, 0x3d, 0x9a, 0xaa, - 0xea, 0x4f, 0xb7, 0xbb, 0x05, 0x6a, 0x64, 0x57, 0x98, 0xbb, 0xaa, 0xfa, 0x4f, 0xb7, 0xd2, 0x80, - 0x72, 0xbc, 0x7b, 0x80, 0xa2, 0x14, 0x9d, 0xd2, 0x54, 0x78, 0x8e, 0x09, 0x7e, 0x14, 0x27, 0x4c, - 0x8c, 0xb5, 0x12, 0xd2, 0x4d, 0x34, 0x01, 0xa2, 0x57, 0x38, 0x8a, 0x2e, 0x9a, 0x89, 0x0e, 0xc0, - 0xd2, 0x9d, 0x54, 0x9e, 0x78, 0xb6, 0x7f, 0x42, 0x6b, 0xd9, 0xe0, 0x2d, 0x8e, 0xe2, 0x35, 0x65, - 0xe2, 0x81, 0x9e, 0xea, 0xc5, 0xc6, 0xf6, 0x8f, 0xee, 0x9d, 0x5a, 0xe4, 0x6c, 0x78, 0xbc, 0xda, - 0x73, 0xfb, 0x0f, 0x84, 0xc0, 0x83, 0xa0, 0x93, 0x16, 0x10, 0x7e, 0x2b, 0x57, 0xf6, 0xac, 0x0b, - 0xfc, 0x19, 0x6f, 0x8f, 0x12, 0xf7, 0xef, 0x72, 0x55, 0xcc, 0x9f, 0x3e, 0x65, 0x84, 0xe3, 0x3c, - 0x53, 0x59, 0xff, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0x5f, 0x76, 0xb2, 0x48, 0x2d, 0x29, 0x00, - 0x00, + 0xf5, 0xe7, 0x0c, 0xb6, 0xc1, 0xc3, 0xc2, 0x61, 0x8b, 0x92, 0x21, 0xca, 0x7f, 0x4b, 0x86, 0xbc, + 0xc8, 0xb2, 0x4d, 0xf1, 0x2f, 0xca, 0xb2, 0x2c, 0xc7, 0x4e, 0x40, 0x12, 0x24, 0x11, 0x73, 0x41, + 0x06, 0xa0, 0xed, 0xe4, 0x32, 0x35, 0xc4, 0x34, 0xc9, 0x29, 0x02, 0x33, 0xf0, 0x74, 0x83, 0x32, + 0x5c, 0xf9, 0x00, 0x39, 0x66, 0xb9, 0xa5, 0x52, 0x95, 0x4b, 0x4e, 0xa9, 0x54, 0xae, 0x39, 0xe7, + 0x9a, 0x54, 0x2a, 0x87, 0x7c, 0x89, 0x54, 0xaa, 0x92, 0x43, 0xae, 0xb9, 0xa4, 0x7a, 0x99, 0x05, + 0x83, 0x21, 0x05, 0x8a, 0xaa, 0xca, 0x21, 0xb9, 0x4d, 0xbf, 0x0d, 0xaf, 0xfb, 0xfd, 0xfa, 0x75, + 0xbf, 0xd7, 0x80, 0xc5, 0xbe, 0x73, 0x86, 0x4f, 0x1d, 0x6a, 0xe2, 0x63, 0x1f, 0x13, 0xb2, 0x3c, + 0xf4, 0x3d, 0xea, 0xa1, 0x82, 0xa4, 0x2e, 0x85, 0xec, 0x81, 0x67, 0xe3, 0xbe, 0x64, 0xd7, 0xff, + 0x9a, 0x83, 0x25, 0xc3, 0xf3, 0x06, 0xeb, 0xde, 0x60, 0xe8, 0x11, 0x87, 0xe2, 0x26, 0x57, 0x36, + 0xf0, 0x57, 0x23, 0x4c, 0x28, 0xba, 0x05, 0x45, 0xdf, 0xf3, 0x06, 0xa6, 0x6b, 0x0d, 0x70, 0x4d, + 0xb9, 0xa3, 0xdc, 0x2b, 0x1a, 0x1a, 0x23, 0xec, 0x59, 0x03, 0x8c, 0x6e, 0x40, 0xbe, 0x6f, 0x8d, + 0xbd, 0x11, 0xad, 0xa9, 0x9c, 0x23, 0x47, 0xe8, 0xff, 0x00, 0xac, 0x91, 0xed, 0x78, 0xa6, 0xe7, + 0xf6, 0xc7, 0xb5, 0xcc, 0x1d, 0xe5, 0x9e, 0x66, 0x14, 0x39, 0x65, 0xdf, 0xed, 0x8f, 0x19, 0xfb, + 0xcc, 0xb1, 0xb1, 0x64, 0x67, 0x05, 0x9b, 0x53, 0x38, 0xfb, 0x2d, 0x98, 0xef, 0x8d, 0x08, 0xf5, + 0x06, 0xe6, 0xa1, 0x45, 0xb0, 0x39, 0xf2, 0xfb, 0xb5, 0x1c, 0x37, 0x5f, 0x11, 0xe4, 0x35, 0x8b, + 0xe0, 0x03, 0xbf, 0x8f, 0x1e, 0x41, 0xf6, 0xc8, 0xe9, 0xe3, 0x5a, 0xfe, 0x8e, 0x72, 0xaf, 0xf4, + 0x70, 0x69, 0x59, 0x4e, 0x6f, 0xb9, 0xe9, 0xf6, 0x3c, 0x1b, 0xdb, 0x9b, 0x4e, 0x1f, 0xef, 0x8f, + 0xe8, 0x70, 0x44, 0xd7, 0xd4, 0x9a, 0xb2, 0x3d, 0x67, 0x70, 0x69, 0xb4, 0x0a, 0x79, 0x42, 0x7d, + 0x6c, 0x0d, 0x6a, 0x05, 0xae, 0x77, 0x3d, 0xd4, 0xeb, 0x70, 0xf2, 0x84, 0x8a, 0x14, 0x45, 0x9f, + 0x82, 0x46, 0xf0, 0xf1, 0x00, 0xbb, 0x94, 0xd4, 0x80, 0xab, 0xbd, 0x1a, 0xa9, 0x09, 0x46, 0xca, + 0x0f, 0x86, 0x3a, 0xe8, 0x09, 0xe4, 0x87, 0x3e, 0x26, 0x98, 0xd6, 0xb4, 0x3b, 0xca, 0xbd, 0xea, + 0xc3, 0xd7, 0x26, 0x9d, 0x75, 0xdc, 0xe3, 0xfd, 0x21, 0x75, 0x3c, 0x97, 0xb4, 0xb9, 0xd4, 0xb6, + 0x62, 0x48, 0x79, 0xf4, 0x18, 0x34, 0xcb, 0x3e, 0xb3, 0xdc, 0x1e, 0xb6, 0x6b, 0x45, 0xfe, 0xcb, + 0xb5, 0xf3, 0x74, 0xb7, 0x15, 0x23, 0x94, 0x45, 0x9f, 0x40, 0x99, 0x4d, 0xd7, 0xf4, 0xb8, 0x43, + 0xa4, 0x56, 0xba, 0x93, 0xb9, 0x78, 0x91, 0x8c, 0xd2, 0x51, 0xf8, 0x4d, 0xd0, 0xb7, 0xa0, 0x2a, + 0xa6, 0x1e, 0x1a, 0x28, 0x73, 0x03, 0xe9, 0xab, 0x65, 0x54, 0x48, 0x6c, 0x44, 0x50, 0x13, 0xe6, + 0xe5, 0xd4, 0x43, 0xf5, 0x0a, 0x57, 0xbf, 0x70, 0xd5, 0x8c, 0xaa, 0x54, 0x0a, 0xcc, 0x7c, 0x04, + 0x15, 0x67, 0x60, 0x1d, 0x47, 0x93, 0xa8, 0x72, 0x23, 0x8b, 0xa1, 0x91, 0x16, 0xe3, 0x4a, 0xe5, + 0xb2, 0x13, 0x0d, 0xc8, 0x9a, 0x06, 0x79, 0xa1, 0xb4, 0x56, 0x84, 0x82, 0x27, 0xd6, 0xa7, 0xfe, + 0xfb, 0x1c, 0xe8, 0x5f, 0xe0, 0xc3, 0x49, 0x80, 0xeb, 0x90, 0x61, 0x08, 0x13, 0xd0, 0x66, 0x9f, + 0x09, 0xf4, 0xaa, 0x17, 0xa3, 0x37, 0x93, 0x44, 0xef, 0x7b, 0x80, 0xac, 0x67, 0x96, 0x43, 0x4d, + 0x42, 0x2d, 0x9f, 0x9a, 0xc4, 0x39, 0x76, 0xad, 0x7e, 0xad, 0xcc, 0xc5, 0x74, 0xce, 0xe9, 0x30, + 0x46, 0x87, 0xd3, 0x43, 0x0c, 0x67, 0x5f, 0x10, 0xc3, 0xb9, 0x17, 0xc3, 0x70, 0xfe, 0x4a, 0x18, + 0x2e, 0x5c, 0x01, 0xc3, 0xda, 0x15, 0x30, 0x5c, 0xbc, 0x2a, 0x86, 0xe1, 0x6a, 0x18, 0x2e, 0xbd, + 0x0c, 0x0c, 0x57, 0xae, 0x86, 0xe1, 0x7f, 0x66, 0xa0, 0xd6, 0xb6, 0x7c, 0xea, 0xf4, 0x9c, 0xa1, + 0xe5, 0xd2, 0x4b, 0x24, 0xeb, 0x25, 0xd0, 0x1c, 0x1b, 0xbb, 0xd4, 0xa1, 0x63, 0x99, 0xae, 0xc3, + 0x31, 0x7a, 0x1d, 0xca, 0xa4, 0xe7, 0x63, 0xec, 0x9a, 0xe4, 0xc4, 0xf2, 0xb1, 0x44, 0x75, 0x49, + 0xd0, 0x3a, 0x8c, 0x14, 0x0b, 0x7f, 0x76, 0xa6, 0xf0, 0xcf, 0xa5, 0x86, 0x3f, 0xf7, 0x9c, 0xf0, + 0xcf, 0x5d, 0x10, 0xfe, 0xfc, 0x55, 0xc3, 0x5f, 0xb8, 0x5a, 0xf8, 0xb5, 0x97, 0x11, 0xfe, 0xe2, + 0xcc, 0xe1, 0x8f, 0x05, 0xfd, 0x77, 0x39, 0xb8, 0xd5, 0xf5, 0xad, 0xde, 0xe9, 0x8b, 0x1c, 0xd2, + 0x6f, 0x40, 0x55, 0xa4, 0x33, 0xca, 0x2c, 0x98, 0x8e, 0x2d, 0xa3, 0x5f, 0xe6, 0x54, 0x6e, 0xb6, + 0x65, 0x33, 0x29, 0x91, 0xd5, 0x42, 0xa9, 0x8c, 0x90, 0xe2, 0xd4, 0x40, 0xea, 0x3f, 0x94, 0xae, + 0xb4, 0x2b, 0xa5, 0xab, 0xfc, 0x15, 0xd2, 0x55, 0xe1, 0x7f, 0x47, 0xee, 0x95, 0xd2, 0xd5, 0x6f, + 0x15, 0x40, 0x1c, 0x3c, 0x97, 0x00, 0xec, 0x4d, 0xd0, 0x12, 0x50, 0x2d, 0x50, 0x89, 0xbf, 0x07, + 0x12, 0x7f, 0x19, 0x1e, 0x96, 0x9b, 0xa1, 0x57, 0x1b, 0x8e, 0x8f, 0x7b, 0x34, 0x9a, 0x57, 0x08, + 0xbd, 0x37, 0xa1, 0xf2, 0x0c, 0x1f, 0x12, 0xaf, 0x77, 0x8a, 0x29, 0xbf, 0x49, 0x32, 0xe4, 0x16, + 0xb7, 0xe7, 0x8c, 0x72, 0x48, 0x3e, 0xf0, 0xfb, 0x91, 0xef, 0xf5, 0x3f, 0xaa, 0xb0, 0x30, 0x15, + 0x28, 0xf4, 0x01, 0x14, 0x79, 0x68, 0xe9, 0x78, 0x28, 0xfc, 0xad, 0x26, 0x31, 0x21, 0xc4, 0xbb, + 0xe3, 0x21, 0x36, 0xb4, 0x23, 0xf9, 0xc5, 0x52, 0x2e, 0xfb, 0x1e, 0x5a, 0xf4, 0x24, 0x48, 0xb9, + 0xc1, 0x18, 0xbd, 0x03, 0xba, 0xed, 0x10, 0xeb, 0xb0, 0x8f, 0xcd, 0x81, 0xe5, 0x3a, 0x47, 0x98, + 0x08, 0xa4, 0x6a, 0xc6, 0xbc, 0xa4, 0xef, 0x4a, 0x32, 0xba, 0x0b, 0x2a, 0x59, 0x95, 0x73, 0x5e, + 0x88, 0xc2, 0xb9, 0x7a, 0x30, 0xec, 0x7b, 0x96, 0xbd, 0x3d, 0x67, 0xa8, 0x64, 0x15, 0xbd, 0x05, + 0x99, 0xe3, 0xde, 0x50, 0xee, 0x4c, 0x14, 0x4a, 0x6d, 0xad, 0xb7, 0x43, 0x31, 0x26, 0x80, 0x56, + 0x20, 0x67, 0x7d, 0x33, 0xf2, 0xf1, 0x54, 0x2a, 0x6e, 0x30, 0xea, 0x5a, 0xdf, 0x3b, 0x0c, 0xe5, + 0x85, 0x20, 0x7a, 0x00, 0x79, 0xab, 0xef, 0xec, 0x77, 0x3a, 0x53, 0x37, 0xe6, 0x06, 0x27, 0x87, + 0xf2, 0x52, 0x2c, 0xb6, 0x9a, 0xbf, 0xca, 0xc2, 0xb5, 0x14, 0xd8, 0xa1, 0xa7, 0xa0, 0xf1, 0xea, + 0xa3, 0xe7, 0xf5, 0xe5, 0x72, 0xbe, 0x96, 0x0e, 0xd3, 0xb6, 0x94, 0x32, 0x42, 0x79, 0xf4, 0x36, + 0xcc, 0xb3, 0x45, 0x64, 0xd0, 0x31, 0x87, 0x3e, 0x3e, 0x72, 0xbe, 0x96, 0x6b, 0x5b, 0x0d, 0xc8, + 0x6d, 0x4e, 0x45, 0x77, 0xa1, 0x32, 0xec, 0x5b, 0xe3, 0xbe, 0x43, 0xa8, 0x00, 0x9a, 0xcc, 0x68, + 0x01, 0x91, 0x83, 0xed, 0x3d, 0x40, 0xec, 0x87, 0xcd, 0x49, 0xc9, 0x12, 0x97, 0xd4, 0x19, 0xa7, + 0x1d, 0x97, 0x7e, 0x07, 0xf4, 0x60, 0x97, 0xd9, 0x23, 0xdf, 0x62, 0x18, 0xe7, 0x2b, 0x5e, 0x31, + 0x82, 0xdd, 0xb7, 0x21, 0xc9, 0x6c, 0x43, 0x86, 0x6e, 0x92, 0xd1, 0x11, 0x73, 0x13, 0xf8, 0x4c, + 0xcf, 0xd9, 0x90, 0x1d, 0x2e, 0x13, 0x4d, 0x42, 0x8c, 0x53, 0x61, 0xa2, 0x5d, 0x04, 0x93, 0xdc, + 0x4c, 0x30, 0xc9, 0xcf, 0x0c, 0x93, 0xc2, 0xe5, 0x61, 0x52, 0xbc, 0x2c, 0x4c, 0x7e, 0xa6, 0x82, + 0x9e, 0xdc, 0xc2, 0x13, 0x9b, 0x47, 0x99, 0x61, 0xf3, 0xe4, 0x2e, 0x5a, 0x15, 0x75, 0xa6, 0x55, + 0xc9, 0xcc, 0xbc, 0x2a, 0xd9, 0xcb, 0xaf, 0x4a, 0xfe, 0xb2, 0xab, 0xf2, 0xf7, 0x0c, 0x94, 0x62, + 0xe9, 0x96, 0x4d, 0xba, 0x67, 0x0d, 0xe9, 0xc8, 0xc7, 0xa6, 0xe3, 0x52, 0xec, 0x9f, 0x59, 0x62, + 0xf3, 0x54, 0x8c, 0x79, 0x49, 0x6f, 0x49, 0x32, 0x5a, 0x84, 0xdc, 0x33, 0xc7, 0x96, 0x59, 0x27, + 0x67, 0x88, 0x01, 0x2b, 0xd7, 0x4f, 0xb0, 0x73, 0x7c, 0x42, 0xf9, 0x44, 0x73, 0x86, 0x1c, 0xa5, + 0xed, 0xa8, 0x6c, 0xea, 0x8e, 0x6a, 0x4c, 0x63, 0x3a, 0x97, 0x48, 0x86, 0xdc, 0xe1, 0x0b, 0xf0, + 0xfc, 0x08, 0x4a, 0xe2, 0x80, 0x61, 0x39, 0xb3, 0x27, 0xcf, 0xe6, 0x6b, 0x93, 0xea, 0xeb, 0x8c, + 0x65, 0x80, 0x13, 0x7e, 0xa7, 0xc6, 0xbb, 0x70, 0x51, 0xbc, 0xb5, 0x99, 0xe2, 0x5d, 0x9c, 0x39, + 0xde, 0x70, 0xf9, 0x78, 0x97, 0x2e, 0x1b, 0xef, 0x3f, 0x65, 0x40, 0x0b, 0xfc, 0xe4, 0x45, 0x68, + 0xaf, 0x87, 0x09, 0x31, 0x4f, 0xf1, 0x58, 0xe2, 0xbf, 0x28, 0x28, 0x9f, 0xe1, 0x31, 0x0b, 0x25, + 0xc1, 0x3d, 0x1f, 0x87, 0x9d, 0x17, 0x31, 0x62, 0x39, 0x8f, 0x60, 0x42, 0x1c, 0xcf, 0x35, 0xa9, + 0x77, 0x8a, 0x5d, 0x99, 0xc9, 0xca, 0x92, 0xd8, 0x65, 0x34, 0xa6, 0xec, 0xe3, 0x63, 0x96, 0xbb, + 0x44, 0x46, 0x94, 0x23, 0xb6, 0xe3, 0xb0, 0x6b, 0x0f, 0x3d, 0xc7, 0xa5, 0x12, 0x00, 0xe1, 0x98, + 0xe9, 0x1c, 0x8e, 0xd8, 0x71, 0x29, 0x7b, 0x31, 0x72, 0x84, 0xee, 0x81, 0x7e, 0xe4, 0xf9, 0x3d, + 0x6c, 0xb2, 0x7d, 0x69, 0x12, 0x3a, 0x96, 0x0d, 0x19, 0xcd, 0xa8, 0x72, 0x7a, 0xdb, 0xa2, 0x27, + 0x1d, 0x46, 0x45, 0x1f, 0x83, 0x36, 0xc0, 0xd4, 0xb2, 0x2d, 0x6a, 0xc9, 0x9b, 0xf8, 0xed, 0xa9, + 0xf0, 0x2c, 0xef, 0x4a, 0x89, 0xa6, 0x4b, 0xfd, 0xb1, 0x11, 0x2a, 0xa0, 0x1a, 0x14, 0xa8, 0x75, + 0x7c, 0xec, 0xb8, 0xc7, 0x3c, 0xb4, 0xec, 0x4a, 0x20, 0x86, 0xe8, 0x01, 0x5c, 0xeb, 0x79, 0x2e, + 0xe5, 0x29, 0xd9, 0x21, 0xfc, 0x76, 0xcc, 0x66, 0x56, 0xe4, 0x52, 0x48, 0xb2, 0x36, 0x22, 0x0e, + 0xba, 0x0f, 0xb9, 0xa1, 0xef, 0x7d, 0x3d, 0x96, 0x31, 0x8d, 0xae, 0x36, 0x6d, 0x46, 0x5d, 0xf7, + 0xdc, 0x23, 0xe7, 0xd8, 0x10, 0x22, 0x4b, 0x1f, 0x43, 0x65, 0xc2, 0x23, 0xa4, 0x43, 0x26, 0x8a, + 0x07, 0xfb, 0x64, 0x5b, 0xed, 0xcc, 0xea, 0x8f, 0xb0, 0x0c, 0x84, 0x18, 0x3c, 0x55, 0x9f, 0x28, + 0xf5, 0xaf, 0xa0, 0x18, 0x02, 0x0a, 0xdd, 0x81, 0x52, 0xcf, 0xc7, 0xbc, 0xde, 0xb2, 0xfa, 0x44, + 0x1a, 0x88, 0x93, 0x62, 0x2b, 0xac, 0x4e, 0xac, 0x70, 0xe8, 0x6f, 0xe6, 0xb9, 0xfe, 0xd6, 0x7f, + 0x08, 0xf3, 0x09, 0x64, 0xb2, 0xd2, 0xce, 0xea, 0xf5, 0xbc, 0x91, 0x4b, 0xe3, 0xb7, 0xad, 0x92, + 0xa4, 0xf1, 0x53, 0xed, 0x36, 0x04, 0x43, 0x0e, 0x36, 0xf1, 0xf3, 0x20, 0x49, 0x0c, 0x6d, 0x6f, + 0x42, 0x95, 0x2d, 0xa4, 0xe5, 0xb8, 0xd8, 0x8f, 0x1f, 0xa5, 0x95, 0x90, 0xca, 0xec, 0xd4, 0x7f, + 0xa2, 0x40, 0x39, 0x8e, 0xf2, 0x17, 0x05, 0xf1, 0x4b, 0xc4, 0x67, 0xfd, 0x0b, 0x28, 0xc5, 0xd6, + 0x29, 0xa5, 0xdb, 0xb3, 0x04, 0xda, 0x88, 0x60, 0x9f, 0xcf, 0x4a, 0xde, 0xd1, 0x82, 0x31, 0xe3, + 0x0d, 0x2d, 0x42, 0x9e, 0x79, 0x7e, 0x50, 0x0e, 0x85, 0xe3, 0xfa, 0x17, 0x50, 0x8e, 0xdf, 0xc7, + 0xd1, 0xea, 0xd4, 0x95, 0xe6, 0x95, 0xc4, 0xc5, 0x3d, 0xe5, 0x2e, 0x83, 0x20, 0x3b, 0xf2, 0xfb, + 0xa4, 0xa6, 0xde, 0xc9, 0xdc, 0x2b, 0x1a, 0xfc, 0xbb, 0xfe, 0x87, 0x0c, 0xcc, 0x27, 0xca, 0x8c, + 0x28, 0x9f, 0x2b, 0xe9, 0xf9, 0x5c, 0x9d, 0xc8, 0xe7, 0x8b, 0x90, 0xb3, 0xf1, 0x90, 0x9e, 0xc8, + 0x34, 0x2f, 0x06, 0xe8, 0x55, 0x28, 0x1e, 0xf9, 0xd6, 0x00, 0xfb, 0x16, 0x15, 0xe7, 0x57, 0xce, + 0x88, 0x08, 0x2c, 0x2f, 0x8b, 0x2a, 0x51, 0xe4, 0xe5, 0x5c, 0x22, 0x2f, 0x37, 0x18, 0x4f, 0xe6, + 0x65, 0x2b, 0xfc, 0x66, 0xe9, 0x46, 0x68, 0x1d, 0x3a, 0x94, 0xdb, 0xcd, 0x73, 0xbb, 0xa2, 0xb4, + 0x5c, 0x13, 0xb4, 0x48, 0xe8, 0xab, 0x91, 0xd5, 0x77, 0xe8, 0x98, 0xe7, 0xa4, 0x40, 0xe8, 0x7b, + 0x82, 0xc6, 0xce, 0x20, 0x21, 0x74, 0xe4, 0xb3, 0x1a, 0xc1, 0xed, 0x8d, 0x79, 0x82, 0xcf, 0x19, + 0xa2, 0x78, 0xdd, 0x0c, 0xa8, 0xcc, 0x51, 0x51, 0xa8, 0x0a, 0x47, 0xb5, 0x84, 0xa3, 0x9f, 0x33, + 0x9e, 0x74, 0xf4, 0x2c, 0xfc, 0x66, 0x3e, 0x08, 0xad, 0xc0, 0xd1, 0xa2, 0xf0, 0x81, 0x13, 0x63, + 0x8e, 0x0a, 0xa1, 0xc0, 0xd1, 0x72, 0x4c, 0x28, 0x70, 0xf4, 0x3d, 0x40, 0xa7, 0x78, 0x6c, 0xf2, + 0x95, 0x8b, 0xce, 0x61, 0x96, 0x4b, 0x14, 0x43, 0x3f, 0xc5, 0xe3, 0x4d, 0xc6, 0x08, 0x0e, 0xe2, + 0xfa, 0x77, 0xe1, 0xda, 0xc1, 0xd0, 0xb6, 0x28, 0xde, 0xe1, 0x9d, 0xf1, 0x58, 0xfd, 0x23, 0x7a, + 0xf4, 0xac, 0xc6, 0x91, 0x97, 0x1b, 0x41, 0x68, 0xd9, 0xe7, 0x75, 0xd5, 0xeb, 0x3f, 0x52, 0x02, + 0x63, 0x02, 0x4f, 0x33, 0x19, 0x7b, 0x0b, 0xe6, 0x2d, 0xdb, 0x96, 0xe5, 0x9c, 0x19, 0x03, 0x5b, + 0xc5, 0xb2, 0x6d, 0x01, 0xdd, 0x03, 0xbf, 0x4f, 0xd8, 0xb4, 0x7c, 0x3c, 0xf0, 0xce, 0xf0, 0x84, + 0x68, 0x86, 0x8b, 0xea, 0x82, 0x13, 0x49, 0xd7, 0x31, 0x2c, 0xec, 0x38, 0xe4, 0x32, 0xdd, 0xa7, + 0x09, 0x27, 0xd5, 0xe9, 0x19, 0x5b, 0x3d, 0xea, 0x9c, 0x05, 0x8d, 0x27, 0x39, 0xaa, 0x7f, 0x1b, + 0x50, 0xfc, 0x67, 0xc8, 0xd0, 0x73, 0x09, 0xbb, 0x84, 0xe7, 0x1c, 0x8a, 0x07, 0x2c, 0x89, 0xb2, + 0x53, 0x24, 0x8a, 0xbd, 0x90, 0x6b, 0xb9, 0x47, 0x9e, 0x21, 0x24, 0xea, 0x2b, 0xb0, 0xd0, 0xa1, + 0xde, 0x70, 0xca, 0xcf, 0x73, 0xd7, 0xab, 0xfe, 0x2f, 0x0d, 0x20, 0xb2, 0x73, 0xf1, 0xda, 0xbe, + 0x02, 0x05, 0x3e, 0xe1, 0x70, 0x46, 0x79, 0x36, 0x6c, 0xd9, 0x93, 0x2b, 0x51, 0x49, 0xac, 0xc4, + 0xfb, 0x90, 0x27, 0xd4, 0xa2, 0x23, 0xc2, 0x27, 0x5b, 0x8d, 0xdd, 0x10, 0xc4, 0xef, 0x76, 0x38, + 0xd3, 0x90, 0x42, 0x2c, 0x87, 0xf2, 0x4e, 0x32, 0xb6, 0x4d, 0x8b, 0x72, 0x9c, 0x65, 0x8c, 0xa2, + 0xa4, 0x34, 0x28, 0x2b, 0x96, 0xb1, 0x6b, 0x0b, 0x66, 0x89, 0x33, 0x0b, 0x7c, 0xdc, 0xe0, 0xaf, + 0x30, 0x23, 0x0e, 0x17, 0xce, 0x44, 0x42, 0x53, 0x52, 0x1a, 0x94, 0x1d, 0xa9, 0x36, 0xa6, 0x96, + 0xd3, 0x27, 0xb5, 0xeb, 0xe2, 0x48, 0x95, 0x43, 0x96, 0x3f, 0xb0, 0xef, 0x7b, 0xbe, 0x3c, 0x44, + 0xc5, 0x80, 0x99, 0xe3, 0x1f, 0x7c, 0xe3, 0xd5, 0x6e, 0x88, 0x04, 0xc2, 0x29, 0x6c, 0x8b, 0xa1, + 0x1d, 0xa8, 0xf2, 0x39, 0xf7, 0x82, 0x16, 0x95, 0xbc, 0x23, 0xdf, 0x0d, 0xa7, 0x77, 0xfe, 0x2b, + 0xd3, 0xf6, 0x9c, 0x51, 0xf1, 0xe3, 0x5c, 0xf4, 0x3e, 0x64, 0x9e, 0xe1, 0xc3, 0x5a, 0x35, 0x51, + 0xe7, 0x27, 0xbb, 0xf7, 0xec, 0x9e, 0xf6, 0x0c, 0x1f, 0xa2, 0x26, 0x94, 0x86, 0x51, 0x53, 0xb4, + 0x76, 0x8d, 0xab, 0xbd, 0x1e, 0x9d, 0x94, 0xe7, 0x34, 0x4c, 0xb7, 0xe7, 0x8c, 0xb8, 0x1e, 0xda, + 0x87, 0x79, 0xd1, 0x79, 0x88, 0x26, 0x21, 0xca, 0xa9, 0x37, 0x42, 0x53, 0x17, 0xb4, 0xe1, 0xb6, + 0xe7, 0x8c, 0x2a, 0x9d, 0x60, 0xa3, 0x55, 0xc8, 0x71, 0x8a, 0xbc, 0xfc, 0xdf, 0x9a, 0x34, 0x93, + 0xd4, 0x16, 0xb2, 0xe8, 0x83, 0xc4, 0x0b, 0x55, 0xf2, 0x1c, 0x61, 0xc0, 0x64, 0xdb, 0x82, 0xb7, + 0xbc, 0x94, 0xb0, 0x61, 0xf6, 0xae, 0xec, 0x8d, 0x24, 0xaf, 0xbe, 0xec, 0x32, 0xce, 0x54, 0xa4, + 0xb8, 0xe8, 0x8b, 0x7c, 0x18, 0xeb, 0xae, 0x95, 0x93, 0x4d, 0x39, 0xc9, 0x88, 0x29, 0x45, 0x6d, + 0xb5, 0xa7, 0x61, 0x97, 0xca, 0xc7, 0x64, 0xd4, 0xa7, 0xa4, 0x36, 0x9f, 0xd8, 0x85, 0x91, 0x93, + 0x41, 0x8f, 0xca, 0x10, 0x92, 0xe8, 0x91, 0x6c, 0x90, 0x05, 0x9a, 0x3a, 0xd7, 0x9c, 0xf6, 0x54, + 0xf4, 0xc5, 0x02, 0xad, 0x4f, 0xa3, 0xce, 0x56, 0xa0, 0xb8, 0x90, 0x6c, 0x8c, 0xc5, 0x3c, 0x0e, + 0x5b, 0x5a, 0x81, 0xfe, 0x93, 0xa0, 0xa5, 0x15, 0x68, 0x2f, 0x26, 0x1c, 0xe6, 0x35, 0x87, 0xd0, + 0x15, 0x1d, 0xad, 0x40, 0xf3, 0x5d, 0x58, 0x08, 0xaa, 0x0d, 0xb3, 0xef, 0xf5, 0x44, 0xb9, 0xff, + 0x8a, 0x68, 0x0d, 0x04, 0x8c, 0x1d, 0x49, 0x47, 0xcb, 0x70, 0xed, 0xd0, 0xea, 0x9d, 0x8e, 0x86, + 0x26, 0xa1, 0x9e, 0xcf, 0x7e, 0x6f, 0x44, 0xb0, 0x5d, 0xbb, 0xc9, 0x13, 0xda, 0x82, 0x60, 0x75, + 0x04, 0xe7, 0x80, 0x60, 0x7b, 0xad, 0x08, 0x05, 0x5f, 0x44, 0x9e, 0x95, 0x00, 0xc2, 0xb7, 0xfa, + 0x27, 0x50, 0x9d, 0x8c, 0x31, 0x7a, 0x1b, 0xb2, 0x8e, 0x7b, 0xe4, 0x4d, 0xe5, 0xba, 0xd8, 0x2a, + 0x73, 0x81, 0xa7, 0x6a, 0x4d, 0xa9, 0xff, 0x43, 0x01, 0x88, 0x18, 0xe9, 0x4f, 0x5b, 0xb1, 0x64, + 0xa2, 0x5e, 0x94, 0x4c, 0x32, 0x93, 0xc9, 0x64, 0x09, 0xb4, 0x89, 0x8e, 0x47, 0xc6, 0x08, 0xc7, + 0xe8, 0x61, 0x98, 0xd1, 0xc4, 0xb5, 0x61, 0x29, 0xc5, 0xcb, 0xe5, 0x44, 0x5a, 0x0b, 0x73, 0x4c, + 0x3e, 0x96, 0x63, 0xea, 0xcb, 0x90, 0x17, 0x72, 0x08, 0x20, 0xdf, 0x58, 0xef, 0xb6, 0x3e, 0x6f, + 0xea, 0x73, 0xa8, 0x0c, 0xda, 0x66, 0x6b, 0xaf, 0xd5, 0xd9, 0x6e, 0x6e, 0xe8, 0x0a, 0xe3, 0x6c, + 0x36, 0x5a, 0x3b, 0xcd, 0x0d, 0x5d, 0xad, 0xff, 0x46, 0x01, 0x2d, 0x40, 0x4d, 0xd0, 0x30, 0x88, + 0x1f, 0x3f, 0xc1, 0xf8, 0x25, 0x4d, 0x3c, 0x9f, 0x98, 0x38, 0x82, 0x2c, 0x71, 0xbe, 0xc1, 0x72, + 0x41, 0xf8, 0x37, 0x93, 0x0f, 0xb1, 0x22, 0xae, 0xa2, 0xe1, 0xb8, 0xfe, 0x17, 0x15, 0xca, 0x71, + 0xac, 0x4e, 0xb7, 0xa8, 0x94, 0x99, 0x5b, 0x54, 0xda, 0x39, 0x2d, 0xaa, 0xb8, 0xbf, 0xea, 0x39, + 0xfe, 0x66, 0x62, 0xfe, 0xbe, 0x0b, 0x0b, 0xa1, 0xe1, 0xd0, 0x71, 0x71, 0xbb, 0xd6, 0x03, 0x46, + 0x08, 0xf2, 0x47, 0x70, 0x63, 0xd2, 0x95, 0x50, 0x43, 0x1c, 0x15, 0x8b, 0x71, 0x77, 0x42, 0x2d, + 0x5e, 0x94, 0x8a, 0x1d, 0xcc, 0x4b, 0x0a, 0xbe, 0x2e, 0x19, 0x56, 0x94, 0x72, 0xe2, 0x3a, 0xa3, + 0x25, 0x22, 0x94, 0xbf, 0x28, 0x42, 0x85, 0x89, 0x08, 0xd5, 0x7f, 0xac, 0x00, 0x44, 0x7b, 0x78, + 0xf6, 0x6e, 0xc6, 0xed, 0xa8, 0x15, 0xc1, 0x9c, 0x52, 0xb8, 0xd5, 0xa0, 0xeb, 0x30, 0xed, 0xd2, + 0x25, 0x40, 0x53, 0xff, 0xb9, 0x0a, 0xd7, 0x1b, 0x23, 0xea, 0x4d, 0x1d, 0x3c, 0xb1, 0x67, 0x09, + 0xe5, 0x0a, 0xcf, 0x68, 0xea, 0x15, 0x9e, 0xd1, 0x32, 0x97, 0x7b, 0x96, 0x48, 0x79, 0x58, 0xc8, + 0x5e, 0xfe, 0x61, 0x21, 0xfe, 0x26, 0xf0, 0x53, 0x15, 0xe6, 0xd9, 0xe2, 0xc4, 0xce, 0xc0, 0xff, + 0xfa, 0x66, 0xdf, 0xfd, 0x8f, 0x64, 0xd1, 0x17, 0xbd, 0x23, 0xa0, 0x45, 0xd0, 0x37, 0x9a, 0x9b, + 0x8d, 0x83, 0x9d, 0xae, 0xb9, 0xd9, 0xda, 0x69, 0x76, 0xbf, 0xdf, 0x66, 0xc9, 0xb0, 0x00, 0x99, + 0xdd, 0xf6, 0x23, 0x5d, 0x61, 0x1f, 0xfb, 0x5b, 0x5b, 0xba, 0x7a, 0x7f, 0x0f, 0xae, 0xa7, 0xf6, + 0xcc, 0xd1, 0x5d, 0xb8, 0x1d, 0x18, 0xe8, 0x34, 0xb7, 0x76, 0x9b, 0x7b, 0xdd, 0xe6, 0x06, 0x37, + 0x65, 0xb6, 0x8d, 0xfd, 0xee, 0xfe, 0xfa, 0xfe, 0x8e, 0x3e, 0x87, 0x74, 0x28, 0x6f, 0xef, 0x74, + 0x22, 0x8a, 0x72, 0xff, 0x41, 0xa2, 0x67, 0x2f, 0x3b, 0x77, 0x45, 0xc8, 0xb5, 0xf6, 0x36, 0x9a, + 0x5f, 0xea, 0x73, 0xa8, 0x02, 0xc5, 0x6e, 0x6b, 0xb7, 0xd9, 0xe9, 0x36, 0x76, 0xdb, 0xba, 0x72, + 0xbf, 0x09, 0xf3, 0x89, 0xb6, 0x1f, 0xba, 0x01, 0xa8, 0xb5, 0xdb, 0xd8, 0x6a, 0x9a, 0x9d, 0x83, + 0xcd, 0xcd, 0xd6, 0x97, 0x66, 0xa0, 0xb9, 0x04, 0x37, 0x26, 0xe8, 0x71, 0x33, 0x1f, 0x05, 0x87, + 0x5f, 0x38, 0x81, 0xd8, 0x0a, 0xc4, 0x3c, 0xd6, 0x20, 0x6b, 0x74, 0x99, 0x06, 0x5b, 0x82, 0x8e, + 0xd1, 0xd5, 0xd5, 0xfb, 0x7f, 0x56, 0xe0, 0x7a, 0xea, 0xfe, 0xe1, 0xd3, 0x7b, 0xf8, 0xf8, 0x91, + 0xf9, 0xe1, 0xc3, 0x95, 0xb6, 0xb9, 0xba, 0x22, 0x27, 0x1c, 0x52, 0x1e, 0xaf, 0xe8, 0x0a, 0x5a, + 0x80, 0x0a, 0xa7, 0xfc, 0xff, 0xca, 0x13, 0x21, 0xa4, 0x26, 0x48, 0x8f, 0x57, 0xf4, 0x0c, 0xba, + 0x09, 0xd7, 0xdb, 0xfb, 0x46, 0xd7, 0x68, 0xb4, 0xba, 0xe6, 0x84, 0xc9, 0xec, 0x39, 0xac, 0xc7, + 0x2b, 0x7a, 0x8e, 0x4d, 0x78, 0x92, 0x15, 0xfe, 0x48, 0xfe, 0x3c, 0xde, 0xe3, 0x15, 0xbd, 0x70, + 0xff, 0x97, 0x0a, 0x94, 0xe3, 0xf5, 0x00, 0xba, 0x06, 0xf3, 0xcd, 0x2d, 0xa3, 0xd9, 0xe9, 0x98, + 0x9d, 0x6e, 0xc3, 0xe8, 0xb6, 0xf6, 0xb6, 0xf4, 0x39, 0xe6, 0xa6, 0x24, 0xca, 0xc3, 0x52, 0x89, + 0x91, 0x9a, 0x7b, 0x1b, 0x4c, 0x4a, 0x8d, 0xa9, 0xae, 0xef, 0xef, 0xb6, 0x77, 0x9a, 0xdd, 0xa6, + 0x9e, 0x89, 0xc9, 0xc9, 0xd3, 0x34, 0x8b, 0x10, 0x54, 0x03, 0x6b, 0x6b, 0xfb, 0x46, 0xb7, 0xb9, + 0xa1, 0xe7, 0x50, 0x0d, 0x16, 0x25, 0x6d, 0xa7, 0xb5, 0xdb, 0xea, 0x9a, 0x46, 0xb3, 0xb1, 0xce, + 0xce, 0xe1, 0xfc, 0xc3, 0x5f, 0xe4, 0x20, 0x2f, 0x77, 0x6f, 0x17, 0x6a, 0xfc, 0x4f, 0x2d, 0x29, + 0x37, 0x7c, 0x34, 0xcb, 0xfd, 0x7f, 0x29, 0xad, 0x86, 0x43, 0xdf, 0x61, 0x78, 0xb0, 0x7c, 0x1a, + 0x5e, 0xfa, 0xd1, 0xf9, 0x85, 0x40, 0xba, 0x85, 0x36, 0xdc, 0xe0, 0x16, 0xa6, 0xd3, 0xf0, 0xf3, + 0x6b, 0x83, 0x74, 0x8b, 0x9f, 0xc3, 0x4d, 0x6e, 0x31, 0xad, 0x0c, 0x40, 0x33, 0x55, 0x09, 0xe9, + 0x76, 0x37, 0x40, 0x8f, 0xec, 0x4a, 0x73, 0x17, 0x55, 0x0b, 0xe9, 0x56, 0x1a, 0x50, 0x8e, 0x77, + 0x1b, 0x50, 0x94, 0xa2, 0x53, 0x9a, 0x10, 0xcf, 0x31, 0x21, 0xb6, 0xe2, 0x94, 0x89, 0x89, 0xd6, + 0x43, 0xba, 0x89, 0x26, 0x40, 0x54, 0xb5, 0xa3, 0xe8, 0xa0, 0x99, 0xea, 0x18, 0x2c, 0xdd, 0x4a, + 0xe5, 0xc9, 0x32, 0xff, 0x13, 0x76, 0x97, 0x0d, 0x6a, 0x77, 0x14, 0xbf, 0x53, 0x26, 0x0a, 0xfa, + 0x54, 0x2f, 0xd6, 0x36, 0x7f, 0x70, 0xf7, 0xd8, 0xa1, 0x27, 0xa3, 0xc3, 0xe5, 0x9e, 0x37, 0x78, + 0x20, 0x05, 0x1e, 0x04, 0x9d, 0xb7, 0x80, 0xf0, 0x6b, 0xb5, 0xb2, 0xe3, 0x9c, 0xe1, 0xcf, 0x44, + 0x3b, 0x95, 0x7a, 0x7f, 0x53, 0xab, 0x72, 0xfc, 0xf4, 0x29, 0x27, 0x1c, 0xe6, 0xb9, 0xca, 0xea, + 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0x02, 0x30, 0x09, 0xd7, 0x5d, 0x29, 0x00, 0x00, } diff --git a/protobufs/livekit_egress.proto b/protobufs/livekit_egress.proto index 211dd4fb..7d88119d 100644 --- a/protobufs/livekit_egress.proto +++ b/protobufs/livekit_egress.proto @@ -349,7 +349,8 @@ message EgressInfo { repeated SegmentsInfo segment_results = 17; repeated ImagesInfo image_results = 20; string manifest_location = 23; - // next ID: 25 + bool backup_storage_used = 25; + // next ID: 26 } message StreamInfoList { From e797d9e77662b49649d17dbb38b42d5829af9839 Mon Sep 17 00:00:00 2001 From: Mathew Kamkar <578302+matkam@users.noreply.github.com> Date: Tue, 12 Nov 2024 11:55:54 -0800 Subject: [PATCH 13/18] bump pnpm ejs and changesets/cli versions (#881) --- package.json | 2 +- pnpm-lock.yaml | 58 +++++++++++++++++++++++++------------------------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/package.json b/package.json index 1eb136ac..502b5bf0 100644 --- a/package.json +++ b/package.json @@ -7,7 +7,7 @@ "ci:publish": "pnpm --filter @livekit/protocol run build && changeset publish" }, "devDependencies": { - "@changesets/cli": "^2.27.1", + "@changesets/cli": "^2.27.9", "@livekit/changesets-changelog-github": "^0.0.4" } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 34182de8..19d9c342 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,7 +9,7 @@ importers: .: devDependencies: '@changesets/cli': - specifier: ^2.27.1 + specifier: ^2.27.9 version: 2.27.9 '@livekit/changesets-changelog-github': specifier: ^0.0.4 @@ -30,8 +30,8 @@ importers: packages: - '@babel/runtime@7.25.7': - resolution: {integrity: sha512-FjoyLe754PMiYsFaN5C94ttGiOmBNYTf6pLr4xXHAT5uctHb092PBszndLDR5XA/jghQvn4n7JMHl7dmTgbm9w==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} '@bufbuild/protobuf@1.10.0': @@ -159,8 +159,8 @@ packages: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - async@3.2.5: - resolution: {integrity: sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==} + async@3.2.6: + resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==} balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -231,8 +231,8 @@ packages: resolution: {integrity: sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==} engines: {node: '>=10'} - ejs@3.1.9: - resolution: {integrity: sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} engines: {node: '>=0.10.0'} hasBin: true @@ -335,8 +335,8 @@ packages: isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - jake@10.8.7: - resolution: {integrity: sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==} + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} engines: {node: '>=10'} hasBin: true @@ -415,8 +415,8 @@ packages: resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} engines: {node: '>=6'} - package-manager-detector@0.2.0: - resolution: {integrity: sha512-E385OSk9qDcXhcM9LNSe4sdhx8a9mAPrZ4sMLW+tmxl5ZuGtPUcdFu+MPP2jbgiWAZ6Pfe5soGFMd+0Db5Vrog==} + package-manager-detector@0.2.2: + resolution: {integrity: sha512-VgXbyrSNsml4eHWIvxxG/nTL4wgybMTXCV2Un/+yEc3aDKKU6nQBZjbeP3Pl3qm9Qg92X/1ng4ffvCeD/zwHgg==} parents@1.0.1: resolution: {integrity: sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==} @@ -433,8 +433,8 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - picocolors@1.1.0: - resolution: {integrity: sha512-TQ92mBOW0l3LeMeyLV6mzy/kWr8lkd/hp3mTg7wYK7zJhuBStmGMBG0BdeDZS/dZx1IukaX6Bk11zcln25o1Aw==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} @@ -553,7 +553,7 @@ packages: snapshots: - '@babel/runtime@7.25.7': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 @@ -628,8 +628,8 @@ snapshots: fs-extra: 7.0.1 mri: 1.2.0 p-limit: 2.3.0 - package-manager-detector: 0.2.0 - picocolors: 1.1.0 + package-manager-detector: 0.2.2 + picocolors: 1.1.1 resolve-from: 5.0.0 semver: 7.6.3 spawndamnit: 2.0.0 @@ -653,7 +653,7 @@ snapshots: dependencies: '@changesets/types': 6.0.0 '@manypkg/get-packages': 1.1.3 - picocolors: 1.1.0 + picocolors: 1.1.1 semver: 7.6.3 '@changesets/get-github-info@0.5.2': @@ -684,7 +684,7 @@ snapshots: '@changesets/logger@0.1.1': dependencies: - picocolors: 1.1.0 + picocolors: 1.1.1 '@changesets/parse@0.4.0': dependencies: @@ -706,7 +706,7 @@ snapshots: '@changesets/types': 6.0.0 fs-extra: 7.0.1 p-filter: 2.1.0 - picocolors: 1.1.0 + picocolors: 1.1.1 '@changesets/should-skip-package@0.1.1': dependencies: @@ -736,14 +736,14 @@ snapshots: '@manypkg/find-root@1.1.0': dependencies: - '@babel/runtime': 7.25.7 + '@babel/runtime': 7.26.0 '@types/node': 12.20.55 find-up: 4.1.0 fs-extra: 8.1.0 '@manypkg/get-packages@1.1.3': dependencies: - '@babel/runtime': 7.25.7 + '@babel/runtime': 7.26.0 '@changesets/types': 4.1.0 '@manypkg/find-root': 1.1.0 fs-extra: 8.1.0 @@ -785,7 +785,7 @@ snapshots: array-union@2.1.0: {} - async@3.2.5: {} + async@3.2.6: {} balanced-match@1.0.2: {} @@ -845,9 +845,9 @@ snapshots: dotenv@8.6.0: {} - ejs@3.1.9: + ejs@3.1.10: dependencies: - jake: 10.8.7 + jake: 10.9.2 enquirer@2.4.1: dependencies: @@ -908,7 +908,7 @@ snapshots: genversion@3.2.0: dependencies: commander: 7.2.0 - ejs: 3.1.9 + ejs: 3.1.10 find-package: 1.0.0 glob-parent@5.1.2: @@ -952,9 +952,9 @@ snapshots: isexe@2.0.0: {} - jake@10.8.7: + jake@10.9.2: dependencies: - async: 3.2.5 + async: 3.2.6 chalk: 4.1.2 filelist: 1.0.4 minimatch: 3.1.2 @@ -1022,7 +1022,7 @@ snapshots: p-try@2.2.0: {} - package-manager-detector@0.2.0: {} + package-manager-detector@0.2.2: {} parents@1.0.1: dependencies: @@ -1034,7 +1034,7 @@ snapshots: path-type@4.0.0: {} - picocolors@1.1.0: {} + picocolors@1.1.1: {} picomatch@2.3.1: {} From f558b991de7c91971fc1d2dea11fa33867faa5ec Mon Sep 17 00:00:00 2001 From: Denys Smirnov Date: Tue, 12 Nov 2024 22:39:28 +0200 Subject: [PATCH 14/18] Fix port type for SIPUri. (#882) --- .changeset/violet-avocados-leave.md | 6 ++++ livekit/livekit_sip.pb.go | 8 ++--- livekit/livekit_sip.twirp.go | 54 ++++++++++++++--------------- protobufs/livekit_sip.proto | 2 +- 4 files changed, 38 insertions(+), 32 deletions(-) create mode 100644 .changeset/violet-avocados-leave.md diff --git a/.changeset/violet-avocados-leave.md b/.changeset/violet-avocados-leave.md new file mode 100644 index 00000000..1231daf8 --- /dev/null +++ b/.changeset/violet-avocados-leave.md @@ -0,0 +1,6 @@ +--- +"@livekit/protocol": patch +"github.com/livekit/protocol": patch +--- + +Fix port type for SIPUri. diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 01f97396..1d5c5eb0 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -2404,7 +2404,7 @@ type SIPUri struct { User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` Host string `protobuf:"bytes,2,opt,name=host,proto3" json:"host,omitempty"` Ip string `protobuf:"bytes,3,opt,name=ip,proto3" json:"ip,omitempty"` - Port string `protobuf:"bytes,4,opt,name=port,proto3" json:"port,omitempty"` + Port uint32 `protobuf:"varint,4,opt,name=port,proto3" json:"port,omitempty"` Transport SIPTransport `protobuf:"varint,5,opt,name=transport,proto3,enum=livekit.SIPTransport" json:"transport,omitempty"` } @@ -2459,11 +2459,11 @@ func (x *SIPUri) GetIp() string { return "" } -func (x *SIPUri) GetPort() string { +func (x *SIPUri) GetPort() uint32 { if x != nil { return x.Port } - return "" + return 0 } func (x *SIPUri) GetTransport() SIPTransport { @@ -2899,7 +2899,7 @@ var file_livekit_sip_proto_rawDesc = []byte{ 0x12, 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x6f, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, + 0x28, 0x0d, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x33, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2e, 0x53, 0x49, 0x50, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x09, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x6f, 0x72, 0x74, 0x2a, 0x6b, 0x0a, diff --git a/livekit/livekit_sip.twirp.go b/livekit/livekit_sip.twirp.go index 5cfe0f38..b70aa7fe 100644 --- a/livekit/livekit_sip.twirp.go +++ b/livekit/livekit_sip.twirp.go @@ -3985,31 +3985,31 @@ var twirpFileDescriptor4 = []byte{ 0xa9, 0xe8, 0x21, 0x0a, 0x4b, 0x2d, 0x6c, 0xdb, 0xa6, 0xcd, 0x2b, 0x50, 0x51, 0x11, 0x2f, 0xf5, 0x3f, 0xa4, 0x20, 0x27, 0x3c, 0xc0, 0xea, 0xdc, 0xdc, 0xc1, 0xb6, 0x0c, 0x34, 0x7f, 0x66, 0xb4, 0x0b, 0xd3, 0xa1, 0xee, 0xd5, 0x0a, 0x7b, 0x46, 0x65, 0x48, 0x13, 0x4b, 0x06, 0x36, 0x4d, 0x2c, - 0x26, 0xc3, 0xef, 0x4b, 0xe4, 0xa9, 0x8e, 0xdf, 0x89, 0xbc, 0xcf, 0x45, 0xca, 0x93, 0x4b, 0xf9, - 0xe3, 0x82, 0x7b, 0xb1, 0xb2, 0xc7, 0x33, 0x5e, 0x1d, 0x2b, 0xad, 0xfe, 0x68, 0x38, 0x50, 0xc6, - 0x6a, 0xeb, 0x64, 0x3c, 0xa8, 0xdc, 0x41, 0xbb, 0xb0, 0x15, 0xa4, 0x9f, 0x74, 0x86, 0x95, 0xd4, - 0x32, 0x79, 0xdc, 0x1e, 0x56, 0xd2, 0x11, 0xe4, 0xe3, 0x51, 0x25, 0xf3, 0xe4, 0x2d, 0x6c, 0x04, - 0x82, 0xc9, 0xe5, 0xda, 0x23, 0xb5, 0xdd, 0x3a, 0x3e, 0x56, 0x7b, 0xfd, 0xf6, 0xe0, 0x8b, 0x5e, - 0xff, 0x55, 0xe5, 0x0e, 0xaa, 0xc1, 0x1e, 0x23, 0x0f, 0x5b, 0xca, 0xb8, 0xd7, 0xee, 0x0d, 0x5b, - 0xfd, 0xb1, 0xfa, 0xa3, 0x41, 0xaf, 0xdf, 0xed, 0x54, 0x52, 0xa8, 0x0c, 0xc0, 0x78, 0xad, 0xf6, - 0xb8, 0xf7, 0x93, 0x6e, 0x25, 0x8d, 0x76, 0xa0, 0xc2, 0xde, 0x3b, 0xbd, 0x51, 0x7b, 0xd0, 0xef, - 0x77, 0xdb, 0xe3, 0x6e, 0xa7, 0x92, 0x41, 0x1b, 0x50, 0x64, 0xd4, 0xae, 0xa2, 0x0c, 0x94, 0xca, - 0x5a, 0xf3, 0x1f, 0x45, 0xc8, 0x8c, 0x7a, 0x43, 0x34, 0x84, 0x75, 0xff, 0x70, 0x8d, 0x16, 0x87, - 0x8c, 0x88, 0x71, 0xbc, 0x76, 0x14, 0xc3, 0x15, 0x07, 0x96, 0x7a, 0xe6, 0xf7, 0xe9, 0x14, 0xfa, - 0xca, 0xf7, 0xe3, 0x9b, 0x7f, 0x30, 0x46, 0x0f, 0x96, 0x3b, 0x63, 0xc4, 0x1c, 0x5e, 0x4b, 0x9c, - 0xac, 0x91, 0x0a, 0x7b, 0xd1, 0xd7, 0x7e, 0xe8, 0xe3, 0x65, 0xf5, 0x51, 0x53, 0x77, 0x2d, 0x79, - 0x8c, 0x46, 0x3f, 0x07, 0xb4, 0x7c, 0xdd, 0x82, 0x16, 0xe3, 0x58, 0xec, 0x55, 0x4e, 0xed, 0x7e, - 0xa2, 0x8c, 0x3c, 0xd3, 0xfd, 0x12, 0xb6, 0x23, 0xee, 0x4e, 0x50, 0x78, 0x6d, 0xa4, 0xe5, 0x1f, - 0x25, 0x0b, 0x2d, 0x76, 0x88, 0xb8, 0xc7, 0xf0, 0xed, 0x10, 0x7f, 0x07, 0xe2, 0xdb, 0x21, 0xe9, - 0x2a, 0x64, 0xe2, 0x5d, 0xc8, 0x04, 0x3f, 0x62, 0x69, 0x75, 0xe4, 0x57, 0x3c, 0xb8, 0x41, 0x4a, - 0x6e, 0xf2, 0x0a, 0xca, 0xc1, 0x7b, 0x0c, 0xb4, 0x18, 0x5b, 0x23, 0x2f, 0x38, 0x6a, 0xd1, 0x17, - 0x40, 0x01, 0x3c, 0x06, 0x06, 0xfb, 0x07, 0x2b, 0xcd, 0x70, 0xb5, 0xc4, 0x63, 0xb7, 0xcf, 0xdb, - 0x01, 0xdd, 0x4b, 0xde, 0x8e, 0xd2, 0xfc, 0x51, 0xb2, 0x90, 0x74, 0xc4, 0x57, 0xbe, 0x0b, 0x9d, - 0x18, 0xfb, 0x93, 0x4e, 0xfc, 0x37, 0xd8, 0xff, 0x25, 0xec, 0x44, 0x9d, 0x53, 0x7d, 0xb1, 0x4c, - 0x38, 0xc6, 0xd6, 0x0e, 0xfc, 0xba, 0xc3, 0x87, 0xa2, 0x9f, 0xc2, 0x5e, 0xf4, 0xe1, 0xc3, 0x97, - 0xaa, 0x89, 0xa7, 0x93, 0xda, 0xde, 0xd2, 0x31, 0xb0, 0x3b, 0xb3, 0xe8, 0xf5, 0x8b, 0x97, 0x3f, - 0xbb, 0x7f, 0x4e, 0xe8, 0xc5, 0xfc, 0xb4, 0x31, 0x31, 0x67, 0x4f, 0xa5, 0x2e, 0xf1, 0x0f, 0x81, - 0x89, 0x39, 0x75, 0x09, 0x7f, 0x4d, 0x6f, 0x1c, 0x93, 0x2b, 0xfc, 0x86, 0xd0, 0xc6, 0x90, 0xb1, - 0xfe, 0x9d, 0x2e, 0xcb, 0xf7, 0xe7, 0xcf, 0x39, 0xe1, 0x34, 0xc7, 0x97, 0x3c, 0xfb, 0x6f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x04, 0x8a, 0xd6, 0x42, 0xa0, 0x20, 0x00, 0x00, + 0x26, 0xc3, 0xef, 0x4b, 0x58, 0x3c, 0x37, 0x14, 0xfe, 0xfc, 0x5e, 0x17, 0x29, 0x4f, 0x2e, 0xe5, + 0x8f, 0x0b, 0xee, 0xc5, 0xca, 0x1e, 0xcf, 0x78, 0x75, 0xac, 0xb4, 0xfa, 0xa3, 0xe1, 0x40, 0x19, + 0xab, 0xad, 0x93, 0xf1, 0xa0, 0x72, 0x07, 0xed, 0xc2, 0x56, 0x90, 0x7e, 0xd2, 0x19, 0x56, 0x52, + 0xcb, 0xe4, 0x71, 0x7b, 0x58, 0x49, 0x47, 0x90, 0x8f, 0x47, 0x95, 0xcc, 0x93, 0xb7, 0xb0, 0x11, + 0x08, 0x26, 0x97, 0x6b, 0x8f, 0xd4, 0x76, 0xeb, 0xf8, 0x58, 0xed, 0xf5, 0xdb, 0x83, 0x2f, 0x7a, + 0xfd, 0x57, 0x95, 0x3b, 0xa8, 0x06, 0x7b, 0x8c, 0x3c, 0x6c, 0x29, 0xe3, 0x5e, 0xbb, 0x37, 0x6c, + 0xf5, 0xc7, 0xea, 0x8f, 0x06, 0xbd, 0x7e, 0xb7, 0x53, 0x49, 0xa1, 0x32, 0x00, 0xe3, 0xb5, 0xda, + 0xe3, 0xde, 0x4f, 0xba, 0x95, 0x34, 0xda, 0x81, 0x0a, 0x7b, 0xef, 0xf4, 0x46, 0xed, 0x41, 0xbf, + 0xdf, 0x6d, 0x8f, 0xbb, 0x9d, 0x4a, 0x06, 0x6d, 0x40, 0x91, 0x51, 0xbb, 0x8a, 0x32, 0x50, 0x2a, + 0x6b, 0xcd, 0x7f, 0x14, 0x21, 0x33, 0xea, 0x0d, 0xd1, 0x10, 0xd6, 0xfd, 0xc3, 0x35, 0x5a, 0x1c, + 0x32, 0x22, 0xc6, 0xf1, 0xda, 0x51, 0x0c, 0x57, 0x1c, 0x58, 0xea, 0x99, 0xdf, 0xa7, 0x53, 0xe8, + 0x2b, 0xdf, 0x8f, 0x6f, 0xfe, 0xc1, 0x18, 0x3d, 0x58, 0xee, 0x8c, 0x11, 0x73, 0x78, 0x2d, 0x71, + 0xb2, 0x46, 0x2a, 0xec, 0x45, 0x5f, 0xfb, 0xa1, 0x8f, 0x97, 0xd5, 0x47, 0x4d, 0xdd, 0xb5, 0xe4, + 0x31, 0x1a, 0xfd, 0x1c, 0xd0, 0xf2, 0x75, 0x0b, 0x5a, 0x8c, 0x63, 0xb1, 0x57, 0x39, 0xb5, 0xfb, + 0x89, 0x32, 0xf2, 0x4c, 0xf7, 0x4b, 0xd8, 0x8e, 0xb8, 0x3b, 0x41, 0xe1, 0xb5, 0x91, 0x96, 0x7f, + 0x94, 0x2c, 0xb4, 0xd8, 0x21, 0xe2, 0x1e, 0xc3, 0xb7, 0x43, 0xfc, 0x1d, 0x88, 0x6f, 0x87, 0xa4, + 0xab, 0x90, 0x89, 0x77, 0x21, 0x13, 0xfc, 0x88, 0xa5, 0xd5, 0x91, 0x5f, 0xf1, 0xe0, 0x06, 0x29, + 0xb9, 0xc9, 0x2b, 0x28, 0x07, 0xef, 0x31, 0xd0, 0x62, 0x6c, 0x8d, 0xbc, 0xe0, 0xa8, 0x45, 0x5f, + 0x00, 0x05, 0xf0, 0x18, 0x18, 0xec, 0x1f, 0xac, 0x34, 0xc3, 0xd5, 0x12, 0x8f, 0xdd, 0x3e, 0x6f, + 0x07, 0x74, 0x2f, 0x79, 0x3b, 0x4a, 0xf3, 0x47, 0xc9, 0x42, 0xd2, 0x11, 0x5f, 0xf9, 0x2e, 0x74, + 0x62, 0xec, 0x4f, 0x3a, 0xf1, 0xdf, 0x60, 0xff, 0x97, 0xb0, 0x13, 0x75, 0x4e, 0xf5, 0xc5, 0x32, + 0xe1, 0x18, 0x5b, 0x3b, 0xf0, 0xeb, 0x0e, 0x1f, 0x8a, 0x7e, 0x0a, 0x7b, 0xd1, 0x87, 0x0f, 0x5f, + 0xaa, 0x26, 0x9e, 0x4e, 0x6a, 0x7b, 0x4b, 0xc7, 0xc0, 0xee, 0xcc, 0xa2, 0xd7, 0x2f, 0x5e, 0xfe, + 0xec, 0xfe, 0x39, 0xa1, 0x17, 0xf3, 0xd3, 0xc6, 0xc4, 0x9c, 0x3d, 0x95, 0xba, 0xc4, 0x3f, 0x04, + 0x26, 0xe6, 0xd4, 0x25, 0xfc, 0x35, 0xbd, 0x71, 0x4c, 0xae, 0xf0, 0x1b, 0x42, 0x1b, 0x43, 0xc6, + 0xfa, 0x77, 0xba, 0x2c, 0xdf, 0x9f, 0x3f, 0xe7, 0x84, 0xd3, 0x1c, 0x5f, 0xf2, 0xec, 0xbf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x8e, 0xf4, 0x5f, 0x7e, 0xa0, 0x20, 0x00, 0x00, } diff --git a/protobufs/livekit_sip.proto b/protobufs/livekit_sip.proto index b617174f..e8372605 100644 --- a/protobufs/livekit_sip.proto +++ b/protobufs/livekit_sip.proto @@ -457,7 +457,7 @@ message SIPUri { string user = 1; string host = 2; string ip = 3; - string port = 4; + uint32 port = 4; SIPTransport transport = 5; } From e0e51ac65169d7180316091c8e8b6e314d52c277 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 16 Nov 2024 01:24:00 -0600 Subject: [PATCH 15/18] Update go deps (#627) * Update go deps Generated by renovateBot * fix import change * generated protobuf --------- Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: David Zhao Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- go.mod | 81 +++++---- go.sum | 254 ++++++++++----------------- infra/link.pb.go | 2 +- livekit/livekit_agent.pb.go | 2 +- livekit/livekit_agent_dispatch.pb.go | 2 +- livekit/livekit_analytics.pb.go | 2 +- livekit/livekit_egress.pb.go | 2 +- livekit/livekit_ingress.pb.go | 2 +- livekit/livekit_internal.pb.go | 2 +- livekit/livekit_metrics.pb.go | 2 +- livekit/livekit_models.pb.go | 2 +- livekit/livekit_room.pb.go | 2 +- livekit/livekit_rtc.pb.go | 2 +- livekit/livekit_sip.pb.go | 2 +- livekit/livekit_webhook.pb.go | 2 +- livekit/types.go | 2 +- rpc/agent.pb.go | 2 +- rpc/agent_dispatch.pb.go | 2 +- rpc/analytics.pb.go | 2 +- rpc/egress.pb.go | 2 +- rpc/ingress.pb.go | 2 +- rpc/io.pb.go | 2 +- rpc/keepalive.pb.go | 2 +- rpc/participant.pb.go | 2 +- rpc/room.pb.go | 2 +- rpc/roommanager.pb.go | 2 +- rpc/signal.pb.go | 2 +- rpc/sip.pb.go | 2 +- 28 files changed, 160 insertions(+), 227 deletions(-) diff --git a/go.mod b/go.mod index 3b52db6b..90d81534 100644 --- a/go.mod +++ b/go.mod @@ -2,11 +2,12 @@ module github.com/livekit/protocol go 1.22 + require ( + buf.build/go/protoyaml v0.2.0 github.com/benbjohnson/clock v1.3.5 - github.com/bufbuild/protoyaml-go v0.1.9 - github.com/frostbyte73/core v0.0.12 - github.com/fsnotify/fsnotify v1.7.0 + github.com/frostbyte73/core v0.0.13 + github.com/fsnotify/fsnotify v1.8.0 github.com/gammazero/deque v0.2.1 github.com/go-jose/go-jose/v3 v3.0.3 github.com/go-logr/logr v1.4.2 @@ -14,17 +15,17 @@ require ( github.com/jxskiss/base62 v1.1.0 github.com/lithammer/shortuuid/v4 v4.0.0 github.com/livekit/mageutil v0.0.0-20230125210925-54e8a70427c1 - github.com/livekit/psrpc v0.6.1-0.20240924010758-9f0a4268a3b9 - github.com/mackerelio/go-osstat v0.2.4 - github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1 + github.com/livekit/psrpc v0.6.1-0.20241018124827-1efff3d113a8 + github.com/mackerelio/go-osstat v0.2.5 + github.com/maxbrunsfeld/counterfeiter/v6 v6.10.0 github.com/pion/logging v0.2.2 - github.com/pion/sdp/v3 v3.0.6 - github.com/pion/webrtc/v3 v3.2.28 + github.com/pion/sdp/v3 v3.0.9 + github.com/pion/webrtc/v3 v3.3.4 github.com/pkg/errors v0.9.1 - github.com/prometheus/client_golang v1.19.0 - github.com/prometheus/procfs v0.12.0 - github.com/puzpuzpuz/xsync/v3 v3.1.0 - github.com/redis/go-redis/v9 v9.6.1 + github.com/prometheus/client_golang v1.20.5 + github.com/prometheus/procfs v0.15.1 + github.com/puzpuzpuz/xsync/v3 v3.4.0 + github.com/redis/go-redis/v9 v9.7.0 github.com/stretchr/testify v1.9.0 github.com/twitchtv/twirp v8.1.3+incompatible github.com/zeebo/xxh3 v1.0.2 @@ -32,53 +33,55 @@ require ( go.uber.org/multierr v1.11.0 go.uber.org/zap v1.27.0 go.uber.org/zap/exp v0.3.0 - golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 - golang.org/x/mod v0.19.0 - google.golang.org/grpc v1.65.0 - google.golang.org/protobuf v1.34.2 + golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f + golang.org/x/mod v0.22.0 + google.golang.org/grpc v1.68.0 + google.golang.org/protobuf v1.35.2 gopkg.in/yaml.v3 v3.0.1 ) require ( - buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240401165935-b983156c5e99.1 // indirect + buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2 // indirect github.com/antlr4-go/antlr/v4 v4.13.0 // indirect github.com/beorn7/perks v1.0.1 // indirect - github.com/bufbuild/protovalidate-go v0.6.1 // indirect + github.com/bufbuild/protovalidate-go v0.6.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect - github.com/google/cel-go v0.20.1 // indirect + github.com/google/cel-go v0.21.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/go-cleanhttp v0.5.2 // indirect github.com/klauspost/compress v1.17.9 // indirect github.com/klauspost/cpuid/v2 v2.2.6 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/nats-io/nats.go v1.36.0 // indirect github.com/nats-io/nkeys v0.4.7 // indirect github.com/nats-io/nuid v1.0.1 // indirect - github.com/pion/datachannel v1.5.5 // indirect - github.com/pion/dtls/v2 v2.2.7 // indirect - github.com/pion/ice/v2 v2.3.13 // indirect - github.com/pion/interceptor v0.1.25 // indirect + github.com/pion/datachannel v1.5.8 // indirect + github.com/pion/dtls/v2 v2.2.12 // indirect + github.com/pion/ice/v2 v2.3.36 // indirect + github.com/pion/interceptor v0.1.29 // indirect github.com/pion/mdns v0.0.12 // indirect github.com/pion/randutil v0.1.0 // indirect - github.com/pion/rtcp v1.2.12 // indirect - github.com/pion/rtp v1.8.3 // indirect - github.com/pion/sctp v1.8.12 // indirect - github.com/pion/srtp/v2 v2.0.18 // indirect + github.com/pion/rtcp v1.2.14 // indirect + github.com/pion/rtp v1.8.7 // indirect + github.com/pion/sctp v1.8.19 // indirect + github.com/pion/srtp/v2 v2.0.20 // indirect github.com/pion/stun v0.6.1 // indirect - github.com/pion/transport/v2 v2.2.3 // indirect - github.com/pion/turn/v2 v2.1.3 // indirect + github.com/pion/transport/v2 v2.2.10 // indirect + github.com/pion/turn/v2 v2.1.6 // indirect github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/prometheus/client_model v0.5.0 // indirect - github.com/prometheus/common v0.48.0 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect github.com/rogpeppe/go-internal v1.11.0 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect - golang.org/x/crypto v0.25.0 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/sync v0.7.0 // indirect - golang.org/x/sys v0.22.0 // indirect - golang.org/x/text v0.16.0 // indirect - golang.org/x/tools v0.23.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f // indirect + github.com/wlynxg/anet v0.0.3 // indirect + golang.org/x/crypto v0.29.0 // indirect + golang.org/x/net v0.31.0 // indirect + golang.org/x/sync v0.9.0 // indirect + golang.org/x/sys v0.27.0 // indirect + golang.org/x/text v0.20.0 // indirect + golang.org/x/tools v0.27.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 // indirect ) diff --git a/go.sum b/go.sum index ad29b181..ec781a80 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240401165935-b983156c5e99.1 h1:2IGhRovxlsOIQgx2ekZWo4wTPAYpck41+18ICxs37is= -buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.33.0-20240401165935-b983156c5e99.1/go.mod h1:Tgn5bgL220vkFOI0KPStlcClPeOJzAv4uT+V8JXGUnw= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2 h1:SZRVx928rbYZ6hEKUIN+vtGDkl7uotABRWGY4OAg5gM= +buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.34.2-20240717164558-a6c49f84cc0f.2/go.mod h1:ylS4c28ACSI59oJrOdW4pHS4n0Hw4TgSPHn8rpHl4Yw= +buf.build/go/protoyaml v0.2.0 h1:2g3OHjtLDqXBREIOjpZGHmQ+U/4mkN1YiQjxNB68Ip8= +buf.build/go/protoyaml v0.2.0/go.mod h1:L/9QvTDkTWcDTzAL6HMfN+mYC6CmZRm2KnsUA054iL0= github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= github.com/benbjohnson/clock v1.3.5 h1:VvXlSJBzZpA/zum6Sj74hxwYI2DIxRWuNIoXAzHZz5o= @@ -10,10 +12,8 @@ github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs= github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c= github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA= github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= -github.com/bufbuild/protovalidate-go v0.6.1 h1:uzW8r0CDvqApUChNj87VzZVoQSKhcVdw5UWOE605UIw= -github.com/bufbuild/protovalidate-go v0.6.1/go.mod h1:4BR3rKEJiUiTy+sqsusFn2ladOf0kYmA2Reo6BHSBgQ= -github.com/bufbuild/protoyaml-go v0.1.9 h1:anV5UtF1Mlvkkgp4NWA6U/zOnJFng8Orq4Vf3ZUQHBU= -github.com/bufbuild/protoyaml-go v0.1.9/go.mod h1:KCBItkvZOK/zwGueLdH1Wx1RLyFn5rCH7YjQrdty2Wc= +github.com/bufbuild/protovalidate-go v0.6.3 h1:wxQyzW035zM16Binbaz/nWAzS12dRIXhZdSUWRY7Fv0= +github.com/bufbuild/protovalidate-go v0.6.3/go.mod h1:J4PtwP9Z2YAGgB0+o+tTWEDtLtXvz/gfhFZD8pbzM/U= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -21,38 +21,24 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= -github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= -github.com/frostbyte73/core v0.0.12 h1:kySA8+Os6eqnPFoExD2T7cehjSAY1MRyIViL0yTy2uc= -github.com/frostbyte73/core v0.0.12/go.mod h1:XsOGqrqe/VEV7+8vJ+3a8qnCIXNbKsoEiu/czs7nrcU= -github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/frostbyte73/core v0.0.13 h1:W/NFPNiCkGTRzMWnCVptn6vX6Tr4a7LvN0RFc0xsC2k= +github.com/frostbyte73/core v0.0.13/go.mod h1:XsOGqrqe/VEV7+8vJ+3a8qnCIXNbKsoEiu/czs7nrcU= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/gammazero/deque v0.2.1 h1:qSdsbG6pgp6nL7A0+K/B7s12mcCY/5l5SIUpMOl+dC0= github.com/gammazero/deque v0.2.1/go.mod h1:LFroj8x4cMYCukHJDbxFCkT+r9AndaJnFMuZDV34tuU= github.com/go-jose/go-jose/v3 v3.0.3 h1:fFKWeig/irsp7XD2zBxvnmA/XaRWp5V3CBsZXJF7G7k= github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84= -github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/cel-go v0.21.0 h1:cl6uW/gxN+Hy50tNYvI691+sXxioCnstFzLp2WO4GCI= +github.com/google/cel-go v0.21.0/go.mod h1:rHUlWCcBKgyEk+eV03RPdZUekPp6YcJwV0FxuUksYxc= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= @@ -66,7 +52,6 @@ github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB1 github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= github.com/hashicorp/go-retryablehttp v0.7.7 h1:C8hUCYzor8PIfXHa4UrZkU4VvK8o9ISHxT2Q8+VepXU= github.com/hashicorp/go-retryablehttp v0.7.7/go.mod h1:pkQpWZeYWskR+D1tR2O5OcBFOxfA7DoAO6xtkuQnHTk= -github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/jxskiss/base62 v1.1.0 h1:A5zbF8v8WXx2xixnAKD2w+abC+sIzYJX+nxmhA6HWFw= github.com/jxskiss/base62 v1.1.0/go.mod h1:HhWAlUXvxKThfOlZbcuFzsqwtF5TcqS9ru3y5GfjWAc= github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA= @@ -84,93 +69,86 @@ github.com/lithammer/shortuuid/v4 v4.0.0 h1:QRbbVkfgNippHOS8PXDkti4NaWeyYfcBTHtw github.com/lithammer/shortuuid/v4 v4.0.0/go.mod h1:Zs8puNcrvf2rV9rTH51ZLLcj7ZXqQI3lv67aw4KiB1Y= github.com/livekit/mageutil v0.0.0-20230125210925-54e8a70427c1 h1:jm09419p0lqTkDaKb5iXdynYrzB84ErPPO4LbRASk58= github.com/livekit/mageutil v0.0.0-20230125210925-54e8a70427c1/go.mod h1:Rs3MhFwutWhGwmY1VQsygw28z5bWcnEYmS1OG9OxjOQ= -github.com/livekit/psrpc v0.6.1-0.20240924010758-9f0a4268a3b9 h1:33oBjGpVD9tYkDXQU42tnHl8eCX9G6PVUToBVuCUyOs= -github.com/livekit/psrpc v0.6.1-0.20240924010758-9f0a4268a3b9/go.mod h1:CQUBSPfYYAaevg1TNCc6/aYsa8DJH4jSRFdCeSZk5u0= -github.com/mackerelio/go-osstat v0.2.4 h1:qxGbdPkFo65PXOb/F/nhDKpF2nGmGaCFDLXoZjJTtUs= -github.com/mackerelio/go-osstat v0.2.4/go.mod h1:Zy+qzGdZs3A9cuIqmgbJvwbmLQH9dJvtio5ZjJTbdlQ= +github.com/livekit/psrpc v0.6.1-0.20241018124827-1efff3d113a8 h1:Ibh0LoFl5NW5a1KFJEE0eLxxz7dqqKmYTj/BfCb0PbY= +github.com/livekit/psrpc v0.6.1-0.20241018124827-1efff3d113a8/go.mod h1:CQUBSPfYYAaevg1TNCc6/aYsa8DJH4jSRFdCeSZk5u0= +github.com/mackerelio/go-osstat v0.2.5 h1:+MqTbZUhoIt4m8qzkVoXUJg1EuifwlAJSk4Yl2GXh+o= +github.com/mackerelio/go-osstat v0.2.5/go.mod h1:atxwWF+POUZcdtR1wnsUcQxTytoHG4uhl2AKKzrOajY= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1 h1:NicmruxkeqHjDv03SfSxqmaLuisddudfP3h5wdXFbhM= -github.com/maxbrunsfeld/counterfeiter/v6 v6.8.1/go.mod h1:eyp4DdUJAKkr9tvxR3jWhw2mDK7CWABMG5r9uyaKC7I= +github.com/maxbrunsfeld/counterfeiter/v6 v6.10.0 h1:9WsegDYiSKtZXru+NcOB4z7iqb00n4atjmQlyy5TRXI= +github.com/maxbrunsfeld/counterfeiter/v6 v6.10.0/go.mod h1:TeVdzh+5QB5IpWDJAU/uviXA6kOg9yXzLrrjeLKJXqY= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/nats-io/nats.go v1.36.0 h1:suEUPuWzTSse/XhESwqLxXGuj8vGRuPRoG7MoRN/qyU= github.com/nats-io/nats.go v1.36.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= -github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= -github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= -github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= -github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= -github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= -github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= -github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= -github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= -github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= -github.com/onsi/gomega v1.30.0 h1:hvMK7xYz4D3HapigLTeGdId/NcfQx1VHMJc60ew99+8= -github.com/onsi/gomega v1.30.0/go.mod h1:9sxs+SwGrKI0+PWe4Fxa9tFQQBG5xSsSbMXOI8PPpoQ= -github.com/pion/datachannel v1.5.5 h1:10ef4kwdjije+M9d7Xm9im2Y3O6A6ccQb0zcqZcJew8= -github.com/pion/datachannel v1.5.5/go.mod h1:iMz+lECmfdCMqFRhXhcA/219B0SQlbpoR2V118yimL0= -github.com/pion/dtls/v2 v2.2.7 h1:cSUBsETxepsCSFSxC3mc/aDo14qQLMSL+O6IjG28yV8= +github.com/onsi/gomega v1.34.2 h1:pNCwDkzrsv7MS9kpaQvVb1aVLahQXyJ/Tv5oAZMI3i8= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= +github.com/pion/datachannel v1.5.8 h1:ph1P1NsGkazkjrvyMfhRBUAWMxugJjq2HfQifaOoSNo= +github.com/pion/datachannel v1.5.8/go.mod h1:PgmdpoaNBLX9HNzNClmdki4DYW5JtI7Yibu8QzbL3tI= github.com/pion/dtls/v2 v2.2.7/go.mod h1:8WiMkebSHFD0T+dIU+UeBaoV7kDhOW5oDCzZ7WZ/F9s= -github.com/pion/ice/v2 v2.3.13 h1:xOxP+4V9nSDlUaGFRf/LvAuGHDXRcjIdsbbXPK/w7c8= -github.com/pion/ice/v2 v2.3.13/go.mod h1:KXJJcZK7E8WzrBEYnV4UtqEZsGeWfHxsNqhVcVvgjxw= -github.com/pion/interceptor v0.1.25 h1:pwY9r7P6ToQ3+IF0bajN0xmk/fNw/suTgaTdlwTDmhc= -github.com/pion/interceptor v0.1.25/go.mod h1:wkbPYAak5zKsfpVDYMtEfWEy8D4zL+rpxCxPImLOg3Y= +github.com/pion/dtls/v2 v2.2.12 h1:KP7H5/c1EiVAAKUmXyCzPiQe5+bCJrpOeKg/L05dunk= +github.com/pion/dtls/v2 v2.2.12/go.mod h1:d9SYc9fch0CqK90mRk1dC7AkzzpwJj6u2GU3u+9pqFE= +github.com/pion/ice/v2 v2.3.36 h1:SopeXiVbbcooUg2EIR8sq4b13RQ8gzrkkldOVg+bBsc= +github.com/pion/ice/v2 v2.3.36/go.mod h1:mBF7lnigdqgtB+YHkaY/Y6s6tsyRyo4u4rPGRuOjUBQ= +github.com/pion/interceptor v0.1.29 h1:39fsnlP1U8gw2JzOFWdfCU82vHvhW9o0rZnZF56wF+M= +github.com/pion/interceptor v0.1.29/go.mod h1:ri+LGNjRUc5xUNtDEPzfdkmSqISixVTBF/z/Zms/6T4= github.com/pion/logging v0.2.2 h1:M9+AIj/+pxNsDfAT64+MAVgJO0rsyLnoJKCqf//DoeY= github.com/pion/logging v0.2.2/go.mod h1:k0/tDVsRCX2Mb2ZEmTqNa7CWsQPc+YYCB7Q+5pahoms= github.com/pion/mdns v0.0.12 h1:CiMYlY+O0azojWDmxdNr7ADGrnZ+V6Ilfner+6mSVK8= github.com/pion/mdns v0.0.12/go.mod h1:VExJjv8to/6Wqm1FXK+Ii/Z9tsVk/F5sD/N70cnYFbk= github.com/pion/randutil v0.1.0 h1:CFG1UdESneORglEsnimhUjf33Rwjubwj6xfiOXBa3mA= github.com/pion/randutil v0.1.0/go.mod h1:XcJrSMMbbMRhASFVOlj/5hQial/Y8oH/HVo7TBZq+j8= -github.com/pion/rtcp v1.2.10/go.mod h1:ztfEwXZNLGyF1oQDttz/ZKIBaeeg/oWbRYqzBM9TL1I= -github.com/pion/rtcp v1.2.12 h1:bKWiX93XKgDZENEXCijvHRU/wRifm6JV5DGcH6twtSM= github.com/pion/rtcp v1.2.12/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4= -github.com/pion/rtp v1.8.2/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= -github.com/pion/rtp v1.8.3 h1:VEHxqzSVQxCkKDSHro5/4IUUG1ea+MFdqR2R3xSpNU8= +github.com/pion/rtcp v1.2.14 h1:KCkGV3vJ+4DAJmvP0vaQShsb0xkRfWkO540Gy102KyE= +github.com/pion/rtcp v1.2.14/go.mod h1:sn6qjxvnwyAkkPzPULIbVqSKI5Dv54Rv7VG0kNxh9L4= github.com/pion/rtp v1.8.3/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= -github.com/pion/sctp v1.8.5/go.mod h1:SUFFfDpViyKejTAdwD1d/HQsCu+V/40cCs2nZIvC3s0= -github.com/pion/sctp v1.8.12 h1:2VX50pedElH+is6FI+OKyRTeN5oy4mrk2HjnGa3UCmY= -github.com/pion/sctp v1.8.12/go.mod h1:cMLT45jqw3+jiJCrtHVwfQLnfR0MGZ4rgOJwUOIqLkI= -github.com/pion/sdp/v3 v3.0.6 h1:WuDLhtuFUUVpTfus9ILC4HRyHsW6TdugjEX/QY9OiUw= -github.com/pion/sdp/v3 v3.0.6/go.mod h1:iiFWFpQO8Fy3S5ldclBkpXqmWy02ns78NOKoLLL0YQw= -github.com/pion/srtp/v2 v2.0.18 h1:vKpAXfawO9RtTRKZJbG4y0v1b11NZxQnxRl85kGuUlo= -github.com/pion/srtp/v2 v2.0.18/go.mod h1:0KJQjA99A6/a0DOVTu1PhDSw0CXF2jTkqOoMg3ODqdA= +github.com/pion/rtp v1.8.7 h1:qslKkG8qxvQ7hqaxkmL7Pl0XcUm+/Er7nMnu6Vq+ZxM= +github.com/pion/rtp v1.8.7/go.mod h1:pBGHaFt/yW7bf1jjWAoUjpSNoDnw98KTMg+jWWvziqU= +github.com/pion/sctp v1.8.19 h1:2CYuw+SQ5vkQ9t0HdOPccsCz1GQMDuVy5PglLgKVBW8= +github.com/pion/sctp v1.8.19/go.mod h1:P6PbDVA++OJMrVNg2AL3XtYHV4uD6dvfyOovCgMs0PE= +github.com/pion/sdp/v3 v3.0.9 h1:pX++dCHoHUwq43kuwf3PyJfHlwIj4hXA7Vrifiq0IJY= +github.com/pion/sdp/v3 v3.0.9/go.mod h1:B5xmvENq5IXJimIO4zfp6LAe1fD9N+kFv+V/1lOdz8M= +github.com/pion/srtp/v2 v2.0.20 h1:HNNny4s+OUmG280ETrCdgFndp4ufx3/uy85EawYEhTk= +github.com/pion/srtp/v2 v2.0.20/go.mod h1:0KJQjA99A6/a0DOVTu1PhDSw0CXF2jTkqOoMg3ODqdA= github.com/pion/stun v0.6.1 h1:8lp6YejULeHBF8NmV8e2787BogQhduZugh5PdhDyyN4= github.com/pion/stun v0.6.1/go.mod h1:/hO7APkX4hZKu/D0f2lHzNyvdkTGtIy3NDmLR7kSz/8= -github.com/pion/transport v0.14.1 h1:XSM6olwW+o8J4SCmOBb/BpwZypkHeyM0PGFCxNQBr40= -github.com/pion/transport v0.14.1/go.mod h1:4tGmbk00NeYA3rUa9+n+dzCCoKkcy3YlYb99Jn2fNnI= github.com/pion/transport/v2 v2.2.1/go.mod h1:cXXWavvCnFF6McHTft3DWS9iic2Mftcz1Aq29pGcU5g= -github.com/pion/transport/v2 v2.2.2/go.mod h1:OJg3ojoBJopjEeECq2yJdXH9YVrUJ1uQ++NjXLOUorc= -github.com/pion/transport/v2 v2.2.3 h1:XcOE3/x41HOSKbl1BfyY1TF1dERx7lVvlMCbXU7kfvA= github.com/pion/transport/v2 v2.2.3/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= -github.com/pion/transport/v3 v3.0.1 h1:gDTlPJwROfSfz6QfSi0ZmeCSkFcnWWiiR9ES0ouANiM= +github.com/pion/transport/v2 v2.2.4/go.mod h1:q2U/tf9FEfnSBGSW6w5Qp5PFWRLRj3NjLhCCgpRK4p0= +github.com/pion/transport/v2 v2.2.10 h1:ucLBLE8nuxiHfvkFKnkDQRYWYfp8ejf4YBOPfaQpw6Q= +github.com/pion/transport/v2 v2.2.10/go.mod h1:sq1kSLWs+cHW9E+2fJP95QudkzbK7wscs8yYgQToO5E= github.com/pion/transport/v3 v3.0.1/go.mod h1:UY7kiITrlMv7/IKgd5eTUcaahZx5oUN3l9SzK5f5xE0= -github.com/pion/turn/v2 v2.1.3 h1:pYxTVWG2gpC97opdRc5IGsQ1lJ9O/IlNhkzj7MMrGAA= +github.com/pion/transport/v3 v3.0.2 h1:r+40RJR25S9w3jbA6/5uEPTzcdn7ncyU44RWCbHkLg4= +github.com/pion/transport/v3 v3.0.2/go.mod h1:nIToODoOlb5If2jF9y2Igfx3PFYWfuXi37m0IlWa/D0= github.com/pion/turn/v2 v2.1.3/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY= -github.com/pion/webrtc/v3 v3.2.28 h1:ienStxZ6HcjtH2UlmnFpMM0loENiYjaX437uIUpQSKo= -github.com/pion/webrtc/v3 v3.2.28/go.mod h1:PNRCEuQlibrmuBhOTnol9j6KkIbUG11aHLEfNpUYey0= +github.com/pion/turn/v2 v2.1.6 h1:Xr2niVsiPTB0FPtt+yAWKFUkU1eotQbGgpTIld4x1Gc= +github.com/pion/turn/v2 v2.1.6/go.mod h1:huEpByKKHix2/b9kmTAM3YoX6MKP+/D//0ClgUYR2fY= +github.com/pion/webrtc/v3 v3.3.4 h1:v2heQVnXTSqNRXcaFQVOhIOYkLMxOu1iJG8uy1djvkk= +github.com/pion/webrtc/v3 v3.3.4/go.mod h1:liNa+E1iwyzyXqNUwvoMRNQ10x8h8FOeJKL8RkIbamE= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= -github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw= -github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= -github.com/prometheus/common v0.48.0 h1:QO8U2CdOzSn1BBsmXJXduaaW+dY/5QLjfB8svtSzKKE= -github.com/prometheus/common v0.48.0/go.mod h1:0/KsvlIEfPQCQ5I2iNSAWKPZziNCvRs5EC6ILDTlAPc= -github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo= -github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo= -github.com/puzpuzpuz/xsync/v3 v3.1.0 h1:EewKT7/LNac5SLiEblJeUu8z5eERHrmRLnMQL2d7qX4= -github.com/puzpuzpuz/xsync/v3 v3.1.0/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= -github.com/redis/go-redis/v9 v9.6.1 h1:HHDteefn6ZkTtY5fGUE8tj8uy85AHk6zP7CpzIAM0y4= -github.com/redis/go-redis/v9 v9.6.1/go.mod h1:0C0c6ycQsdpVNQpxb1njEQIqkx5UcsM8FJCQLgE9+RA= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/puzpuzpuz/xsync/v3 v3.4.0 h1:DuVBAdXuGFHv8adVXjWWZ63pJq+NRXOWVXlKDBZ+mJ4= +github.com/puzpuzpuz/xsync/v3 v3.4.0/go.mod h1:VjzYrABPabuM4KyBh1Ftq6u8nhwY5tBPKP9jpmh0nnA= +github.com/redis/go-redis/v9 v9.7.0 h1:HhLSs+B6O021gwzl+locl0zEDnyNkxMtf/Z3NNBMa9E= +github.com/redis/go-redis/v9 v9.7.0/go.mod h1:f6zhXITC7JUJIlPEiBOTXxJgPLdZcA93GewI7inzyWw= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8= github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM= github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs= @@ -178,7 +156,7 @@ github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8w github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= @@ -189,7 +167,8 @@ github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsT github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/twitchtv/twirp v8.1.3+incompatible h1:+F4TdErPgSUbMZMwp13Q/KgDVuI7HJXP61mNV3/7iuU= github.com/twitchtv/twirp v8.1.3+incompatible/go.mod h1:RRJoFSAmTEh2weEqWtpPE3vFK5YBhA6bqp2l1kfCC5A= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/wlynxg/anet v0.0.3 h1:PvR53psxFXstc12jelG6f1Lv4MWqE0tI76/hHGjh9rg= +github.com/wlynxg/anet v0.0.3/go.mod h1:eay5PRQr7fIVAMbTbchTnO9gG65Hg/uYGdc7mguHxoA= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ= github.com/zeebo/assert v1.3.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0= @@ -206,133 +185,84 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= go.uber.org/zap/exp v0.3.0 h1:6JYzdifzYkGmTdRR59oYH+Ng7k49H9qVpWwNSsGJj3U= go.uber.org/zap/exp v0.3.0/go.mod h1:5I384qq7XGxYyByIhHm6jg5CHkGY0nsTfbDLgDDlgJQ= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.8.0/go.mod h1:mRqEX+O9/h5TFCrQhkgjo2yKi0yYA+9ecGkdQoHrywE= -golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/crypto v0.29.0 h1:L5SG1JTTXupVV3n6sUqMTeWbjAyfPwoda2DLX8J8FrQ= +golang.org/x/crypto v0.29.0/go.mod h1:+F4F4N5hv6v38hfeYwTdx20oUvLLc+QfrE9Ax9HtgRg= +golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo= +golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= -golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= -golang.org/x/net v0.13.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.31.0 h1:68CPQngjLL0r2AlUKiSxtQFKvzRVbnzLwMUn5SzcLHo= +golang.org/x/net v0.31.0/go.mod h1:P4fl1q7dY2hnZFxEk4pPSkDHF+QqjitcnDjUQyMM+pM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= -golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.9.0 h1:fEo0HyrW1GIgZdpbhCRO0PkJajUS5H9IFUztCgEo2jQ= +golang.org/x/sync v0.9.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.22.0 h1:RI27ohtqKCnwULzJLqkv897zojh5/DwS/ENaMzUOaWI= -golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.27.0 h1:wBqf8DvsY9Y/2P8gAfPDEYNuS30J4lPHJxXSb/nJZ+s= +golang.org/x/sys v0.27.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= -golang.org/x/term v0.10.0/go.mod h1:lpqdcUyK/oCiQxvxVrppt5ggO2KCZ5QblwqPnfZ6d5o= golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.20.0 h1:gK/Kv2otX8gz+wn7Rmb3vT96ZwuoxnQlY+HlJVj7Qug= +golang.org/x/text v0.20.0/go.mod h1:D4IsuqiFMhST5bX19pQ9ikHC2GsaKyk/oF+pn3ducp4= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= -golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= +golang.org/x/tools v0.27.0 h1:qEKojBykQkQ4EynWy4S8Weg69NumxKdn40Fce3uc/8o= +golang.org/x/tools v0.27.0/go.mod h1:sUi0ZgbwW9ZPAq26Ekut+weQPR5eIM6GQLQ1Yjm1H0Q= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157 h1:7whR9kGa5LUwFtpLm2ArCEejtnxlGeLbAyjFY8sGNFw= -google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f h1:RARaIm8pxYuxyNPbBQf5igT7XdOyCNtat1qAT2ZxjU4= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240725223205-93522f1f2a9f/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= -google.golang.org/grpc v1.65.0 h1:bs/cUb4lp1G5iImFFd3u5ixQzweKizoZJAwBNLR42lc= -google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1 h1:hjSy6tcFQZ171igDaN5QHOw2n6vx40juYbC/x67CEhc= +google.golang.org/genproto/googleapis/api v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:qpvKtACPCQhAdu3PyQgV4l3LMXZEtft7y8QcarRsp9I= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1 h1:pPJltXNxVzT4pK9yD8vR9X75DaWYYmLGMsEvBfFQZzQ= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240903143218-8af14fe29dc1/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/grpc v1.68.0 h1:aHQeeJbo8zAkAa3pRzrVjZlbz6uSfeOXlJNQM0RAbz0= +google.golang.org/grpc v1.68.0/go.mod h1:fmSPC5AsjSBCK54MyHRx48kpOti1/jRfOlwEWywNjWA= +google.golang.org/protobuf v1.35.2 h1:8Ar7bF+apOIoThw1EdZl0p1oWvMqTHmpA2fRTyZO8io= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= -gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/infra/link.pb.go b/infra/link.pb.go index 4121838d..6b48b7e1 100644 --- a/infra/link.pb.go +++ b/infra/link.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: infra/link.proto diff --git a/livekit/livekit_agent.pb.go b/livekit/livekit_agent.pb.go index 27d340fc..cc2314b4 100644 --- a/livekit/livekit_agent.pb.go +++ b/livekit/livekit_agent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_agent.proto diff --git a/livekit/livekit_agent_dispatch.pb.go b/livekit/livekit_agent_dispatch.pb.go index 179624da..3da9c78d 100644 --- a/livekit/livekit_agent_dispatch.pb.go +++ b/livekit/livekit_agent_dispatch.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_agent_dispatch.proto diff --git a/livekit/livekit_analytics.pb.go b/livekit/livekit_analytics.pb.go index b20ed312..c958eb2c 100644 --- a/livekit/livekit_analytics.pb.go +++ b/livekit/livekit_analytics.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_analytics.proto diff --git a/livekit/livekit_egress.pb.go b/livekit/livekit_egress.pb.go index c6402581..a6ce6b9a 100644 --- a/livekit/livekit_egress.pb.go +++ b/livekit/livekit_egress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_egress.proto diff --git a/livekit/livekit_ingress.pb.go b/livekit/livekit_ingress.pb.go index cb026456..89f888c1 100644 --- a/livekit/livekit_ingress.pb.go +++ b/livekit/livekit_ingress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_ingress.proto diff --git a/livekit/livekit_internal.pb.go b/livekit/livekit_internal.pb.go index d1bc2e9a..aa37a000 100644 --- a/livekit/livekit_internal.pb.go +++ b/livekit/livekit_internal.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_internal.proto diff --git a/livekit/livekit_metrics.pb.go b/livekit/livekit_metrics.pb.go index 41a564da..51b84adf 100644 --- a/livekit/livekit_metrics.pb.go +++ b/livekit/livekit_metrics.pb.go @@ -1,6 +1,6 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_metrics.proto diff --git a/livekit/livekit_models.pb.go b/livekit/livekit_models.pb.go index 4e17b4f2..326876ac 100644 --- a/livekit/livekit_models.pb.go +++ b/livekit/livekit_models.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_models.proto diff --git a/livekit/livekit_room.pb.go b/livekit/livekit_room.pb.go index 0f7b7031..ad41cf01 100644 --- a/livekit/livekit_room.pb.go +++ b/livekit/livekit_room.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_room.proto diff --git a/livekit/livekit_rtc.pb.go b/livekit/livekit_rtc.pb.go index 644fb671..f4764979 100644 --- a/livekit/livekit_rtc.pb.go +++ b/livekit/livekit_rtc.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_rtc.proto diff --git a/livekit/livekit_sip.pb.go b/livekit/livekit_sip.pb.go index 1d5c5eb0..41f2fc71 100644 --- a/livekit/livekit_sip.pb.go +++ b/livekit/livekit_sip.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_sip.proto diff --git a/livekit/livekit_webhook.pb.go b/livekit/livekit_webhook.pb.go index 76aacab1..ad2c9266 100644 --- a/livekit/livekit_webhook.pb.go +++ b/livekit/livekit_webhook.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: livekit_webhook.proto diff --git a/livekit/types.go b/livekit/types.go index 29eadbb0..40cc0a94 100644 --- a/livekit/types.go +++ b/livekit/types.go @@ -15,7 +15,7 @@ package livekit import ( - "github.com/bufbuild/protoyaml-go" + "buf.build/go/protoyaml" proto "google.golang.org/protobuf/proto" "gopkg.in/yaml.v3" ) diff --git a/rpc/agent.pb.go b/rpc/agent.pb.go index 7a0ef0c3..b1d85692 100644 --- a/rpc/agent.pb.go +++ b/rpc/agent.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/agent.proto diff --git a/rpc/agent_dispatch.pb.go b/rpc/agent_dispatch.pb.go index 579fccef..7e0fb985 100644 --- a/rpc/agent_dispatch.pb.go +++ b/rpc/agent_dispatch.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/agent_dispatch.proto diff --git a/rpc/analytics.pb.go b/rpc/analytics.pb.go index 0e1a66a1..63c36453 100644 --- a/rpc/analytics.pb.go +++ b/rpc/analytics.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/analytics.proto diff --git a/rpc/egress.pb.go b/rpc/egress.pb.go index 4b7e0ea0..fbd16245 100644 --- a/rpc/egress.pb.go +++ b/rpc/egress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/egress.proto diff --git a/rpc/ingress.pb.go b/rpc/ingress.pb.go index 5537fdca..e0f59754 100644 --- a/rpc/ingress.pb.go +++ b/rpc/ingress.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/ingress.proto diff --git a/rpc/io.pb.go b/rpc/io.pb.go index a927dccc..0bce4785 100644 --- a/rpc/io.pb.go +++ b/rpc/io.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/io.proto diff --git a/rpc/keepalive.pb.go b/rpc/keepalive.pb.go index b2ebdb71..20293484 100644 --- a/rpc/keepalive.pb.go +++ b/rpc/keepalive.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/keepalive.proto diff --git a/rpc/participant.pb.go b/rpc/participant.pb.go index 73fa35d5..b159bccb 100644 --- a/rpc/participant.pb.go +++ b/rpc/participant.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/participant.proto diff --git a/rpc/room.pb.go b/rpc/room.pb.go index c4d1097d..54d5c30e 100644 --- a/rpc/room.pb.go +++ b/rpc/room.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/room.proto diff --git a/rpc/roommanager.pb.go b/rpc/roommanager.pb.go index 4a9f4e84..6f2af238 100644 --- a/rpc/roommanager.pb.go +++ b/rpc/roommanager.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/roommanager.proto diff --git a/rpc/signal.pb.go b/rpc/signal.pb.go index 63b0657f..66662f7c 100644 --- a/rpc/signal.pb.go +++ b/rpc/signal.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/signal.proto diff --git a/rpc/sip.pb.go b/rpc/sip.pb.go index beef73f9..74e3ee1d 100644 --- a/rpc/sip.pb.go +++ b/rpc/sip.pb.go @@ -14,7 +14,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 +// protoc-gen-go v1.35.2 // protoc v4.23.4 // source: rpc/sip.proto From 754c90bf125ff75a1b26123ce5d9b550082de1a2 Mon Sep 17 00:00:00 2001 From: Tobias Fried Date: Mon, 18 Nov 2024 18:35:57 -0700 Subject: [PATCH 16/18] chore(deps): bump go to 1.23 (#885) --- go.mod | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 90d81534..854d5f56 100644 --- a/go.mod +++ b/go.mod @@ -1,7 +1,8 @@ module github.com/livekit/protocol -go 1.22 +go 1.23 +toolchain go1.23.3 require ( buf.build/go/protoyaml v0.2.0 From 8cab0f9e758ad8f79e22f63d8fabaf51e402e0a8 Mon Sep 17 00:00:00 2001 From: Paul Wells Date: Mon, 18 Nov 2024 17:46:36 -0800 Subject: [PATCH 17/18] add pointer.To helper (#886) --- utils/pointer/to.go | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 utils/pointer/to.go diff --git a/utils/pointer/to.go b/utils/pointer/to.go new file mode 100644 index 00000000..44a551fa --- /dev/null +++ b/utils/pointer/to.go @@ -0,0 +1,19 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package pointer + +func To[T any](v T) *T { + return &v +} From 792495362f2885f0c14a1e235636e3dde7decb3c Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 25 Nov 2024 09:59:26 +0530 Subject: [PATCH 18/18] Utility to build livekit.MetricsBatch (#889) * mbb WIP * generated protobuf * tweaks * generated protobuf * merge * filters * add IsEmpty --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> --- livekit/livekit_metrics.pb.go | 33 +- protobufs/livekit_metrics.proto | 5 + replay/cloud_replay.pb.go | 22 +- utils/metrics_batch_builder.go | 333 ++++++++++++++++ utils/metrics_batch_builder_test.go | 598 ++++++++++++++++++++++++++++ 5 files changed, 970 insertions(+), 21 deletions(-) create mode 100644 utils/metrics_batch_builder.go create mode 100644 utils/metrics_batch_builder_test.go diff --git a/livekit/livekit_metrics.pb.go b/livekit/livekit_metrics.pb.go index 51b84adf..1f3437f0 100644 --- a/livekit/livekit_metrics.pb.go +++ b/livekit/livekit_metrics.pb.go @@ -42,6 +42,9 @@ const ( MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH MetricLabel = 14 // total duration spent in bandwidth quality limitation MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU MetricLabel = 15 // total duration spent in cpu quality limitation MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER MetricLabel = 16 // total duration spent in other quality limitation + MetricLabel_PUBLISHER_RTT MetricLabel = 17 // Publisher RTT (participant -> server) + MetricLabel_SERVER_MESH_RTT MetricLabel = 18 // RTT between publisher node and subscriber node (could involve intermedia node(s)) + MetricLabel_SUBSCRIBER_RTT MetricLabel = 19 // Subscribe RTT (server -> participant) MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE MetricLabel = 4096 ) @@ -65,6 +68,9 @@ var ( 14: "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH", 15: "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU", 16: "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER", + 17: "PUBLISHER_RTT", + 18: "SERVER_MESH_RTT", + 19: "SUBSCRIBER_RTT", 4096: "METRIC_LABEL_PREDEFINED_MAX_VALUE", } MetricLabel_value = map[string]int32{ @@ -85,7 +91,10 @@ var ( "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH": 14, "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU": 15, "CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER": 16, - "METRIC_LABEL_PREDEFINED_MAX_VALUE": 4096, + "PUBLISHER_RTT": 17, + "SERVER_MESH_RTT": 18, + "SUBSCRIBER_RTT": 19, + "METRIC_LABEL_PREDEFINED_MAX_VALUE": 4096, } ) @@ -523,7 +532,7 @@ var file_livekit_metrics_proto_rawDesc = []byte{ 0x0d, 0x52, 0x03, 0x72, 0x69, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6d, 0x73, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2a, 0xc5, 0x06, 0x0a, 0x0b, 0x4d, 0x65, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2a, 0x81, 0x07, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x4c, 0x4c, 0x4d, 0x5f, 0x54, 0x54, 0x46, 0x54, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x47, 0x45, 0x4e, 0x54, 0x53, 0x5f, 0x53, 0x54, 0x54, 0x5f, 0x54, 0x54, 0x46, 0x54, @@ -573,14 +582,18 @@ var file_livekit_metrics_proto_rawDesc = []byte{ 0x49, 0x45, 0x4e, 0x54, 0x5f, 0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x50, 0x55, 0x42, 0x4c, 0x49, 0x53, 0x48, 0x45, 0x52, 0x5f, 0x51, 0x55, 0x41, 0x4c, 0x49, 0x54, 0x59, 0x5f, 0x4c, 0x49, 0x4d, 0x49, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x44, 0x55, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, - 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x10, 0x12, 0x26, 0x0a, 0x21, 0x4d, 0x45, 0x54, 0x52, - 0x49, 0x43, 0x5f, 0x4c, 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x45, 0x46, 0x49, - 0x4e, 0x45, 0x44, 0x5f, 0x4d, 0x41, 0x58, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x80, 0x20, - 0x42, 0x46, 0x5a, 0x23, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, - 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, - 0x6c, 0x69, 0x76, 0x65, 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, - 0x74, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, - 0x74, 0x3a, 0x3a, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x5f, 0x4f, 0x54, 0x48, 0x45, 0x52, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x55, 0x42, 0x4c, + 0x49, 0x53, 0x48, 0x45, 0x52, 0x5f, 0x52, 0x54, 0x54, 0x10, 0x11, 0x12, 0x13, 0x0a, 0x0f, 0x53, + 0x45, 0x52, 0x56, 0x45, 0x52, 0x5f, 0x4d, 0x45, 0x53, 0x48, 0x5f, 0x52, 0x54, 0x54, 0x10, 0x12, + 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x42, 0x45, 0x52, 0x5f, 0x52, + 0x54, 0x54, 0x10, 0x13, 0x12, 0x26, 0x0a, 0x21, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x4c, + 0x41, 0x42, 0x45, 0x4c, 0x5f, 0x50, 0x52, 0x45, 0x44, 0x45, 0x46, 0x49, 0x4e, 0x45, 0x44, 0x5f, + 0x4d, 0x41, 0x58, 0x5f, 0x56, 0x41, 0x4c, 0x55, 0x45, 0x10, 0x80, 0x20, 0x42, 0x46, 0x5a, 0x23, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x6c, 0x69, 0x76, 0x65, 0x6b, + 0x69, 0x74, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2f, 0x6c, 0x69, 0x76, 0x65, + 0x6b, 0x69, 0x74, 0xaa, 0x02, 0x0d, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x2e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0xea, 0x02, 0x0e, 0x4c, 0x69, 0x76, 0x65, 0x4b, 0x69, 0x74, 0x3a, 0x3a, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/protobufs/livekit_metrics.proto b/protobufs/livekit_metrics.proto index a7a27830..6ac49759 100644 --- a/protobufs/livekit_metrics.proto +++ b/protobufs/livekit_metrics.proto @@ -23,6 +23,7 @@ enum MetricLabel { AGENTS_LLM_TTFT = 0; // time to first token from LLM AGENTS_STT_TTFT = 1; // time to final transcription AGENTS_TTS_TTFB = 2; // time to first byte + CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT = 3; // Number of video freezes CLIENT_VIDEO_SUBSCRIBER_TOTAL_FREEZE_DURATION = 4; // total duration of freezes CLIENT_VIDEO_SUBSCRIBER_PAUSE_COUNT = 5; // number of video pauses @@ -38,6 +39,10 @@ enum MetricLabel { CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU = 15; // total duration spent in cpu quality limitation CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER = 16; // total duration spent in other quality limitation + PUBLISHER_RTT = 17; // Publisher RTT (participant -> server) + SERVER_MESH_RTT = 18; // RTT between publisher node and subscriber node (could involve intermedia node(s)) + SUBSCRIBER_RTT = 19; // Subscribe RTT (server -> participant) + METRIC_LABEL_PREDEFINED_MAX_VALUE = 4096; } diff --git a/replay/cloud_replay.pb.go b/replay/cloud_replay.pb.go index 7ff9a4b5..d725274a 100644 --- a/replay/cloud_replay.pb.go +++ b/replay/cloud_replay.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.34.2 -// protoc v5.28.0 +// protoc-gen-go v1.31.0 +// protoc v4.24.3 // source: cloud_replay.proto package replay @@ -491,7 +491,7 @@ func file_cloud_replay_proto_rawDescGZIP() []byte { } var file_cloud_replay_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_cloud_replay_proto_goTypes = []any{ +var file_cloud_replay_proto_goTypes = []interface{}{ (*ListReplaysRequest)(nil), // 0: replay.ListReplaysRequest (*ListReplaysResponse)(nil), // 1: replay.ListReplaysResponse (*ReplayInfo)(nil), // 2: replay.ReplayInfo @@ -527,7 +527,7 @@ func file_cloud_replay_proto_init() { return } if !protoimpl.UnsafeEnabled { - file_cloud_replay_proto_msgTypes[0].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplaysRequest); i { case 0: return &v.state @@ -539,7 +539,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[1].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplaysResponse); i { case 0: return &v.state @@ -551,7 +551,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[2].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplayInfo); i { case 0: return &v.state @@ -563,7 +563,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[3].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadReplayRequest); i { case 0: return &v.state @@ -575,7 +575,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[4].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*LoadReplayResponse); i { case 0: return &v.state @@ -587,7 +587,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[5].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RoomSeekRequest); i { case 0: return &v.state @@ -599,7 +599,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[6].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CloseReplayRequest); i { case 0: return &v.state @@ -611,7 +611,7 @@ func file_cloud_replay_proto_init() { return nil } } - file_cloud_replay_proto_msgTypes[7].Exporter = func(v any, i int) any { + file_cloud_replay_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteReplayRequest); i { case 0: return &v.state diff --git a/utils/metrics_batch_builder.go b/utils/metrics_batch_builder.go new file mode 100644 index 00000000..d6fc54e2 --- /dev/null +++ b/utils/metrics_batch_builder.go @@ -0,0 +1,333 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package utils + +import ( + "errors" + "time" + + "github.com/livekit/protocol/livekit" + "google.golang.org/protobuf/types/known/timestamppb" +) + +const ( + MetricsBatchBuilderInvalidTimeSeriesMetricId = -1 +) + +var ( + ErrInvalidMetricLabel = errors.New("invalid metric label") + ErrFilteredMetricLabel = errors.New("filtered metric label") + ErrInvalidTimeSeriesMetricIndex = errors.New("invalid time series metric index") +) + +type MetricsBatchBuilder struct { + *livekit.MetricsBatch + + stringData map[string]uint32 + restrictedLabels MetricRestrictedLabels +} + +func NewMetricsBatchBuilder() *MetricsBatchBuilder { + return &MetricsBatchBuilder{ + MetricsBatch: &livekit.MetricsBatch{}, + stringData: make(map[string]uint32), + } +} + +func (m *MetricsBatchBuilder) ToProto() *livekit.MetricsBatch { + return m.MetricsBatch +} + +func (m *MetricsBatchBuilder) SetTime(at time.Time, normalizedAt time.Time) { + m.MetricsBatch.TimestampMs = at.UnixMilli() + m.MetricsBatch.NormalizedTimestamp = timestamppb.New(normalizedAt) +} + +type MetricLabelRange struct { + StartInclusive livekit.MetricLabel + EndInclusive livekit.MetricLabel +} + +type MetricRestrictedLabels struct { + LabelRanges []MetricLabelRange + ParticipantIdentity livekit.ParticipantIdentity +} + +func (m *MetricsBatchBuilder) SetRestrictedLabels(mrl MetricRestrictedLabels) { + m.restrictedLabels = mrl +} + +type MetricSample struct { + At time.Time + NormalizedAt time.Time + Value float32 +} + +type TimeSeriesMetric struct { + MetricLabel livekit.MetricLabel + CustomMetricLabel string + ParticipantIdentity livekit.ParticipantIdentity + TrackID livekit.TrackID + Samples []MetricSample + Rid string +} + +func (m *MetricsBatchBuilder) AddTimeSeriesMetric(tsm TimeSeriesMetric) (int, error) { + ptsm := &livekit.TimeSeriesMetric{} + + if tsm.CustomMetricLabel != "" { + ptsm.Label = m.getStrDataIndex(tsm.CustomMetricLabel) + } else { + if tsm.MetricLabel >= livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE { + return MetricsBatchBuilderInvalidTimeSeriesMetricId, ErrInvalidMetricLabel + } + + if m.isLabelFiltered(tsm.MetricLabel, tsm.ParticipantIdentity) { + return MetricsBatchBuilderInvalidTimeSeriesMetricId, ErrFilteredMetricLabel + } + + ptsm.Label = uint32(tsm.MetricLabel) + } + + if tsm.ParticipantIdentity != "" { + ptsm.ParticipantIdentity = m.getStrDataIndex(string(tsm.ParticipantIdentity)) + } + + if tsm.TrackID != "" { + ptsm.TrackSid = m.getStrDataIndex(string(tsm.TrackID)) + } + + for _, sample := range tsm.Samples { + ptsm.Samples = append(ptsm.Samples, &livekit.MetricSample{ + TimestampMs: sample.At.UnixMilli(), + NormalizedTimestamp: timestamppb.New(sample.NormalizedAt), + Value: sample.Value, + }) + } + + if tsm.Rid != "" { + ptsm.Rid = m.getStrDataIndex(tsm.Rid) + } + + m.MetricsBatch.TimeSeries = append(m.MetricsBatch.TimeSeries, ptsm) + return len(m.MetricsBatch.TimeSeries) - 1, nil +} + +func (m *MetricsBatchBuilder) AddMetricSamplesToTimeSeriesMetric(timeSeriesMetricIdx int, samples []MetricSample) error { + if timeSeriesMetricIdx < 0 || timeSeriesMetricIdx >= len(m.MetricsBatch.TimeSeries) { + return ErrInvalidTimeSeriesMetricIndex + } + + ptsm := m.MetricsBatch.TimeSeries[timeSeriesMetricIdx] + for _, sample := range samples { + ptsm.Samples = append(ptsm.Samples, &livekit.MetricSample{ + TimestampMs: sample.At.UnixMilli(), + NormalizedTimestamp: timestamppb.New(sample.NormalizedAt), + Value: sample.Value, + }) + } + + return nil +} + +type EventMetric struct { + MetricLabel livekit.MetricLabel + CustomMetricLabel string + ParticipantIdentity livekit.ParticipantIdentity + TrackID livekit.TrackID + StartedAt time.Time + EndedAt time.Time + NormalizedStartedAt time.Time + NormalizedEndedAt time.Time + Metadata string + Rid string +} + +func (m *MetricsBatchBuilder) AddEventMetric(em EventMetric) error { + pem := &livekit.EventMetric{} + + if em.CustomMetricLabel != "" { + pem.Label = m.getStrDataIndex(em.CustomMetricLabel) + } else { + if em.MetricLabel >= livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE { + return ErrInvalidMetricLabel + } + + if m.isLabelFiltered(em.MetricLabel, em.ParticipantIdentity) { + return ErrFilteredMetricLabel + } + + pem.Label = uint32(em.MetricLabel) + } + + if em.ParticipantIdentity != "" { + pem.ParticipantIdentity = m.getStrDataIndex(string(em.ParticipantIdentity)) + } + + if em.TrackID != "" { + pem.TrackSid = m.getStrDataIndex(string(em.TrackID)) + } + + pem.StartTimestampMs = em.StartedAt.UnixMilli() + if !em.EndedAt.IsZero() { + endTimestampMs := em.EndedAt.UnixMilli() + pem.EndTimestampMs = &endTimestampMs + } + + pem.NormalizedStartTimestamp = timestamppb.New(em.NormalizedStartedAt) + if !em.NormalizedEndedAt.IsZero() { + pem.NormalizedEndTimestamp = timestamppb.New(em.NormalizedEndedAt) + } + + pem.Metadata = em.Metadata + + if em.Rid != "" { + pem.Rid = m.getStrDataIndex(em.Rid) + } + + m.MetricsBatch.Events = append(m.MetricsBatch.Events, pem) + return nil +} + +func (m *MetricsBatchBuilder) Merge(other *livekit.MetricsBatch) { + // Timestamp and NormalizedTimestamp are not merged + + for _, optsm := range other.TimeSeries { + ptsm := &livekit.TimeSeriesMetric{ + Samples: optsm.Samples, + } + if optsm.Label < uint32(int(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE)) { + participantIdentity, ok := getStrDataForIndex(other, optsm.ParticipantIdentity) + if ok && m.isLabelFiltered(livekit.MetricLabel(optsm.Label), livekit.ParticipantIdentity(participantIdentity)) { + continue + } + + ptsm.Label = optsm.Label + } else { + if tidx, ok := m.translateStrDataIndex(other.StrData, optsm.Label); ok { + ptsm.Label = tidx + } + } + + if tidx, ok := m.translateStrDataIndex(other.StrData, optsm.ParticipantIdentity); ok { + ptsm.ParticipantIdentity = tidx + } + + if tidx, ok := m.translateStrDataIndex(other.StrData, optsm.TrackSid); ok { + ptsm.TrackSid = tidx + } + + if tidx, ok := m.translateStrDataIndex(other.StrData, optsm.Rid); ok { + ptsm.Rid = tidx + } + + m.MetricsBatch.TimeSeries = append(m.MetricsBatch.TimeSeries, ptsm) + } + + for _, opem := range other.Events { + pem := &livekit.EventMetric{} + if opem.Label < uint32(int(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE)) { + participantIdentity, ok := getStrDataForIndex(other, opem.ParticipantIdentity) + if ok && m.isLabelFiltered(livekit.MetricLabel(opem.Label), livekit.ParticipantIdentity(participantIdentity)) { + continue + } + + pem.Label = opem.Label + } else { + if tidx, ok := m.translateStrDataIndex(other.StrData, opem.Label); ok { + pem.Label = tidx + } + } + + if tidx, ok := m.translateStrDataIndex(other.StrData, opem.ParticipantIdentity); ok { + pem.ParticipantIdentity = tidx + } + + if tidx, ok := m.translateStrDataIndex(other.StrData, opem.TrackSid); ok { + pem.TrackSid = tidx + } + + pem.StartTimestampMs = opem.StartTimestampMs + pem.EndTimestampMs = opem.EndTimestampMs + pem.NormalizedStartTimestamp = opem.NormalizedStartTimestamp + pem.NormalizedEndTimestamp = opem.NormalizedEndTimestamp + + pem.Metadata = opem.Metadata + + if tidx, ok := m.translateStrDataIndex(other.StrData, opem.Rid); ok { + pem.Rid = tidx + } + + m.MetricsBatch.Events = append(m.MetricsBatch.Events, pem) + } +} + +func (m *MetricsBatchBuilder) IsEmpty() bool { + return len(m.MetricsBatch.TimeSeries) == 0 && len(m.MetricsBatch.Events) == 0 +} + +func (m *MetricsBatchBuilder) isLabelFiltered(label livekit.MetricLabel, participantIdentity livekit.ParticipantIdentity) bool { + if participantIdentity == m.restrictedLabels.ParticipantIdentity { + // all labels allowed for restricted participant + return false + } + + for _, mlr := range m.restrictedLabels.LabelRanges { + if label >= mlr.StartInclusive && label <= mlr.EndInclusive { + return true + } + } + + return false +} + +func (m *MetricsBatchBuilder) getStrDataIndex(s string) uint32 { + idx, ok := m.stringData[s] + if !ok { + m.MetricsBatch.StrData = append(m.MetricsBatch.StrData, s) + idx = uint32(int(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + len(m.MetricsBatch.StrData) - 1) + m.stringData[s] = idx + } + return idx +} + +func (m *MetricsBatchBuilder) translateStrDataIndex(strData []string, index uint32) (uint32, bool) { + if index < uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) { + return 0, false + } + + baseIdx := index - uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + if len(strData) <= int(baseIdx) { + return 0, false + } + + // add if necessary + return m.getStrDataIndex(strData[baseIdx]), true +} + +// ----------------------------------------------------- + +func getStrDataForIndex(mb *livekit.MetricsBatch, index uint32) (string, bool) { + if index < uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) { + return "", false + } + + baseIdx := index - uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + if len(mb.StrData) <= int(baseIdx) { + return "", false + } + + return mb.StrData[baseIdx], true +} diff --git a/utils/metrics_batch_builder_test.go b/utils/metrics_batch_builder_test.go new file mode 100644 index 00000000..6e15a16b --- /dev/null +++ b/utils/metrics_batch_builder_test.go @@ -0,0 +1,598 @@ +// Copyright 2023 LiveKit, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package utils + +import ( + "testing" + "time" + + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/proto" + "google.golang.org/protobuf/types/known/timestamppb" + + "github.com/livekit/protocol/livekit" + "github.com/livekit/protocol/utils/mono" +) + +func TestMetricsBatchBuilder(t *testing.T) { + t.Run("basic", func(t *testing.T) { + at := mono.Now() + normalizedAt := mono.Now().Add(10 * time.Millisecond) + expected := &livekit.MetricsBatch{ + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + } + + mbb := NewMetricsBatchBuilder() + require.True(t, mbb.IsEmpty()) + mbb.SetTime( + time.Unix(0, expected.TimestampMs*int64(time.Millisecond)), + expected.NormalizedTimestamp.AsTime(), + ) + mb := mbb.ToProto() + require.True(t, proto.Equal(expected, mb)) + }) + + t.Run("time series metric", func(t *testing.T) { + at := mono.Now() + normalizedAt := mono.Now().Add(10 * time.Millisecond) + + expected := &livekit.MetricsBatch{ + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + StrData: []string{ + "PA_1", + "TR_VC1", + "f", + "CustomMetric", + "TR_VC2", + "q", + "PA_2", + }, + TimeSeries: []*livekit.TimeSeriesMetric{ + { + Label: uint32(livekit.MetricLabel_PUBLISHER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 1, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 42.4, + }, + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 52.4, + }, + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 62.4, + }, + }, + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 2, + }, + { + Label: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 3, + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 72.4, + }, + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 82.4, + }, + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 92.4, + }, + }, + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 5, + }, + { + Label: uint32(livekit.MetricLabel_SUBSCRIBER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 6, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 102.4, + }, + }, + }, + { + Label: uint32(livekit.MetricLabel_CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 102.4, + }, + }, + }, + }, + } + + mbb := NewMetricsBatchBuilder() + mbb.SetTime(at, normalizedAt) + mbb.SetRestrictedLabels(MetricRestrictedLabels{ + LabelRanges: []MetricLabelRange{ + { + StartInclusive: livekit.MetricLabel_CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT, + EndInclusive: livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER, + }, + }, + ParticipantIdentity: "PA_1", + }) + + // should not be able to add invalid metric label index + _, err := mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + MetricLabel: livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE, + }) + require.ErrorIs(t, err, ErrInvalidMetricLabel) + + // add a time series metric + ts1Idx, err := mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + MetricLabel: livekit.MetricLabel_PUBLISHER_RTT, + ParticipantIdentity: "PA_1", + TrackID: "TR_VC1", + Samples: []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 42.4, + }, + }, + Rid: "f", + }) + require.NoError(t, err) + require.False(t, mbb.IsEmpty()) + + // should not be able to add sample to invalid index + err = mbb.AddMetricSamplesToTimeSeriesMetric(-1, nil) + require.ErrorIs(t, err, ErrInvalidTimeSeriesMetricIndex) + err = mbb.AddMetricSamplesToTimeSeriesMetric(ts1Idx+1, nil) + require.ErrorIs(t, err, ErrInvalidTimeSeriesMetricIndex) + + // add a second one + ts2Idx, err := mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + CustomMetricLabel: "CustomMetric", + ParticipantIdentity: "PA_1", + TrackID: "TR_VC2", + Samples: []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 72.4, + }, + }, + Rid: "q", + }) + require.NoError(t, err) + + // add extra samples to first metric to ensure it gets added to the right metric + err = mbb.AddMetricSamplesToTimeSeriesMetric(ts1Idx, []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 52.4, + }, + { + At: at, + NormalizedAt: normalizedAt, + Value: 62.4, + }, + }) + require.NoError(t, err) + + // add extra samples to second metric to ensure it gets added to the right metric + err = mbb.AddMetricSamplesToTimeSeriesMetric(ts2Idx, []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 82.4, + }, + { + At: at, + NormalizedAt: normalizedAt, + Value: 92.4, + }, + }) + require.NoError(t, err) + + // add a third metric with some fields not populated to ensure that those indices default to 0 + _, err = mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + MetricLabel: livekit.MetricLabel_SUBSCRIBER_RTT, + ParticipantIdentity: "PA_2", + Samples: []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 102.4, + }, + }, + }) + require.NoError(t, err) + + // should accept restricted labels from that participant + _, err = mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + MetricLabel: livekit.MetricLabel_CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT, + ParticipantIdentity: "PA_1", + Samples: []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 102.4, + }, + }, + }) + require.NoError(t, err) + + // should not accept restricted labels from any other participant + _, err = mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + MetricLabel: livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER, + ParticipantIdentity: "PA_2", + Samples: []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 102.4, + }, + }, + }) + require.ErrorIs(t, err, ErrFilteredMetricLabel) + + mb := mbb.ToProto() + require.True(t, proto.Equal(expected, mb)) + }) + + t.Run("event metric", func(t *testing.T) { + at := mono.Now() + atMilli := at.UnixMilli() + normalizedAt := mono.Now().Add(10 * time.Millisecond) + + expected := &livekit.MetricsBatch{ + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + StrData: []string{ + "PA_1", + "TR_VC1", + "f", + "CustomMetric", + "TR_VC2", + "PA_2", + }, + Events: []*livekit.EventMetric{ + { + Label: uint32(livekit.MetricLabel_PUBLISHER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 1, + StartTimestampMs: at.UnixMilli(), + EndTimestampMs: &atMilli, + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + NormalizedEndTimestamp: timestamppb.New(normalizedAt), + Metadata: "md1", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 2, + }, + { + Label: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 3, + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + StartTimestampMs: at.UnixMilli(), + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + Metadata: "md2", + }, + { + Label: uint32(livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 1, + StartTimestampMs: at.UnixMilli(), + EndTimestampMs: &atMilli, + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + NormalizedEndTimestamp: timestamppb.New(normalizedAt), + Metadata: "md1", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 2, + }, + }, + TimeSeries: []*livekit.TimeSeriesMetric{ + { + Label: uint32(livekit.MetricLabel_SUBSCRIBER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 5, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 102.4, + }, + }, + }, + }, + } + + mbb := NewMetricsBatchBuilder() + mbb.SetTime(at, normalizedAt) + mbb.SetRestrictedLabels(MetricRestrictedLabels{ + LabelRanges: []MetricLabelRange{ + { + StartInclusive: livekit.MetricLabel_CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT, + EndInclusive: livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER, + }, + }, + ParticipantIdentity: "PA_1", + }) + + // should not be able to add invalid metric label index + err := mbb.AddEventMetric(EventMetric{ + MetricLabel: livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE, + }) + require.ErrorIs(t, err, ErrInvalidMetricLabel) + + // add an event metric + err = mbb.AddEventMetric(EventMetric{ + MetricLabel: livekit.MetricLabel_PUBLISHER_RTT, + ParticipantIdentity: "PA_1", + TrackID: "TR_VC1", + StartedAt: at, + EndedAt: at, + NormalizedStartedAt: normalizedAt, + NormalizedEndedAt: normalizedAt, + Metadata: "md1", + Rid: "f", + }) + require.NoError(t, err) + + // add a second one with some optional fields not included + err = mbb.AddEventMetric(EventMetric{ + CustomMetricLabel: "CustomMetric", + ParticipantIdentity: "PA_1", + TrackID: "TR_VC2", + StartedAt: at, + NormalizedStartedAt: normalizedAt, + Metadata: "md2", + }) + + // should accept restricted label from PA_1 + err = mbb.AddEventMetric(EventMetric{ + MetricLabel: livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER, + ParticipantIdentity: "PA_1", + TrackID: "TR_VC1", + StartedAt: at, + EndedAt: at, + NormalizedStartedAt: normalizedAt, + NormalizedEndedAt: normalizedAt, + Metadata: "md1", + Rid: "f", + }) + require.NoError(t, err) + + // should not accept restricted label from !PA_1 + err = mbb.AddEventMetric(EventMetric{ + MetricLabel: livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER, + ParticipantIdentity: "PA_2", + TrackID: "TR_VC1", + StartedAt: at, + EndedAt: at, + NormalizedStartedAt: normalizedAt, + NormalizedEndedAt: normalizedAt, + Metadata: "md1", + Rid: "f", + }) + require.ErrorIs(t, err, ErrFilteredMetricLabel) + + // add a time series metric to ensure both time series metric and event metric can be in same batch + _, err = mbb.AddTimeSeriesMetric(TimeSeriesMetric{ + MetricLabel: livekit.MetricLabel_SUBSCRIBER_RTT, + ParticipantIdentity: "PA_2", + Samples: []MetricSample{ + { + At: at, + NormalizedAt: normalizedAt, + Value: 102.4, + }, + }, + }) + require.NoError(t, err) + + mb := mbb.ToProto() + require.True(t, proto.Equal(expected, mb)) + }) + + t.Run("merge", func(t *testing.T) { + at := mono.Now() + atMilli := at.UnixMilli() + normalizedAt := mono.Now().Add(10 * time.Millisecond) + + expected := &livekit.MetricsBatch{ + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + StrData: []string{ + "PA_1", + "TR_VC1", + "f", + "CustomMetric", + "TR_VC2", + "q", + "PA_2", + }, + Events: []*livekit.EventMetric{ + { + Label: uint32(livekit.MetricLabel_PUBLISHER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 1, + StartTimestampMs: at.UnixMilli(), + EndTimestampMs: &atMilli, + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + NormalizedEndTimestamp: timestamppb.New(normalizedAt), + Metadata: "md1", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 2, + }, + { + Label: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 3, + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + StartTimestampMs: at.UnixMilli(), + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + Metadata: "md2", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 5, + }, + { + Label: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 3, + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + StartTimestampMs: at.UnixMilli(), + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + Metadata: "md2", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 5, + }, + { + Label: uint32(livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + StartTimestampMs: at.UnixMilli(), + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + Metadata: "md2", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 5, + }, + }, + TimeSeries: []*livekit.TimeSeriesMetric{ + { + Label: uint32(livekit.MetricLabel_SUBSCRIBER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 6, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 102.4, + }, + }, + }, + }, + } + + mbb := NewMetricsBatchBuilder() + mbb.SetTime(at, normalizedAt) + mbb.SetRestrictedLabels(MetricRestrictedLabels{ + LabelRanges: []MetricLabelRange{ + { + StartInclusive: livekit.MetricLabel_CLIENT_VIDEO_SUBSCRIBER_FREEZE_COUNT, + EndInclusive: livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_OTHER, + }, + }, + ParticipantIdentity: "PA_1", + }) + + // should not be able to add invalid metric label index + err := mbb.AddEventMetric(EventMetric{ + MetricLabel: livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE, + }) + require.ErrorIs(t, err, ErrInvalidMetricLabel) + + // add an event metric + err = mbb.AddEventMetric(EventMetric{ + MetricLabel: livekit.MetricLabel_PUBLISHER_RTT, + ParticipantIdentity: "PA_1", + TrackID: "TR_VC1", + StartedAt: at, + EndedAt: at, + NormalizedStartedAt: normalizedAt, + NormalizedEndedAt: normalizedAt, + Metadata: "md1", + Rid: "f", + }) + require.NoError(t, err) + + // add a second one with some optional fields not included + // including this here and in the one to merge to test index translation + err = mbb.AddEventMetric(EventMetric{ + CustomMetricLabel: "CustomMetric", + ParticipantIdentity: "PA_1", + TrackID: "TR_VC2", + StartedAt: at, + NormalizedStartedAt: normalizedAt, + Metadata: "md2", + Rid: "q", + }) + require.NoError(t, err) + + toMerge := &livekit.MetricsBatch{ + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + StrData: []string{ + "CustomMetric", + "PA_1", + "TR_VC2", + "q", + "PA_2", + }, + Events: []*livekit.EventMetric{ + { + Label: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 1, + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 2, + StartTimestampMs: at.UnixMilli(), + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + Metadata: "md2", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 3, + }, + { + Label: uint32(livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_BANDWIDTH), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 1, + TrackSid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 2, + StartTimestampMs: at.UnixMilli(), + NormalizedStartTimestamp: timestamppb.New(normalizedAt), + Metadata: "md2", + Rid: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 3, + }, + }, + TimeSeries: []*livekit.TimeSeriesMetric{ + { + Label: uint32(livekit.MetricLabel_SUBSCRIBER_RTT), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 102.4, + }, + }, + }, + { + // should be filtered + Label: uint32(livekit.MetricLabel_CLIENT_VIDEO_PUBLISHER_QUALITY_LIMITATION_DURATION_CPU), + ParticipantIdentity: uint32(livekit.MetricLabel_METRIC_LABEL_PREDEFINED_MAX_VALUE) + 4, + Samples: []*livekit.MetricSample{ + { + TimestampMs: at.UnixMilli(), + NormalizedTimestamp: timestamppb.New(normalizedAt), + Value: 102.4, + }, + }, + }, + }, + } + mbb.Merge(toMerge) + + mb := mbb.ToProto() + require.True(t, proto.Equal(expected, mb)) + }) +}