diff --git a/CHANGELOG.md b/CHANGELOG.md index d3390d33d3aca5204f5b4e06d8e4609c2b823381..10d107d1266990332cb330d590b134e0c4b70c5d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Clients sending data to an invalid match ID will now receive an uncollated error. ### Changed +- Rename stream 'descriptor' field to 'subcontext' to avoid protocol naming conflict. +- Rename Facebook authentication and link 'import' field to avoid language keyword conflict. - Rejoining a match the user is already part of will now return the match label. - Allow tournament joins before the start of the tournament active period. - Authoritative matches now complete their stop phase faster to avoid unnecessary processing. @@ -28,6 +30,7 @@ The format is based on [keep a changelog](http://keepachangelog.com) and this pr - Tournament end runtime callbacks now receive the correct end time. - Leaderboard and tournament runtime callbacks no longer trigger twice when time delays are observed. - Check group max allowed user when promoting a user. +- Correct Lua runtime decoding of stream identifying parameters. ## [2.2.1] - 2018-11-20 ### Added diff --git a/api/api.pb.go b/api/api.pb.go index 895d6348f94d7706c1e34febb21b86602ff007e5..cdb217302d91c865302aa370647785b32f7ebce2 100644 --- a/api/api.pb.go +++ b/api/api.pb.go @@ -5,11 +5,10 @@ package api import ( fmt "fmt" - math "math" - proto "github.com/golang/protobuf/proto" timestamp "github.com/golang/protobuf/ptypes/timestamp" wrappers "github.com/golang/protobuf/ptypes/wrappers" + math "math" ) // Reference imports to suppress errors if they are not otherwise used. @@ -844,7 +843,7 @@ type AuthenticateFacebookRequest struct { // Set the username on the account at register. Must be unique. Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"` // Import Facebook friends for the user. - Import *wrappers.BoolValue `protobuf:"bytes,4,opt,name=import,proto3" json:"import,omitempty"` + Sync *wrappers.BoolValue `protobuf:"bytes,4,opt,name=sync,proto3" json:"sync,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -896,9 +895,9 @@ func (m *AuthenticateFacebookRequest) GetUsername() string { return "" } -func (m *AuthenticateFacebookRequest) GetImport() *wrappers.BoolValue { +func (m *AuthenticateFacebookRequest) GetSync() *wrappers.BoolValue { if m != nil { - return m.Import + return m.Sync } return nil } @@ -2519,7 +2518,7 @@ type LinkFacebookRequest struct { // The Facebook account details. Account *AccountFacebook `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // Import Facebook friends for the user. - Import *wrappers.BoolValue `protobuf:"bytes,4,opt,name=import,proto3" json:"import,omitempty"` + Sync *wrappers.BoolValue `protobuf:"bytes,4,opt,name=sync,proto3" json:"sync,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2557,9 +2556,9 @@ func (m *LinkFacebookRequest) GetAccount() *AccountFacebook { return nil } -func (m *LinkFacebookRequest) GetImport() *wrappers.BoolValue { +func (m *LinkFacebookRequest) GetSync() *wrappers.BoolValue { if m != nil { - return m.Import + return m.Sync } return nil } @@ -5377,208 +5376,208 @@ func init() { proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd423478 var fileDescriptor_1b40cafcd4234784 = []byte{ // 3273 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x3a, 0x5b, 0x8f, 0x1b, 0x49, - 0xd5, 0xdb, 0xbe, 0xfb, 0x78, 0x3c, 0xe3, 0xe9, 0x5c, 0x3e, 0x8f, 0x73, 0xdd, 0x4e, 0xf6, 0x4b, - 0x56, 0xfb, 0x7d, 0x93, 0xdd, 0xc9, 0xb7, 0x5f, 0x02, 0x0b, 0xd9, 0xcc, 0xc5, 0x89, 0xbc, 0x49, - 0x26, 0xa1, 0x67, 0x26, 0x20, 0x78, 0xf0, 0xd6, 0x74, 0xd7, 0x78, 0x9a, 0x69, 0x77, 0x7b, 0xbb, - 0xdb, 0x73, 0x59, 0x09, 0x09, 0x10, 0x12, 0xfb, 0x84, 0x10, 0x4f, 0xbc, 0x00, 0x2b, 0x84, 0xd0, - 0x2e, 0x48, 0xfc, 0x02, 0xde, 0x79, 0x47, 0x02, 0xed, 0x1b, 0xf0, 0x88, 0xc4, 0x3f, 0x40, 0x42, - 0xa8, 0x4e, 0x55, 0x77, 0x57, 0xb7, 0xed, 0xb1, 0x9d, 0x99, 0xec, 0x4a, 0xbc, 0x58, 0x5d, 0xa7, - 0xce, 0xa9, 0x3a, 0x75, 0xea, 0xdc, 0xcb, 0x50, 0x25, 0x3d, 0xeb, 0x16, 0xe9, 0x59, 0x8b, 0x3d, - 0xcf, 0x0d, 0x5c, 0x15, 0x1c, 0xb2, 0x47, 0xba, 0x64, 0x91, 0xf4, 0xac, 0xc6, 0x95, 0x8e, 0xeb, - 0x76, 0x6c, 0x7a, 0x0b, 0x67, 0xb6, 0xfb, 0x3b, 0xb7, 0x02, 0xab, 0x4b, 0xfd, 0x80, 0x74, 0x7b, - 0x1c, 0xb9, 0x71, 0x39, 0x8d, 0x70, 0xe0, 0x91, 0x5e, 0x8f, 0x7a, 0x3e, 0x9f, 0xd7, 0xfe, 0xa1, - 0x40, 0x71, 0xd9, 0x30, 0xdc, 0xbe, 0x13, 0xa8, 0xd7, 0x21, 0xd7, 0xf7, 0xa9, 0x57, 0x57, 0xae, - 0x2a, 0x37, 0x2b, 0x4b, 0xb5, 0xc5, 0x78, 0x9f, 0xc5, 0x2d, 0x9f, 0x7a, 0x3a, 0xce, 0xaa, 0xe7, - 0xa1, 0x70, 0x40, 0x6c, 0x9b, 0x06, 0xf5, 0xcc, 0x55, 0xe5, 0x66, 0x59, 0x17, 0x23, 0xf5, 0x2c, - 0xe4, 0x69, 0x97, 0x58, 0x76, 0x3d, 0x8b, 0x60, 0x3e, 0x50, 0x6f, 0x43, 0xd1, 0xa4, 0xfb, 0x96, - 0x41, 0xfd, 0x7a, 0xee, 0x6a, 0xf6, 0x66, 0x65, 0x69, 0x41, 0x5e, 0x56, 0xec, 0xbc, 0x86, 0x18, - 0x7a, 0x88, 0xa9, 0x5e, 0x80, 0xb2, 0xd1, 0xf7, 0x03, 0xb7, 0xdb, 0xb6, 0xcc, 0x7a, 0x1e, 0x97, - 0x2b, 0x71, 0x40, 0xcb, 0x54, 0xdf, 0x81, 0xca, 0x3e, 0xf5, 0xac, 0x9d, 0xa3, 0x36, 0x3b, 0x6b, - 0xbd, 0x80, 0xcc, 0x36, 0x16, 0xf9, 0x39, 0x17, 0xc3, 0x73, 0x2e, 0x6e, 0x86, 0x82, 0xd0, 0x81, - 0xa3, 0x33, 0x80, 0x76, 0x05, 0xaa, 0x62, 0xcf, 0x55, 0x5c, 0x4f, 0x9d, 0x85, 0x8c, 0x65, 0xe2, - 0x89, 0xcb, 0x7a, 0xc6, 0x32, 0x25, 0x04, 0xce, 0xd4, 0x00, 0xc2, 0x7d, 0x98, 0x11, 0x08, 0x4d, - 0x3c, 0x60, 0x74, 0x6c, 0x45, 0x3e, 0x76, 0x03, 0x4a, 0x3d, 0xe2, 0xfb, 0x07, 0xae, 0x67, 0x0a, - 0x31, 0x45, 0x63, 0xed, 0x06, 0xcc, 0x89, 0x15, 0x1e, 0x10, 0x83, 0x6e, 0xbb, 0xee, 0x1e, 0x5b, - 0x24, 0x70, 0xf7, 0xa8, 0x13, 0x2e, 0x82, 0x03, 0xed, 0x8f, 0x0a, 0xcc, 0x0b, 0xcc, 0x87, 0xa4, - 0x4b, 0x57, 0xa9, 0x13, 0x50, 0x8f, 0x09, 0xa7, 0x67, 0x93, 0x23, 0xea, 0xb5, 0x23, 0xbe, 0x4a, - 0x1c, 0xd0, 0x32, 0xd9, 0xe4, 0x76, 0xdf, 0x31, 0x6d, 0xca, 0x26, 0xc5, 0xc6, 0x1c, 0xd0, 0x32, - 0xd5, 0x37, 0x60, 0x3e, 0x52, 0x8f, 0xb6, 0x4f, 0x0d, 0xd7, 0x31, 0x7d, 0xbc, 0xad, 0xac, 0x5e, - 0x8b, 0x26, 0x36, 0x38, 0x5c, 0x55, 0x21, 0xe7, 0x13, 0x3b, 0xa8, 0xe7, 0x70, 0x11, 0xfc, 0x56, - 0x2f, 0x42, 0xd9, 0xb7, 0x3a, 0x0e, 0x09, 0xfa, 0x1e, 0x15, 0xf7, 0x12, 0x03, 0xd4, 0xeb, 0x30, - 0xdb, 0xeb, 0x6f, 0xdb, 0x96, 0xd1, 0xde, 0xa3, 0x47, 0xed, 0xbe, 0x67, 0xe3, 0xdd, 0x94, 0xf5, - 0x19, 0x0e, 0x7d, 0x44, 0x8f, 0xb6, 0x3c, 0x5b, 0x7b, 0x2d, 0x12, 0xf0, 0x43, 0xbc, 0xb1, 0x11, - 0x67, 0xbf, 0x1e, 0x89, 0x79, 0x23, 0xa0, 0xa4, 0x3b, 0x02, 0x6b, 0x15, 0xe6, 0x97, 0x4d, 0xf3, - 0x81, 0x67, 0x51, 0xc7, 0xf4, 0x75, 0xfa, 0x41, 0x9f, 0xfa, 0x81, 0x5a, 0x83, 0xac, 0x65, 0xfa, - 0x75, 0xe5, 0x6a, 0xf6, 0x66, 0x59, 0x67, 0x9f, 0x8c, 0x6f, 0xa6, 0xba, 0x0e, 0xe9, 0x52, 0xbf, - 0x9e, 0x41, 0x78, 0x0c, 0xd0, 0x1e, 0xc3, 0xd9, 0x65, 0xd3, 0x7c, 0xe8, 0xb9, 0xfd, 0x1e, 0x53, - 0xf3, 0x68, 0x9d, 0x05, 0x28, 0x75, 0x18, 0x30, 0x96, 0x73, 0x11, 0xc7, 0x2d, 0x93, 0x4d, 0x31, - 0xfa, 0x36, 0xdb, 0x87, 0xaf, 0x57, 0x64, 0xe3, 0x96, 0xe9, 0x6b, 0x1f, 0x2b, 0xb0, 0xb0, 0xdc, - 0x0f, 0x76, 0xa9, 0x13, 0x58, 0x06, 0x09, 0x28, 0xd7, 0xb3, 0x70, 0xcd, 0xdb, 0x50, 0x24, 0xfc, - 0x58, 0xc2, 0xca, 0x86, 0x99, 0x83, 0x20, 0x09, 0x31, 0xd5, 0x25, 0x28, 0x18, 0x1e, 0x25, 0x01, - 0xc5, 0x1b, 0x1d, 0xa6, 0xec, 0x2b, 0xae, 0x6b, 0x3f, 0x27, 0x76, 0x9f, 0xea, 0x02, 0x93, 0x29, - 0x60, 0x78, 0x42, 0x61, 0x90, 0xd1, 0x78, 0x80, 0x45, 0x61, 0x7e, 0xd3, 0xb0, 0x18, 0x5a, 0xec, - 0xcb, 0x62, 0xf1, 0xe7, 0x0a, 0xd4, 0x65, 0x16, 0xd1, 0xd6, 0x42, 0x0e, 0x97, 0xd2, 0x1c, 0xd6, - 0x87, 0x70, 0xc8, 0x29, 0x5e, 0x1a, 0x83, 0x9f, 0x29, 0x70, 0x41, 0x66, 0x30, 0x34, 0xe5, 0x90, - 0xc7, 0xb7, 0xd3, 0x3c, 0x5e, 0x18, 0xc2, 0x63, 0x44, 0xf4, 0xb2, 0xd8, 0x64, 0xeb, 0x59, 0xdd, - 0x9e, 0xeb, 0x71, 0x3b, 0x1e, 0xb3, 0x1e, 0xc7, 0xd4, 0x3e, 0x51, 0xe0, 0x92, 0x7c, 0xb4, 0xd8, - 0xf7, 0x84, 0x87, 0xbb, 0x93, 0x3e, 0xdc, 0xa5, 0x21, 0x87, 0x93, 0xc8, 0x3e, 0x37, 0x4d, 0xe6, - 0x2e, 0x65, 0x2a, 0x4d, 0x16, 0x24, 0x9f, 0x9b, 0x26, 0xa3, 0x3b, 0x9b, 0x4a, 0x93, 0x39, 0xc5, - 0x4b, 0x63, 0xb0, 0x09, 0x67, 0x56, 0x6c, 0xd7, 0xd8, 0x3b, 0xa1, 0x17, 0xfd, 0x28, 0x0b, 0xb3, - 0xab, 0xbb, 0xc4, 0x71, 0xa8, 0xfd, 0x84, 0xfa, 0x3e, 0xe9, 0x50, 0xf5, 0x12, 0x80, 0xc1, 0x21, - 0xb1, 0x0b, 0x2d, 0x0b, 0x48, 0xcb, 0x64, 0xd3, 0x5d, 0x8e, 0x19, 0x07, 0xab, 0xb2, 0x80, 0xb4, - 0x4c, 0xf5, 0x16, 0xe4, 0x0c, 0xd7, 0xe4, 0xfc, 0x32, 0xf3, 0x49, 0x9f, 0xb2, 0xe5, 0x04, 0xb7, - 0x97, 0xf8, 0x31, 0x11, 0x91, 0xc5, 0x3e, 0x9f, 0x3a, 0x26, 0x0f, 0x8c, 0x3c, 0x6c, 0x95, 0x38, - 0xa0, 0x65, 0x26, 0x24, 0x90, 0x4f, 0x19, 0x49, 0x1d, 0x8a, 0x86, 0xeb, 0x04, 0xd4, 0x09, 0x44, - 0xc4, 0x0a, 0x87, 0x2c, 0xd7, 0xe0, 0x12, 0xe4, 0xb9, 0x46, 0x71, 0x7c, 0xae, 0xc1, 0xd1, 0x19, - 0x80, 0x11, 0xf7, 0x7b, 0x66, 0x44, 0x5c, 0x1a, 0x4f, 0xcc, 0xd1, 0x91, 0xf8, 0xcb, 0x00, 0x2c, - 0x4b, 0xb3, 0x7c, 0x64, 0xab, 0x3c, 0xf6, 0xa6, 0x25, 0x6c, 0xed, 0x47, 0x0a, 0xa8, 0xc9, 0xab, - 0x78, 0x6c, 0xf9, 0x81, 0xfa, 0xff, 0x50, 0x12, 0xd2, 0xe5, 0xd7, 0xca, 0x16, 0x94, 0xb4, 0x2d, - 0x49, 0xa1, 0x47, 0xb8, 0xea, 0x15, 0xa8, 0x38, 0xf4, 0x30, 0x68, 0x1b, 0x7d, 0xcf, 0x77, 0x3d, - 0x71, 0x51, 0xc0, 0x40, 0xab, 0x08, 0x61, 0x08, 0x3d, 0x8f, 0xee, 0x87, 0x08, 0x5c, 0xc1, 0x80, - 0x81, 0x38, 0x82, 0xf6, 0x53, 0xc6, 0x10, 0x0a, 0x06, 0xa3, 0x6c, 0xa8, 0x62, 0x2a, 0xe4, 0xf0, - 0x3e, 0xb8, 0x66, 0xe0, 0xb7, 0x7a, 0x15, 0x2a, 0x26, 0xf5, 0x0d, 0xcf, 0xea, 0x05, 0x96, 0xeb, - 0x88, 0xcd, 0x64, 0x10, 0x8b, 0xbd, 0x36, 0x71, 0x3a, 0xed, 0x80, 0x74, 0xc4, 0x56, 0x45, 0x36, - 0xde, 0x24, 0x1d, 0xa6, 0x51, 0x64, 0x9f, 0x04, 0xc4, 0xc3, 0xec, 0x83, 0xab, 0x40, 0x99, 0x43, - 0xb6, 0x3c, 0x9b, 0xed, 0xe7, 0xf6, 0xa8, 0x83, 0xf7, 0x5f, 0xd2, 0xf1, 0x5b, 0x7b, 0x00, 0x67, - 0xd7, 0xa8, 0x4d, 0x03, 0x7a, 0x42, 0xf5, 0xbf, 0x05, 0x2a, 0x5f, 0x27, 0x71, 0xc2, 0xd1, 0x29, - 0x84, 0xf6, 0x10, 0x2e, 0x73, 0x82, 0xc7, 0x94, 0x98, 0xd4, 0xdb, 0x76, 0x89, 0x67, 0xea, 0xd4, - 0x70, 0xd9, 0x2f, 0x27, 0x7e, 0x0d, 0x66, 0xed, 0x78, 0x2e, 0x5e, 0xa2, 0x2a, 0x41, 0x5b, 0xa6, - 0xb6, 0x08, 0x0d, 0xbe, 0xd0, 0xba, 0x1b, 0x58, 0x3b, 0xcc, 0xc7, 0x58, 0xae, 0x33, 0xfa, 0x1c, - 0x9a, 0x01, 0xe7, 0x38, 0xfe, 0x46, 0xe0, 0x7a, 0xa4, 0x43, 0x9f, 0x6e, 0x7f, 0x9b, 0x1a, 0x41, - 0xcb, 0x54, 0x2f, 0x03, 0x18, 0xae, 0x6d, 0x53, 0x03, 0x25, 0xcf, 0xf7, 0x92, 0x20, 0x6c, 0xa9, - 0x3d, 0x7a, 0x24, 0xae, 0x84, 0x7d, 0x32, 0xc3, 0xd9, 0x67, 0x6a, 0xe7, 0x3a, 0xe1, 0x4d, 0x88, - 0xa1, 0xd6, 0x86, 0x0b, 0x43, 0x36, 0x89, 0xb8, 0xba, 0x0f, 0xe0, 0x22, 0xa4, 0x1d, 0x32, 0x57, - 0x59, 0x7a, 0x55, 0x56, 0xc6, 0xa1, 0x1c, 0xea, 0x65, 0x57, 0x7c, 0xf9, 0xda, 0xa7, 0x0a, 0x14, - 0xf8, 0x95, 0x4d, 0x58, 0xb6, 0xbc, 0x05, 0x79, 0x3f, 0x88, 0xbd, 0xe6, 0xb1, 0xfe, 0x84, 0x63, - 0x6a, 0x0f, 0x20, 0xbf, 0xc1, 0x3e, 0x54, 0x80, 0xc2, 0x03, 0xbd, 0xd5, 0x5c, 0x5f, 0xab, 0xbd, - 0xa2, 0xce, 0x41, 0xa5, 0xb5, 0xfe, 0xbc, 0xb5, 0xd9, 0x6c, 0x6f, 0x34, 0xd7, 0x37, 0x6b, 0x8a, - 0x7a, 0x06, 0xe6, 0x04, 0x40, 0x6f, 0xae, 0x36, 0x5b, 0xcf, 0x9b, 0x6b, 0xb5, 0x8c, 0x5a, 0x81, - 0xe2, 0xca, 0xe3, 0xa7, 0xab, 0x8f, 0x9a, 0x6b, 0xb5, 0xac, 0x76, 0x07, 0x8a, 0x42, 0xbb, 0xd4, - 0xff, 0x81, 0xe2, 0x0e, 0xff, 0x14, 0xa7, 0x56, 0x65, 0x76, 0x39, 0x96, 0x1e, 0xa2, 0x68, 0x26, - 0xcc, 0x3d, 0xa4, 0x41, 0x22, 0x29, 0x9d, 0x52, 0x2f, 0xd5, 0x57, 0x61, 0x66, 0x47, 0x64, 0x19, - 0x28, 0xeb, 0x2c, 0x22, 0x54, 0x42, 0x18, 0x13, 0xe5, 0x27, 0x59, 0xc8, 0xa3, 0xd6, 0xa6, 0x6b, - 0x1d, 0x74, 0xe0, 0xcc, 0x6c, 0x5d, 0x4f, 0xf2, 0xd0, 0x02, 0xd2, 0x32, 0x23, 0xfb, 0xcd, 0x8e, - 0xb6, 0xdf, 0xdc, 0xf1, 0xf6, 0x9b, 0x4f, 0xda, 0x6f, 0x83, 0x79, 0xa8, 0x80, 0x98, 0x24, 0x20, - 0xc2, 0x13, 0x47, 0xe3, 0x94, 0x6d, 0x17, 0xd3, 0xb6, 0xbd, 0x28, 0x6c, 0xbb, 0x34, 0xd6, 0x53, - 0x22, 0x1e, 0x5b, 0x8e, 0x9a, 0x1d, 0xda, 0xe6, 0xc1, 0x97, 0xf9, 0xd7, 0xbc, 0x5e, 0x66, 0x90, - 0x55, 0x0c, 0xb2, 0x17, 0xa0, 0xdc, 0x25, 0x87, 0x62, 0x16, 0x70, 0xb6, 0xd4, 0x25, 0x87, 0x7c, - 0x32, 0x15, 0x15, 0x2a, 0x27, 0x89, 0x0a, 0x33, 0xd3, 0x44, 0x05, 0x6d, 0x1d, 0xca, 0x78, 0x53, - 0xe8, 0xcf, 0x5f, 0x87, 0x02, 0x3a, 0x93, 0x50, 0x95, 0xe6, 0x65, 0x55, 0xe2, 0x6e, 0x48, 0x20, - 0xb0, 0x9a, 0x3d, 0xe1, 0xbd, 0xc5, 0x48, 0xfb, 0x97, 0x02, 0xd5, 0xa8, 0xf0, 0xc1, 0x45, 0xd7, - 0xa0, 0xc2, 0x3d, 0x16, 0x53, 0xa1, 0x70, 0xe5, 0x6b, 0x03, 0x2b, 0x87, 0xf8, 0xf1, 0x48, 0x87, - 0x4e, 0x54, 0x41, 0x35, 0x7e, 0xad, 0x08, 0x46, 0xd9, 0xf0, 0xe5, 0x19, 0xe8, 0xfd, 0xd0, 0x40, - 0x67, 0x01, 0x36, 0xb6, 0x9e, 0x35, 0xf5, 0xe5, 0xb5, 0x27, 0xad, 0xf5, 0xda, 0x2b, 0x6a, 0x19, - 0xf2, 0xfc, 0x53, 0x61, 0xb6, 0xfb, 0xa4, 0xf9, 0x64, 0xa5, 0xa9, 0xd7, 0x32, 0x6a, 0x0d, 0x66, - 0xde, 0x7b, 0xda, 0x5a, 0x6f, 0xeb, 0xcd, 0xaf, 0x6d, 0x35, 0x37, 0x36, 0x6b, 0x59, 0xed, 0x87, - 0x0a, 0x5c, 0x6c, 0x61, 0xda, 0x1b, 0xe6, 0xe2, 0xa9, 0x38, 0xf0, 0x82, 0x79, 0xfc, 0x9b, 0x90, - 0xf7, 0xa8, 0x2f, 0x7a, 0x24, 0xc7, 0xeb, 0x23, 0x47, 0xd4, 0xfe, 0x17, 0x6a, 0xef, 0xb9, 0x96, - 0x33, 0x69, 0xf8, 0xf8, 0x0a, 0x9c, 0x63, 0xe8, 0x9b, 0x6e, 0x1f, 0x0d, 0xdd, 0x09, 0x42, 0x9a, - 0x6b, 0x50, 0x0d, 0x22, 0x60, 0x4c, 0x38, 0x13, 0x03, 0x5b, 0xa6, 0xf6, 0x04, 0xce, 0x3d, 0xb2, - 0x8c, 0xbd, 0xd3, 0xaa, 0x79, 0xff, 0x9e, 0x85, 0xf9, 0x81, 0x30, 0x36, 0x61, 0xfc, 0x62, 0xeb, - 0xba, 0x07, 0x0e, 0x95, 0x5c, 0x4c, 0x11, 0xc7, 0x2d, 0x53, 0xbd, 0x9b, 0x4a, 0x5b, 0x2b, 0x4b, - 0x17, 0x07, 0x04, 0xb9, 0x11, 0x78, 0x96, 0xd3, 0xe1, 0xa2, 0x8c, 0x53, 0xba, 0xb3, 0x90, 0xf7, - 0x0d, 0xd7, 0xa3, 0xe8, 0x80, 0xb2, 0x3a, 0x1f, 0x30, 0xff, 0xe2, 0xf7, 0xb7, 0xf9, 0x44, 0x1e, - 0x27, 0xa2, 0x31, 0xb3, 0x78, 0xa7, 0xdf, 0x6d, 0xf3, 0xc9, 0x02, 0xb7, 0x78, 0xa7, 0xdf, 0xdd, - 0x08, 0x09, 0x23, 0xc7, 0x54, 0x4c, 0x39, 0xa6, 0x94, 0x37, 0x28, 0x9d, 0xc4, 0x1b, 0x94, 0xa7, - 0xca, 0x11, 0xdf, 0x81, 0x0a, 0x3d, 0xec, 0x59, 0x9e, 0xe8, 0x84, 0xc1, 0x78, 0x62, 0x8e, 0x8e, - 0xc4, 0x2a, 0xe4, 0x3c, 0xe2, 0xec, 0xa1, 0xf7, 0xca, 0xea, 0xf8, 0xad, 0x6a, 0x50, 0x65, 0x5e, - 0x2f, 0x96, 0x03, 0xf3, 0x4e, 0x55, 0xbd, 0xd2, 0x25, 0x87, 0xeb, 0x42, 0x14, 0xda, 0x9f, 0x15, - 0x38, 0x37, 0x70, 0xd7, 0xe8, 0x3a, 0xee, 0x40, 0xd1, 0xc3, 0x51, 0xe8, 0x36, 0x12, 0x55, 0xe1, - 0x60, 0x9a, 0x13, 0x62, 0xab, 0x2b, 0x50, 0xe5, 0x1a, 0x10, 0x92, 0x67, 0x26, 0x21, 0x9f, 0x41, - 0x1a, 0x5d, 0xac, 0x91, 0x4a, 0x52, 0xb3, 0xe3, 0x92, 0xd4, 0xdc, 0x40, 0x92, 0xba, 0x88, 0x3a, - 0xbc, 0x3f, 0x71, 0x02, 0xf7, 0x5d, 0x05, 0xce, 0x3c, 0xb6, 0x9c, 0xbd, 0xd3, 0xab, 0xfc, 0xa7, - 0xae, 0xd4, 0x7f, 0xaf, 0x40, 0x83, 0x89, 0x3e, 0x99, 0xba, 0x47, 0xc6, 0x3c, 0xa6, 0xfe, 0x7a, - 0x0b, 0xf2, 0xb6, 0xd5, 0xb5, 0x82, 0x89, 0x1c, 0x2e, 0x62, 0xaa, 0xff, 0x07, 0xc5, 0x1d, 0xd7, - 0x3b, 0x20, 0x9e, 0x29, 0xec, 0xf1, 0x38, 0x2e, 0x43, 0x54, 0x29, 0xfa, 0xe4, 0x12, 0xd1, 0xc7, - 0x83, 0x79, 0xc6, 0x3d, 0x0a, 0xdc, 0x3f, 0xae, 0x28, 0x18, 0x11, 0xbe, 0xe2, 0x13, 0x64, 0x27, - 0x3d, 0x81, 0xb6, 0x04, 0xe7, 0xa2, 0x3d, 0x27, 0xf4, 0x7c, 0xda, 0xc7, 0x0a, 0xdc, 0x64, 0x44, - 0x03, 0x3a, 0xe8, 0x2f, 0x7b, 0x6e, 0xdf, 0x31, 0x9f, 0x72, 0x45, 0x9c, 0x26, 0x6b, 0x57, 0x97, - 0x92, 0xc2, 0x1f, 0xf4, 0x6b, 0x5b, 0x83, 0xd2, 0x97, 0x3d, 0x65, 0x36, 0xe1, 0x29, 0xb5, 0xdf, - 0x29, 0x70, 0x69, 0x38, 0x8b, 0x53, 0xf2, 0x75, 0x01, 0xca, 0xe1, 0x1e, 0xa1, 0x9b, 0x2f, 0x89, - 0x4d, 0xfc, 0x17, 0x90, 0xf7, 0xc8, 0xbb, 0xff, 0x5b, 0x06, 0x54, 0xc6, 0xf0, 0x13, 0x12, 0x18, - 0xbb, 0xb1, 0xca, 0x46, 0x3b, 0x28, 0x13, 0xef, 0x70, 0x1f, 0xaa, 0xa4, 0x1f, 0xec, 0xba, 0x9e, - 0x15, 0x90, 0xc0, 0xda, 0x9f, 0xa4, 0x2d, 0x92, 0x24, 0xc0, 0xbb, 0x20, 0xdb, 0xd4, 0x9e, 0x28, - 0xc6, 0x70, 0x54, 0x2c, 0xa6, 0x2d, 0xa7, 0xed, 0x5b, 0x1f, 0x52, 0x61, 0xb0, 0xc7, 0xf2, 0x5a, - 0xec, 0x5a, 0xce, 0x86, 0xf5, 0x21, 0x45, 0x3a, 0x72, 0xc8, 0xe9, 0xf2, 0x93, 0xd0, 0x91, 0x43, - 0xa4, 0x5b, 0x82, 0xfc, 0x07, 0x7d, 0xea, 0x1d, 0x89, 0xf7, 0x8e, 0x31, 0x3c, 0x22, 0xaa, 0x76, - 0x08, 0x75, 0x26, 0xe2, 0xa1, 0x75, 0xe1, 0x0b, 0x08, 0xfa, 0x75, 0xa8, 0x19, 0xc4, 0xd8, 0xa5, - 0x64, 0xdb, 0xa6, 0xc9, 0x66, 0xc0, 0x5c, 0x04, 0x17, 0xbe, 0xf4, 0x17, 0x0a, 0x2c, 0xb0, 0xad, - 0x87, 0x57, 0x7f, 0xff, 0x05, 0x45, 0x91, 0x49, 0x08, 0x1d, 0x2c, 0xf0, 0x44, 0x22, 0x55, 0x81, - 0x66, 0x06, 0x2a, 0xd0, 0x53, 0xd4, 0xbf, 0x9f, 0x29, 0x70, 0x83, 0x71, 0x28, 0x27, 0x50, 0xa3, - 0x4c, 0x7a, 0x92, 0x94, 0xea, 0xb4, 0x0d, 0xfa, 0xb7, 0x0a, 0x5c, 0x1c, 0xca, 0xdf, 0x54, 0x4c, - 0x7d, 0x5e, 0xd6, 0xfc, 0x97, 0x0c, 0x9c, 0x4f, 0x72, 0x1b, 0xf1, 0xb9, 0x0a, 0xb3, 0x06, 0x09, - 0x68, 0xc7, 0xf5, 0x8e, 0xda, 0x7e, 0x40, 0xbc, 0x50, 0xe3, 0x8e, 0x17, 0x50, 0x35, 0xa4, 0xd9, - 0x60, 0x24, 0xea, 0xbb, 0x30, 0x13, 0x2d, 0x42, 0x1d, 0x73, 0x22, 0x19, 0x57, 0x42, 0x8a, 0xa6, - 0x63, 0xaa, 0xef, 0x00, 0xe0, 0xe6, 0x3c, 0x53, 0xca, 0x4e, 0x40, 0x5e, 0x46, 0x7c, 0x4c, 0x95, - 0xee, 0x40, 0x89, 0x3a, 0x26, 0x27, 0xcd, 0x4d, 0x40, 0x5a, 0xa4, 0x8e, 0x89, 0x84, 0x91, 0x84, - 0x0b, 0x2f, 0x20, 0xe1, 0x52, 0x42, 0xc2, 0x6f, 0xf2, 0xb8, 0xc5, 0x42, 0x56, 0x32, 0x5e, 0x8e, - 0x32, 0x26, 0xed, 0xc7, 0x0a, 0xe4, 0xd1, 0xbb, 0x32, 0x35, 0xeb, 0xb2, 0x0f, 0x29, 0xb4, 0xe1, - 0xb8, 0x65, 0xaa, 0xd7, 0x87, 0x39, 0xcf, 0xd2, 0x69, 0x38, 0x48, 0x15, 0x72, 0x91, 0x73, 0xcc, - 0xeb, 0xf8, 0xad, 0xdd, 0x85, 0x32, 0x72, 0x84, 0xe9, 0xe2, 0x1b, 0xc0, 0xb9, 0xa0, 0x43, 0xeb, - 0x57, 0xc4, 0xd3, 0x43, 0x0c, 0xed, 0xaf, 0x0a, 0xcc, 0xc8, 0x7e, 0x6c, 0xa0, 0x55, 0x51, 0x87, - 0xa2, 0xdf, 0x47, 0x37, 0x13, 0x16, 0x11, 0x62, 0x28, 0x77, 0x77, 0xb3, 0xc9, 0xee, 0xae, 0x2a, - 0x3a, 0xcc, 0x82, 0xc5, 0xc1, 0x26, 0x72, 0x3e, 0xd5, 0x44, 0x4e, 0xa5, 0xfa, 0x85, 0xa9, 0x52, - 0xfd, 0xcb, 0x89, 0x8e, 0x6e, 0x11, 0xe5, 0x2c, 0x77, 0x6d, 0xbf, 0x03, 0x35, 0xf9, 0x84, 0x28, - 0xa3, 0x7b, 0x50, 0x75, 0x64, 0xef, 0x2d, 0x24, 0x95, 0x78, 0x25, 0x90, 0x89, 0xf4, 0x24, 0xfa, - 0x34, 0x2e, 0xfb, 0x19, 0xd4, 0x9f, 0x79, 0x6e, 0xd7, 0x15, 0x1d, 0xcc, 0x53, 0xa8, 0x0a, 0xdf, - 0x87, 0x33, 0x3a, 0x25, 0xe6, 0xc9, 0xdb, 0x8c, 0x92, 0x8a, 0x67, 0x13, 0x2a, 0xfe, 0x2d, 0x58, - 0x18, 0xd8, 0x21, 0x62, 0xfa, 0xde, 0x90, 0x1e, 0xe3, 0x15, 0x59, 0x70, 0x43, 0x98, 0x93, 0x3b, - 0x8c, 0xef, 0x41, 0x56, 0xef, 0x19, 0xc3, 0x14, 0xad, 0x47, 0x8e, 0x6c, 0x97, 0x44, 0xd5, 0xaa, - 0x18, 0x32, 0x51, 0xec, 0x06, 0x41, 0xaf, 0xcd, 0xb8, 0x17, 0x9a, 0xc6, 0xc6, 0x8f, 0xe8, 0x91, - 0xf6, 0x1c, 0x8a, 0x1b, 0xd4, 0xf7, 0xd9, 0xf1, 0x98, 0x3a, 0xa2, 0x52, 0xf0, 0x45, 0x4b, 0x7a, - 0x38, 0x8c, 0x9f, 0xb8, 0x33, 0xd2, 0x13, 0x37, 0x53, 0xc8, 0xbe, 0xd9, 0x6b, 0xf3, 0x99, 0xf0, - 0xed, 0xc6, 0xec, 0x6d, 0xe2, 0xfb, 0xf7, 0x67, 0x19, 0xa8, 0x26, 0x8e, 0x70, 0x8a, 0xd2, 0x65, - 0xfc, 0xec, 0x33, 0x8b, 0x16, 0xbe, 0x9e, 0x0f, 0xe4, 0x9e, 0x6f, 0x3e, 0xd1, 0xf3, 0x55, 0x6f, - 0xc0, 0x5c, 0x8f, 0x7a, 0x5d, 0x0b, 0xcf, 0xd9, 0xf6, 0x28, 0x31, 0x45, 0x1d, 0x3d, 0x1b, 0x83, - 0x99, 0xcc, 0x99, 0x56, 0x4a, 0x88, 0x07, 0x9e, 0x15, 0xf0, 0xa7, 0x95, 0xbc, 0x2e, 0x2d, 0xf0, - 0x75, 0x06, 0xfe, 0xe2, 0x8a, 0x6b, 0xed, 0x00, 0x6a, 0x09, 0xc9, 0x2e, 0x1b, 0x7b, 0xa7, 0xd9, - 0x21, 0x97, 0xc5, 0x9e, 0x4b, 0x28, 0x75, 0x13, 0xe6, 0xd3, 0x1b, 0xfb, 0xea, 0x9b, 0x90, 0x23, - 0xc6, 0x5e, 0xa8, 0xc6, 0x17, 0x65, 0x35, 0x4e, 0x23, 0xeb, 0x88, 0xa9, 0x35, 0x61, 0x36, 0x69, - 0x17, 0xea, 0x6d, 0x28, 0x72, 0xed, 0x0e, 0x97, 0x59, 0x18, 0xb9, 0x8c, 0x1e, 0x62, 0x6a, 0xef, - 0xa7, 0xb8, 0x41, 0xb7, 0xf4, 0x22, 0x2b, 0x8d, 0xec, 0x41, 0xfe, 0x2a, 0x07, 0x10, 0xe7, 0x0d, - 0x03, 0xf6, 0xc6, 0xac, 0xc2, 0x0a, 0x6c, 0x1a, 0x59, 0x05, 0x1b, 0xa4, 0xdb, 0xcc, 0xd9, 0xc1, - 0x36, 0x73, 0x03, 0x4a, 0x61, 0x02, 0x80, 0x02, 0xae, 0xea, 0xd1, 0x98, 0x15, 0xc6, 0xbe, 0xeb, - 0x05, 0x6d, 0xd7, 0x33, 0xa9, 0x87, 0x6a, 0x5c, 0xd5, 0xcb, 0x0c, 0xf2, 0x94, 0x01, 0xa2, 0xd0, - 0x55, 0xc0, 0x09, 0xfc, 0xe6, 0x31, 0x54, 0xe4, 0xed, 0x45, 0x84, 0x47, 0xa9, 0xf9, 0x40, 0xd7, - 0xa4, 0x34, 0xd0, 0x35, 0xc1, 0x7f, 0x34, 0x11, 0xa7, 0x8d, 0xcf, 0xe1, 0xa8, 0x88, 0x25, 0xc6, - 0x8e, 0xd3, 0xc4, 0x7f, 0xf4, 0x5c, 0x02, 0x60, 0xf9, 0x05, 0x31, 0x30, 0x02, 0x03, 0x67, 0x87, - 0x3a, 0xe6, 0x32, 0x02, 0xd8, 0x34, 0xb6, 0x36, 0x78, 0x43, 0xb1, 0xc2, 0xa7, 0x19, 0x44, 0x67, - 0x80, 0x44, 0x6f, 0x6a, 0xe6, 0xf8, 0xde, 0x54, 0x75, 0x2a, 0xf3, 0xf9, 0x52, 0x22, 0x67, 0x9a, - 0x1d, 0x4b, 0x2b, 0x65, 0x4c, 0x6f, 0x4b, 0x19, 0xd3, 0xdc, 0x58, 0xc2, 0x28, 0x5f, 0x6a, 0x40, - 0xc9, 0xec, 0x7b, 0x18, 0xbb, 0xea, 0x35, 0x7e, 0x67, 0xe1, 0x58, 0xdb, 0x86, 0xd9, 0x58, 0x4b, - 0x50, 0x0b, 0xef, 0x42, 0x25, 0x4e, 0x76, 0x43, 0x4d, 0x3c, 0x2f, 0x6b, 0xa2, 0x94, 0x3c, 0xcb, - 0xa8, 0x23, 0x55, 0xf1, 0x4f, 0x0a, 0x9c, 0x4d, 0x27, 0xdc, 0xff, 0x09, 0xad, 0xad, 0x7f, 0x66, - 0xe0, 0xec, 0x16, 0xba, 0x36, 0xd1, 0x7e, 0x0a, 0x63, 0xa4, 0xdc, 0x60, 0x55, 0xa6, 0x6a, 0xb0, - 0xbe, 0x0b, 0x33, 0xa6, 0xe5, 0xf7, 0x6c, 0x72, 0xd4, 0x46, 0xea, 0xcc, 0x04, 0xd4, 0x15, 0x41, - 0xb1, 0x4e, 0xd0, 0x39, 0xcb, 0xef, 0x39, 0x93, 0x24, 0x96, 0xd2, 0x6b, 0xcf, 0x1d, 0xe9, 0x0d, - 0x29, 0x37, 0x01, 0x69, 0xf4, 0xc2, 0x74, 0x17, 0x4a, 0xb6, 0xcb, 0xb3, 0x23, 0x51, 0x7e, 0x8f, - 0x39, 0x70, 0x88, 0xcd, 0x28, 0x99, 0x3a, 0x7f, 0xe8, 0x3a, 0x74, 0xa2, 0x1a, 0x3c, 0xc2, 0xd6, - 0xfe, 0x90, 0x01, 0x95, 0x4b, 0x7f, 0xc2, 0xd6, 0x22, 0xf3, 0xf6, 0x13, 0x0b, 0x95, 0x77, 0xc8, - 0xee, 0x0d, 0xfa, 0xc3, 0xf1, 0xb7, 0x21, 0x79, 0xcb, 0x17, 0x16, 0x68, 0xf2, 0x1a, 0xf3, 0xd3, - 0x5d, 0x63, 0xf8, 0x68, 0x57, 0x98, 0xec, 0xd1, 0x4e, 0xfb, 0x49, 0x0e, 0x72, 0xf8, 0xa2, 0x94, - 0x0e, 0x12, 0xf2, 0xbf, 0x3b, 0x32, 0xa9, 0x7f, 0x77, 0xbc, 0x9a, 0xd2, 0xd4, 0x30, 0x56, 0x48, - 0xba, 0x38, 0xe6, 0x7f, 0x03, 0xc7, 0xbf, 0x58, 0x46, 0xfa, 0x24, 0x5e, 0x2c, 0x23, 0x8d, 0x69, - 0x48, 0x1a, 0x23, 0x1e, 0x0d, 0xc2, 0x71, 0xc2, 0x69, 0x97, 0x52, 0x4e, 0xfb, 0x0a, 0x54, 0xa4, - 0x27, 0x5b, 0x8c, 0x16, 0x65, 0x1d, 0xe2, 0x17, 0x5b, 0x16, 0x4c, 0xb8, 0xa4, 0xd8, 0x34, 0x70, - 0x6a, 0x0e, 0x68, 0x99, 0xea, 0x35, 0xa8, 0x76, 0x48, 0x97, 0x1a, 0x18, 0x6a, 0x18, 0x42, 0x85, - 0xf7, 0x05, 0x62, 0x20, 0xcf, 0xda, 0xfd, 0x80, 0x12, 0xfc, 0x7f, 0xed, 0x8c, 0x28, 0x97, 0xd8, - 0xb8, 0x85, 0xcd, 0x5a, 0xd7, 0xb1, 0x2d, 0x87, 0x47, 0x8b, 0x92, 0x2e, 0x46, 0xa9, 0x07, 0xd3, - 0xd9, 0xf4, 0x83, 0x69, 0x2a, 0xd2, 0xcc, 0x9d, 0x24, 0x51, 0xab, 0x4d, 0x95, 0xa8, 0x7d, 0x2f, - 0x03, 0xd5, 0xa8, 0x2c, 0x0e, 0xdf, 0x30, 0x31, 0xb5, 0x4a, 0xbc, 0x8e, 0x5e, 0x4b, 0x3f, 0x3b, - 0x46, 0xf8, 0xf1, 0x48, 0x87, 0x7e, 0x54, 0x5f, 0x37, 0x3e, 0x55, 0xa0, 0x1c, 0xcd, 0xa8, 0x37, - 0x20, 0x8f, 0xcb, 0x09, 0x37, 0x39, 0xe4, 0xad, 0x95, 0xcf, 0x7f, 0x31, 0xcf, 0x98, 0xb7, 0x20, - 0x8f, 0x05, 0x9b, 0xfa, 0xdf, 0x90, 0x97, 0x1f, 0x6e, 0x07, 0xdf, 0x5a, 0xf9, 0xb4, 0xf6, 0x51, - 0x06, 0x2e, 0x61, 0x86, 0x7d, 0xc2, 0x7f, 0x9f, 0xa8, 0xdf, 0x80, 0x02, 0x0f, 0x6d, 0xe2, 0xbc, - 0xf7, 0xe5, 0x1d, 0x8f, 0xdd, 0x61, 0x30, 0xee, 0x21, 0xba, 0x2e, 0xd6, 0x6b, 0xec, 0xc0, 0xf9, - 0xe1, 0x18, 0xf1, 0xe3, 0x9e, 0x32, 0xea, 0x71, 0x2f, 0x93, 0x7a, 0xdc, 0x93, 0xcd, 0x2d, 0x9b, - 0x34, 0x37, 0xed, 0x07, 0x19, 0x50, 0x71, 0xdd, 0x93, 0x16, 0x52, 0x51, 0xbd, 0x94, 0x1d, 0x51, - 0x2f, 0xe5, 0x92, 0x15, 0xc0, 0xda, 0x60, 0xbd, 0x34, 0x41, 0x47, 0x38, 0x5d, 0x4c, 0x3d, 0x18, - 0x52, 0x4c, 0x4d, 0xd0, 0x6e, 0x4a, 0x57, 0x5a, 0xda, 0x73, 0x68, 0x0c, 0x4a, 0xc1, 0x8f, 0x13, - 0x85, 0x54, 0xc6, 0x7f, 0x79, 0xe0, 0x9e, 0x47, 0x14, 0x10, 0xdf, 0xcf, 0xc0, 0x45, 0x9c, 0x4f, - 0x27, 0x56, 0x53, 0x35, 0x32, 0x9f, 0xa7, 0xd4, 0xec, 0xde, 0xc0, 0xf6, 0x23, 0x96, 0x5f, 0x4c, - 0xc3, 0x93, 0x4a, 0x46, 0xe1, 0xdc, 0x50, 0x84, 0xd3, 0xd5, 0xb1, 0x95, 0xaf, 0xc2, 0x82, 0xe1, - 0x76, 0x17, 0x77, 0xa9, 0xe7, 0x5a, 0x86, 0x4d, 0xb6, 0x7d, 0x89, 0xfd, 0x95, 0xf2, 0x3a, 0x7e, - 0x2f, 0xf7, 0xac, 0x67, 0xca, 0x37, 0xb3, 0xa4, 0x67, 0xfd, 0x32, 0x93, 0x5b, 0x7f, 0xf4, 0x6c, - 0xe5, 0x37, 0x99, 0x02, 0x9f, 0xd9, 0x2e, 0xe0, 0x0d, 0xde, 0xfe, 0x77, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x94, 0xce, 0xfb, 0xd8, 0x09, 0x32, 0x00, 0x00, + 0xd5, 0xdb, 0xbe, 0xfb, 0x78, 0x3c, 0xe3, 0x54, 0x2e, 0x9f, 0xe3, 0x5c, 0xb7, 0x93, 0xfd, 0x92, + 0xd5, 0x7e, 0xdf, 0x64, 0x77, 0xf2, 0xed, 0x97, 0xc0, 0x42, 0x36, 0x73, 0x71, 0x22, 0x6f, 0x92, + 0x49, 0xe8, 0x99, 0x09, 0x08, 0x1e, 0xbc, 0x35, 0xdd, 0x35, 0x9e, 0x66, 0xda, 0xdd, 0xde, 0xee, + 0xf6, 0x5c, 0x56, 0xf0, 0x00, 0x42, 0x62, 0x9f, 0x10, 0xe2, 0x89, 0x17, 0x60, 0x85, 0x10, 0xda, + 0x05, 0x89, 0x5f, 0xc0, 0x3b, 0xef, 0x08, 0x10, 0x6f, 0xc0, 0x23, 0x12, 0xff, 0x00, 0x09, 0xa1, + 0x3a, 0x55, 0xdd, 0xae, 0x6e, 0xdb, 0x33, 0x76, 0x66, 0xb2, 0x2b, 0xf1, 0x62, 0x75, 0x9d, 0x3a, + 0xa7, 0xea, 0xd4, 0xa9, 0x73, 0x2f, 0x43, 0x95, 0xf6, 0xec, 0x5b, 0xb4, 0x67, 0xcf, 0xf7, 0x7c, + 0x2f, 0xf4, 0x08, 0xb8, 0x74, 0x87, 0x76, 0xe9, 0x3c, 0xed, 0xd9, 0x8d, 0x2b, 0x1d, 0xcf, 0xeb, + 0x38, 0xec, 0x16, 0xce, 0x6c, 0xf6, 0xb7, 0x6e, 0x85, 0x76, 0x97, 0x05, 0x21, 0xed, 0xf6, 0x04, + 0x72, 0xe3, 0x72, 0x1a, 0x61, 0xcf, 0xa7, 0xbd, 0x1e, 0xf3, 0x03, 0x31, 0xaf, 0xff, 0x43, 0x83, + 0xe2, 0xa2, 0x69, 0x7a, 0x7d, 0x37, 0x24, 0xd7, 0x21, 0xd7, 0x0f, 0x98, 0x5f, 0xd7, 0xae, 0x6a, + 0x37, 0x2b, 0x0b, 0xb5, 0xf9, 0xc1, 0x3e, 0xf3, 0x1b, 0x01, 0xf3, 0x0d, 0x9c, 0x25, 0xe7, 0xa0, + 0xb0, 0x47, 0x1d, 0x87, 0x85, 0xf5, 0xcc, 0x55, 0xed, 0x66, 0xd9, 0x90, 0x23, 0x72, 0x06, 0xf2, + 0xac, 0x4b, 0x6d, 0xa7, 0x9e, 0x45, 0xb0, 0x18, 0x90, 0xdb, 0x50, 0xb4, 0xd8, 0xae, 0x6d, 0xb2, + 0xa0, 0x9e, 0xbb, 0x9a, 0xbd, 0x59, 0x59, 0x38, 0xaf, 0x2e, 0x2b, 0x77, 0x5e, 0x41, 0x0c, 0x23, + 0xc2, 0x24, 0x17, 0xa0, 0x6c, 0xf6, 0x83, 0xd0, 0xeb, 0xb6, 0x6d, 0xab, 0x9e, 0xc7, 0xe5, 0x4a, + 0x02, 0xd0, 0xb2, 0xc8, 0x3b, 0x50, 0xd9, 0x65, 0xbe, 0xbd, 0x75, 0xd0, 0xe6, 0x67, 0xad, 0x17, + 0x90, 0xd9, 0xc6, 0xbc, 0x38, 0xe7, 0x7c, 0x74, 0xce, 0xf9, 0xf5, 0x48, 0x10, 0x06, 0x08, 0x74, + 0x0e, 0xd0, 0xaf, 0x40, 0x55, 0xee, 0xb9, 0x8c, 0xeb, 0x91, 0x59, 0xc8, 0xd8, 0x16, 0x9e, 0xb8, + 0x6c, 0x64, 0x6c, 0x4b, 0x41, 0x10, 0x4c, 0x0d, 0x21, 0xdc, 0x87, 0x19, 0x89, 0xd0, 0xc4, 0x03, + 0xc6, 0xc7, 0xd6, 0xd4, 0x63, 0x37, 0xa0, 0xd4, 0xa3, 0x41, 0xb0, 0xe7, 0xf9, 0x96, 0x14, 0x53, + 0x3c, 0xd6, 0x6f, 0xc0, 0x9c, 0x5c, 0xe1, 0x01, 0x35, 0xd9, 0xa6, 0xe7, 0xed, 0xf0, 0x45, 0x42, + 0x6f, 0x87, 0xb9, 0xd1, 0x22, 0x38, 0xd0, 0x7f, 0xaf, 0xc1, 0x29, 0x89, 0xf9, 0x90, 0x76, 0xd9, + 0x32, 0x73, 0x43, 0xe6, 0x73, 0xe1, 0xf4, 0x1c, 0x7a, 0xc0, 0xfc, 0x76, 0xcc, 0x57, 0x49, 0x00, + 0x5a, 0x16, 0x9f, 0xdc, 0xec, 0xbb, 0x96, 0xc3, 0xf8, 0xa4, 0xdc, 0x58, 0x00, 0x5a, 0x16, 0x79, + 0x03, 0x4e, 0xc5, 0xea, 0xd1, 0x0e, 0x98, 0xe9, 0xb9, 0x56, 0x80, 0xb7, 0x95, 0x35, 0x6a, 0xf1, + 0xc4, 0x9a, 0x80, 0x13, 0x02, 0xb9, 0x80, 0x3a, 0x61, 0x3d, 0x87, 0x8b, 0xe0, 0x37, 0xb9, 0x08, + 0xe5, 0xc0, 0xee, 0xb8, 0x34, 0xec, 0xfb, 0x4c, 0xde, 0xcb, 0x00, 0x40, 0xae, 0xc3, 0x6c, 0xaf, + 0xbf, 0xe9, 0xd8, 0x66, 0x7b, 0x87, 0x1d, 0xb4, 0xfb, 0xbe, 0x83, 0x77, 0x53, 0x36, 0x66, 0x04, + 0xf4, 0x11, 0x3b, 0xd8, 0xf0, 0x1d, 0xfd, 0xb5, 0x58, 0xc0, 0x0f, 0xf1, 0xc6, 0xc6, 0x9c, 0xfd, + 0x7a, 0x2c, 0xe6, 0xb5, 0x90, 0xd1, 0xee, 0x18, 0xac, 0x65, 0x38, 0xb5, 0x68, 0x59, 0x0f, 0x7c, + 0x9b, 0xb9, 0x56, 0x60, 0xb0, 0x0f, 0xfa, 0x2c, 0x08, 0x49, 0x0d, 0xb2, 0xb6, 0x15, 0xd4, 0xb5, + 0xab, 0xd9, 0x9b, 0x65, 0x83, 0x7f, 0x72, 0xbe, 0xb9, 0xea, 0xba, 0xb4, 0xcb, 0x82, 0x7a, 0x06, + 0xe1, 0x03, 0x80, 0xfe, 0x18, 0xce, 0x2c, 0x5a, 0xd6, 0x43, 0xdf, 0xeb, 0xf7, 0xb8, 0x9a, 0xc7, + 0xeb, 0x9c, 0x87, 0x52, 0x87, 0x03, 0x07, 0x72, 0x2e, 0xe2, 0xb8, 0x65, 0xf1, 0x29, 0x4e, 0xdf, + 0xe6, 0xfb, 0x88, 0xf5, 0x8a, 0x7c, 0xdc, 0xb2, 0x02, 0xfd, 0x63, 0x0d, 0xce, 0x2f, 0xf6, 0xc3, + 0x6d, 0xe6, 0x86, 0xb6, 0x49, 0x43, 0x26, 0xf4, 0x2c, 0x5a, 0xf3, 0x36, 0x14, 0xa9, 0x38, 0x96, + 0xb4, 0xb2, 0x51, 0xe6, 0x20, 0x49, 0x22, 0x4c, 0xb2, 0x00, 0x05, 0xd3, 0x67, 0x34, 0x64, 0x78, + 0xa3, 0xa3, 0x94, 0x7d, 0xc9, 0xf3, 0x9c, 0xe7, 0xd4, 0xe9, 0x33, 0x43, 0x62, 0x72, 0x05, 0x8c, + 0x4e, 0x28, 0x0d, 0x32, 0x1e, 0x0f, 0xb1, 0x28, 0xcd, 0x6f, 0x1a, 0x16, 0x23, 0x8b, 0x7d, 0x59, + 0x2c, 0xfe, 0x54, 0x83, 0xba, 0xca, 0x22, 0xda, 0x5a, 0xc4, 0xe1, 0x42, 0x9a, 0xc3, 0xfa, 0x08, + 0x0e, 0x05, 0xc5, 0x4b, 0x63, 0xf0, 0x0f, 0x1a, 0x5c, 0x50, 0x19, 0x8c, 0x4c, 0x39, 0xe2, 0xf1, + 0xed, 0x34, 0x8f, 0x17, 0x46, 0xf0, 0x18, 0x13, 0xbd, 0x2c, 0x36, 0xc9, 0x3c, 0xe4, 0x82, 0x03, + 0xd7, 0x44, 0x2b, 0x3e, 0x7c, 0x35, 0xc4, 0xd3, 0x3f, 0xd1, 0xe0, 0x92, 0x7a, 0xac, 0x81, 0xdf, + 0x89, 0x0e, 0x76, 0x27, 0x7d, 0xb0, 0x4b, 0x23, 0x0e, 0xa6, 0x90, 0x7d, 0x66, 0x5a, 0x2c, 0xdc, + 0xc9, 0x54, 0x5a, 0x2c, 0x49, 0x3e, 0x33, 0x2d, 0x46, 0x57, 0x36, 0x95, 0x16, 0x0b, 0x8a, 0x97, + 0xc6, 0x60, 0x13, 0x4e, 0x2f, 0x39, 0x9e, 0xb9, 0x73, 0x4c, 0x0f, 0xfa, 0x51, 0x16, 0x66, 0x97, + 0xb7, 0xa9, 0xeb, 0x32, 0xe7, 0x09, 0x0b, 0x02, 0xda, 0x61, 0xe4, 0x12, 0x80, 0x29, 0x20, 0x03, + 0xf7, 0x59, 0x96, 0x90, 0x96, 0xc5, 0xa7, 0xbb, 0x02, 0x73, 0x10, 0xa8, 0xca, 0x12, 0xd2, 0xb2, + 0xc8, 0x2d, 0xc8, 0x99, 0x9e, 0x25, 0xf8, 0xe5, 0xa6, 0x93, 0x3e, 0x65, 0xcb, 0x0d, 0x6f, 0x2f, + 0x48, 0xbd, 0xe5, 0x88, 0x3c, 0xee, 0x05, 0xcc, 0xb5, 0x44, 0x50, 0x14, 0x21, 0xab, 0x24, 0x00, + 0x2d, 0x2b, 0x21, 0x81, 0x7c, 0xca, 0x40, 0xea, 0x50, 0x34, 0x3d, 0x37, 0x64, 0x6e, 0x28, 0xa3, + 0x55, 0x34, 0xe4, 0x79, 0x86, 0x90, 0xa0, 0xc8, 0x33, 0x8a, 0x47, 0xe7, 0x19, 0x02, 0x9d, 0x03, + 0x38, 0x71, 0xbf, 0x67, 0xc5, 0xc4, 0xa5, 0xa3, 0x89, 0x05, 0x3a, 0x12, 0x7f, 0x11, 0x80, 0x67, + 0x68, 0x76, 0x80, 0x6c, 0x95, 0x8f, 0xbc, 0x69, 0x05, 0x5b, 0xff, 0x81, 0x06, 0x24, 0x79, 0x15, + 0x8f, 0xed, 0x20, 0x24, 0xff, 0x0f, 0x25, 0x29, 0x5d, 0x71, 0xad, 0x7c, 0x41, 0x45, 0xdb, 0x92, + 0x14, 0x46, 0x8c, 0x4b, 0xae, 0x40, 0xc5, 0x65, 0xfb, 0x61, 0xdb, 0xec, 0xfb, 0x81, 0xe7, 0xcb, + 0x8b, 0x02, 0x0e, 0x5a, 0x46, 0x08, 0x47, 0xe8, 0xf9, 0x6c, 0x37, 0x42, 0x10, 0x0a, 0x06, 0x1c, + 0x24, 0x10, 0xf4, 0x1f, 0x73, 0x86, 0x50, 0x30, 0x18, 0x61, 0x23, 0x15, 0x23, 0x90, 0xc3, 0xfb, + 0x10, 0x9a, 0x81, 0xdf, 0xe4, 0x2a, 0x54, 0x2c, 0x16, 0x98, 0xbe, 0xdd, 0x0b, 0x6d, 0xcf, 0x95, + 0x9b, 0xa9, 0x20, 0x1e, 0x77, 0x1d, 0xea, 0x76, 0xda, 0x21, 0xed, 0xc8, 0xad, 0x8a, 0x7c, 0xbc, + 0x4e, 0x3b, 0x5c, 0xa3, 0xe8, 0x2e, 0x0d, 0xa9, 0x8f, 0x99, 0x87, 0x50, 0x81, 0xb2, 0x80, 0x6c, + 0xf8, 0x0e, 0xdf, 0xcf, 0xeb, 0x31, 0x17, 0xef, 0xbf, 0x64, 0xe0, 0xb7, 0xfe, 0x00, 0xce, 0xac, + 0x30, 0x87, 0x85, 0xec, 0x98, 0xea, 0x7f, 0x0b, 0x88, 0x58, 0x27, 0x71, 0xc2, 0xf1, 0xe9, 0x83, + 0xfe, 0x10, 0x2e, 0x0b, 0x82, 0xc7, 0x8c, 0x5a, 0xcc, 0xdf, 0xf4, 0xa8, 0x6f, 0x19, 0xcc, 0xf4, + 0xf8, 0xaf, 0x20, 0x7e, 0x0d, 0x66, 0x9d, 0xc1, 0xdc, 0x60, 0x89, 0xaa, 0x02, 0x6d, 0x59, 0xfa, + 0x3c, 0x34, 0xc4, 0x42, 0xab, 0x5e, 0x68, 0x6f, 0x71, 0x1f, 0x63, 0x7b, 0xee, 0xf8, 0x73, 0xe8, + 0x26, 0x9c, 0x15, 0xf8, 0x6b, 0xa1, 0xe7, 0xd3, 0x0e, 0x7b, 0xba, 0xf9, 0x4d, 0x66, 0x86, 0x2d, + 0x8b, 0x5c, 0x06, 0x30, 0x3d, 0xc7, 0x61, 0x26, 0x4a, 0x5e, 0xec, 0xa5, 0x40, 0xf8, 0x52, 0x3b, + 0xec, 0x40, 0x5e, 0x09, 0xff, 0xe4, 0x86, 0xb3, 0xcb, 0xd5, 0xce, 0x73, 0xa3, 0x9b, 0x90, 0x43, + 0xbd, 0x0d, 0x17, 0x46, 0x6c, 0x12, 0x73, 0x75, 0x1f, 0xc0, 0x43, 0x48, 0x3b, 0x62, 0xae, 0xb2, + 0xf0, 0xaa, 0xaa, 0x8c, 0x23, 0x39, 0x34, 0xca, 0x9e, 0xfc, 0x0a, 0xf4, 0x4f, 0x35, 0x28, 0x88, + 0x2b, 0x9b, 0xb0, 0x64, 0x79, 0x0b, 0xf2, 0x41, 0x38, 0xf0, 0x9a, 0x87, 0xfa, 0x13, 0x81, 0xa9, + 0x3f, 0x80, 0xfc, 0x1a, 0xff, 0x20, 0x00, 0x85, 0x07, 0x46, 0xab, 0xb9, 0xba, 0x52, 0x7b, 0x85, + 0xcc, 0x41, 0xa5, 0xb5, 0xfa, 0xbc, 0xb5, 0xde, 0x6c, 0xaf, 0x35, 0x57, 0xd7, 0x6b, 0x1a, 0x39, + 0x0d, 0x73, 0x12, 0x60, 0x34, 0x97, 0x9b, 0xad, 0xe7, 0xcd, 0x95, 0x5a, 0x86, 0x54, 0xa0, 0xb8, + 0xf4, 0xf8, 0xe9, 0xf2, 0xa3, 0xe6, 0x4a, 0x2d, 0xab, 0xdf, 0x81, 0xa2, 0xd4, 0x2e, 0xf2, 0x3f, + 0x50, 0xdc, 0x12, 0x9f, 0xf2, 0xd4, 0x44, 0x65, 0x57, 0x60, 0x19, 0x11, 0x8a, 0x6e, 0xc1, 0xdc, + 0x43, 0x16, 0x26, 0x12, 0xd2, 0x29, 0xf5, 0x92, 0xbc, 0x0a, 0x33, 0x5b, 0x32, 0xc3, 0x40, 0x59, + 0x67, 0x11, 0xa1, 0x12, 0xc1, 0xb8, 0x28, 0x3f, 0xc9, 0x42, 0x1e, 0xb5, 0x36, 0x5d, 0xe7, 0xa0, + 0x03, 0xe7, 0x66, 0xeb, 0xf9, 0x8a, 0x87, 0x96, 0x90, 0x96, 0x15, 0xdb, 0x6f, 0x76, 0xbc, 0xfd, + 0xe6, 0x0e, 0xb7, 0xdf, 0x7c, 0xd2, 0x7e, 0x1b, 0xdc, 0x43, 0x85, 0xd4, 0xa2, 0x21, 0x95, 0x9e, + 0x38, 0x1e, 0xa7, 0x6c, 0xbb, 0x98, 0xb6, 0xed, 0x79, 0x69, 0xdb, 0xa5, 0xa3, 0x93, 0x1c, 0x8e, + 0xc7, 0x97, 0x63, 0x56, 0x87, 0xb5, 0x45, 0xf0, 0xe5, 0xfe, 0x35, 0x6f, 0x94, 0x39, 0x64, 0x19, + 0x83, 0xec, 0x05, 0x28, 0x77, 0xe9, 0xbe, 0x9c, 0x05, 0x9c, 0x2d, 0x75, 0xe9, 0xbe, 0x98, 0x4c, + 0x45, 0x85, 0xca, 0x71, 0xa2, 0xc2, 0xcc, 0x34, 0x51, 0x41, 0x5f, 0x85, 0x32, 0xde, 0x14, 0xfa, + 0xf3, 0xd7, 0xa1, 0x80, 0xce, 0x24, 0x52, 0xa5, 0x53, 0xaa, 0x2a, 0x09, 0x37, 0x24, 0x11, 0x78, + 0xbd, 0x9e, 0xf0, 0xde, 0x72, 0xa4, 0xff, 0x4b, 0x83, 0x6a, 0x5c, 0xf4, 0xe0, 0xa2, 0x2b, 0x50, + 0x11, 0x1e, 0x8b, 0xab, 0x50, 0xb4, 0xf2, 0xb5, 0xa1, 0x95, 0x23, 0xfc, 0xc1, 0xc8, 0x80, 0x4e, + 0x5c, 0x3d, 0x35, 0x7e, 0xa9, 0x49, 0x46, 0xf9, 0xf0, 0xe5, 0x19, 0xe8, 0xfd, 0xc8, 0x40, 0x67, + 0x01, 0xd6, 0x36, 0x9e, 0x35, 0x8d, 0xc5, 0x95, 0x27, 0xad, 0xd5, 0xda, 0x2b, 0xa4, 0x0c, 0x79, + 0xf1, 0xa9, 0x71, 0xdb, 0x7d, 0xd2, 0x7c, 0xb2, 0xd4, 0x34, 0x6a, 0x19, 0x52, 0x83, 0x99, 0xf7, + 0x9e, 0xb6, 0x56, 0xdb, 0x46, 0xf3, 0x2b, 0x1b, 0xcd, 0xb5, 0xf5, 0x5a, 0x56, 0xff, 0xbe, 0x06, + 0x17, 0x5b, 0xdd, 0x9e, 0xe7, 0xc7, 0x79, 0x78, 0x2a, 0x0e, 0xbc, 0x60, 0x0e, 0xff, 0x26, 0xe4, + 0x7d, 0x16, 0xc8, 0xfe, 0xc8, 0xe1, 0xfa, 0x28, 0x10, 0xf5, 0xff, 0x85, 0xda, 0x7b, 0x9e, 0xed, + 0x4e, 0x1a, 0x3e, 0xbe, 0x04, 0x67, 0x39, 0xfa, 0xba, 0xd7, 0x47, 0x43, 0x77, 0xc3, 0x88, 0xe6, + 0x1a, 0x54, 0xc3, 0x18, 0x38, 0x20, 0x9c, 0x19, 0x00, 0x5b, 0x96, 0xfe, 0x04, 0xce, 0x3e, 0xb2, + 0xcd, 0x9d, 0x93, 0xaa, 0x77, 0xff, 0x9e, 0x85, 0x53, 0x43, 0x61, 0x6c, 0xc2, 0xf8, 0xc5, 0xd7, + 0xf5, 0xf6, 0x5c, 0xa6, 0xb8, 0x98, 0x22, 0x8e, 0x5b, 0x16, 0xb9, 0x9b, 0x4a, 0x5b, 0x2b, 0x0b, + 0x17, 0x87, 0x04, 0xb9, 0x16, 0xfa, 0xb6, 0xdb, 0x11, 0xa2, 0x1c, 0xa4, 0x74, 0x67, 0x20, 0x1f, + 0x98, 0x9e, 0xcf, 0xd0, 0x01, 0x65, 0x0d, 0x31, 0xe0, 0xfe, 0x25, 0xe8, 0x6f, 0x8a, 0x89, 0x3c, + 0x4e, 0xc4, 0x63, 0x6e, 0xf1, 0x6e, 0xbf, 0xdb, 0x16, 0x93, 0x05, 0x61, 0xf1, 0x6e, 0xbf, 0xbb, + 0x16, 0x11, 0xc6, 0x8e, 0xa9, 0x98, 0x72, 0x4c, 0x29, 0x6f, 0x50, 0x3a, 0x8e, 0x37, 0x28, 0x4f, + 0x95, 0x23, 0xbe, 0x03, 0x15, 0xb6, 0xdf, 0xb3, 0x7d, 0xd9, 0x05, 0x83, 0xa3, 0x89, 0x05, 0x3a, + 0x12, 0x13, 0xc8, 0xf9, 0xd4, 0xdd, 0x41, 0xef, 0x95, 0x35, 0xf0, 0x9b, 0xe8, 0x50, 0xe5, 0x5e, + 0x6f, 0x20, 0x07, 0xee, 0x9d, 0xaa, 0x46, 0xa5, 0x4b, 0xf7, 0x57, 0xa5, 0x28, 0xf4, 0x3f, 0x69, + 0x70, 0x76, 0xe8, 0xae, 0xd1, 0x75, 0xdc, 0x81, 0xa2, 0x8f, 0xa3, 0xc8, 0x6d, 0x24, 0xaa, 0xc2, + 0xe1, 0x34, 0x27, 0xc2, 0x26, 0x4b, 0x50, 0x15, 0x1a, 0x10, 0x91, 0x67, 0x26, 0x21, 0x9f, 0x41, + 0x1a, 0x43, 0xae, 0x91, 0x4a, 0x52, 0xb3, 0x47, 0x25, 0xa9, 0xb9, 0xa1, 0x24, 0x75, 0x1e, 0x75, + 0x78, 0x77, 0xe2, 0x04, 0xee, 0x5b, 0x70, 0xfa, 0xb1, 0xed, 0xee, 0x9c, 0x50, 0xd1, 0x3f, 0x6d, + 0x91, 0xfe, 0x5b, 0x0d, 0x1a, 0x5c, 0xea, 0xc9, 0xac, 0x3d, 0xb6, 0xe3, 0x23, 0x4a, 0xaf, 0xb7, + 0x20, 0xef, 0xd8, 0x5d, 0x3b, 0x9c, 0xc8, 0xd7, 0x22, 0x26, 0xf9, 0x3f, 0x28, 0x6e, 0x79, 0xfe, + 0x1e, 0xf5, 0x2d, 0x69, 0x8a, 0x87, 0xf1, 0x18, 0xa1, 0x2a, 0x81, 0x27, 0x97, 0x08, 0x3c, 0x3e, + 0x9c, 0xe2, 0xdc, 0xa3, 0xac, 0x83, 0xc3, 0xea, 0x81, 0x31, 0x91, 0x6b, 0x70, 0x82, 0xec, 0xa4, + 0x27, 0xd0, 0x17, 0xe0, 0x6c, 0xbc, 0xe7, 0x84, 0x4e, 0x4f, 0xff, 0x58, 0x83, 0x9b, 0x9c, 0x68, + 0x48, 0xfd, 0x82, 0x45, 0xdf, 0xeb, 0xbb, 0xd6, 0x53, 0xa1, 0x83, 0xd3, 0x24, 0xec, 0x64, 0x21, + 0x29, 0xfc, 0x61, 0x97, 0xb6, 0x31, 0x2c, 0x7d, 0xd5, 0x49, 0x66, 0x13, 0x4e, 0x52, 0xff, 0x8d, + 0x06, 0x97, 0x46, 0xb3, 0x38, 0x25, 0x5f, 0x17, 0xa0, 0x1c, 0xed, 0x11, 0x79, 0xf8, 0x92, 0xdc, + 0x24, 0x78, 0x01, 0x79, 0x8f, 0xbd, 0xfb, 0xbf, 0x65, 0x80, 0x70, 0x86, 0x9f, 0xd0, 0xd0, 0xdc, + 0x1e, 0xa8, 0x6c, 0xbc, 0x83, 0x36, 0xf1, 0x0e, 0xf7, 0xa1, 0x4a, 0xfb, 0xe1, 0xb6, 0xe7, 0xdb, + 0x21, 0x0d, 0xed, 0xdd, 0x49, 0x3a, 0x22, 0x49, 0x02, 0xbc, 0x0b, 0xba, 0xc9, 0x9c, 0x89, 0xc2, + 0x8b, 0x40, 0xc5, 0x3a, 0xda, 0x76, 0xdb, 0x81, 0xfd, 0x21, 0x93, 0xe6, 0x7a, 0x28, 0xaf, 0xc5, + 0xae, 0xed, 0xae, 0xd9, 0x1f, 0x32, 0xa4, 0xa3, 0xfb, 0x82, 0x2e, 0x3f, 0x09, 0x1d, 0xdd, 0x47, + 0xba, 0x05, 0xc8, 0x7f, 0xd0, 0x67, 0xfe, 0x81, 0x7c, 0xe6, 0x38, 0x82, 0x47, 0x44, 0xd5, 0xf7, + 0xa1, 0xce, 0x45, 0x3c, 0xb2, 0x24, 0x7c, 0x01, 0x41, 0xbf, 0x0e, 0x35, 0x93, 0x9a, 0xdb, 0x8c, + 0x6e, 0x3a, 0x2c, 0xd9, 0x07, 0x98, 0x8b, 0xe1, 0xd2, 0x8d, 0xfe, 0x4c, 0x83, 0xf3, 0x7c, 0xeb, + 0xd1, 0x85, 0xdf, 0x7f, 0x41, 0x51, 0x26, 0x11, 0x52, 0x07, 0x0b, 0x22, 0x87, 0x48, 0x15, 0x9f, + 0x99, 0xa1, 0xe2, 0xf3, 0x04, 0xf5, 0xef, 0x27, 0x1a, 0xdc, 0xe0, 0x1c, 0xaa, 0xb9, 0xd3, 0x38, + 0x93, 0x9e, 0x24, 0x9b, 0x3a, 0x69, 0x83, 0xfe, 0xb5, 0x06, 0x17, 0x47, 0xf2, 0x37, 0x15, 0x53, + 0x9f, 0x95, 0x35, 0xff, 0x25, 0x03, 0xe7, 0x92, 0xdc, 0xc6, 0x7c, 0x2e, 0xc3, 0xac, 0x49, 0x43, + 0xd6, 0xf1, 0xfc, 0x83, 0x76, 0x10, 0x52, 0x3f, 0xd2, 0xb8, 0xc3, 0x05, 0x54, 0x8d, 0x68, 0xd6, + 0x38, 0x09, 0x79, 0x17, 0x66, 0xe2, 0x45, 0x98, 0x6b, 0x4d, 0x24, 0xe3, 0x4a, 0x44, 0xd1, 0x74, + 0x2d, 0xf2, 0x0e, 0x00, 0x6e, 0x2e, 0x92, 0xa4, 0xec, 0x04, 0xe4, 0x65, 0xc4, 0xc7, 0x2c, 0xe9, + 0x0e, 0x94, 0x98, 0x6b, 0x09, 0xd2, 0xdc, 0x04, 0xa4, 0x45, 0xe6, 0x5a, 0x48, 0x18, 0x4b, 0xb8, + 0xf0, 0x02, 0x12, 0x2e, 0x25, 0x24, 0xfc, 0xa6, 0x88, 0x5b, 0x3c, 0x64, 0x25, 0xe3, 0xe5, 0x38, + 0x63, 0xd2, 0x7f, 0xa8, 0x41, 0x1e, 0xbd, 0x2b, 0x57, 0xb3, 0x2e, 0xff, 0x50, 0x42, 0x1b, 0x8e, + 0x5b, 0x16, 0xb9, 0x3e, 0xca, 0x79, 0x96, 0x4e, 0xc2, 0x41, 0x12, 0xc8, 0xc5, 0xce, 0x31, 0x6f, + 0xe0, 0xb7, 0x7e, 0x17, 0xca, 0xc8, 0x11, 0x66, 0x8a, 0x6f, 0x80, 0xe0, 0x82, 0x8d, 0x2c, 0x5d, + 0x11, 0xcf, 0x88, 0x30, 0xf4, 0xbf, 0x6a, 0x30, 0xa3, 0xfa, 0xb1, 0xa1, 0x2e, 0x45, 0x1d, 0x8a, + 0x41, 0x1f, 0xdd, 0x4c, 0x54, 0x3f, 0xc8, 0xa1, 0xda, 0xd8, 0xcd, 0x26, 0x1b, 0xbb, 0x44, 0x36, + 0x97, 0x25, 0x8b, 0xc3, 0xfd, 0xe3, 0x7c, 0xaa, 0x7f, 0x9c, 0xca, 0xf2, 0x0b, 0x53, 0x65, 0xf9, + 0x97, 0x13, 0xcd, 0xdc, 0x22, 0xca, 0x59, 0x6d, 0xd8, 0x7e, 0x1b, 0x6a, 0xea, 0x09, 0x51, 0x46, + 0xf7, 0xa0, 0xea, 0xaa, 0xde, 0x5b, 0x4a, 0x2a, 0xf1, 0x40, 0xa0, 0x12, 0x19, 0x49, 0xf4, 0x69, + 0x5c, 0xf6, 0x33, 0xa8, 0x3f, 0xf3, 0xbd, 0xae, 0x27, 0x9b, 0x97, 0x27, 0x50, 0x10, 0xbe, 0x0f, + 0xa7, 0x0d, 0x46, 0xad, 0xe3, 0x77, 0x18, 0x15, 0x15, 0xcf, 0x26, 0x54, 0xfc, 0x1b, 0x70, 0x7e, + 0x68, 0x87, 0x98, 0xe9, 0x7b, 0x23, 0xda, 0x8b, 0x57, 0x54, 0xc1, 0x8d, 0x60, 0x4e, 0x6d, 0x2e, + 0xbe, 0x07, 0x59, 0xa3, 0x67, 0x8e, 0x52, 0xb4, 0x1e, 0x3d, 0x70, 0x3c, 0x1a, 0x17, 0xaa, 0x72, + 0xc8, 0x45, 0xb1, 0x1d, 0x86, 0xbd, 0x36, 0xe7, 0x5e, 0x6a, 0x1a, 0x1f, 0x3f, 0x62, 0x07, 0xfa, + 0x73, 0x28, 0xae, 0xb1, 0x20, 0xe0, 0xc7, 0xe3, 0xea, 0x88, 0x4a, 0x21, 0x16, 0x2d, 0x19, 0xd1, + 0x70, 0xf0, 0xb2, 0x9d, 0x51, 0x5e, 0xb6, 0xb9, 0x42, 0xf6, 0xad, 0x5e, 0x5b, 0xcc, 0x44, 0xcf, + 0x36, 0x56, 0x6f, 0x1d, 0x9f, 0xbd, 0xff, 0x9c, 0x81, 0x6a, 0xe2, 0x08, 0x27, 0x28, 0x5d, 0xce, + 0xcf, 0x2e, 0xb7, 0x68, 0xe9, 0xeb, 0xc5, 0x40, 0x6d, 0xf7, 0xe6, 0x13, 0xed, 0x5e, 0x72, 0x03, + 0xe6, 0x7a, 0xcc, 0xef, 0xda, 0x78, 0xce, 0xb6, 0xcf, 0xa8, 0x25, 0x4b, 0xe8, 0xd9, 0x01, 0x98, + 0xcb, 0x9c, 0x6b, 0xa5, 0x82, 0xb8, 0xe7, 0xdb, 0xa1, 0x78, 0x55, 0xc9, 0x1b, 0xca, 0x02, 0x5f, + 0xe5, 0xe0, 0xcf, 0xaf, 0xae, 0xd6, 0xf7, 0xa0, 0x96, 0x90, 0xec, 0xa2, 0xb9, 0x73, 0x92, 0xcd, + 0x71, 0x55, 0xec, 0xb9, 0x84, 0x52, 0x37, 0xe1, 0x54, 0x7a, 0xe3, 0x80, 0xbc, 0x09, 0x39, 0x6a, + 0xee, 0x44, 0x6a, 0x7c, 0x51, 0x55, 0xe3, 0x34, 0xb2, 0x81, 0x98, 0x7a, 0x13, 0x66, 0x93, 0x76, + 0x41, 0x6e, 0x43, 0x51, 0x68, 0x77, 0xb4, 0xcc, 0xf9, 0xb1, 0xcb, 0x18, 0x11, 0xa6, 0xfe, 0x7e, + 0x8a, 0x1b, 0x74, 0x4b, 0x2f, 0xb2, 0xd2, 0xd8, 0xf6, 0xe3, 0x2f, 0x72, 0x00, 0x83, 0xbc, 0x61, + 0xc8, 0xde, 0xb8, 0x55, 0xd8, 0xa1, 0xc3, 0x62, 0xab, 0xe0, 0x83, 0x74, 0x87, 0x39, 0x3b, 0xdc, + 0x61, 0x6e, 0x40, 0x29, 0x4a, 0x00, 0x50, 0xc0, 0x55, 0x23, 0x1e, 0xf3, 0xc2, 0x38, 0xf0, 0xfc, + 0xb0, 0xed, 0xf9, 0x16, 0xf3, 0x51, 0x8d, 0xab, 0x46, 0x99, 0x43, 0x9e, 0x72, 0x40, 0x1c, 0xba, + 0x0a, 0x38, 0x81, 0xdf, 0x22, 0x86, 0xca, 0xbc, 0xbd, 0x88, 0xf0, 0x38, 0x35, 0x1f, 0x6a, 0x98, + 0x94, 0x86, 0x1a, 0x26, 0xf8, 0x47, 0x26, 0xea, 0xb6, 0xf1, 0x25, 0x1c, 0x15, 0xb1, 0xc4, 0xd9, + 0x71, 0x9b, 0xf8, 0x47, 0x9e, 0x4b, 0x00, 0x3c, 0xbf, 0xa0, 0x26, 0x46, 0x60, 0x10, 0xec, 0x30, + 0xd7, 0x5a, 0x44, 0x00, 0x9f, 0xc6, 0xae, 0x86, 0xe8, 0x25, 0x56, 0xc4, 0x34, 0x87, 0x18, 0x1c, + 0x90, 0x68, 0x4b, 0xcd, 0x1c, 0xde, 0x96, 0xaa, 0x4e, 0x65, 0x3e, 0x5f, 0x48, 0xe4, 0x4c, 0xb3, + 0x47, 0xd2, 0x2a, 0x19, 0xd3, 0xdb, 0x4a, 0xc6, 0x34, 0x77, 0x24, 0x61, 0x9c, 0x2f, 0x35, 0xa0, + 0x64, 0xf5, 0x7d, 0x8c, 0x5d, 0xf5, 0x9a, 0xb8, 0xb3, 0x68, 0xac, 0x6f, 0xc2, 0xec, 0x40, 0x4b, + 0x50, 0x0b, 0xef, 0x42, 0x65, 0x90, 0xec, 0x46, 0x9a, 0x78, 0x4e, 0xd5, 0x44, 0x25, 0x79, 0x56, + 0x51, 0xc7, 0xaa, 0xe2, 0x1f, 0x35, 0x38, 0x93, 0x4e, 0xb8, 0xff, 0x13, 0xba, 0x5a, 0xff, 0xcc, + 0xc0, 0x99, 0x0d, 0x74, 0x6d, 0xb2, 0xf5, 0x14, 0xc5, 0x48, 0xb5, 0xb7, 0xaa, 0x4d, 0xd5, 0x5b, + 0x7d, 0x17, 0x66, 0x2c, 0x3b, 0xe8, 0x39, 0xf4, 0xa0, 0x8d, 0xd4, 0x99, 0x09, 0xa8, 0x2b, 0x92, + 0x62, 0x95, 0xa2, 0x73, 0x56, 0x9f, 0x72, 0x26, 0x49, 0x2c, 0x95, 0x87, 0x9e, 0x3b, 0xca, 0xf3, + 0x51, 0x6e, 0x02, 0xd2, 0xf8, 0x71, 0xe9, 0x2e, 0x94, 0x1c, 0x4f, 0x64, 0x47, 0xb2, 0xfc, 0x3e, + 0xe2, 0xc0, 0x11, 0x36, 0xa7, 0xe4, 0xea, 0xfc, 0xa1, 0xe7, 0xb2, 0x89, 0x6a, 0xf0, 0x18, 0x5b, + 0xff, 0x5d, 0x06, 0x88, 0x90, 0xfe, 0x84, 0x5d, 0x45, 0xee, 0xed, 0x27, 0x16, 0xaa, 0xe8, 0x90, + 0xdd, 0x1b, 0xf6, 0x87, 0x47, 0xdf, 0x86, 0xe2, 0x2d, 0x5f, 0x58, 0xa0, 0xc9, 0x6b, 0xcc, 0x4f, + 0x77, 0x8d, 0xd1, 0x7b, 0x5d, 0x61, 0xb2, 0xf7, 0x3a, 0xfd, 0x47, 0x39, 0xc8, 0xe1, 0x63, 0x52, + 0x3a, 0x48, 0xa8, 0x7f, 0xec, 0xc8, 0xa4, 0xfe, 0xd8, 0xf1, 0x6a, 0x4a, 0x53, 0xa3, 0x58, 0xa1, + 0xe8, 0xe2, 0x11, 0x7f, 0x19, 0x38, 0xfc, 0xb1, 0x32, 0xd6, 0x27, 0xf9, 0x58, 0x19, 0x6b, 0x4c, + 0x43, 0xd1, 0x18, 0xf9, 0x5e, 0x10, 0x8d, 0x13, 0x4e, 0xbb, 0x94, 0x72, 0xda, 0x57, 0xa0, 0xa2, + 0xbc, 0xd6, 0x62, 0xb4, 0x28, 0x1b, 0x30, 0x78, 0xac, 0xe5, 0xc1, 0x44, 0x48, 0x8a, 0x4f, 0x83, + 0xa0, 0x16, 0x80, 0x96, 0x45, 0xae, 0x41, 0xb5, 0x43, 0xbb, 0xcc, 0xc4, 0x50, 0xc3, 0x11, 0x2a, + 0xa2, 0x2f, 0x30, 0x00, 0x8a, 0xac, 0x3d, 0x08, 0x19, 0xc5, 0xbf, 0xd5, 0xce, 0xc8, 0x72, 0x89, + 0x8f, 0x5b, 0xd8, 0xac, 0xf5, 0x5c, 0xc7, 0x76, 0x45, 0xb4, 0x28, 0x19, 0x72, 0x94, 0x7a, 0x2b, + 0x9d, 0x4d, 0xbf, 0x95, 0xa6, 0x22, 0xcd, 0xdc, 0x71, 0x12, 0xb5, 0xda, 0x54, 0x89, 0xda, 0x77, + 0x32, 0x50, 0x8d, 0xcb, 0xe2, 0xe8, 0xf9, 0x12, 0x53, 0xab, 0xc4, 0xc3, 0xe8, 0xb5, 0xf4, 0x8b, + 0x63, 0x8c, 0x3f, 0x18, 0x19, 0xd0, 0x8f, 0xeb, 0xeb, 0xc6, 0xa7, 0x1a, 0x94, 0xe3, 0x19, 0x72, + 0x03, 0xf2, 0xb8, 0x9c, 0x74, 0x93, 0x23, 0x9e, 0x59, 0xc5, 0xfc, 0xe7, 0xf3, 0x82, 0x79, 0x0b, + 0xf2, 0x58, 0xb0, 0x91, 0xff, 0x86, 0xbc, 0xfa, 0x66, 0x3b, 0xfc, 0xcc, 0x2a, 0xa6, 0xf5, 0x8f, + 0x32, 0x70, 0x09, 0x33, 0xec, 0x63, 0xfe, 0xf1, 0x84, 0x7c, 0x0d, 0x0a, 0x22, 0xb4, 0xc9, 0xf3, + 0xde, 0x57, 0x77, 0x3c, 0x74, 0x87, 0xe1, 0xb8, 0x87, 0xe8, 0x86, 0x5c, 0xaf, 0xb1, 0x05, 0xe7, + 0x46, 0x63, 0x0c, 0xde, 0xf5, 0xb4, 0x71, 0xef, 0x7a, 0x99, 0xd4, 0xbb, 0x9e, 0x6a, 0x6e, 0xd9, + 0xa4, 0xb9, 0xe9, 0xdf, 0xcb, 0x00, 0xc1, 0x75, 0x8f, 0x5b, 0x48, 0xc5, 0xf5, 0x52, 0x76, 0x4c, + 0xbd, 0x94, 0x4b, 0x56, 0x00, 0x2b, 0xc3, 0xf5, 0xd2, 0x04, 0x1d, 0xe1, 0x74, 0x31, 0xf5, 0x60, + 0x44, 0x31, 0x35, 0x41, 0xbb, 0x29, 0x5d, 0x69, 0xe9, 0xcf, 0xa1, 0x31, 0x2c, 0x85, 0x60, 0x90, + 0x28, 0xa4, 0x32, 0xfe, 0xcb, 0x43, 0xf7, 0x3c, 0xa6, 0x80, 0xf8, 0x6e, 0x06, 0x2e, 0xe2, 0x7c, + 0x3a, 0xb1, 0x9a, 0xaa, 0x91, 0xf9, 0x3c, 0xa5, 0x66, 0xf7, 0x86, 0xb6, 0x1f, 0xb3, 0xfc, 0x7c, + 0x1a, 0x9e, 0x54, 0x32, 0x06, 0x67, 0x47, 0x22, 0x9c, 0xac, 0x8e, 0x2d, 0x7d, 0x19, 0xce, 0x9b, + 0x5e, 0x77, 0x7e, 0x9b, 0xf9, 0x9e, 0x6d, 0x3a, 0x74, 0x33, 0x50, 0xd8, 0x5f, 0x2a, 0xaf, 0xe2, + 0xf7, 0x62, 0xcf, 0x7e, 0xa6, 0x7d, 0x3d, 0x4b, 0x7b, 0xf6, 0xcf, 0x33, 0xb9, 0xd5, 0x47, 0xcf, + 0x96, 0x7e, 0x95, 0x29, 0x88, 0x99, 0xcd, 0x02, 0xde, 0xe0, 0xed, 0x7f, 0x07, 0x00, 0x00, 0xff, + 0xff, 0xfe, 0x68, 0x64, 0x13, 0x00, 0x32, 0x00, 0x00, } diff --git a/api/api.proto b/api/api.proto index df350782ef3bb8c4c593e57820619578d9e94405..e32e714c41309ba17903dda258334b77f7419fb1 100644 --- a/api/api.proto +++ b/api/api.proto @@ -159,7 +159,7 @@ message AuthenticateFacebookRequest { // Set the username on the account at register. Must be unique. string username = 3; // Import Facebook friends for the user. - google.protobuf.BoolValue import = 4; + google.protobuf.BoolValue sync = 4; } // Authenticate against the server with Apple's Game Center. @@ -465,7 +465,7 @@ message LinkFacebookRequest { // The Facebook account details. AccountFacebook account = 1; // Import Facebook friends for the user. - google.protobuf.BoolValue import = 4; + google.protobuf.BoolValue sync = 4; } // List a channel's message history. diff --git a/apigrpc/apigrpc.swagger.json b/apigrpc/apigrpc.swagger.json index c2e5bb378cec6004336ba89b1b18a7c5dc6a445e..bec7d1fc4e500f19b15d81e4871d437b609e487c 100644 --- a/apigrpc/apigrpc.swagger.json +++ b/apigrpc/apigrpc.swagger.json @@ -261,7 +261,7 @@ "type": "string" }, { - "name": "import", + "name": "sync", "description": "Import Facebook friends for the user.", "in": "query", "required": false, @@ -527,7 +527,7 @@ } }, { - "name": "import", + "name": "sync", "description": "Import Facebook friends for the user.", "in": "query", "required": false, diff --git a/rtapi/realtime.pb.go b/rtapi/realtime.pb.go index 0ca8664bf43c8c421966bcecd74686246e647b5c..d1e0ce877de1b38dbb007b0f50ba03b1be9c25f5 100644 --- a/rtapi/realtime.pb.go +++ b/rtapi/realtime.pb.go @@ -2878,8 +2878,8 @@ type Stream struct { Mode int32 `protobuf:"varint,1,opt,name=mode,proto3" json:"mode,omitempty"` // Subject is the primary identifier, if any. Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"` - // Descriptor is a secondary identifier, if any. - Descriptor_ string `protobuf:"bytes,3,opt,name=descriptor,proto3" json:"descriptor,omitempty"` + // Subcontext is a secondary identifier, if any. + Subcontext string `protobuf:"bytes,3,opt,name=subcontext,proto3" json:"subcontext,omitempty"` // The label is an arbitrary identifying string, if the stream has one. Label string `protobuf:"bytes,4,opt,name=label,proto3" json:"label,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -2926,9 +2926,9 @@ func (m *Stream) GetSubject() string { return "" } -func (m *Stream) GetDescriptor_() string { +func (m *Stream) GetSubcontext() string { if m != nil { - return m.Descriptor_ + return m.Subcontext } return "" } @@ -3181,7 +3181,7 @@ func init() { func init() { proto.RegisterFile("rtapi/realtime.proto", fileDescriptor_0163624496220f8c) } var fileDescriptor_0163624496220f8c = []byte{ - // 2156 bytes of a gzipped FileDescriptorProto + // 2153 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x59, 0xcd, 0x73, 0xe3, 0x48, 0x15, 0xb7, 0xfc, 0x95, 0xf8, 0x25, 0x4e, 0x9c, 0x8e, 0x27, 0xd1, 0x3a, 0x3b, 0x99, 0x41, 0xb3, 0x14, 0xc3, 0x52, 0x38, 0x35, 0x1f, 0x5b, 0x05, 0x33, 0x30, 0x55, 0x89, 0xad, 0xc4, 0x1e, 0xd6, @@ -3305,16 +3305,16 @@ var fileDescriptor_0163624496220f8c = []byte{ 0xec, 0x2e, 0x78, 0x05, 0xf9, 0xa0, 0xb7, 0xc2, 0xf7, 0x60, 0x2b, 0xfe, 0x64, 0xb2, 0x6c, 0xc3, 0xcd, 0xe0, 0xdb, 0x78, 0xc3, 0xf3, 0x3c, 0x7c, 0x6c, 0x12, 0x6e, 0x51, 0xd5, 0x71, 0xac, 0x34, 0x26, 0x86, 0x76, 0xb1, 0x66, 0x91, 0xb2, 0xc3, 0x8a, 0x14, 0xf5, 0x16, 0x2f, 0xea, 0xbd, 0xe9, - 0xf9, 0x57, 0x58, 0x0f, 0xdb, 0x2e, 0x3e, 0x44, 0x87, 0x00, 0x06, 0xf6, 0x74, 0xd7, 0x9c, 0xf8, - 0x8e, 0xcb, 0x6f, 0x9e, 0x88, 0x84, 0x78, 0x22, 0x2b, 0x31, 0x59, 0xd3, 0xca, 0x06, 0xd2, 0x6f, - 0x04, 0x80, 0xd9, 0x33, 0x0c, 0x3a, 0x22, 0x5b, 0x26, 0x23, 0xbe, 0xe5, 0xfd, 0x94, 0x97, 0x16, - 0x85, 0xc3, 0x88, 0x5d, 0x3d, 0x6c, 0x1b, 0xd8, 0xbd, 0x5d, 0x19, 0xc7, 0xc1, 0xb1, 0x8a, 0xaa, - 0xc4, 0x6b, 0xb5, 0xbf, 0xd2, 0xf3, 0x9e, 0x7b, 0xb0, 0xb9, 0xfb, 0x9e, 0x3e, 0xa4, 0x83, 0xfc, - 0x5d, 0x80, 0xcd, 0xe8, 0x04, 0x29, 0x22, 0xb9, 0x7f, 0x04, 0x11, 0xc9, 0xdc, 0x83, 0xf4, 0x8d, - 0x1e, 0xf6, 0x3c, 0xd3, 0xb1, 0x23, 0xfd, 0x26, 0x97, 0xb4, 0x8d, 0xd8, 0xb3, 0x42, 0x2e, 0xf1, - 0xac, 0xf0, 0x30, 0xfe, 0xbe, 0x93, 0xa7, 0x1d, 0x44, 0xec, 0x0d, 0x67, 0xe6, 0x6a, 0x85, 0xdb, - 0xbb, 0xda, 0xc9, 0x29, 0x1c, 0xe8, 0x8e, 0x55, 0x9f, 0xfd, 0xa9, 0x17, 0x7e, 0xb3, 0xaf, 0x4d, - 0xcc, 0x93, 0xad, 0x2e, 0x1d, 0x29, 0xdc, 0x00, 0x7d, 0xe1, 0x4d, 0x81, 0x4e, 0xfc, 0x29, 0x9b, - 0xef, 0xfe, 0xa4, 0x7f, 0xf2, 0xe7, 0x6c, 0x91, 0x01, 0xce, 0x8b, 0x74, 0x95, 0x67, 0xff, 0x0b, - 0x00, 0x00, 0xff, 0xff, 0x82, 0x5d, 0x4f, 0x51, 0x92, 0x1c, 0x00, 0x00, + 0xf9, 0x57, 0x58, 0x0f, 0xdb, 0x2e, 0x3e, 0x44, 0x87, 0x00, 0xde, 0xf4, 0x7c, 0x56, 0xd7, 0x93, + 0xc9, 0x88, 0x84, 0x78, 0x22, 0x2b, 0x31, 0x59, 0xd3, 0xca, 0x06, 0xd2, 0x6f, 0x04, 0x80, 0xd9, + 0x33, 0x0c, 0x3a, 0x22, 0x5b, 0x26, 0x23, 0xbe, 0xe5, 0xfd, 0x94, 0x97, 0x16, 0x85, 0xc3, 0x88, + 0x5d, 0x3d, 0x6c, 0x1b, 0xd8, 0xbd, 0x5d, 0x19, 0xc7, 0xc1, 0xb1, 0x8a, 0xaa, 0xc4, 0x6b, 0xb5, + 0xbf, 0xd2, 0xf3, 0x9e, 0x7b, 0xb0, 0xb9, 0xfb, 0x9e, 0x3e, 0xa4, 0x83, 0xfc, 0x5d, 0x80, 0xcd, + 0xe8, 0x04, 0x29, 0x22, 0xb9, 0x7f, 0x04, 0x11, 0xc9, 0xdc, 0x83, 0xf4, 0x8d, 0x1e, 0xf6, 0x3c, + 0xd3, 0xb1, 0x23, 0xfd, 0x26, 0x97, 0xb4, 0x8d, 0xd8, 0xb3, 0x42, 0x2e, 0xf1, 0xac, 0xf0, 0x30, + 0xfe, 0xbe, 0x93, 0xa7, 0x1d, 0x44, 0xec, 0x0d, 0x67, 0xe6, 0x6a, 0x85, 0xdb, 0xbb, 0xda, 0xc9, + 0x29, 0x1c, 0xe8, 0x8e, 0x55, 0x9f, 0xfd, 0xa9, 0x17, 0x7e, 0xb3, 0xaf, 0x4d, 0xcc, 0x93, 0xad, + 0x2e, 0x1d, 0x29, 0xdc, 0x00, 0x7d, 0xe1, 0x4d, 0x81, 0x4e, 0xfc, 0x29, 0x9b, 0xef, 0xfe, 0xa4, + 0x7f, 0xf2, 0xe7, 0x6c, 0x91, 0x01, 0xce, 0x8b, 0x74, 0x95, 0x67, 0xff, 0x0b, 0x00, 0x00, 0xff, + 0xff, 0x49, 0xe0, 0x91, 0x17, 0x92, 0x1c, 0x00, 0x00, } diff --git a/rtapi/realtime.proto b/rtapi/realtime.proto index 3858727d8ceb8b788b3db88dc948f302473d4a78..216c114a2464cd73b50164641caf45e038b6e712 100644 --- a/rtapi/realtime.proto +++ b/rtapi/realtime.proto @@ -391,8 +391,8 @@ message Stream { int32 mode = 1; // Subject is the primary identifier, if any. string subject = 2; - // Descriptor is a secondary identifier, if any. - string descriptor = 3; + // Subcontext is a secondary identifier, if any. + string subcontext = 3; // The label is an arbitrary identifying string, if the stream has one. string label = 4; } diff --git a/runtime/runtime.go b/runtime/runtime.go index 49b14333386253728dcd1a16699073e22c026ee9..1b4ae467f4daa6167844050b6606858b1ca12367 100644 --- a/runtime/runtime.go +++ b/runtime/runtime.go @@ -301,15 +301,15 @@ type NakamaModule interface { UsersBanId(ctx context.Context, userIDs []string) error UsersUnbanId(ctx context.Context, userIDs []string) error - StreamUserList(mode uint8, subject, descriptor, label string, includeHidden, includeNotHidden bool) ([]Presence, error) - StreamUserGet(mode uint8, subject, descriptor, label, userID, sessionID string) (PresenceMeta, error) - StreamUserJoin(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) - StreamUserUpdate(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) error - StreamUserLeave(mode uint8, subject, descriptor, label, userID, sessionID string) error - StreamCount(mode uint8, subject, descriptor, label string) (int, error) - StreamClose(mode uint8, subject, descriptor, label string) error - StreamSend(mode uint8, subject, descriptor, label, data string) error - StreamSendRaw(mode uint8, subject, descriptor, label string, msg *rtapi.Envelope) error + StreamUserList(mode uint8, subject, subcontext, label string, includeHidden, includeNotHidden bool) ([]Presence, error) + StreamUserGet(mode uint8, subject, subcontext, label, userID, sessionID string) (PresenceMeta, error) + StreamUserJoin(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) + StreamUserUpdate(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) error + StreamUserLeave(mode uint8, subject, subcontext, label, userID, sessionID string) error + StreamCount(mode uint8, subject, subcontext, label string) (int, error) + StreamClose(mode uint8, subject, subcontext, label string) error + StreamSend(mode uint8, subject, subcontext, label, data string) error + StreamSendRaw(mode uint8, subject, subcontext, label string, msg *rtapi.Envelope) error MatchCreate(ctx context.Context, module string, params map[string]interface{}) (string, error) MatchList(ctx context.Context, limit int, authoritative bool, label string, minSize, maxSize int, query string) ([]*api.Match, error) diff --git a/server/api_authenticate.go b/server/api_authenticate.go index e8775b171383b248d2dd747b8dc554c84c94f55f..0c1fb095906d3d05c642894b758304c56e381c22 100644 --- a/server/api_authenticate.go +++ b/server/api_authenticate.go @@ -319,7 +319,7 @@ func (s *ApiServer) AuthenticateFacebook(ctx context.Context, in *api.Authentica } // Import friends if requested. - if in.Import == nil || in.Import.Value { + if in.Sync == nil || in.Sync.Value { importFacebookFriends(ctx, s.logger, s.db, s.router, s.socialClient, uuid.FromStringOrNil(dbUserID), dbUsername, in.Account.Token, false) } diff --git a/server/api_link.go b/server/api_link.go index 69f8f86b36cf0d7f3c7add129cbfad1735ab4b3e..695acf766282df4d5c519ec926c88a711fae6d94 100644 --- a/server/api_link.go +++ b/server/api_link.go @@ -355,7 +355,7 @@ AND (NOT EXISTS } // Import friends if requested. - if in.Import == nil || in.Import.Value { + if in.Sync == nil || in.Sync.Value { importFacebookFriends(ctx, s.logger, s.db, s.router, s.socialClient, userID.(uuid.UUID), ctx.Value(ctxUsernameKey{}).(string), in.Account.Token, false) } diff --git a/server/core_channel.go b/server/core_channel.go index 75b632ef98a8459bb60f89e96eeb6fd533c1b20e..08bc681005afbfe3768dbead1e35e2b665558103 100644 --- a/server/core_channel.go +++ b/server/core_channel.go @@ -47,7 +47,7 @@ type ChannelIdToStreamResult struct { type channelMessageListCursor struct { StreamMode uint8 StreamSubject string - StreamDescriptor string + StreamSubcontext string StreamLabel string CreateTime int64 Id string @@ -76,8 +76,8 @@ func ChannelMessagesList(ctx context.Context, logger *zap.Logger, db *sql.DB, ca } else if stream.Subject.String() != incomingCursor.StreamSubject { // Stream subject does not match. return nil, ErrChannelCursorInvalid - } else if stream.Descriptor.String() != incomingCursor.StreamDescriptor { - // Stream descriptor does not match. + } else if stream.Subcontext.String() != incomingCursor.StreamSubcontext { + // Stream subcontext does not match. return nil, ErrChannelCursorInvalid } else if stream.Label != incomingCursor.StreamLabel { // Stream label does not match. @@ -113,7 +113,7 @@ WHERE stream_mode = $1 AND stream_subject = $2::UUID AND stream_descriptor = $3: } } query += " LIMIT $5" - params := []interface{}{stream.Mode, stream.Subject, stream.Descriptor, stream.Label, limit + 1} + params := []interface{}{stream.Mode, stream.Subject, stream.Subcontext, stream.Label, limit + 1} if incomingCursor != nil { params = append(params, time.Unix(incomingCursor.CreateTime, 0).UTC(), incomingCursor.Id) } @@ -140,7 +140,7 @@ WHERE stream_mode = $1 AND stream_subject = $2::UUID AND stream_descriptor = $3: nextCursor = &channelMessageListCursor{ StreamMode: stream.Mode, StreamSubject: stream.Subject.String(), - StreamDescriptor: stream.Descriptor.String(), + StreamSubcontext: stream.Subcontext.String(), StreamLabel: stream.Label, CreateTime: dbCreateTime.Time.Unix(), Id: dbId, @@ -173,7 +173,7 @@ WHERE stream_mode = $1 AND stream_subject = $2::UUID AND stream_descriptor = $3: prevCursor = &channelMessageListCursor{ StreamMode: stream.Mode, StreamSubject: stream.Subject.String(), - StreamDescriptor: stream.Descriptor.String(), + StreamSubcontext: stream.Subcontext.String(), StreamLabel: stream.Label, CreateTime: dbCreateTime.Time.Unix(), Id: dbId, @@ -233,13 +233,13 @@ func GetChannelMessages(ctx context.Context, logger *zap.Logger, db *sql.DB, use var dbUsername string var dbStreamMode uint8 var dbStreamSubject string - var dbStreamDescriptor string + var dbStreamSubcontext string var dbStreamLabel string var dbContent string var dbCreateTime pq.NullTime var dbUpdateTime pq.NullTime for rows.Next() { - err = rows.Scan(&dbId, &dbCode, &dbUsername, &dbStreamMode, &dbStreamSubject, &dbStreamDescriptor, &dbStreamLabel, &dbContent, &dbCreateTime, &dbUpdateTime) + err = rows.Scan(&dbId, &dbCode, &dbUsername, &dbStreamMode, &dbStreamSubject, &dbStreamSubcontext, &dbStreamLabel, &dbContent, &dbCreateTime, &dbUpdateTime) if err != nil { logger.Error("Error parsing listed channel messages for user", zap.String("user_id", userID.String()), zap.Error(err)) return nil, err @@ -248,7 +248,7 @@ func GetChannelMessages(ctx context.Context, logger *zap.Logger, db *sql.DB, use channelId, err := StreamToChannelId(PresenceStream{ Mode: dbStreamMode, Subject: uuid.FromStringOrNil(dbStreamSubject), - Descriptor: uuid.FromStringOrNil(dbStreamDescriptor), + Subcontext: uuid.FromStringOrNil(dbStreamSubcontext), Label: dbStreamLabel, }) if err != nil { @@ -290,7 +290,7 @@ func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error) { switch components[0] { case "2": // StreamModeChannel. - // Expect no subject or descriptor. + // Expect no subject or subcontext. if components[1] != "" || components[2] != "" { return nil, ErrChannelIdInvalid } @@ -300,7 +300,7 @@ func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error) { } stream.Label = components[3] case "3": - // Expect no descriptor or label. + // Expect no subcontext or label. if components[2] != "" || components[3] != "" { return nil, ErrChannelIdInvalid } @@ -325,9 +325,9 @@ func ChannelIdToStream(channelId string) (*ChannelIdToStreamResult, error) { return nil, ErrChannelIdInvalid } } - // Descriptor. + // Subcontext. if components[2] != "" { - if stream.Descriptor, err = uuid.FromString(components[2]); err != nil { + if stream.Subcontext, err = uuid.FromString(components[2]); err != nil { return nil, ErrChannelIdInvalid } } @@ -349,10 +349,10 @@ func StreamToChannelId(stream PresenceStream) (string, error) { if stream.Subject != uuid.Nil { subject = stream.Subject.String() } - descriptor := "" - if stream.Descriptor != uuid.Nil { - descriptor = stream.Descriptor.String() + subcontext := "" + if stream.Subcontext != uuid.Nil { + subcontext = stream.Subcontext.String() } - return fmt.Sprintf("%v.%v.%v.%v", stream.Mode, subject, descriptor, stream.Label), nil + return fmt.Sprintf("%v.%v.%v.%v", stream.Mode, subject, subcontext, stream.Label), nil } diff --git a/server/pipeline_channel.go b/server/pipeline_channel.go index 211b2e1c26f1061804b4fece730b3f310a875623..3c886edace34f5de3904294c9f7d69e7821145f6 100644 --- a/server/pipeline_channel.go +++ b/server/pipeline_channel.go @@ -137,10 +137,10 @@ func (p *Pipeline) channelJoin(logger *zap.Logger, session Session, envelope *rt // Assign the ID pair in a consistent order. if uid.String() > userID.String() { stream.Subject = userID - stream.Descriptor = uid + stream.Subcontext = uid } else { stream.Subject = uid - stream.Descriptor = userID + stream.Subcontext = userID } stream.Mode = StreamModeDM case int32(rtapi.ChannelJoin_GROUP): @@ -213,7 +213,7 @@ func (p *Pipeline) channelJoin(logger *zap.Logger, session Session, envelope *rt userID := session.UserID() otherUserID := stream.Subject if userID == otherUserID { - otherUserID = stream.Descriptor + otherUserID = stream.Subcontext } otherUserPresent := false @@ -338,7 +338,7 @@ func (p *Pipeline) channelMessageSend(logger *zap.Logger, session Session, envel if meta.Persistence { query := `INSERT INTO message (id, code, sender_id, username, stream_mode, stream_subject, stream_descriptor, stream_label, content, create_time, update_time) VALUES ($1, $2, $3, $4, $5, $6::UUID, $7::UUID, $8, $9, $10, $10)` - _, err := p.db.ExecContext(session.Context(), query, message.MessageId, message.Code.Value, message.SenderId, message.Username, streamConversionResult.Stream.Mode, streamConversionResult.Stream.Subject, streamConversionResult.Stream.Descriptor, streamConversionResult.Stream.Label, message.Content, time.Unix(message.CreateTime.Seconds, 0).UTC()) + _, err := p.db.ExecContext(session.Context(), query, message.MessageId, message.Code.Value, message.SenderId, message.Username, streamConversionResult.Stream.Mode, streamConversionResult.Stream.Subject, streamConversionResult.Stream.Subcontext, streamConversionResult.Stream.Label, message.Content, time.Unix(message.CreateTime.Seconds, 0).UTC()) if err != nil { logger.Error("Error persisting channel message", zap.Error(err)) session.Send(false, 0, &rtapi.Envelope{Cid: envelope.Cid, Message: &rtapi.Envelope_Error{Error: &rtapi.Error{ diff --git a/server/runtime_go_nakama.go b/server/runtime_go_nakama.go index 045de8e181014ac86fda17570aad97667f3107de..7e485833134c8e78fa05141f797a43e33f13a946 100644 --- a/server/runtime_go_nakama.go +++ b/server/runtime_go_nakama.go @@ -368,7 +368,7 @@ func (n *RuntimeGoNakamaModule) UsersUnbanId(ctx context.Context, userIDs []stri return UnbanUsers(ctx, n.logger, n.db, userIDs) } -func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, descriptor, label string, includeHidden, includeNotHidden bool) ([]runtime.Presence, error) { +func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, subcontext, label string, includeHidden, includeNotHidden bool) ([]runtime.Presence, error) { stream := PresenceStream{ Mode: mode, Label: label, @@ -380,10 +380,10 @@ func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, descriptor, return nil, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return nil, errors.New("stream descriptor must be a valid identifier") + return nil, errors.New("stream subcontext must be a valid identifier") } } @@ -395,7 +395,7 @@ func (n *RuntimeGoNakamaModule) StreamUserList(mode uint8, subject, descriptor, return runtimePresences, nil } -func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, descriptor, label, userID, sessionID string) (runtime.PresenceMeta, error) { +func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, subcontext, label, userID, sessionID string) (runtime.PresenceMeta, error) { uid, err := uuid.FromString(userID) if err != nil { return nil, errors.New("expects valid user id") @@ -416,10 +416,10 @@ func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, descriptor, l return nil, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return nil, errors.New("stream descriptor must be a valid identifier") + return nil, errors.New("stream subcontext must be a valid identifier") } } @@ -429,7 +429,7 @@ func (n *RuntimeGoNakamaModule) StreamUserGet(mode uint8, subject, descriptor, l return nil, nil } -func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) { +func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) (bool, error) { uid, err := uuid.FromString(userID) if err != nil { return false, errors.New("expects valid user id") @@ -450,10 +450,10 @@ func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, descriptor, return false, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return false, errors.New("stream descriptor must be a valid identifier") + return false, errors.New("stream subcontext must be a valid identifier") } } @@ -477,7 +477,7 @@ func (n *RuntimeGoNakamaModule) StreamUserJoin(mode uint8, subject, descriptor, return newlyTracked, nil } -func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, descriptor, label, userID, sessionID string, hidden, persistence bool, status string) error { +func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, subcontext, label, userID, sessionID string, hidden, persistence bool, status string) error { uid, err := uuid.FromString(userID) if err != nil { return errors.New("expects valid user id") @@ -498,10 +498,10 @@ func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, descriptor return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -524,7 +524,7 @@ func (n *RuntimeGoNakamaModule) StreamUserUpdate(mode uint8, subject, descriptor return nil } -func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, descriptor, label, userID, sessionID string) error { +func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, subcontext, label, userID, sessionID string) error { uid, err := uuid.FromString(userID) if err != nil { return errors.New("expects valid user id") @@ -545,10 +545,10 @@ func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, descriptor, return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -557,7 +557,7 @@ func (n *RuntimeGoNakamaModule) StreamUserLeave(mode uint8, subject, descriptor, return nil } -func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, descriptor, label string) (int, error) { +func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, subcontext, label string) (int, error) { stream := PresenceStream{ Mode: mode, Label: label, @@ -569,17 +569,17 @@ func (n *RuntimeGoNakamaModule) StreamCount(mode uint8, subject, descriptor, lab return 0, errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return 0, errors.New("stream descriptor must be a valid identifier") + return 0, errors.New("stream subcontext must be a valid identifier") } } return n.tracker.CountByStream(stream), nil } -func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, descriptor, label string) error { +func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, subcontext, label string) error { stream := PresenceStream{ Mode: mode, Label: label, @@ -591,10 +591,10 @@ func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, descriptor, lab return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -603,7 +603,7 @@ func (n *RuntimeGoNakamaModule) StreamClose(mode uint8, subject, descriptor, lab return nil } -func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, label, data string) error { +func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, subcontext, label, data string) error { stream := PresenceStream{ Mode: mode, Label: label, @@ -615,10 +615,10 @@ func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, labe return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } @@ -629,8 +629,8 @@ func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, labe if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } msg := &rtapi.Envelope{Message: &rtapi.Envelope_StreamData{StreamData: &rtapi.StreamData{ Stream: streamWire, @@ -642,7 +642,7 @@ func (n *RuntimeGoNakamaModule) StreamSend(mode uint8, subject, descriptor, labe return nil } -func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, descriptor, label string, msg *rtapi.Envelope) error { +func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, subcontext, label string, msg *rtapi.Envelope) error { stream := PresenceStream{ Mode: mode, Label: label, @@ -654,10 +654,10 @@ func (n *RuntimeGoNakamaModule) StreamSendRaw(mode uint8, subject, descriptor, l return errors.New("stream subject must be a valid identifier") } } - if descriptor != "" { - stream.Descriptor, err = uuid.FromString(descriptor) + if subcontext != "" { + stream.Subcontext, err = uuid.FromString(subcontext) if err != nil { - return errors.New("stream descriptor must be a valid identifier") + return errors.New("stream subcontext must be a valid identifier") } } if msg == nil { diff --git a/server/runtime_lua_nakama.go b/server/runtime_lua_nakama.go index 5d4ded6b0560ab7a6118ee78e43e5203aefd0081..5a28aa2d6d77fc4622b1128f39ae66faa08174c3 100644 --- a/server/runtime_lua_nakama.go +++ b/server/runtime_lua_nakama.go @@ -1765,17 +1765,17 @@ func (n *RuntimeLuaNakamaModule) streamUserList(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { - conversionError = "stream descriptor must be a string" + conversionError = "stream subcontext must be a string" return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { - conversionError = "stream descriptor must be a valid identifier" + conversionError = "stream subcontext must be a valid identifier" return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = "stream label must be a string" @@ -1873,19 +1873,19 @@ func (n *RuntimeLuaNakamaModule) streamUserGet(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -1972,19 +1972,19 @@ func (n *RuntimeLuaNakamaModule) streamUserJoin(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2087,19 +2087,19 @@ func (n *RuntimeLuaNakamaModule) streamUserUpdate(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2199,19 +2199,19 @@ func (n *RuntimeLuaNakamaModule) streamUserLeave(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2265,19 +2265,19 @@ func (n *RuntimeLuaNakamaModule) streamCount(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2332,19 +2332,19 @@ func (n *RuntimeLuaNakamaModule) streamClose(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subject = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2398,19 +2398,19 @@ func (n *RuntimeLuaNakamaModule) streamSend(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2434,8 +2434,8 @@ func (n *RuntimeLuaNakamaModule) streamSend(l *lua.LState) int { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } msg := &rtapi.Envelope{Message: &rtapi.Envelope_StreamData{StreamData: &rtapi.StreamData{ Stream: streamWire, @@ -2482,19 +2482,19 @@ func (n *RuntimeLuaNakamaModule) streamSendRaw(l *lua.LState) int { return } stream.Subject = sid - case "descriptor": + case "subcontext": if v.Type() != lua.LTString { conversionError = true - l.ArgError(3, "stream descriptor must be a string") + l.ArgError(3, "stream subcontext must be a string") return } - did, err := uuid.FromString(v.String()) + sid, err := uuid.FromString(v.String()) if err != nil { conversionError = true - l.ArgError(3, "stream descriptor must be a valid identifier") + l.ArgError(3, "stream subcontext must be a valid identifier") return } - stream.Subject = did + stream.Subcontext = sid case "label": if v.Type() != lua.LTString { conversionError = true @@ -2529,8 +2529,8 @@ func (n *RuntimeLuaNakamaModule) streamSendRaw(l *lua.LState) int { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } n.router.SendToStream(n.logger, stream, envelope) diff --git a/server/tracker.go b/server/tracker.go index b0b3e9a8e52f663e90f920fca823022c22182fac..12c435d38115b148dc2e77b11c5193655d136eeb 100644 --- a/server/tracker.go +++ b/server/tracker.go @@ -46,7 +46,7 @@ type PresenceID struct { type PresenceStream struct { Mode uint8 Subject uuid.UUID - Descriptor uuid.UUID + Subcontext uuid.UUID Label string } @@ -750,8 +750,8 @@ func (t *LocalTracker) processEvent(e *PresenceEvent) { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } // Find the list of event recipients first so we can skip event encoding work if it's not necessary. @@ -826,8 +826,8 @@ func (t *LocalTracker) processEvent(e *PresenceEvent) { if stream.Subject != uuid.Nil { streamWire.Subject = stream.Subject.String() } - if stream.Descriptor != uuid.Nil { - streamWire.Descriptor_ = stream.Descriptor.String() + if stream.Subcontext != uuid.Nil { + streamWire.Subcontext = stream.Subcontext.String() } // Find the list of event recipients first so we can skip event encoding work if it's not necessary.