1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-10 10:00:46 +09:00

GO-2516 Merge branch 'main' of github.com:anyproto/anytype-heart into go-2516-create-notifications-for-space-invitation

This commit is contained in:
AnastasiaShemyakinskaya 2024-03-06 14:37:37 +01:00
commit 03368c48fa
No known key found for this signature in database
GPG key ID: CCD60ED83B103281
36 changed files with 2917 additions and 1806 deletions

View file

@ -25,282 +25,283 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
// 4396 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdb, 0x6f, 0x1c, 0x59,
0x5a, 0xc0, 0xa7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x85, 0x61, 0x36, 0xec, 0x3a, 0x99, 0x4c,
0x62, 0x27, 0x71, 0xdc, 0xce, 0x24, 0x73, 0x59, 0x76, 0x91, 0x90, 0x63, 0xc7, 0x1e, 0xb3, 0x89,
0x63, 0xdc, 0x9d, 0x44, 0x1a, 0x09, 0x89, 0x72, 0xf5, 0x49, 0xbb, 0x70, 0x75, 0x9d, 0xda, 0xaa,
0xd3, 0x6d, 0x37, 0x08, 0x04, 0x02, 0x81, 0xb8, 0x09, 0xc4, 0xed, 0x85, 0x07, 0x24, 0xfe, 0x14,
0x9e, 0x78, 0x9c, 0x47, 0x1e, 0xd1, 0xcc, 0x3f, 0xb2, 0xaa, 0x73, 0x4e, 0x9d, 0xcb, 0x57, 0xdf,
0x77, 0xaa, 0x7a, 0x9e, 0x12, 0xf5, 0xf7, 0xfb, 0x2e, 0xa7, 0xce, 0xed, 0x3b, 0x97, 0x2a, 0x47,
0x37, 0x8b, 0xf3, 0xdd, 0xa2, 0xe4, 0x82, 0x57, 0xbb, 0x15, 0x2b, 0x97, 0x69, 0xc2, 0x9a, 0x7f,
0x47, 0xf2, 0xe7, 0xe1, 0xbb, 0x71, 0xbe, 0x12, 0xab, 0x82, 0xdd, 0xf8, 0xc0, 0x92, 0x09, 0x9f,
0xcf, 0xe3, 0x7c, 0x5a, 0x29, 0xe4, 0xc6, 0xfb, 0x56, 0xc2, 0x96, 0x2c, 0x17, 0xfa, 0xf7, 0xc7,
0x7f, 0xff, 0x3f, 0x83, 0xe8, 0xbd, 0xfd, 0x2c, 0x65, 0xb9, 0xd8, 0xd7, 0x1a, 0xc3, 0x2f, 0xa3,
0xef, 0xee, 0x15, 0xc5, 0x11, 0x13, 0xaf, 0x59, 0x59, 0xa5, 0x3c, 0x1f, 0x7e, 0x34, 0xd2, 0x0e,
0x46, 0x67, 0x45, 0x32, 0xda, 0x2b, 0x8a, 0x91, 0x15, 0x8e, 0xce, 0xd8, 0xcf, 0x16, 0xac, 0x12,
0x37, 0xee, 0x84, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x6f, 0xa3, 0x5f, 0xdb, 0x2b, 0x8a, 0x31,
0x13, 0x07, 0xac, 0x2e, 0xc0, 0x58, 0xc4, 0x82, 0x0d, 0xb7, 0x5a, 0xaa, 0x3e, 0x60, 0x7c, 0xdc,
0xeb, 0x06, 0xb5, 0x9f, 0x49, 0xf4, 0x9d, 0xda, 0xcf, 0xc5, 0x42, 0x4c, 0xf9, 0x55, 0x3e, 0xfc,
0xb0, 0xad, 0xa8, 0x45, 0xc6, 0xf6, 0xed, 0x10, 0xa2, 0xad, 0xbe, 0x89, 0x7e, 0xf9, 0x4d, 0x9c,
0x65, 0x4c, 0xec, 0x97, 0xac, 0x0e, 0xdc, 0xd7, 0x51, 0xa2, 0x91, 0x92, 0x19, 0xbb, 0x1f, 0x05,
0x19, 0x6d, 0xf8, 0xcb, 0xe8, 0xbb, 0x4a, 0x72, 0xc6, 0x12, 0xbe, 0x64, 0xe5, 0x10, 0xd5, 0xd2,
0x42, 0xe2, 0x91, 0xb7, 0x20, 0x68, 0x7b, 0x9f, 0xe7, 0x4b, 0x56, 0x0a, 0xdc, 0xb6, 0x16, 0x86,
0x6d, 0x5b, 0x48, 0xdb, 0xfe, 0xdb, 0x41, 0xf4, 0x83, 0xbd, 0x24, 0xe1, 0x8b, 0x5c, 0x3c, 0xe7,
0x49, 0x9c, 0x3d, 0x4f, 0xf3, 0xcb, 0x13, 0x76, 0xb5, 0x7f, 0x51, 0xf3, 0xf9, 0x8c, 0x0d, 0x9f,
0xf8, 0x4f, 0x55, 0xa1, 0x23, 0xc3, 0x8e, 0x5c, 0xd8, 0xf8, 0xfe, 0x64, 0x3d, 0x25, 0x1d, 0xcb,
0x3f, 0x0d, 0xa2, 0x0d, 0x18, 0xcb, 0x98, 0x67, 0x4b, 0x66, 0xa3, 0xf9, 0xb4, 0xc3, 0xb0, 0x8f,
0x9b, 0x78, 0x3e, 0x5b, 0x57, 0x4d, 0x47, 0x94, 0x45, 0xdf, 0x73, 0x9b, 0xcb, 0x98, 0x55, 0xb2,
0x3b, 0xdd, 0xa7, 0x5b, 0x84, 0x46, 0x8c, 0xe7, 0x07, 0x7d, 0x50, 0xed, 0x2d, 0x8d, 0x86, 0xda,
0x5b, 0xc6, 0x2b, 0xe3, 0xec, 0x1e, 0x6a, 0xc1, 0x21, 0x8c, 0xaf, 0xfb, 0x3d, 0x48, 0xed, 0xea,
0x0f, 0xa3, 0x5f, 0x79, 0xc3, 0xcb, 0xcb, 0xaa, 0x88, 0x13, 0xa6, 0xbb, 0xc2, 0x5d, 0x5f, 0xbb,
0x91, 0xc2, 0xde, 0xb0, 0xd9, 0x85, 0x39, 0x8d, 0xb6, 0x11, 0xbe, 0x2c, 0x18, 0x1c, 0x83, 0xac,
0x62, 0x2d, 0xa4, 0x1a, 0x2d, 0x84, 0xb4, 0xed, 0xcb, 0x68, 0x68, 0x6d, 0x9f, 0xff, 0x11, 0x4b,
0xc4, 0xde, 0x74, 0x0a, 0x6b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x37, 0x9d, 0x52, 0xb5, 0x82, 0xa3,
0xda, 0xd9, 0x55, 0xf4, 0x3e, 0x70, 0xf6, 0x3c, 0xad, 0xa4, 0xc3, 0x9d, 0xb0, 0x15, 0x8d, 0x19,
0xa7, 0xa3, 0xbe, 0xb8, 0x76, 0xfc, 0xe7, 0x83, 0xe8, 0xfb, 0x88, 0xe7, 0x33, 0x36, 0xe7, 0x4b,
0x36, 0x7c, 0xd4, 0x6d, 0x4d, 0x91, 0xc6, 0xff, 0xc7, 0x6b, 0x68, 0x20, 0xcd, 0x64, 0xcc, 0x32,
0x96, 0x08, 0xb2, 0x99, 0x28, 0x71, 0x67, 0x33, 0x31, 0x98, 0xd3, 0xc3, 0x1a, 0xe1, 0x11, 0x13,
0xfb, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xeb, 0xd2, 0x22, 0x9d, 0x75, 0xe9, 0xa1, 0x48, 0x79, 0x8e,
0x98, 0xd8, 0xcb, 0x32, 0xb2, 0x3c, 0x4a, 0xdc, 0x59, 0x1e, 0x83, 0x69, 0x0f, 0x49, 0xf4, 0xab,
0xce, 0x13, 0x13, 0xc7, 0xf9, 0x5b, 0x3e, 0xa4, 0x9f, 0x85, 0x94, 0x1b, 0x1f, 0x5b, 0x9d, 0x1c,
0x52, 0x8c, 0x67, 0xd7, 0x05, 0x2f, 0xe9, 0x6a, 0x51, 0xe2, 0xce, 0x62, 0x18, 0x4c, 0x7b, 0xf8,
0x83, 0xe8, 0x3d, 0x3d, 0x4a, 0x36, 0xf3, 0xd9, 0x1d, 0x74, 0x08, 0x85, 0x13, 0xda, 0xdd, 0x0e,
0xca, 0x0e, 0x0e, 0x5a, 0xa6, 0x07, 0x9f, 0x8f, 0x50, 0x3d, 0x30, 0xf4, 0xdc, 0x09, 0x43, 0x2d,
0xdb, 0x07, 0x2c, 0x63, 0xa4, 0x6d, 0x25, 0xec, 0xb0, 0x6d, 0x20, 0x6d, 0xbb, 0x8c, 0x7e, 0xc3,
0x3c, 0x96, 0x7a, 0x1e, 0x95, 0xf2, 0x7a, 0x90, 0xde, 0x26, 0xca, 0xed, 0x42, 0xc6, 0xd7, 0xc3,
0x7e, 0x70, 0xab, 0x3c, 0xba, 0x07, 0xe2, 0xe5, 0x01, 0xfd, 0xef, 0x4e, 0x18, 0xd2, 0xb6, 0xff,
0x6e, 0x10, 0xfd, 0x50, 0xcb, 0x9e, 0xe5, 0xf1, 0x79, 0xc6, 0xe4, 0x94, 0x78, 0xc2, 0xc4, 0x15,
0x2f, 0x2f, 0xc7, 0xab, 0x3c, 0x21, 0xa6, 0x7f, 0x1c, 0xee, 0x98, 0xfe, 0x49, 0x25, 0x27, 0xe3,
0xd3, 0x05, 0x15, 0xbc, 0x80, 0x19, 0x5f, 0x53, 0x02, 0xc1, 0x0b, 0x2a, 0xe3, 0xf3, 0x91, 0x96,
0xd5, 0x17, 0xf5, 0xb0, 0x89, 0x5b, 0x7d, 0xe1, 0x8e, 0x93, 0xb7, 0x43, 0x88, 0x1d, 0xb6, 0x9a,
0x06, 0xcc, 0xf3, 0xb7, 0xe9, 0xec, 0x55, 0x31, 0xad, 0x9b, 0xf1, 0x7d, 0xbc, 0x85, 0x3a, 0x08,
0x31, 0x6c, 0x11, 0xa8, 0xf6, 0xf6, 0x8f, 0x36, 0x31, 0xd2, 0x5d, 0xe9, 0xb0, 0xe4, 0xf3, 0xe7,
0x6c, 0x16, 0x27, 0x2b, 0xdd, 0xff, 0x3f, 0x09, 0x75, 0x3c, 0x48, 0x9b, 0x20, 0x3e, 0x5d, 0x53,
0x4b, 0xc7, 0xf3, 0x5f, 0x83, 0xe8, 0x4e, 0x53, 0xfc, 0x8b, 0x38, 0x9f, 0x31, 0x5d, 0x9f, 0x2a,
0xfa, 0xbd, 0x7c, 0x7a, 0xc6, 0x2a, 0x11, 0x97, 0x62, 0xf8, 0x63, 0xbc, 0x90, 0x21, 0x1d, 0x13,
0xdb, 0x4f, 0xbe, 0x95, 0xae, 0xad, 0xf5, 0x71, 0x3d, 0xb0, 0xe9, 0x21, 0xc0, 0xaf, 0x75, 0x29,
0x81, 0x03, 0xc0, 0xed, 0x10, 0x62, 0x6b, 0x5d, 0x0a, 0x8e, 0xf3, 0x65, 0x2a, 0xd8, 0x11, 0xcb,
0x59, 0xd9, 0xae, 0x75, 0xa5, 0xea, 0x23, 0x44, 0xad, 0x13, 0xa8, 0x1d, 0x6c, 0x3c, 0x6f, 0x66,
0x72, 0xdc, 0x0e, 0x18, 0x69, 0x4d, 0x8f, 0x0f, 0xfb, 0xc1, 0x76, 0x75, 0xe7, 0xf8, 0x3c, 0x63,
0x4b, 0x7e, 0x09, 0x57, 0x77, 0xae, 0x09, 0x05, 0x10, 0xab, 0x3b, 0x14, 0xb4, 0x33, 0x98, 0xe3,
0xe7, 0x75, 0xca, 0xae, 0xc0, 0x0c, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x06, 0x43, 0x30, 0xed, 0xe1,
0x24, 0xfa, 0x25, 0x29, 0xfc, 0x3d, 0x9e, 0xe6, 0xc3, 0x9b, 0x88, 0x52, 0x2d, 0x30, 0x56, 0x6f,
0xd1, 0x00, 0x88, 0xb8, 0xfe, 0x75, 0x3f, 0xce, 0x13, 0x96, 0xa1, 0x11, 0x5b, 0x71, 0x30, 0x62,
0x0f, 0x03, 0x11, 0x3f, 0xbb, 0x4e, 0x05, 0x1a, 0x71, 0x2d, 0x08, 0x46, 0xac, 0x01, 0x9b, 0x8a,
0xc8, 0x9f, 0xeb, 0xf1, 0x70, 0x7c, 0x11, 0x97, 0x69, 0x3e, 0x1b, 0x62, 0xb1, 0x38, 0x72, 0x22,
0x15, 0xc1, 0x38, 0xd0, 0x25, 0xb4, 0xe2, 0x5e, 0x51, 0x94, 0xf5, 0x30, 0x8b, 0x75, 0x09, 0x1f,
0x09, 0x76, 0x89, 0x16, 0x8a, 0x7b, 0x3b, 0x60, 0x49, 0x96, 0xe6, 0x41, 0x6f, 0x1a, 0xe9, 0xe3,
0xcd, 0xa2, 0xda, 0xdb, 0x22, 0x7a, 0x5f, 0x02, 0xa7, 0x71, 0x29, 0xd2, 0x24, 0x2d, 0xe2, 0xbc,
0x49, 0xbe, 0xb1, 0x4e, 0xd5, 0xa2, 0x8c, 0xcf, 0x9d, 0x9e, 0xb4, 0x76, 0xfb, 0x1f, 0x83, 0xe8,
0x43, 0xe8, 0xf7, 0x94, 0x95, 0xf3, 0x54, 0xae, 0xe1, 0x2a, 0x35, 0x02, 0x0e, 0x3f, 0x0f, 0x1b,
0x6d, 0x29, 0x98, 0x68, 0x7e, 0xb4, 0xbe, 0xa2, 0x0e, 0xec, 0xf7, 0xa3, 0x48, 0xad, 0x15, 0xe4,
0x7a, 0xce, 0x6f, 0x80, 0x7a, 0x11, 0xe1, 0x2d, 0xe6, 0x3e, 0x0c, 0x10, 0x76, 0x9c, 0x56, 0xbf,
0xcb, 0x65, 0xea, 0x10, 0xd5, 0x90, 0x22, 0x62, 0x9c, 0x06, 0x08, 0x0c, 0x74, 0x7c, 0xc1, 0xaf,
0xf0, 0x40, 0x6b, 0x49, 0x38, 0x50, 0x4d, 0xd8, 0x8d, 0x23, 0x1d, 0x28, 0xb6, 0x71, 0xd4, 0x84,
0x11, 0xda, 0x38, 0x82, 0x8c, 0x36, 0xcc, 0xa3, 0x5f, 0x77, 0x0d, 0x3f, 0xe5, 0xfc, 0x72, 0x1e,
0x97, 0x97, 0xc3, 0x07, 0xb4, 0x72, 0xc3, 0x18, 0x47, 0xdb, 0xbd, 0x58, 0xdb, 0x87, 0x5c, 0x87,
0xf5, 0x2c, 0xff, 0xaa, 0xcc, 0x40, 0x1f, 0xf2, 0x6c, 0x68, 0x84, 0xe8, 0x43, 0x04, 0x6a, 0x87,
0x4d, 0xd7, 0xdb, 0x98, 0xc1, 0xa5, 0x8a, 0xa7, 0x3e, 0x66, 0xd4, 0x52, 0x05, 0xc1, 0x60, 0x13,
0x3a, 0x2a, 0xe3, 0xe2, 0x02, 0x6f, 0x42, 0x52, 0x14, 0x6e, 0x42, 0x0d, 0x02, 0xeb, 0x7b, 0xcc,
0xe2, 0x32, 0xb9, 0xc0, 0xeb, 0x5b, 0xc9, 0xc2, 0xf5, 0x6d, 0x18, 0x3b, 0xab, 0xbb, 0x86, 0xc7,
0x8b, 0xf3, 0x2a, 0x29, 0xd3, 0x73, 0x36, 0xdc, 0xa6, 0xb5, 0x0d, 0x44, 0xcc, 0xea, 0x24, 0x6c,
0x37, 0x96, 0xb4, 0xcf, 0x46, 0x76, 0x3c, 0xad, 0xc0, 0xc6, 0x52, 0x63, 0xc3, 0x21, 0x88, 0x8d,
0x25, 0x9c, 0x84, 0xc5, 0x3b, 0x2a, 0xf9, 0xa2, 0xa8, 0x3a, 0x8a, 0x07, 0xa0, 0x70, 0xf1, 0xda,
0xb0, 0xf6, 0x79, 0x1d, 0xfd, 0xa6, 0xfb, 0x48, 0x5f, 0xe5, 0x95, 0xf1, 0xba, 0x43, 0x3f, 0x27,
0x07, 0x23, 0xb6, 0x68, 0x02, 0xb8, 0x9d, 0x62, 0x1b, 0xcf, 0xe2, 0x80, 0x89, 0x38, 0xcd, 0xaa,
0xe1, 0x26, 0x6e, 0xa3, 0x91, 0x13, 0x53, 0x2c, 0xc6, 0xc1, 0x2e, 0x74, 0xb0, 0x28, 0xb2, 0x34,
0x69, 0xef, 0xd5, 0x69, 0x5d, 0x23, 0x0e, 0x77, 0x21, 0x17, 0x83, 0x43, 0xc2, 0x98, 0x09, 0xf5,
0x9f, 0xc9, 0xaa, 0x60, 0xf8, 0x90, 0xe0, 0x21, 0xe1, 0x21, 0x01, 0xa2, 0xb0, 0x3c, 0x63, 0x26,
0x9e, 0xc7, 0x2b, 0xbe, 0x20, 0x86, 0x04, 0x23, 0x0e, 0x97, 0xc7, 0xc5, 0xec, 0xc4, 0x6d, 0x3c,
0x1c, 0xe7, 0x82, 0x95, 0x79, 0x9c, 0x1d, 0x66, 0xf1, 0xac, 0x1a, 0x12, 0xfd, 0xc6, 0xa7, 0x88,
0x89, 0x9b, 0xa6, 0x91, 0xc7, 0x78, 0x5c, 0x1d, 0xc6, 0x4b, 0x5e, 0xa6, 0x82, 0x7e, 0x8c, 0x16,
0xe9, 0x7c, 0x8c, 0x1e, 0x8a, 0x7a, 0xdb, 0x2b, 0x93, 0x8b, 0x74, 0xc9, 0xa6, 0x01, 0x6f, 0x0d,
0xd2, 0xc3, 0x9b, 0x83, 0x22, 0x95, 0x36, 0xe6, 0x8b, 0x32, 0x61, 0x64, 0xa5, 0x29, 0x71, 0x67,
0xa5, 0x19, 0x4c, 0x7b, 0xf8, 0xab, 0x41, 0xf4, 0x5b, 0x4a, 0xea, 0x6e, 0xa0, 0x1d, 0xc4, 0xd5,
0xc5, 0x39, 0x8f, 0xcb, 0xe9, 0xf0, 0x63, 0xcc, 0x0e, 0x8a, 0x1a, 0xd7, 0x8f, 0xd7, 0x51, 0x81,
0x8f, 0xf5, 0x79, 0x5a, 0x39, 0x3d, 0x0e, 0x7d, 0xac, 0x1e, 0x12, 0x7e, 0xac, 0x10, 0x85, 0x03,
0x88, 0x94, 0xab, 0xc5, 0xea, 0x26, 0xa9, 0xef, 0xaf, 0x58, 0xb7, 0x3a, 0x39, 0x38, 0x3e, 0xd6,
0x42, 0xbf, 0xb5, 0xec, 0x50, 0x36, 0xf0, 0x16, 0x33, 0xea, 0x8b, 0x93, 0x9e, 0x4d, 0xaf, 0x08,
0x7b, 0x6e, 0xf5, 0x8c, 0x51, 0x5f, 0x9c, 0xf0, 0xec, 0x0c, 0x6b, 0x21, 0xcf, 0xc8, 0xd0, 0x36,
0xea, 0x8b, 0xc3, 0x06, 0xb4, 0x57, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, 0x36, 0x20, 0x0f,
0x09, 0x37, 0x20, 0x88, 0xc2, 0xec, 0x67, 0xc2, 0xeb, 0xdc, 0x0a, 0xcd, 0x7e, 0xa4, 0x28, 0x9c,
0xfd, 0x34, 0x08, 0x4c, 0x18, 0x26, 0x7c, 0x9f, 0x67, 0x19, 0x4b, 0x44, 0xfb, 0x24, 0xca, 0x68,
0x5a, 0x22, 0x9c, 0x30, 0x00, 0xd2, 0xee, 0x38, 0x34, 0xb9, 0x7a, 0x5c, 0xb2, 0xa7, 0xab, 0xe7,
0x69, 0x7e, 0x39, 0xc4, 0xe7, 0x46, 0x0b, 0x10, 0x3b, 0x0e, 0x28, 0x08, 0xd7, 0x04, 0xaf, 0xf2,
0x29, 0xc7, 0xd7, 0x04, 0xb5, 0x24, 0xbc, 0x26, 0xd0, 0x04, 0x34, 0x79, 0xc6, 0x28, 0x93, 0xb5,
0x24, 0x6c, 0x52, 0x13, 0xd8, 0x78, 0xa0, 0xb7, 0xf6, 0xc8, 0xf1, 0x00, 0x6c, 0xe6, 0x6d, 0x75,
0x72, 0xb0, 0x85, 0x36, 0x8b, 0x83, 0x43, 0x26, 0x92, 0x0b, 0xbc, 0x85, 0x7a, 0x48, 0xb8, 0x85,
0x42, 0x14, 0x16, 0x69, 0xc2, 0xcd, 0xe2, 0x66, 0x13, 0x6f, 0x1f, 0xad, 0x85, 0xcd, 0x56, 0x27,
0x07, 0xd3, 0xf5, 0xe3, 0xb9, 0x7c, 0x66, 0x68, 0x23, 0x57, 0xb2, 0x70, 0xba, 0x6e, 0x18, 0x18,
0xbd, 0x12, 0xd4, 0x8f, 0x13, 0x8f, 0xde, 0xca, 0xc3, 0xd1, 0x7b, 0x9c, 0x76, 0xf2, 0x6f, 0x83,
0xe8, 0xa6, 0xeb, 0xe5, 0x84, 0xd7, 0x7d, 0xe4, 0x75, 0x9c, 0xa5, 0xd3, 0x58, 0xb0, 0x09, 0xbf,
0x64, 0x39, 0x58, 0xef, 0xfb, 0xd1, 0x2a, 0x7e, 0xe4, 0x29, 0x10, 0xeb, 0xfd, 0x5e, 0x8a, 0xb0,
0x9d, 0x28, 0xfa, 0x55, 0xc5, 0xf6, 0xe3, 0x8a, 0x18, 0xc9, 0x3c, 0x24, 0xdc, 0x4e, 0x20, 0x0a,
0x93, 0x36, 0x25, 0x7f, 0x76, 0x5d, 0xb0, 0x32, 0x65, 0x79, 0xc2, 0xf0, 0xa4, 0x0d, 0x52, 0xe1,
0xa4, 0x0d, 0xa1, 0x5b, 0xcb, 0x61, 0x33, 0x38, 0xb5, 0x0f, 0x93, 0x21, 0x11, 0x38, 0x4c, 0x26,
0x50, 0x58, 0x48, 0x0b, 0xa0, 0x5b, 0x4a, 0x2d, 0x2b, 0xc1, 0x2d, 0x25, 0x9a, 0x6e, 0x6d, 0x32,
0x18, 0x66, 0x5c, 0x77, 0x93, 0x8e, 0xd0, 0xc7, 0x6e, 0x77, 0xd9, 0xee, 0xc5, 0xe2, 0xbb, 0x1a,
0x67, 0x2c, 0x8b, 0xe5, 0x14, 0x12, 0xd8, 0x3a, 0x68, 0x98, 0x3e, 0xbb, 0x1a, 0x0e, 0xab, 0x1d,
0xfe, 0xc5, 0x20, 0xba, 0x81, 0x79, 0x7c, 0x59, 0x48, 0xbf, 0x8f, 0xba, 0x6d, 0x29, 0x92, 0x38,
0x2d, 0x0f, 0x6b, 0xe8, 0x18, 0xfe, 0x24, 0xfa, 0xa0, 0x11, 0xd9, 0xc3, 0x74, 0x1d, 0x80, 0x9f,
0x45, 0x98, 0xf8, 0x21, 0x67, 0xdc, 0xef, 0xf6, 0xe6, 0x6d, 0x82, 0xee, 0xc7, 0x55, 0x81, 0x04,
0xdd, 0xd8, 0xd0, 0x62, 0x22, 0x41, 0x47, 0x30, 0x38, 0x53, 0x37, 0x48, 0xdd, 0x4f, 0xb0, 0x31,
0xce, 0x98, 0x70, 0x7b, 0xc9, 0xbd, 0x6e, 0x10, 0xb6, 0x9d, 0x46, 0xac, 0xf3, 0xe2, 0x07, 0x21,
0x0b, 0x20, 0x37, 0xde, 0xee, 0xc5, 0x6a, 0x87, 0x7f, 0x16, 0x7d, 0xbf, 0x55, 0xb0, 0x43, 0x16,
0x8b, 0x45, 0xc9, 0xa6, 0xc3, 0xdd, 0x8e, 0xb8, 0x1b, 0xd0, 0xb8, 0x7e, 0xd4, 0x5f, 0x41, 0xfb,
0xff, 0x9b, 0x41, 0xf4, 0x03, 0x9f, 0x53, 0x55, 0x6c, 0x62, 0x78, 0x1c, 0x32, 0xe9, 0xb3, 0x26,
0x8c, 0x27, 0x6b, 0xe9, 0xb4, 0xd6, 0x60, 0x6e, 0x43, 0xde, 0x5b, 0xc6, 0x69, 0x16, 0x9f, 0x67,
0x0c, 0x5d, 0x83, 0x79, 0x6d, 0xd3, 0xa0, 0xc1, 0x35, 0x18, 0xa9, 0xd2, 0x1a, 0x25, 0x65, 0x7f,
0x73, 0x72, 0xf7, 0x87, 0x74, 0xaf, 0x44, 0x52, 0xf7, 0x9d, 0x9e, 0xb4, 0x76, 0x2b, 0x9a, 0xbd,
0xab, 0xfa, 0x67, 0xb7, 0x91, 0x63, 0x5e, 0xb5, 0x2a, 0xd2, 0xd2, 0x77, 0x7a, 0xd2, 0xda, 0xeb,
0x9f, 0x46, 0x1f, 0xb4, 0xbd, 0xea, 0x49, 0x61, 0xb7, 0xd3, 0x14, 0x98, 0x17, 0x1e, 0xf5, 0x57,
0xb0, 0xa9, 0xfe, 0x17, 0x69, 0x25, 0x78, 0xb9, 0x1a, 0x5f, 0xf0, 0xab, 0xe6, 0xc2, 0xa8, 0xdf,
0x5b, 0x35, 0x30, 0x72, 0x08, 0x22, 0xd5, 0xc7, 0xc9, 0x96, 0x2b, 0x7b, 0xb1, 0xb4, 0x22, 0x5c,
0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x63, 0x55, 0x53, 0x2a, 0x7b, 0x0b, 0x76, 0x0b, 0x0f, 0xb5,
0x7d, 0x13, 0xf6, 0x5e, 0x37, 0x68, 0x97, 0x5f, 0x87, 0x69, 0xc6, 0x5e, 0xbe, 0x7d, 0x9b, 0xf1,
0x78, 0x0a, 0x96, 0x5f, 0xb5, 0x64, 0xa4, 0x45, 0xc4, 0xf2, 0x0b, 0x20, 0x36, 0xe9, 0xac, 0x05,
0xf2, 0x6c, 0xa6, 0x31, 0xbd, 0xd9, 0xd6, 0x73, 0xe5, 0x44, 0xd2, 0x89, 0x71, 0x76, 0xc2, 0xa8,
0xa5, 0x75, 0x17, 0x6c, 0x7c, 0xdc, 0x6d, 0xeb, 0x3a, 0x62, 0x62, 0xc2, 0x40, 0x30, 0xbb, 0x3e,
0xaa, 0x85, 0xaf, 0x0a, 0x69, 0xfc, 0x56, 0x5b, 0x4b, 0x49, 0x88, 0xf5, 0x91, 0x4f, 0xd8, 0x3c,
0xbf, 0xfe, 0xfd, 0x80, 0x5f, 0xe5, 0xd2, 0x28, 0xf2, 0x34, 0x1b, 0x19, 0x91, 0xe7, 0x43, 0x46,
0x1b, 0xfe, 0x69, 0xf4, 0x8b, 0xd2, 0x70, 0xc9, 0x8b, 0xe1, 0x06, 0xa2, 0x50, 0x3a, 0xd7, 0x4e,
0x6e, 0x92, 0x72, 0x7b, 0x7b, 0xca, 0xd4, 0xdf, 0xab, 0x2a, 0x9e, 0x31, 0x70, 0x7b, 0xca, 0xd6,
0x8a, 0x94, 0x12, 0xb7, 0xa7, 0xda, 0x94, 0xbd, 0x11, 0x54, 0xcb, 0x4e, 0xf8, 0x54, 0x5b, 0x47,
0x4a, 0x68, 0x84, 0xc4, 0x8d, 0xa0, 0x16, 0x64, 0xf7, 0xef, 0x4f, 0xe2, 0x65, 0x3a, 0x33, 0x83,
0xbf, 0x1a, 0x43, 0x2a, 0xb0, 0x7f, 0x6f, 0x99, 0x91, 0x03, 0x11, 0xfb, 0xf7, 0x24, 0xac, 0x7d,
0xfe, 0xeb, 0x20, 0xba, 0x65, 0x99, 0xa3, 0x66, 0x5b, 0xe5, 0x38, 0x7f, 0xcb, 0xdf, 0xa4, 0xe2,
0xa2, 0x5e, 0xc7, 0x57, 0xc3, 0xcf, 0x28, 0x93, 0x38, 0x6f, 0x42, 0xf9, 0x7c, 0x6d, 0x3d, 0x9b,
0xcd, 0x35, 0xdb, 0x2d, 0xf6, 0x6c, 0x4b, 0x69, 0x80, 0x6c, 0xce, 0xec, 0xca, 0x40, 0x8e, 0xc8,
0xe6, 0x42, 0xbc, 0xad, 0x62, 0xe3, 0x3c, 0xe3, 0x39, 0xac, 0x62, 0x6b, 0xa1, 0x16, 0x12, 0x55,
0xdc, 0x82, 0xec, 0xd8, 0xd8, 0x88, 0xd4, 0xce, 0xc0, 0x5e, 0x96, 0x81, 0xb1, 0xd1, 0xa8, 0x1a,
0x80, 0x18, 0x1b, 0x51, 0x50, 0xfb, 0x39, 0x8b, 0xbe, 0x53, 0x3f, 0xd2, 0xd3, 0x92, 0x2d, 0x53,
0x06, 0x8f, 0x61, 0x1d, 0x09, 0xd1, 0xff, 0x7d, 0xc2, 0xf6, 0xac, 0x57, 0x79, 0x55, 0x64, 0x71,
0x75, 0xa1, 0x0f, 0xe6, 0xfc, 0x32, 0x37, 0x42, 0x78, 0x34, 0x77, 0xb7, 0x83, 0xb2, 0x03, 0x6f,
0x23, 0x33, 0x43, 0xcc, 0x26, 0xae, 0xda, 0x1a, 0x66, 0xb6, 0x3a, 0x39, 0xbb, 0x35, 0x79, 0x14,
0x67, 0x19, 0x2b, 0x57, 0x8d, 0xec, 0x45, 0x9c, 0xa7, 0x6f, 0x59, 0x25, 0xc0, 0xd6, 0xa4, 0xa6,
0x46, 0x10, 0x23, 0xb6, 0x26, 0x03, 0xb8, 0xcd, 0xac, 0x81, 0xe7, 0xe3, 0x7c, 0xca, 0xae, 0x41,
0x66, 0x0d, 0xed, 0x48, 0x86, 0xc8, 0xac, 0x29, 0xd6, 0x4e, 0x8f, 0x4f, 0x33, 0x9e, 0x5c, 0xea,
0x29, 0xc0, 0xaf, 0x60, 0x29, 0x81, 0x73, 0xc0, 0xed, 0x10, 0x62, 0x27, 0x01, 0x29, 0x38, 0x63,
0x45, 0x16, 0x27, 0xf0, 0x2c, 0x5e, 0xe9, 0x68, 0x19, 0x31, 0x09, 0x40, 0x06, 0x84, 0xab, 0xcf,
0xf8, 0xb1, 0x70, 0xc1, 0x11, 0xff, 0xed, 0x10, 0x62, 0xa7, 0x41, 0x29, 0x18, 0x17, 0x59, 0x2a,
0x40, 0x37, 0x50, 0x1a, 0x52, 0x42, 0x74, 0x03, 0x9f, 0x00, 0x26, 0x5f, 0xb0, 0x72, 0xc6, 0x50,
0x93, 0x52, 0x12, 0x34, 0xd9, 0x10, 0xf6, 0xf6, 0x91, 0x2a, 0x3b, 0x2f, 0x56, 0xe0, 0xf6, 0x91,
0x2e, 0x16, 0x2f, 0x56, 0xc4, 0xed, 0x23, 0x0f, 0x00, 0x21, 0x9e, 0xc6, 0x95, 0xc0, 0x43, 0x94,
0x92, 0x60, 0x88, 0x0d, 0x61, 0xe7, 0x68, 0x15, 0xe2, 0x42, 0x80, 0x39, 0x5a, 0x07, 0xe0, 0x1c,
0x15, 0xde, 0x24, 0xe5, 0x76, 0x24, 0x51, 0xb5, 0xc2, 0xc4, 0x61, 0xca, 0xb2, 0x69, 0x05, 0x46,
0x12, 0xfd, 0xdc, 0x1b, 0x29, 0x31, 0x92, 0xb4, 0x29, 0xd0, 0x94, 0xf4, 0x1e, 0x2e, 0x56, 0x3a,
0xb0, 0x7d, 0x7b, 0x3b, 0x84, 0xd8, 0xf1, 0xa9, 0x09, 0x7a, 0x3f, 0x2e, 0xcb, 0xb4, 0x9e, 0xfc,
0x37, 0xf1, 0x80, 0x1a, 0x39, 0x31, 0x3e, 0x61, 0x1c, 0xe8, 0x5e, 0xcd, 0xc0, 0x8d, 0x05, 0x06,
0x87, 0xee, 0x8f, 0x82, 0x8c, 0xcd, 0x38, 0xa5, 0xc4, 0x39, 0xeb, 0xc2, 0x9e, 0x26, 0x72, 0xd4,
0xb5, 0xd9, 0x85, 0x39, 0xf7, 0x99, 0x8d, 0x8b, 0x17, 0x7c, 0xc9, 0x26, 0xfc, 0xd9, 0x75, 0x5a,
0x89, 0x34, 0x9f, 0xe9, 0x99, 0xfb, 0x09, 0x61, 0x09, 0x83, 0x89, 0xfb, 0xcc, 0x9d, 0x4a, 0x36,
0x81, 0x00, 0xb1, 0x9c, 0xb0, 0x2b, 0x34, 0x81, 0x80, 0x16, 0x0d, 0x47, 0x24, 0x10, 0x21, 0xde,
0xee, 0x69, 0x18, 0xe7, 0xfa, 0xa5, 0xaf, 0x09, 0x6f, 0x72, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x65,
0x65, 0x50, 0xc1, 0xae, 0xf5, 0x8c, 0x7f, 0xdb, 0xc5, 0xee, 0x11, 0x76, 0xda, 0xdd, 0xec, 0x7e,
0x0f, 0x12, 0x71, 0x65, 0x0f, 0x6c, 0x29, 0x57, 0xed, 0xf3, 0xda, 0xfb, 0x3d, 0x48, 0x67, 0x7f,
0xc4, 0x2d, 0xd6, 0xd3, 0x38, 0xb9, 0x9c, 0x95, 0x7c, 0x91, 0x4f, 0xf7, 0x79, 0xc6, 0x4b, 0xb0,
0x3f, 0xe2, 0x45, 0x0d, 0x50, 0x62, 0x7f, 0xa4, 0x43, 0xc5, 0x66, 0x70, 0x6e, 0x14, 0x7b, 0x59,
0x3a, 0x83, 0xab, 0x5b, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x46, 0xa4, 0x56, 0xbf,
0x22, 0x4d, 0xe2, 0x4c, 0xf9, 0xdb, 0xa5, 0xcd, 0x78, 0x60, 0x67, 0x23, 0x42, 0x14, 0x90, 0x72,
0x4e, 0x16, 0x65, 0x7e, 0x9c, 0x0b, 0x4e, 0x96, 0xb3, 0x01, 0x3a, 0xcb, 0xe9, 0x80, 0x60, 0x58,
0x9d, 0xb0, 0xeb, 0x3a, 0x9a, 0xfa, 0x1f, 0x6c, 0x58, 0xad, 0x7f, 0x1f, 0x69, 0x79, 0x68, 0x58,
0x05, 0x1c, 0x28, 0x8c, 0x76, 0xa2, 0x1a, 0x4c, 0x40, 0xdb, 0x6f, 0x26, 0xf7, 0xba, 0x41, 0xdc,
0xcf, 0x58, 0xac, 0x32, 0x16, 0xf2, 0x23, 0x81, 0x3e, 0x7e, 0x1a, 0xd0, 0x1e, 0x9c, 0x78, 0xe5,
0xb9, 0x60, 0xc9, 0x65, 0xeb, 0xfe, 0x89, 0x1f, 0xa8, 0x42, 0x88, 0x83, 0x13, 0x02, 0xc5, 0xab,
0xe8, 0x38, 0xe1, 0x79, 0xa8, 0x8a, 0x6a, 0x79, 0x9f, 0x2a, 0xd2, 0x9c, 0x5d, 0xfc, 0x1a, 0xa9,
0x6e, 0x99, 0xaa, 0x9a, 0xb6, 0x09, 0x0b, 0x2e, 0x44, 0x2c, 0x7e, 0x49, 0xd8, 0xe6, 0xe4, 0xd0,
0xe7, 0x8b, 0xf6, 0xfd, 0xcf, 0x96, 0x95, 0x17, 0xf4, 0xfd, 0x4f, 0x8a, 0xa5, 0x0b, 0xa9, 0xda,
0x48, 0x87, 0x15, 0xbf, 0x9d, 0x3c, 0xec, 0x07, 0xdb, 0x25, 0x8f, 0xe7, 0x73, 0x3f, 0x63, 0x71,
0xa9, 0xbc, 0xee, 0x04, 0x0c, 0x59, 0x8c, 0x58, 0xf2, 0x04, 0x70, 0x30, 0x84, 0x79, 0x9e, 0xf7,
0x79, 0x2e, 0x58, 0x2e, 0xb0, 0x21, 0xcc, 0x37, 0xa6, 0xc1, 0xd0, 0x10, 0x46, 0x29, 0x80, 0x76,
0x2b, 0xf7, 0x83, 0x98, 0x38, 0x89, 0xe7, 0x68, 0xc6, 0xa6, 0xf6, 0x7a, 0x94, 0x3c, 0xd4, 0x6e,
0x01, 0x07, 0xba, 0xfc, 0xf1, 0x3c, 0x9e, 0x19, 0x2f, 0x88, 0xb6, 0x94, 0xb7, 0xdc, 0xdc, 0xeb,
0x06, 0x81, 0x9f, 0xd7, 0xe9, 0x94, 0xf1, 0x80, 0x1f, 0x29, 0xef, 0xe3, 0x07, 0x82, 0x20, 0x73,
0xaa, 0x4b, 0xab, 0x56, 0x53, 0x7b, 0xf9, 0x54, 0xaf, 0x21, 0x47, 0xc4, 0x43, 0x01, 0x5c, 0x28,
0x73, 0x22, 0x78, 0xd0, 0x3f, 0x9a, 0xcd, 0xd1, 0x50, 0xff, 0x30, 0x7b, 0x9f, 0x7d, 0xfa, 0x07,
0x06, 0x6b, 0x9f, 0x7f, 0xac, 0xfb, 0xc7, 0x41, 0x2c, 0xe2, 0x3a, 0x67, 0x7e, 0x9d, 0xb2, 0x2b,
0xbd, 0x08, 0x45, 0xca, 0xdb, 0x50, 0x23, 0xf9, 0xc6, 0x0b, 0x58, 0x91, 0xee, 0xf6, 0xe6, 0x03,
0xbe, 0x75, 0x76, 0xde, 0xe9, 0x1b, 0xa4, 0xe9, 0xbb, 0xbd, 0xf9, 0x80, 0x6f, 0xfd, 0x2a, 0x5d,
0xa7, 0x6f, 0xf0, 0x3e, 0xdd, 0x6e, 0x6f, 0x5e, 0xfb, 0xfe, 0xcb, 0x41, 0x74, 0xa3, 0xe5, 0xbc,
0xce, 0x81, 0x12, 0x91, 0x2e, 0x19, 0x96, 0xca, 0xf9, 0xf6, 0x0c, 0x1a, 0x4a, 0xe5, 0x68, 0x15,
0xe7, 0xfb, 0x0b, 0x58, 0x14, 0xa7, 0xbc, 0x4a, 0xe5, 0xc1, 0xf1, 0x93, 0x1e, 0x46, 0x1b, 0x38,
0xb4, 0x60, 0x09, 0x29, 0xd9, 0x63, 0x37, 0x0f, 0xb5, 0x57, 0x3d, 0x1f, 0x06, 0xec, 0xb5, 0x6f,
0x7c, 0xee, 0xf4, 0xa4, 0xed, 0x01, 0x98, 0xc7, 0xb8, 0x27, 0x6f, 0xa1, 0x5a, 0x45, 0x0f, 0xdf,
0x1e, 0xf5, 0x57, 0xd0, 0xee, 0xff, 0xba, 0xc9, 0xe9, 0xa1, 0x7f, 0xdd, 0x09, 0x1e, 0xf7, 0xb1,
0x08, 0x3a, 0xc2, 0x93, 0xb5, 0x74, 0x74, 0x20, 0xff, 0x39, 0x88, 0x6e, 0xa3, 0x81, 0xf8, 0x67,
0xb0, 0xbf, 0xdd, 0xc7, 0x36, 0x7e, 0x16, 0xfb, 0xe3, 0x6f, 0xa3, 0xaa, 0xa3, 0xfb, 0x87, 0x66,
0x69, 0xdd, 0x68, 0xc8, 0xeb, 0xf8, 0x2f, 0xcb, 0x29, 0x2b, 0x75, 0x8f, 0x0d, 0x35, 0x3a, 0x0b,
0xc3, 0x7e, 0xfb, 0xe9, 0x9a, 0x5a, 0xce, 0xb7, 0x42, 0x3c, 0x58, 0xbf, 0x99, 0xe4, 0xc4, 0x13,
0xb2, 0xec, 0xd0, 0x30, 0xa0, 0xcf, 0xd6, 0x55, 0xa3, 0x7a, 0xb2, 0x03, 0xcb, 0x57, 0x8f, 0x9f,
0xf4, 0x34, 0xec, 0xbd, 0x8c, 0xfc, 0xc9, 0x7a, 0x4a, 0x3a, 0x96, 0xff, 0x1e, 0x44, 0x77, 0x3d,
0xd6, 0x9e, 0x34, 0x80, 0xfd, 0x90, 0x9f, 0x04, 0xec, 0x53, 0x4a, 0x26, 0xb8, 0xdf, 0xf9, 0x76,
0xca, 0xf6, 0xc3, 0x1a, 0x9e, 0xca, 0x61, 0x9a, 0x09, 0x56, 0xb6, 0x3f, 0xac, 0xe1, 0xdb, 0x55,
0xd4, 0x88, 0xfe, 0xb0, 0x46, 0x00, 0x77, 0x3e, 0xac, 0x81, 0x78, 0x46, 0x3f, 0xac, 0x81, 0x5a,
0x0b, 0x7e, 0x58, 0x23, 0xac, 0x41, 0x4d, 0x3e, 0x4d, 0x08, 0x6a, 0x47, 0xbb, 0x97, 0x45, 0x7f,
0x83, 0xfb, 0xf1, 0x3a, 0x2a, 0xc4, 0xf4, 0xab, 0x38, 0x79, 0x33, 0xac, 0xc7, 0x33, 0xf5, 0x6e,
0x87, 0xed, 0xf6, 0xe6, 0xb5, 0xef, 0x9f, 0xe9, 0x75, 0x8f, 0x99, 0x6c, 0x78, 0x29, 0x3f, 0xaa,
0xb2, 0x1d, 0x9a, 0x3c, 0x6a, 0x0b, 0x6e, 0xcd, 0x3f, 0xec, 0x07, 0x13, 0xc5, 0xad, 0x09, 0x5d,
0xe9, 0xa3, 0x2e, 0x43, 0xa0, 0xca, 0x77, 0x7b, 0xf3, 0xc4, 0x24, 0xa7, 0x7c, 0xab, 0xda, 0xee,
0x61, 0xcc, 0xaf, 0xeb, 0x47, 0xfd, 0x15, 0xec, 0xd5, 0x96, 0x96, 0x7b, 0x59, 0xcf, 0x9d, 0x4f,
0xd0, 0xab, 0xe5, 0x9d, 0x9e, 0x74, 0x28, 0xb9, 0x71, 0xa7, 0xf7, 0xae, 0xe4, 0x06, 0x9d, 0xe2,
0x3f, 0x59, 0x4f, 0x49, 0xc7, 0xf2, 0x2f, 0x83, 0xe8, 0x26, 0x19, 0x8b, 0x6e, 0x05, 0x9f, 0xf5,
0xb5, 0x0c, 0x5a, 0xc3, 0xe7, 0x6b, 0xeb, 0xe9, 0xa0, 0xfe, 0x7d, 0x10, 0xdd, 0x0a, 0x04, 0xa5,
0x9a, 0xc7, 0x1a, 0xd6, 0xfd, 0x66, 0xf2, 0xa3, 0xf5, 0x15, 0xa9, 0xc9, 0xde, 0xc5, 0xc7, 0xed,
0xef, 0x4d, 0x04, 0x6c, 0x8f, 0xe9, 0xef, 0x4d, 0x74, 0x6b, 0xc1, 0xcd, 0x9f, 0x3a, 0x25, 0xd1,
0xeb, 0x22, 0x6c, 0xf3, 0x47, 0x66, 0x2c, 0x60, 0x3d, 0xb4, 0xd5, 0xc9, 0x61, 0x4e, 0x9e, 0x5d,
0x17, 0x71, 0x3e, 0xa5, 0x9d, 0x28, 0x79, 0xb7, 0x13, 0xc3, 0xc1, 0x4d, 0xb3, 0x5a, 0x7a, 0xc6,
0x9b, 0x45, 0xde, 0x7d, 0x4a, 0xdf, 0x20, 0xc1, 0x4d, 0xb3, 0x16, 0x4a, 0x78, 0xd3, 0x19, 0x6d,
0xc8, 0x1b, 0x48, 0x64, 0x1f, 0xf4, 0x41, 0xc1, 0xf2, 0xc1, 0x78, 0x33, 0x7b, 0xf1, 0x0f, 0x43,
0x56, 0x5a, 0xfb, 0xf1, 0x3b, 0x3d, 0x69, 0xc2, 0xed, 0x98, 0x89, 0x2f, 0x58, 0x3c, 0x65, 0x65,
0xd0, 0xad, 0xa1, 0x7a, 0xb9, 0x75, 0x69, 0xcc, 0xed, 0x3e, 0xcf, 0x16, 0xf3, 0x5c, 0x57, 0x26,
0xe9, 0xd6, 0xa5, 0xba, 0xdd, 0x02, 0x1a, 0x6e, 0x17, 0x5a, 0xb7, 0x32, 0xb9, 0x7c, 0x10, 0x36,
0xe3, 0xe5, 0x94, 0xdb, 0xbd, 0x58, 0xba, 0x9c, 0xba, 0x19, 0x75, 0x94, 0x13, 0xb4, 0xa4, 0x9d,
0x9e, 0x34, 0xdc, 0xb7, 0x73, 0xdc, 0x9a, 0xf6, 0xb4, 0xdb, 0x61, 0xab, 0xd5, 0xa4, 0x1e, 0xf5,
0x57, 0x80, 0xbb, 0xa4, 0xba, 0x55, 0xd5, 0xab, 0xa2, 0xc3, 0x34, 0xcb, 0x86, 0xdb, 0x81, 0x66,
0xd2, 0x40, 0xc1, 0x5d, 0x52, 0x04, 0x26, 0x5a, 0x72, 0xb3, 0xab, 0x98, 0x0f, 0xbb, 0xec, 0x48,
0xaa, 0x57, 0x4b, 0x76, 0x69, 0xb0, 0xdb, 0xe6, 0x3c, 0x6a, 0x53, 0xda, 0x51, 0xf8, 0xc1, 0xb5,
0x0a, 0xbc, 0xdb, 0x9b, 0x07, 0xc7, 0xf0, 0x92, 0x92, 0x33, 0xcb, 0x1d, 0xca, 0x84, 0x37, 0x93,
0xdc, 0xed, 0xa0, 0xc0, 0x8e, 0xa5, 0xea, 0x46, 0x6f, 0xd2, 0xe9, 0x8c, 0x09, 0xf4, 0x04, 0xc9,
0x05, 0x82, 0x27, 0x48, 0x00, 0x04, 0x55, 0xa7, 0x7e, 0x1f, 0x33, 0x31, 0x89, 0xcb, 0x19, 0x13,
0xc7, 0x53, 0xac, 0xea, 0xb4, 0xb2, 0x43, 0x85, 0xaa, 0x0e, 0xa5, 0xc1, 0x68, 0x60, 0xdc, 0xea,
0xf7, 0xa9, 0x1f, 0x84, 0xcc, 0x80, 0x97, 0xaa, 0xb7, 0x7b, 0xb1, 0x60, 0x46, 0xb1, 0x0e, 0xd3,
0x79, 0x2a, 0xb0, 0x19, 0xc5, 0xb1, 0x51, 0x23, 0xa1, 0x19, 0xa5, 0x8d, 0x52, 0xc5, 0xab, 0x73,
0x84, 0xe3, 0x69, 0xb8, 0x78, 0x8a, 0xe9, 0x57, 0x3c, 0xc3, 0xb6, 0x0e, 0x3c, 0x73, 0xd3, 0x64,
0xc4, 0x85, 0x5e, 0x2a, 0x23, 0x6d, 0x5b, 0xbe, 0x62, 0x08, 0xc1, 0xd0, 0xa8, 0x43, 0x29, 0x38,
0x6f, 0xb1, 0x18, 0xae, 0x39, 0x93, 0x2d, 0x0a, 0x16, 0x97, 0x71, 0x9e, 0xa0, 0x4b, 0x53, 0x69,
0xb0, 0x45, 0x86, 0x96, 0xa6, 0xa4, 0x06, 0x38, 0x4e, 0xf7, 0x5f, 0x0e, 0x44, 0xba, 0x82, 0x79,
0x0b, 0xcf, 0x7f, 0x37, 0xf0, 0x7e, 0x0f, 0x12, 0x1e, 0xa7, 0x37, 0x80, 0xd9, 0x94, 0x57, 0x4e,
0x3f, 0x0e, 0x98, 0xf2, 0xd1, 0xd0, 0x32, 0x98, 0x56, 0x01, 0x8d, 0xda, 0x24, 0xb8, 0x4c, 0xfc,
0x94, 0xad, 0xb0, 0x46, 0x6d, 0xf3, 0x53, 0x89, 0x84, 0x1a, 0x75, 0x1b, 0x05, 0x79, 0xa6, 0xbb,
0x0e, 0xda, 0x0c, 0xe8, 0xbb, 0x4b, 0x9f, 0xad, 0x4e, 0x0e, 0xf4, 0x9c, 0x83, 0x74, 0xe9, 0x9d,
0x61, 0x20, 0x81, 0x1e, 0xa4, 0x4b, 0xfc, 0x08, 0x63, 0xbb, 0x17, 0x0b, 0x8f, 0xea, 0x63, 0xc1,
0xae, 0x9b, 0x33, 0x74, 0x24, 0x5c, 0x29, 0x6f, 0x1d, 0xa2, 0xdf, 0xeb, 0x06, 0xed, 0xc5, 0xd8,
0xd3, 0x92, 0x27, 0xac, 0xaa, 0xf4, 0x47, 0xb8, 0xfc, 0x9b, 0x47, 0x5a, 0x36, 0x02, 0x9f, 0xe0,
0xba, 0x13, 0x86, 0xb4, 0xed, 0x2f, 0xa2, 0x77, 0x9f, 0xf3, 0xd9, 0x98, 0xe5, 0xd3, 0xe1, 0x0f,
0xfd, 0xab, 0xa8, 0x7c, 0x36, 0xaa, 0x7f, 0x36, 0xf6, 0x36, 0x28, 0xb1, 0xbd, 0x4c, 0x77, 0xc0,
0xce, 0x17, 0xb3, 0x49, 0xc9, 0x18, 0xb8, 0x4c, 0x27, 0x7f, 0x1f, 0xd5, 0x02, 0xe2, 0x32, 0x9d,
0x07, 0xd8, 0x59, 0xd2, 0xd8, 0xab, 0x13, 0x51, 0x78, 0x59, 0xcd, 0xea, 0x48, 0x29, 0x31, 0x4b,
0xb6, 0x29, 0x5b, 0x79, 0x52, 0xa6, 0x3e, 0x17, 0xb6, 0x98, 0xcf, 0xe3, 0x72, 0x05, 0x2a, 0x4f,
0xe9, 0xba, 0x00, 0x51, 0x79, 0x28, 0x68, 0x5b, 0xa5, 0xf2, 0x23, 0xe2, 0xe4, 0xf2, 0x88, 0x97,
0x7c, 0x21, 0xd2, 0x9c, 0x55, 0xa0, 0x55, 0x6a, 0x0b, 0x3e, 0x43, 0xb4, 0x4a, 0x8a, 0xb5, 0x59,
0x9c, 0x24, 0xd4, 0x3d, 0x3a, 0xf9, 0xe9, 0xc9, 0x4a, 0xf0, 0x12, 0x9e, 0xe5, 0x29, 0x2b, 0x10,
0x22, 0xb2, 0x38, 0x12, 0x06, 0x75, 0x7f, 0x9a, 0xe6, 0x33, 0xb4, 0xee, 0x4f, 0xdd, 0x0f, 0xad,
0xdd, 0xa2, 0x01, 0x3b, 0x1e, 0xab, 0x87, 0xa6, 0x3e, 0x3f, 0xa3, 0xdf, 0xed, 0x43, 0x1f, 0xba,
0x4b, 0x10, 0xe3, 0x31, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0x69, 0x73, 0x5b, 0x0c, 0x73,
0xe5, 0x11, 0x41, 0x57, 0x90, 0xb4, 0x4d, 0xe1, 0x05, 0x13, 0x65, 0x9a, 0x54, 0x63, 0x26, 0x4e,
0xe3, 0x32, 0x9e, 0x33, 0xc1, 0x4a, 0xd8, 0x14, 0x34, 0x32, 0xf2, 0x18, 0xa2, 0x29, 0x50, 0xac,
0x76, 0xf8, 0xbb, 0xd1, 0xf7, 0xea, 0x91, 0x8b, 0xe5, 0xfa, 0x5b, 0xd8, 0xcf, 0xe4, 0x47, 0xf4,
0x87, 0xef, 0x1b, 0x1b, 0x63, 0x51, 0xb2, 0x78, 0xde, 0xd8, 0x7e, 0xcf, 0xfc, 0x2e, 0xc1, 0x47,
0x83, 0x7a, 0xdc, 0x3e, 0xe1, 0x22, 0x7d, 0x5b, 0x2f, 0x14, 0xf4, 0xa1, 0x0c, 0x18, 0xb7, 0x5d,
0xf1, 0x28, 0xf0, 0x26, 0x38, 0xc6, 0xd9, 0x9e, 0xe8, 0x4a, 0xcf, 0x58, 0x91, 0xc1, 0x9e, 0xe8,
0x69, 0x4b, 0x80, 0xe8, 0x89, 0x28, 0x68, 0x27, 0x21, 0x57, 0x3c, 0x61, 0xe1, 0xc2, 0x4c, 0x58,
0xbf, 0xc2, 0x4c, 0xbc, 0xeb, 0xe6, 0xf5, 0x1a, 0xaa, 0xe4, 0xf1, 0x34, 0x89, 0x2b, 0x71, 0x1a,
0xaf, 0x32, 0x1e, 0x4f, 0xe5, 0xc3, 0x84, 0x6b, 0xa8, 0x86, 0x19, 0xb9, 0x10, 0xb5, 0x86, 0xa2,
0x60, 0xe5, 0xf3, 0xe9, 0x87, 0xff, 0xfb, 0xf5, 0xc6, 0xe0, 0xab, 0xaf, 0x37, 0x06, 0xff, 0xff,
0xf5, 0xc6, 0xe0, 0x9f, 0xbf, 0xd9, 0x78, 0xe7, 0xab, 0x6f, 0x36, 0xde, 0xf9, 0xbf, 0x6f, 0x36,
0xde, 0xf9, 0xf2, 0x5d, 0xfd, 0x27, 0x17, 0xce, 0x7f, 0x41, 0xfe, 0xe1, 0x84, 0x27, 0x3f, 0x0f,
0x00, 0x00, 0xff, 0xff, 0x3d, 0x79, 0x12, 0xf6, 0x96, 0x61, 0x00, 0x00,
// 4410 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdd, 0x6f, 0x1d, 0x49,
0x56, 0xc0, 0xe7, 0xbe, 0x30, 0xd0, 0xcb, 0x0e, 0x70, 0x17, 0x86, 0xd9, 0xb0, 0xeb, 0x64, 0x32,
0x89, 0x9d, 0xc4, 0xf1, 0x75, 0x26, 0x99, 0x8f, 0x65, 0x17, 0x09, 0x39, 0x76, 0xec, 0x31, 0x9b,
0x38, 0xc6, 0xd7, 0x49, 0xa4, 0x91, 0x90, 0x68, 0xf7, 0xad, 0x5c, 0x37, 0x6e, 0x77, 0xf5, 0x76,
0xd7, 0xf5, 0x07, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x5f, 0x2f, 0x3c, 0x20, 0xf1, 0xa7,
0xf0, 0xc4, 0xe3, 0x3c, 0x22, 0xf1, 0x82, 0x66, 0xfe, 0x91, 0x55, 0x57, 0x9f, 0xae, 0x8f, 0xd3,
0xe7, 0x54, 0xf7, 0x9d, 0xa7, 0x19, 0xf9, 0xfc, 0xce, 0x47, 0x75, 0x9d, 0xaa, 0x3a, 0x55, 0xd5,
0xb7, 0x13, 0xdd, 0x2c, 0x4e, 0x36, 0x8b, 0x52, 0x2a, 0x59, 0x6d, 0x56, 0xa2, 0xbc, 0x48, 0x13,
0xd1, 0xfe, 0x77, 0xa2, 0xff, 0x3c, 0x7e, 0x37, 0xce, 0xaf, 0xd5, 0x75, 0x21, 0x6e, 0x7c, 0x60,
0xc9, 0x44, 0x9e, 0x9f, 0xc7, 0xf9, 0xac, 0x6a, 0x90, 0x1b, 0xef, 0x5b, 0x89, 0xb8, 0x10, 0xb9,
0x82, 0xbf, 0x3f, 0xfe, 0xbf, 0xff, 0x1e, 0x45, 0xef, 0x6d, 0x67, 0xa9, 0xc8, 0xd5, 0x36, 0x68,
0x8c, 0xbf, 0x8c, 0xbe, 0xbb, 0x55, 0x14, 0x7b, 0x42, 0xbd, 0x16, 0x65, 0x95, 0xca, 0x7c, 0xfc,
0xd1, 0x04, 0x1c, 0x4c, 0x8e, 0x8a, 0x64, 0xb2, 0x55, 0x14, 0x13, 0x2b, 0x9c, 0x1c, 0x89, 0x9f,
0x2d, 0x44, 0xa5, 0x6e, 0xdc, 0x09, 0x43, 0x55, 0x21, 0xf3, 0x4a, 0x8c, 0xdf, 0x46, 0xbf, 0xb6,
0x55, 0x14, 0x53, 0xa1, 0x76, 0x44, 0xdd, 0x80, 0xa9, 0x8a, 0x95, 0x18, 0xaf, 0x75, 0x54, 0x7d,
0xc0, 0xf8, 0xb8, 0xd7, 0x0f, 0x82, 0x9f, 0xe3, 0xe8, 0x3b, 0xb5, 0x9f, 0xd3, 0x85, 0x9a, 0xc9,
0xcb, 0x7c, 0xfc, 0x61, 0x57, 0x11, 0x44, 0xc6, 0xf6, 0xed, 0x10, 0x02, 0x56, 0xdf, 0x44, 0xbf,
0xfc, 0x26, 0xce, 0x32, 0xa1, 0xb6, 0x4b, 0x51, 0x07, 0xee, 0xeb, 0x34, 0xa2, 0x49, 0x23, 0x33,
0x76, 0x3f, 0x0a, 0x32, 0x60, 0xf8, 0xcb, 0xe8, 0xbb, 0x8d, 0xe4, 0x48, 0x24, 0xf2, 0x42, 0x94,
0x63, 0x52, 0x0b, 0x84, 0xcc, 0x23, 0xef, 0x40, 0xd8, 0xf6, 0xb6, 0xcc, 0x2f, 0x44, 0xa9, 0x68,
0xdb, 0x20, 0x0c, 0xdb, 0xb6, 0x10, 0xd8, 0xfe, 0xdb, 0x51, 0xf4, 0x83, 0xad, 0x24, 0x91, 0x8b,
0x5c, 0x3d, 0x97, 0x49, 0x9c, 0x3d, 0x4f, 0xf3, 0xb3, 0x03, 0x71, 0xb9, 0x7d, 0x5a, 0xf3, 0xf9,
0x5c, 0x8c, 0x9f, 0xf8, 0x4f, 0xb5, 0x41, 0x27, 0x86, 0x9d, 0xb8, 0xb0, 0xf1, 0xfd, 0xc9, 0x72,
0x4a, 0x10, 0xcb, 0x3f, 0x8e, 0xa2, 0x15, 0x1c, 0xcb, 0x54, 0x66, 0x17, 0xc2, 0x46, 0xf3, 0x69,
0x8f, 0x61, 0x1f, 0x37, 0xf1, 0x7c, 0xb6, 0xac, 0x1a, 0x44, 0x94, 0x45, 0xdf, 0x73, 0xd3, 0x65,
0x2a, 0x2a, 0x3d, 0x9c, 0xee, 0xf3, 0x19, 0x01, 0x88, 0xf1, 0xfc, 0x60, 0x08, 0x0a, 0xde, 0xd2,
0x68, 0x0c, 0xde, 0x32, 0x59, 0x19, 0x67, 0xf7, 0x48, 0x0b, 0x0e, 0x61, 0x7c, 0xdd, 0x1f, 0x40,
0x82, 0xab, 0x3f, 0x8c, 0x7e, 0xe5, 0x8d, 0x2c, 0xcf, 0xaa, 0x22, 0x4e, 0x04, 0x0c, 0x85, 0xbb,
0xbe, 0x76, 0x2b, 0xc5, 0xa3, 0x61, 0xb5, 0x0f, 0x73, 0x92, 0xb6, 0x15, 0xbe, 0x2c, 0x04, 0x9e,
0x83, 0xac, 0x62, 0x2d, 0xe4, 0x92, 0x16, 0x43, 0x60, 0xfb, 0x2c, 0x1a, 0x5b, 0xdb, 0x27, 0x7f,
0x24, 0x12, 0xb5, 0x35, 0x9b, 0xe1, 0x5e, 0xb1, 0xba, 0x9a, 0x98, 0x6c, 0xcd, 0x66, 0x5c, 0xaf,
0xd0, 0x28, 0x38, 0xbb, 0x8c, 0xde, 0x47, 0xce, 0x9e, 0xa7, 0x95, 0x76, 0xb8, 0x11, 0xb6, 0x02,
0x98, 0x71, 0x3a, 0x19, 0x8a, 0x83, 0xe3, 0x3f, 0x1f, 0x45, 0xdf, 0x27, 0x3c, 0x1f, 0x89, 0x73,
0x79, 0x21, 0xc6, 0x8f, 0xfa, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xf1, 0x12, 0x1a, 0x44, 0x9a, 0x4c,
0x45, 0x26, 0x12, 0xc5, 0xa6, 0x49, 0x23, 0xee, 0x4d, 0x13, 0x83, 0x39, 0x23, 0xac, 0x15, 0xee,
0x09, 0xb5, 0xbd, 0x28, 0x4b, 0x91, 0x2b, 0xb6, 0x2f, 0x2d, 0xd2, 0xdb, 0x97, 0x1e, 0x4a, 0xb4,
0x67, 0x4f, 0xa8, 0xad, 0x2c, 0x63, 0xdb, 0xd3, 0x88, 0x7b, 0xdb, 0x63, 0x30, 0xf0, 0x90, 0x44,
0xbf, 0xea, 0x3c, 0x31, 0xb5, 0x9f, 0xbf, 0x95, 0x63, 0xfe, 0x59, 0x68, 0xb9, 0xf1, 0xb1, 0xd6,
0xcb, 0x11, 0xcd, 0x78, 0x76, 0x55, 0xc8, 0x92, 0xef, 0x96, 0x46, 0xdc, 0xdb, 0x0c, 0x83, 0x81,
0x87, 0x3f, 0x88, 0xde, 0x83, 0x59, 0xb2, 0x5d, 0xcf, 0xee, 0x90, 0x53, 0x28, 0x5e, 0xd0, 0xee,
0xf6, 0x50, 0x76, 0x72, 0x00, 0x19, 0x4c, 0x3e, 0x1f, 0x91, 0x7a, 0x68, 0xea, 0xb9, 0x13, 0x86,
0x3a, 0xb6, 0x77, 0x44, 0x26, 0x58, 0xdb, 0x8d, 0xb0, 0xc7, 0xb6, 0x81, 0xc0, 0x76, 0x19, 0xfd,
0x86, 0x79, 0x2c, 0xf5, 0x3a, 0xaa, 0xe5, 0xf5, 0x24, 0xbd, 0xce, 0xb4, 0xdb, 0x85, 0x8c, 0xaf,
0x87, 0xc3, 0xe0, 0x4e, 0x7b, 0x60, 0x04, 0xd2, 0xed, 0x41, 0xe3, 0xef, 0x4e, 0x18, 0x02, 0xdb,
0x7f, 0x37, 0x8a, 0x7e, 0x08, 0xb2, 0x67, 0x79, 0x7c, 0x92, 0x09, 0xbd, 0x24, 0x1e, 0x08, 0x75,
0x29, 0xcb, 0xb3, 0xe9, 0x75, 0x9e, 0x30, 0xcb, 0x3f, 0x0d, 0xf7, 0x2c, 0xff, 0xac, 0x92, 0x53,
0xf1, 0x41, 0x43, 0x95, 0x2c, 0x70, 0xc5, 0xd7, 0xb6, 0x40, 0xc9, 0x82, 0xab, 0xf8, 0x7c, 0xa4,
0x63, 0xf5, 0x45, 0x3d, 0x6d, 0xd2, 0x56, 0x5f, 0xb8, 0xf3, 0xe4, 0xed, 0x10, 0x62, 0xa7, 0xad,
0x36, 0x81, 0x65, 0xfe, 0x36, 0x9d, 0xbf, 0x2a, 0x66, 0x75, 0x1a, 0xdf, 0xa7, 0x33, 0xd4, 0x41,
0x98, 0x69, 0x8b, 0x41, 0xc1, 0xdb, 0x3f, 0xd8, 0xc2, 0x08, 0x86, 0xd2, 0x6e, 0x29, 0xcf, 0x9f,
0x8b, 0x79, 0x9c, 0x5c, 0xc3, 0xf8, 0xff, 0x24, 0x34, 0xf0, 0x30, 0x6d, 0x82, 0xf8, 0x74, 0x49,
0x2d, 0x88, 0xe7, 0x3f, 0x47, 0xd1, 0x9d, 0xb6, 0xf9, 0xa7, 0x71, 0x3e, 0x17, 0xd0, 0x9f, 0x4d,
0xf4, 0x5b, 0xf9, 0xec, 0x48, 0x54, 0x2a, 0x2e, 0xd5, 0xf8, 0xc7, 0x74, 0x23, 0x43, 0x3a, 0x26,
0xb6, 0x9f, 0x7c, 0x2b, 0x5d, 0xdb, 0xeb, 0xd3, 0x7a, 0x62, 0x83, 0x29, 0xc0, 0xef, 0x75, 0x2d,
0xc1, 0x13, 0xc0, 0xed, 0x10, 0x62, 0x7b, 0x5d, 0x0b, 0xf6, 0xf3, 0x8b, 0x54, 0x89, 0x3d, 0x91,
0x8b, 0xb2, 0xdb, 0xeb, 0x8d, 0xaa, 0x8f, 0x30, 0xbd, 0xce, 0xa0, 0x76, 0xb2, 0xf1, 0xbc, 0x99,
0xc5, 0x71, 0x3d, 0x60, 0xa4, 0xb3, 0x3c, 0x3e, 0x1c, 0x06, 0xdb, 0xdd, 0x9d, 0xe3, 0xf3, 0x48,
0x5c, 0xc8, 0x33, 0xbc, 0xbb, 0x73, 0x4d, 0x34, 0x00, 0xb3, 0xbb, 0x23, 0x41, 0xbb, 0x82, 0x39,
0x7e, 0x5e, 0xa7, 0xe2, 0x12, 0xad, 0x60, 0xae, 0x72, 0x2d, 0x66, 0x56, 0x30, 0x02, 0x03, 0x0f,
0x07, 0xd1, 0x2f, 0x69, 0xe1, 0xef, 0xc9, 0x34, 0x1f, 0xdf, 0x24, 0x94, 0x6a, 0x81, 0xb1, 0x7a,
0x8b, 0x07, 0x50, 0xc4, 0xf5, 0x5f, 0xb7, 0xe3, 0x3c, 0x11, 0x19, 0x19, 0xb1, 0x15, 0x07, 0x23,
0xf6, 0x30, 0x14, 0xf1, 0xb3, 0xab, 0x54, 0x91, 0x11, 0xd7, 0x82, 0x60, 0xc4, 0x00, 0xd8, 0x52,
0x44, 0xff, 0xb9, 0x9e, 0x0f, 0xa7, 0xa7, 0x71, 0x99, 0xe6, 0xf3, 0x31, 0x15, 0x8b, 0x23, 0x67,
0x4a, 0x11, 0x8a, 0x43, 0x43, 0x02, 0x14, 0xb7, 0x8a, 0xa2, 0xac, 0xa7, 0x59, 0x6a, 0x48, 0xf8,
0x48, 0x70, 0x48, 0x74, 0x50, 0xda, 0xdb, 0x8e, 0x48, 0xb2, 0x34, 0x0f, 0x7a, 0x03, 0x64, 0x88,
0x37, 0x8b, 0x82, 0xb7, 0x45, 0xf4, 0xbe, 0x06, 0x0e, 0xe3, 0x52, 0xa5, 0x49, 0x5a, 0xc4, 0x79,
0x5b, 0x7c, 0x53, 0x83, 0xaa, 0x43, 0x19, 0x9f, 0x1b, 0x03, 0x69, 0x70, 0xfb, 0xef, 0xa3, 0xe8,
0x43, 0xec, 0xf7, 0x50, 0x94, 0xe7, 0xa9, 0xde, 0xc3, 0x55, 0xcd, 0x0c, 0x38, 0xfe, 0x3c, 0x6c,
0xb4, 0xa3, 0x60, 0xa2, 0xf9, 0xd1, 0xf2, 0x8a, 0x10, 0xd8, 0xef, 0x47, 0x51, 0xb3, 0x57, 0xd0,
0xfb, 0x39, 0x3f, 0x01, 0x61, 0x13, 0xe1, 0x6d, 0xe6, 0x3e, 0x0c, 0x10, 0x76, 0x9e, 0x6e, 0xfe,
0xae, 0xb7, 0xa9, 0x63, 0x52, 0x43, 0x8b, 0x98, 0x79, 0x1a, 0x21, 0x38, 0xd0, 0xe9, 0xa9, 0xbc,
0xa4, 0x03, 0xad, 0x25, 0xe1, 0x40, 0x81, 0xb0, 0x07, 0x47, 0x10, 0x28, 0x75, 0x70, 0xd4, 0x86,
0x11, 0x3a, 0x38, 0xc2, 0x0c, 0x18, 0x96, 0xd1, 0xaf, 0xbb, 0x86, 0x9f, 0x4a, 0x79, 0x76, 0x1e,
0x97, 0x67, 0xe3, 0x07, 0xbc, 0x72, 0xcb, 0x18, 0x47, 0xeb, 0x83, 0x58, 0x3b, 0x86, 0x5c, 0x87,
0xf5, 0x2a, 0xff, 0xaa, 0xcc, 0xd0, 0x18, 0xf2, 0x6c, 0x00, 0xc2, 0x8c, 0x21, 0x06, 0xb5, 0xd3,
0xa6, 0xeb, 0x6d, 0x2a, 0xf0, 0x56, 0xc5, 0x53, 0x9f, 0x0a, 0x6e, 0xab, 0x42, 0x60, 0x38, 0x85,
0xf6, 0xca, 0xb8, 0x38, 0xa5, 0x53, 0x48, 0x8b, 0xc2, 0x29, 0xd4, 0x22, 0xb8, 0xbf, 0xa7, 0x22,
0x2e, 0x93, 0x53, 0xba, 0xbf, 0x1b, 0x59, 0xb8, 0xbf, 0x0d, 0x63, 0x57, 0x75, 0xd7, 0xf0, 0x74,
0x71, 0x52, 0x25, 0x65, 0x7a, 0x22, 0xc6, 0xeb, 0xbc, 0xb6, 0x81, 0x98, 0x55, 0x9d, 0x85, 0xed,
0xc1, 0x12, 0xf8, 0x6c, 0x65, 0xfb, 0xb3, 0x0a, 0x1d, 0x2c, 0xb5, 0x36, 0x1c, 0x82, 0x39, 0x58,
0xa2, 0x49, 0xdc, 0xbc, 0xbd, 0x52, 0x2e, 0x8a, 0xaa, 0xa7, 0x79, 0x08, 0x0a, 0x37, 0xaf, 0x0b,
0x83, 0xcf, 0xab, 0xe8, 0x37, 0xdd, 0x47, 0xfa, 0x2a, 0xaf, 0x8c, 0xd7, 0x0d, 0xfe, 0x39, 0x39,
0x18, 0x73, 0x44, 0x13, 0xc0, 0xed, 0x12, 0xdb, 0x7a, 0x56, 0x3b, 0x42, 0xc5, 0x69, 0x56, 0x8d,
0x57, 0x69, 0x1b, 0xad, 0x9c, 0x59, 0x62, 0x29, 0x0e, 0x0f, 0xa1, 0x9d, 0x45, 0x91, 0xa5, 0x49,
0xf7, 0xac, 0x0e, 0x74, 0x8d, 0x38, 0x3c, 0x84, 0x5c, 0x0c, 0x4f, 0x09, 0x53, 0xa1, 0x9a, 0xff,
0x39, 0xbe, 0x2e, 0x04, 0x3d, 0x25, 0x78, 0x48, 0x78, 0x4a, 0xc0, 0x28, 0x6e, 0xcf, 0x54, 0xa8,
0xe7, 0xf1, 0xb5, 0x5c, 0x30, 0x53, 0x82, 0x11, 0x87, 0xdb, 0xe3, 0x62, 0x76, 0xe1, 0x36, 0x1e,
0xf6, 0x73, 0x25, 0xca, 0x3c, 0xce, 0x76, 0xb3, 0x78, 0x5e, 0x8d, 0x99, 0x71, 0xe3, 0x53, 0xcc,
0xc2, 0xcd, 0xd3, 0xc4, 0x63, 0xdc, 0xaf, 0x76, 0xe3, 0x0b, 0x59, 0xa6, 0x8a, 0x7f, 0x8c, 0x16,
0xe9, 0x7d, 0x8c, 0x1e, 0x4a, 0x7a, 0xdb, 0x2a, 0x93, 0xd3, 0xf4, 0x42, 0xcc, 0x02, 0xde, 0x5a,
0x64, 0x80, 0x37, 0x07, 0x25, 0x3a, 0x6d, 0x2a, 0x17, 0x65, 0x22, 0xd8, 0x4e, 0x6b, 0xc4, 0xbd,
0x9d, 0x66, 0x30, 0xf0, 0xf0, 0x57, 0xa3, 0xe8, 0xb7, 0x1a, 0xa9, 0x7b, 0x80, 0xb6, 0x13, 0x57,
0xa7, 0x27, 0x32, 0x2e, 0x67, 0xe3, 0x8f, 0x29, 0x3b, 0x24, 0x6a, 0x5c, 0x3f, 0x5e, 0x46, 0x05,
0x3f, 0xd6, 0xe7, 0x69, 0xe5, 0x8c, 0x38, 0xf2, 0xb1, 0x7a, 0x48, 0xf8, 0xb1, 0x62, 0x14, 0x4f,
0x20, 0x5a, 0xde, 0x6c, 0x56, 0x57, 0x59, 0x7d, 0x7f, 0xc7, 0xba, 0xd6, 0xcb, 0xe1, 0xf9, 0xb1,
0x16, 0xfa, 0xd9, 0xb2, 0xc1, 0xd9, 0xa0, 0x33, 0x66, 0x32, 0x14, 0x67, 0x3d, 0x9b, 0x51, 0x11,
0xf6, 0xdc, 0x19, 0x19, 0x93, 0xa1, 0x38, 0xe3, 0xd9, 0x99, 0xd6, 0x42, 0x9e, 0x89, 0xa9, 0x6d,
0x32, 0x14, 0xc7, 0x09, 0xb4, 0x55, 0x14, 0xd9, 0xf5, 0xb1, 0x38, 0x2f, 0x32, 0x36, 0x81, 0x3c,
0x24, 0x9c, 0x40, 0x18, 0xc5, 0xd5, 0xcf, 0xb1, 0xac, 0x6b, 0x2b, 0xb2, 0xfa, 0xd1, 0xa2, 0x70,
0xf5, 0xd3, 0x22, 0xb8, 0x60, 0x38, 0x96, 0xdb, 0x32, 0xcb, 0x44, 0xa2, 0xba, 0x37, 0x51, 0x46,
0xd3, 0x12, 0xe1, 0x82, 0x01, 0x91, 0xf6, 0xc4, 0xa1, 0xad, 0xd5, 0xe3, 0x52, 0x3c, 0xbd, 0x7e,
0x9e, 0xe6, 0x67, 0x63, 0x7a, 0x6d, 0xb4, 0x00, 0x73, 0xe2, 0x40, 0x82, 0x78, 0x4f, 0xf0, 0x2a,
0x9f, 0x49, 0x7a, 0x4f, 0x50, 0x4b, 0xc2, 0x7b, 0x02, 0x20, 0xb0, 0xc9, 0x23, 0xc1, 0x99, 0xac,
0x25, 0x61, 0x93, 0x40, 0x50, 0xf3, 0x01, 0x1c, 0xed, 0xb1, 0xf3, 0x01, 0x3a, 0xcc, 0x5b, 0xeb,
0xe5, 0x70, 0x86, 0xb6, 0x9b, 0x83, 0x5d, 0xa1, 0x92, 0x53, 0x3a, 0x43, 0x3d, 0x24, 0x9c, 0xa1,
0x18, 0xc5, 0x4d, 0x3a, 0x96, 0x66, 0x73, 0xb3, 0x4a, 0xe7, 0x47, 0x67, 0x63, 0xb3, 0xd6, 0xcb,
0xe1, 0x72, 0x7d, 0xff, 0x5c, 0x3f, 0x33, 0x32, 0xc9, 0x1b, 0x59, 0xb8, 0x5c, 0x37, 0x0c, 0x8e,
0xbe, 0x11, 0xd4, 0x8f, 0x93, 0x8e, 0xde, 0xca, 0xc3, 0xd1, 0x7b, 0x1c, 0x38, 0xf9, 0xd7, 0x51,
0x74, 0xd3, 0xf5, 0x72, 0x20, 0xeb, 0x31, 0xf2, 0x3a, 0xce, 0xd2, 0x59, 0xac, 0xc4, 0xb1, 0x3c,
0x13, 0x39, 0xda, 0xef, 0xfb, 0xd1, 0x36, 0xfc, 0xc4, 0x53, 0x60, 0xf6, 0xfb, 0x83, 0x14, 0x71,
0x9e, 0x34, 0xf4, 0xab, 0x4a, 0x6c, 0xc7, 0x15, 0x33, 0x93, 0x79, 0x48, 0x38, 0x4f, 0x30, 0x8a,
0x8b, 0xb6, 0x46, 0xfe, 0xec, 0xaa, 0x10, 0x65, 0x2a, 0xf2, 0x44, 0xd0, 0x45, 0x1b, 0xa6, 0xc2,
0x45, 0x1b, 0x41, 0x77, 0xb6, 0xc3, 0x66, 0x72, 0xea, 0x5e, 0x26, 0x63, 0x22, 0x70, 0x99, 0xcc,
0xa0, 0xb8, 0x91, 0x16, 0x20, 0x8f, 0x94, 0x3a, 0x56, 0x82, 0x47, 0x4a, 0x3c, 0xdd, 0x39, 0x64,
0x30, 0xcc, 0xb4, 0x1e, 0x26, 0x3d, 0xa1, 0x4f, 0xdd, 0xe1, 0xb2, 0x3e, 0x88, 0xa5, 0x4f, 0x35,
0x8e, 0x44, 0x16, 0xeb, 0x25, 0x24, 0x70, 0x74, 0xd0, 0x32, 0x43, 0x4e, 0x35, 0x1c, 0x16, 0x1c,
0xfe, 0xc5, 0x28, 0xba, 0x41, 0x79, 0x7c, 0x59, 0x68, 0xbf, 0x8f, 0xfa, 0x6d, 0x35, 0x24, 0x73,
0x5b, 0x1e, 0xd6, 0x80, 0x18, 0xfe, 0x24, 0xfa, 0xa0, 0x15, 0xd9, 0xcb, 0x74, 0x08, 0xc0, 0xaf,
0x22, 0x4c, 0xfc, 0x98, 0x33, 0xee, 0x37, 0x07, 0xf3, 0xb6, 0x40, 0xf7, 0xe3, 0xaa, 0x50, 0x81,
0x6e, 0x6c, 0x80, 0x98, 0x29, 0xd0, 0x09, 0x0c, 0xaf, 0xd4, 0x2d, 0x52, 0x8f, 0x13, 0x6a, 0x8e,
0x33, 0x26, 0xdc, 0x51, 0x72, 0xaf, 0x1f, 0xc4, 0xb9, 0xd3, 0x8a, 0xa1, 0x2e, 0x7e, 0x10, 0xb2,
0x80, 0x6a, 0xe3, 0xf5, 0x41, 0x2c, 0x38, 0xfc, 0xb3, 0xe8, 0xfb, 0x9d, 0x86, 0xed, 0x8a, 0x58,
0x2d, 0x4a, 0x31, 0x1b, 0x6f, 0xf6, 0xc4, 0xdd, 0x82, 0xc6, 0xf5, 0xa3, 0xe1, 0x0a, 0xe0, 0xff,
0x6f, 0x46, 0xd1, 0x0f, 0x7c, 0xae, 0xe9, 0x62, 0x13, 0xc3, 0xe3, 0x90, 0x49, 0x9f, 0x35, 0x61,
0x3c, 0x59, 0x4a, 0xa7, 0xb3, 0x07, 0x73, 0x13, 0x79, 0xeb, 0x22, 0x4e, 0xb3, 0xf8, 0x24, 0x13,
0xe4, 0x1e, 0xcc, 0xcb, 0x4d, 0x83, 0x06, 0xf7, 0x60, 0xac, 0x4a, 0x67, 0x96, 0xd4, 0xe3, 0xcd,
0xa9, 0xdd, 0x1f, 0xf2, 0xa3, 0x92, 0x28, 0xdd, 0x37, 0x06, 0xd2, 0xe0, 0x56, 0xb5, 0x67, 0x57,
0xf5, 0x9f, 0xdd, 0x24, 0xa7, 0xbc, 0x82, 0x2a, 0x91, 0xe9, 0x1b, 0x03, 0x69, 0xf0, 0xfa, 0xa7,
0xd1, 0x07, 0x5d, 0xaf, 0xb0, 0x28, 0x6c, 0xf6, 0x9a, 0x42, 0xeb, 0xc2, 0xa3, 0xe1, 0x0a, 0xb6,
0xd4, 0xff, 0x22, 0xad, 0x94, 0x2c, 0xaf, 0xa7, 0xa7, 0xf2, 0xb2, 0x7d, 0x61, 0xd4, 0x1f, 0xad,
0x00, 0x4c, 0x1c, 0x82, 0x29, 0xf5, 0x69, 0xb2, 0xe3, 0xca, 0xbe, 0x58, 0x5a, 0x31, 0xae, 0x1c,
0xa2, 0xc7, 0x95, 0x4f, 0xda, 0xb9, 0xaa, 0x6d, 0x95, 0x7d, 0x0b, 0x76, 0x8d, 0x0e, 0xb5, 0xfb,
0x26, 0xec, 0xbd, 0x7e, 0xd0, 0x6e, 0xbf, 0x76, 0xd3, 0x4c, 0xbc, 0x7c, 0xfb, 0x36, 0x93, 0xf1,
0x0c, 0x6d, 0xbf, 0x6a, 0xc9, 0x04, 0x44, 0xcc, 0xf6, 0x0b, 0x21, 0xb6, 0xe8, 0xac, 0x05, 0xfa,
0x6e, 0xa6, 0x35, 0xbd, 0xda, 0xd5, 0x73, 0xe5, 0x4c, 0xd1, 0x49, 0x71, 0x76, 0xc1, 0xa8, 0xa5,
0xf5, 0x10, 0x6c, 0x7d, 0xdc, 0xed, 0xea, 0x3a, 0x62, 0x66, 0xc1, 0x20, 0x30, 0xbb, 0x3f, 0xaa,
0x85, 0xaf, 0x0a, 0x6d, 0xfc, 0x56, 0x57, 0xab, 0x91, 0x30, 0xfb, 0x23, 0x9f, 0xb0, 0x75, 0x7e,
0xfd, 0xf7, 0x1d, 0x79, 0x99, 0x6b, 0xa3, 0xc4, 0xd3, 0x6c, 0x65, 0x4c, 0x9d, 0x8f, 0x19, 0x30,
0xfc, 0xd3, 0xe8, 0x17, 0xb5, 0xe1, 0x52, 0x16, 0xe3, 0x15, 0x42, 0xa1, 0x74, 0x5e, 0x3b, 0xb9,
0xc9, 0xca, 0xed, 0xdb, 0x53, 0xa6, 0xff, 0x5e, 0x55, 0xf1, 0x5c, 0xa0, 0xb7, 0xa7, 0x6c, 0xaf,
0x68, 0x29, 0xf3, 0xf6, 0x54, 0x97, 0xb2, 0x6f, 0x04, 0xd5, 0xb2, 0x03, 0x39, 0x03, 0xeb, 0x44,
0x0b, 0x8d, 0x90, 0x79, 0x23, 0xa8, 0x03, 0xd9, 0xf3, 0xfb, 0x83, 0xf8, 0x22, 0x9d, 0x9b, 0xc9,
0xbf, 0x99, 0x43, 0x2a, 0x74, 0x7e, 0x6f, 0x99, 0x89, 0x03, 0x31, 0xe7, 0xf7, 0x2c, 0x0c, 0x3e,
0xff, 0x65, 0x14, 0xdd, 0xb2, 0xcc, 0x5e, 0x7b, 0xac, 0xb2, 0x9f, 0xbf, 0x95, 0x6f, 0x52, 0x75,
0x5a, 0xef, 0xe3, 0xab, 0xf1, 0x67, 0x9c, 0x49, 0x9a, 0x37, 0xa1, 0x7c, 0xbe, 0xb4, 0x9e, 0xad,
0xe6, 0xda, 0xe3, 0x16, 0x7b, 0xb7, 0xd5, 0x68, 0xa0, 0x6a, 0xce, 0x9c, 0xca, 0x60, 0x8e, 0xa9,
0xe6, 0x42, 0xbc, 0xed, 0x62, 0xe3, 0x3c, 0x93, 0x39, 0xee, 0x62, 0x6b, 0xa1, 0x16, 0x32, 0x5d,
0xdc, 0x81, 0xec, 0xdc, 0xd8, 0x8a, 0x9a, 0x93, 0x81, 0xad, 0x2c, 0x43, 0x73, 0xa3, 0x51, 0x35,
0x00, 0x33, 0x37, 0x92, 0x20, 0xf8, 0x39, 0x8a, 0xbe, 0x53, 0x3f, 0xd2, 0xc3, 0x52, 0x5c, 0xa4,
0x02, 0x5f, 0xc3, 0x3a, 0x12, 0x66, 0xfc, 0xfb, 0x84, 0x1d, 0x59, 0xaf, 0xf2, 0xaa, 0xc8, 0xe2,
0xea, 0x14, 0x2e, 0xe6, 0xfc, 0x36, 0xb7, 0x42, 0x7c, 0x35, 0x77, 0xb7, 0x87, 0xb2, 0x13, 0x6f,
0x2b, 0x33, 0x53, 0xcc, 0x2a, 0xad, 0xda, 0x99, 0x66, 0xd6, 0x7a, 0x39, 0x7b, 0x34, 0xb9, 0x17,
0x67, 0x99, 0x28, 0xaf, 0x5b, 0xd9, 0x8b, 0x38, 0x4f, 0xdf, 0x8a, 0x4a, 0xa1, 0xa3, 0x49, 0xa0,
0x26, 0x18, 0x63, 0x8e, 0x26, 0x03, 0xb8, 0xad, 0xac, 0x91, 0xe7, 0xfd, 0x7c, 0x26, 0xae, 0x50,
0x65, 0x8d, 0xed, 0x68, 0x86, 0xa9, 0xac, 0x39, 0xd6, 0x2e, 0x8f, 0x4f, 0x33, 0x99, 0x9c, 0xc1,
0x12, 0xe0, 0x77, 0xb0, 0x96, 0xe0, 0x35, 0xe0, 0x76, 0x08, 0xb1, 0x8b, 0x80, 0x16, 0x1c, 0x89,
0x22, 0x8b, 0x13, 0x7c, 0x17, 0xdf, 0xe8, 0x80, 0x8c, 0x59, 0x04, 0x30, 0x83, 0xc2, 0x85, 0x3b,
0x7e, 0x2a, 0x5c, 0x74, 0xc5, 0x7f, 0x3b, 0x84, 0xd8, 0x65, 0x50, 0x0b, 0xa6, 0x45, 0x96, 0x2a,
0x34, 0x0c, 0x1a, 0x0d, 0x2d, 0x61, 0x86, 0x81, 0x4f, 0x20, 0x93, 0x2f, 0x44, 0x39, 0x17, 0xa4,
0x49, 0x2d, 0x09, 0x9a, 0x6c, 0x09, 0xfb, 0xf6, 0x51, 0xd3, 0x76, 0x59, 0x5c, 0xa3, 0xb7, 0x8f,
0xa0, 0x59, 0xb2, 0xb8, 0x66, 0xde, 0x3e, 0xf2, 0x00, 0x14, 0xe2, 0x61, 0x5c, 0x29, 0x3a, 0x44,
0x2d, 0x09, 0x86, 0xd8, 0x12, 0x76, 0x8d, 0x6e, 0x42, 0x5c, 0x28, 0xb4, 0x46, 0x43, 0x00, 0xce,
0x55, 0xe1, 0x4d, 0x56, 0x6e, 0x67, 0x92, 0xa6, 0x57, 0x84, 0xda, 0x4d, 0x45, 0x36, 0xab, 0xd0,
0x4c, 0x02, 0xcf, 0xbd, 0x95, 0x32, 0x33, 0x49, 0x97, 0x42, 0xa9, 0x04, 0x67, 0xb8, 0x54, 0xeb,
0xd0, 0xf1, 0xed, 0xed, 0x10, 0x62, 0xe7, 0xa7, 0x36, 0xe8, 0xed, 0xb8, 0x2c, 0xd3, 0x7a, 0xf1,
0x5f, 0xa5, 0x03, 0x6a, 0xe5, 0xcc, 0xfc, 0x44, 0x71, 0x68, 0x78, 0xb5, 0x13, 0x37, 0x15, 0x18,
0x9e, 0xba, 0x3f, 0x0a, 0x32, 0xb6, 0xe2, 0xd4, 0x12, 0xe7, 0xae, 0x8b, 0x7a, 0x9a, 0xc4, 0x55,
0xd7, 0x6a, 0x1f, 0xe6, 0xbc, 0xcf, 0x6c, 0x5c, 0xbc, 0x90, 0x17, 0xe2, 0x58, 0x3e, 0xbb, 0x4a,
0x2b, 0x95, 0xe6, 0x73, 0x58, 0xb9, 0x9f, 0x30, 0x96, 0x28, 0x98, 0x79, 0x9f, 0xb9, 0x57, 0xc9,
0x16, 0x10, 0x28, 0x96, 0x03, 0x71, 0x49, 0x16, 0x10, 0xd8, 0xa2, 0xe1, 0x98, 0x02, 0x22, 0xc4,
0xdb, 0x33, 0x0d, 0xe3, 0x1c, 0x7e, 0xf4, 0x75, 0x2c, 0xdb, 0x5a, 0x8e, 0xb3, 0x86, 0x41, 0x66,
0x5b, 0x19, 0x54, 0xb0, 0x7b, 0x3d, 0xe3, 0xdf, 0x0e, 0xb1, 0x7b, 0x8c, 0x9d, 0xee, 0x30, 0xbb,
0x3f, 0x80, 0x24, 0x5c, 0xd9, 0x0b, 0x5b, 0xce, 0x55, 0xf7, 0xbe, 0xf6, 0xfe, 0x00, 0xd2, 0x39,
0x1f, 0x71, 0x9b, 0xf5, 0x34, 0x4e, 0xce, 0xe6, 0xa5, 0x5c, 0xe4, 0xb3, 0x6d, 0x99, 0xc9, 0x12,
0x9d, 0x8f, 0x78, 0x51, 0x23, 0x94, 0x39, 0x1f, 0xe9, 0x51, 0xb1, 0x15, 0x9c, 0x1b, 0xc5, 0x56,
0x96, 0xce, 0xf1, 0xee, 0xd6, 0x33, 0xa4, 0x01, 0xa6, 0x82, 0x23, 0x41, 0x22, 0x89, 0x9a, 0xdd,
0xaf, 0x4a, 0x93, 0x38, 0x6b, 0xfc, 0x6d, 0xf2, 0x66, 0x3c, 0xb0, 0x37, 0x89, 0x08, 0x05, 0xa2,
0x9d, 0xc7, 0x8b, 0x32, 0xdf, 0xcf, 0x95, 0x64, 0xdb, 0xd9, 0x02, 0xbd, 0xed, 0x74, 0x40, 0x34,
0xad, 0x1e, 0x8b, 0xab, 0x3a, 0x9a, 0xfa, 0x3f, 0xd4, 0xb4, 0x5a, 0xff, 0x7d, 0x02, 0xf2, 0xd0,
0xb4, 0x8a, 0x38, 0xd4, 0x18, 0x70, 0xd2, 0x24, 0x4c, 0x40, 0xdb, 0x4f, 0x93, 0x7b, 0xfd, 0x20,
0xed, 0x67, 0xaa, 0xae, 0x33, 0x11, 0xf2, 0xa3, 0x81, 0x21, 0x7e, 0x5a, 0xd0, 0x5e, 0x9c, 0x78,
0xed, 0x39, 0x15, 0xc9, 0x59, 0xe7, 0xfd, 0x13, 0x3f, 0xd0, 0x06, 0x61, 0x2e, 0x4e, 0x18, 0x94,
0xee, 0xa2, 0xfd, 0x44, 0xe6, 0xa1, 0x2e, 0xaa, 0xe5, 0x43, 0xba, 0x08, 0x38, 0xbb, 0xf9, 0x35,
0x52, 0xc8, 0xcc, 0xa6, 0x9b, 0xd6, 0x19, 0x0b, 0x2e, 0xc4, 0x6c, 0x7e, 0x59, 0xd8, 0xd6, 0xe4,
0xd8, 0xe7, 0x8b, 0xee, 0xfb, 0x9f, 0x1d, 0x2b, 0x2f, 0xf8, 0xf7, 0x3f, 0x39, 0x96, 0x6f, 0x64,
0x93, 0x23, 0x3d, 0x56, 0xfc, 0x3c, 0x79, 0x38, 0x0c, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x76, 0x26,
0xe2, 0xb2, 0xf1, 0xba, 0x11, 0x30, 0x64, 0x31, 0x66, 0xcb, 0x13, 0xc0, 0xd1, 0x14, 0xe6, 0x79,
0xde, 0x96, 0xb9, 0x12, 0xb9, 0xa2, 0xa6, 0x30, 0xdf, 0x18, 0x80, 0xa1, 0x29, 0x8c, 0x53, 0x40,
0x79, 0xab, 0xcf, 0x83, 0x84, 0x3a, 0x88, 0xcf, 0xc9, 0x8a, 0xad, 0x39, 0xeb, 0x69, 0xe4, 0xa1,
0xbc, 0x45, 0x1c, 0x1a, 0xf2, 0xfb, 0xe7, 0xf1, 0xdc, 0x78, 0x21, 0xb4, 0xb5, 0xbc, 0xe3, 0xe6,
0x5e, 0x3f, 0x88, 0xfc, 0xbc, 0x4e, 0x67, 0x42, 0x06, 0xfc, 0x68, 0xf9, 0x10, 0x3f, 0x18, 0x44,
0x95, 0x53, 0xdd, 0xda, 0x66, 0x37, 0xb5, 0x95, 0xcf, 0x60, 0x0f, 0x39, 0x61, 0x1e, 0x0a, 0xe2,
0x42, 0x95, 0x13, 0xc3, 0xa3, 0xf1, 0xd1, 0x1e, 0x8e, 0x86, 0xc6, 0x87, 0x39, 0xfb, 0x1c, 0x32,
0x3e, 0x28, 0x18, 0x7c, 0xfe, 0x31, 0x8c, 0x8f, 0x9d, 0x58, 0xc5, 0x75, 0xcd, 0xfc, 0x3a, 0x15,
0x97, 0xb0, 0x09, 0x25, 0xda, 0xdb, 0x52, 0x13, 0xfd, 0x8b, 0x17, 0xb4, 0x23, 0xdd, 0x1c, 0xcc,
0x07, 0x7c, 0x43, 0x75, 0xde, 0xeb, 0x1b, 0x95, 0xe9, 0x9b, 0x83, 0xf9, 0x80, 0x6f, 0xf8, 0x29,
0x5d, 0xaf, 0x6f, 0xf4, 0x7b, 0xba, 0xcd, 0xc1, 0x3c, 0xf8, 0xfe, 0xcb, 0x51, 0x74, 0xa3, 0xe3,
0xbc, 0xae, 0x81, 0x12, 0x95, 0x5e, 0x08, 0xaa, 0x94, 0xf3, 0xed, 0x19, 0x34, 0x54, 0xca, 0xf1,
0x2a, 0xce, 0xf7, 0x17, 0xa8, 0x28, 0x0e, 0x65, 0x95, 0xea, 0x8b, 0xe3, 0x27, 0x03, 0x8c, 0xb6,
0x70, 0x68, 0xc3, 0x12, 0x52, 0xb2, 0xd7, 0x6e, 0x1e, 0x6a, 0x5f, 0xf5, 0x7c, 0x18, 0xb0, 0xd7,
0x7d, 0xe3, 0x73, 0x63, 0x20, 0x6d, 0x2f, 0xc0, 0x3c, 0xc6, 0xbd, 0x79, 0x0b, 0xf5, 0x2a, 0x79,
0xf9, 0xf6, 0x68, 0xb8, 0x02, 0xb8, 0xff, 0xeb, 0xb6, 0xa6, 0xc7, 0xfe, 0x61, 0x10, 0x3c, 0x1e,
0x62, 0x11, 0x0d, 0x84, 0x27, 0x4b, 0xe9, 0x40, 0x20, 0xff, 0x31, 0x8a, 0x6e, 0x93, 0x81, 0xf8,
0x77, 0xb0, 0xbf, 0x3d, 0xc4, 0x36, 0x7d, 0x17, 0xfb, 0xe3, 0x6f, 0xa3, 0x0a, 0xd1, 0xfd, 0x7d,
0xbb, 0xb5, 0x6e, 0x35, 0xf4, 0xeb, 0xf8, 0x2f, 0xcb, 0x99, 0x28, 0x61, 0xc4, 0x86, 0x92, 0xce,
0xc2, 0x78, 0xdc, 0x7e, 0xba, 0xa4, 0x96, 0xf3, 0xad, 0x10, 0x0f, 0x86, 0x5f, 0x26, 0x39, 0xf1,
0x84, 0x2c, 0x3b, 0x34, 0x0e, 0xe8, 0xb3, 0x65, 0xd5, 0xb8, 0x91, 0xec, 0xc0, 0xfa, 0xa7, 0xc7,
0x4f, 0x06, 0x1a, 0xf6, 0x7e, 0x8c, 0xfc, 0xc9, 0x72, 0x4a, 0x10, 0xcb, 0x7f, 0x8d, 0xa2, 0xbb,
0x1e, 0x6b, 0x6f, 0x1a, 0xd0, 0x79, 0xc8, 0x4f, 0x02, 0xf6, 0x39, 0x25, 0x13, 0xdc, 0xef, 0x7c,
0x3b, 0x65, 0xfb, 0x61, 0x0d, 0x4f, 0x65, 0x37, 0xcd, 0x94, 0x28, 0xbb, 0x1f, 0xd6, 0xf0, 0xed,
0x36, 0xd4, 0x84, 0xff, 0xb0, 0x46, 0x00, 0x77, 0x3e, 0xac, 0x41, 0x78, 0x26, 0x3f, 0xac, 0x41,
0x5a, 0x0b, 0x7e, 0x58, 0x23, 0xac, 0xc1, 0x2d, 0x3e, 0x6d, 0x08, 0xcd, 0x89, 0xf6, 0x20, 0x8b,
0xfe, 0x01, 0xf7, 0xe3, 0x65, 0x54, 0x98, 0xe5, 0xb7, 0xe1, 0xf4, 0x9b, 0x61, 0x03, 0x9e, 0xa9,
0xf7, 0x76, 0xd8, 0xe6, 0x60, 0x1e, 0x7c, 0xff, 0x0c, 0xf6, 0x3d, 0x66, 0xb1, 0x91, 0xa5, 0xfe,
0xa8, 0xca, 0x7a, 0x68, 0xf1, 0xa8, 0x2d, 0xb8, 0x3d, 0xff, 0x70, 0x18, 0xcc, 0x34, 0xb7, 0x26,
0xa0, 0xd3, 0x27, 0x7d, 0x86, 0x50, 0x97, 0x6f, 0x0e, 0xe6, 0x99, 0x45, 0xae, 0xf1, 0xdd, 0xf4,
0xf6, 0x00, 0x63, 0x7e, 0x5f, 0x3f, 0x1a, 0xae, 0x60, 0x5f, 0x6d, 0xe9, 0xb8, 0xd7, 0xfd, 0xdc,
0xfb, 0x04, 0xbd, 0x5e, 0xde, 0x18, 0x48, 0x87, 0x8a, 0x1b, 0x77, 0x79, 0xef, 0x2b, 0x6e, 0xc8,
0x25, 0xfe, 0x93, 0xe5, 0x94, 0x20, 0x96, 0x7f, 0x1e, 0x45, 0x37, 0xd9, 0x58, 0x20, 0x0b, 0x3e,
0x1b, 0x6a, 0x19, 0x65, 0xc3, 0xe7, 0x4b, 0xeb, 0x41, 0x50, 0xff, 0x36, 0x8a, 0x6e, 0x05, 0x82,
0x6a, 0xd2, 0x63, 0x09, 0xeb, 0x7e, 0x9a, 0xfc, 0x68, 0x79, 0x45, 0x6e, 0xb1, 0x77, 0xf1, 0x69,
0xf7, 0x7b, 0x13, 0x01, 0xdb, 0x53, 0xfe, 0x7b, 0x13, 0xfd, 0x5a, 0xf8, 0xf0, 0xa7, 0x2e, 0x49,
0x60, 0x5f, 0x44, 0x1d, 0xfe, 0xe8, 0x8a, 0x05, 0xed, 0x87, 0xd6, 0x7a, 0x39, 0xca, 0xc9, 0xb3,
0xab, 0x22, 0xce, 0x67, 0xbc, 0x93, 0x46, 0xde, 0xef, 0xc4, 0x70, 0xf8, 0xd0, 0xac, 0x96, 0x1e,
0xc9, 0x76, 0x93, 0x77, 0x9f, 0xd3, 0x37, 0x48, 0xf0, 0xd0, 0xac, 0x83, 0x32, 0xde, 0xa0, 0xa2,
0x0d, 0x79, 0x43, 0x85, 0xec, 0x83, 0x21, 0x28, 0xda, 0x3e, 0x18, 0x6f, 0xe6, 0x2c, 0xfe, 0x61,
0xc8, 0x4a, 0xe7, 0x3c, 0x7e, 0x63, 0x20, 0xcd, 0xb8, 0x9d, 0x0a, 0xf5, 0x85, 0x88, 0x67, 0xa2,
0x0c, 0xba, 0x35, 0xd4, 0x20, 0xb7, 0x2e, 0x4d, 0xb9, 0xdd, 0x96, 0xd9, 0xe2, 0x3c, 0x87, 0xce,
0x64, 0xdd, 0xba, 0x54, 0xbf, 0x5b, 0x44, 0xe3, 0xe3, 0x42, 0xeb, 0x56, 0x17, 0x97, 0x0f, 0xc2,
0x66, 0xbc, 0x9a, 0x72, 0x7d, 0x10, 0xcb, 0xb7, 0x13, 0xd2, 0xa8, 0xa7, 0x9d, 0x28, 0x93, 0x36,
0x06, 0xd2, 0xf8, 0xdc, 0xce, 0x71, 0x6b, 0xf2, 0x69, 0xb3, 0xc7, 0x56, 0x27, 0xa5, 0x1e, 0x0d,
0x57, 0xc0, 0xa7, 0xa4, 0x90, 0x55, 0xf5, 0xae, 0x68, 0x37, 0xcd, 0xb2, 0xf1, 0x7a, 0x20, 0x4d,
0x5a, 0x28, 0x78, 0x4a, 0x4a, 0xc0, 0x4c, 0x26, 0xb7, 0xa7, 0x8a, 0xf9, 0xb8, 0xcf, 0x8e, 0xa6,
0x06, 0x65, 0xb2, 0x4b, 0xa3, 0xd3, 0x36, 0xe7, 0x51, 0x9b, 0xd6, 0x4e, 0xc2, 0x0f, 0xae, 0xd3,
0xe0, 0xcd, 0xc1, 0x3c, 0xba, 0x86, 0xd7, 0x94, 0x5e, 0x59, 0xee, 0x70, 0x26, 0xbc, 0x95, 0xe4,
0x6e, 0x0f, 0x85, 0x4e, 0x2c, 0x9b, 0x61, 0xf4, 0x26, 0x9d, 0xcd, 0x85, 0x22, 0x6f, 0x90, 0x5c,
0x20, 0x78, 0x83, 0x84, 0x40, 0xd4, 0x75, 0xcd, 0xdf, 0xa7, 0x42, 0x1d, 0xc7, 0xe5, 0x5c, 0xa8,
0xfd, 0x19, 0xd5, 0x75, 0xa0, 0xec, 0x50, 0xa1, 0xae, 0x23, 0x69, 0x34, 0x1b, 0x18, 0xb7, 0xf0,
0x7b, 0xea, 0x07, 0x21, 0x33, 0xe8, 0x47, 0xd5, 0xeb, 0x83, 0x58, 0xb4, 0xa2, 0x58, 0x87, 0xe9,
0x79, 0xaa, 0xa8, 0x15, 0xc5, 0xb1, 0x51, 0x23, 0xa1, 0x15, 0xa5, 0x8b, 0x72, 0xcd, 0xab, 0x6b,
0x84, 0xfd, 0x59, 0xb8, 0x79, 0x0d, 0x33, 0xac, 0x79, 0x86, 0xed, 0x5c, 0x78, 0xe6, 0x26, 0x65,
0xd4, 0x29, 0x6c, 0x95, 0x89, 0xdc, 0xd6, 0x3f, 0x31, 0xc4, 0x60, 0x68, 0xd6, 0xe1, 0x14, 0x9c,
0x5f, 0xb1, 0x18, 0xae, 0xbd, 0x93, 0x2d, 0x0a, 0x11, 0x97, 0x71, 0x9e, 0x90, 0x5b, 0x53, 0x6d,
0xb0, 0x43, 0x86, 0xb6, 0xa6, 0xac, 0x06, 0xba, 0x4e, 0xf7, 0x7f, 0x1c, 0x48, 0x0c, 0x05, 0xf3,
0x2b, 0x3c, 0xff, 0xb7, 0x81, 0xf7, 0x07, 0x90, 0xf8, 0x3a, 0xbd, 0x05, 0xcc, 0xa1, 0x7c, 0xe3,
0xf4, 0xe3, 0x80, 0x29, 0x1f, 0x0d, 0x6d, 0x83, 0x79, 0x15, 0x94, 0xd4, 0xa6, 0xc0, 0x15, 0xea,
0xa7, 0xe2, 0x9a, 0x4a, 0x6a, 0x5b, 0x9f, 0x6a, 0x24, 0x94, 0xd4, 0x5d, 0x14, 0xd5, 0x99, 0xee,
0x3e, 0x68, 0x35, 0xa0, 0xef, 0x6e, 0x7d, 0xd6, 0x7a, 0x39, 0x34, 0x72, 0x76, 0xd2, 0x0b, 0xef,
0x0e, 0x83, 0x08, 0x74, 0x27, 0xbd, 0xa0, 0xaf, 0x30, 0xd6, 0x07, 0xb1, 0xf8, 0xaa, 0x3e, 0x56,
0xe2, 0xaa, 0xbd, 0x43, 0x27, 0xc2, 0xd5, 0xf2, 0xce, 0x25, 0xfa, 0xbd, 0x7e, 0xd0, 0xbe, 0x18,
0x7b, 0x58, 0xca, 0x44, 0x54, 0x15, 0x7c, 0x84, 0xcb, 0x7f, 0xf3, 0x08, 0x64, 0x13, 0xf4, 0x09,
0xae, 0x3b, 0x61, 0x08, 0x6c, 0x7f, 0x11, 0xbd, 0xfb, 0x5c, 0xce, 0xa7, 0x22, 0x9f, 0x8d, 0x7f,
0xe8, 0xbf, 0x8a, 0x2a, 0xe7, 0x93, 0xfa, 0xcf, 0xc6, 0xde, 0x0a, 0x27, 0xb6, 0x2f, 0xd3, 0xed,
0x88, 0x93, 0xc5, 0x7c, 0xaa, 0x62, 0xfc, 0x29, 0x2f, 0xfd, 0xf7, 0x49, 0x2d, 0x60, 0x5e, 0xa6,
0xf3, 0x00, 0x64, 0xef, 0xb8, 0x14, 0x82, 0xb4, 0x57, 0x0b, 0x82, 0xf6, 0x00, 0xb0, 0xab, 0xae,
0xb1, 0x57, 0x17, 0xb6, 0xf8, 0xe5, 0x37, 0xab, 0xa3, 0xa5, 0xcc, 0xaa, 0xdb, 0xa5, 0x6c, 0x32,
0x34, 0xcd, 0xd7, 0x9f, 0x59, 0x58, 0x9c, 0x9f, 0xc7, 0xe5, 0x35, 0x4a, 0x06, 0x68, 0xa5, 0x03,
0x30, 0xc9, 0x40, 0x82, 0x36, 0xcb, 0xdb, 0xc7, 0x9c, 0x9c, 0xed, 0xc9, 0x52, 0x2e, 0x54, 0x9a,
0x8b, 0x0a, 0x65, 0xb9, 0x79, 0xa0, 0x2e, 0xc3, 0x64, 0x39, 0xc7, 0xda, 0xaa, 0x50, 0x13, 0xcd,
0x7b, 0x79, 0xfa, 0x53, 0x96, 0x95, 0x92, 0x25, 0xbe, 0x1b, 0x6c, 0xac, 0x60, 0x88, 0xa9, 0x0a,
0x59, 0x18, 0xf5, 0xfd, 0x61, 0x9a, 0xcf, 0xc9, 0xbe, 0x3f, 0x74, 0x3f, 0xdc, 0x76, 0x8b, 0x07,
0xec, 0xfc, 0xde, 0x3c, 0xb4, 0xe6, 0x73, 0x36, 0xf0, 0x5b, 0x41, 0xf2, 0xa1, 0xbb, 0x04, 0x33,
0xbf, 0xd3, 0x24, 0x72, 0xf5, 0xb2, 0x10, 0xb9, 0x98, 0xb5, 0x6f, 0x9f, 0x51, 0xae, 0x3c, 0x22,
0xe8, 0x0a, 0x93, 0x36, 0x15, 0x5e, 0x08, 0x55, 0xa6, 0x49, 0x35, 0x15, 0xea, 0x30, 0x2e, 0xe3,
0x73, 0xa1, 0x44, 0x89, 0x53, 0x01, 0x90, 0x89, 0xc7, 0x30, 0xa9, 0xc0, 0xb1, 0xe0, 0xf0, 0x77,
0xa3, 0xef, 0xd5, 0x33, 0xa1, 0xc8, 0xe1, 0xdb, 0xda, 0xcf, 0xf4, 0x47, 0xf9, 0xc7, 0xef, 0x1b,
0x1b, 0x53, 0x55, 0x8a, 0xf8, 0xbc, 0xb5, 0xfd, 0x9e, 0xf9, 0xbb, 0x06, 0x1f, 0x8d, 0xea, 0x75,
0xe0, 0x40, 0xaa, 0xf4, 0x6d, 0xbd, 0xf1, 0x80, 0x4b, 0x1e, 0xb4, 0x0e, 0xb8, 0xe2, 0x49, 0xe0,
0x97, 0xe5, 0x14, 0x67, 0x47, 0xa2, 0x2b, 0x3d, 0x12, 0x45, 0x86, 0x47, 0xa2, 0xa7, 0xad, 0x01,
0x66, 0x24, 0x92, 0xa0, 0x5d, 0xd4, 0x5c, 0xf1, 0xb1, 0x08, 0x37, 0xe6, 0x58, 0x0c, 0x6b, 0xcc,
0xb1, 0xf7, 0xfa, 0x7a, 0xbd, 0x27, 0x2b, 0x65, 0x3c, 0x4b, 0xe2, 0x4a, 0x1d, 0xc6, 0xd7, 0x99,
0x8c, 0x67, 0xfa, 0x61, 0xe2, 0x3d, 0x59, 0xcb, 0x4c, 0x5c, 0x88, 0xdb, 0x93, 0x71, 0x70, 0xe3,
0xf3, 0xe9, 0x87, 0xff, 0xf3, 0xf5, 0xca, 0xe8, 0xab, 0xaf, 0x57, 0x46, 0xff, 0xff, 0xf5, 0xca,
0xe8, 0x9f, 0xbe, 0x59, 0x79, 0xe7, 0xab, 0x6f, 0x56, 0xde, 0xf9, 0xdf, 0x6f, 0x56, 0xde, 0xf9,
0xf2, 0x5d, 0xf8, 0x27, 0x1c, 0x4e, 0x7e, 0x41, 0xff, 0x43, 0x0c, 0x4f, 0x7e, 0x1e, 0x00, 0x00,
0xff, 0xff, 0xad, 0xa3, 0x91, 0xda, 0xe6, 0x61, 0x00, 0x00,
}
// This is a compile-time assertion to ensure that this generated file
@ -562,6 +563,7 @@ type ClientCommandsHandler interface {
BlockLatexSetText(context.Context, *pb.RpcBlockLatexSetTextRequest) *pb.RpcBlockLatexSetTextResponse
ProcessCancel(context.Context, *pb.RpcProcessCancelRequest) *pb.RpcProcessCancelResponse
LogSend(context.Context, *pb.RpcLogSendRequest) *pb.RpcLogSendResponse
DebugStat(context.Context, *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse
DebugTree(context.Context, *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse
DebugTreeHeads(context.Context, *pb.RpcDebugTreeHeadsRequest) *pb.RpcDebugTreeHeadsResponse
DebugSpaceSummary(context.Context, *pb.RpcDebugSpaceSummaryRequest) *pb.RpcDebugSpaceSummaryResponse
@ -4823,6 +4825,26 @@ func LogSend(b []byte) (resp []byte) {
return resp
}
func DebugStat(b []byte) (resp []byte) {
defer func() {
if PanicHandler != nil {
if r := recover(); r != nil {
resp, _ = (&pb.RpcDebugStatResponse{Error: &pb.RpcDebugStatResponseError{Code: pb.RpcDebugStatResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
PanicHandler(r)
}
}
}()
in := new(pb.RpcDebugStatRequest)
if err := in.Unmarshal(b); err != nil {
resp, _ = (&pb.RpcDebugStatResponse{Error: &pb.RpcDebugStatResponseError{Code: pb.RpcDebugStatResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
return resp
}
resp, _ = clientCommandsHandler.DebugStat(context.Background(), in).Marshal()
return resp
}
func DebugTree(b []byte) (resp []byte) {
defer func() {
if PanicHandler != nil {
@ -5513,6 +5535,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
cd = ProcessCancel(data)
case "LogSend":
cd = LogSend(data)
case "DebugStat":
cd = DebugStat(data)
case "DebugTree":
cd = DebugTree(data)
case "DebugTreeHeads":
@ -8529,6 +8553,20 @@ func (h *ClientCommandsHandlerProxy) LogSend(ctx context.Context, req *pb.RpcLog
call, _ := actualCall(ctx, req)
return call.(*pb.RpcLogSendResponse)
}
func (h *ClientCommandsHandlerProxy) DebugStat(ctx context.Context, req *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse {
actualCall := func(ctx context.Context, req any) (any, error) {
return h.client.DebugStat(ctx, req.(*pb.RpcDebugStatRequest)), nil
}
for _, interceptor := range h.interceptors {
toCall := actualCall
currentInterceptor := interceptor
actualCall = func(ctx context.Context, req any) (any, error) {
return currentInterceptor(ctx, req, "DebugStat", toCall)
}
}
call, _ := actualCall(ctx, req)
return call.(*pb.RpcDebugStatResponse)
}
func (h *ClientCommandsHandlerProxy) DebugTree(ctx context.Context, req *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse {
actualCall := func(ctx context.Context, req any) (any, error) {
return h.client.DebugTree(ctx, req.(*pb.RpcDebugTreeRequest)), nil

View file

@ -10,6 +10,7 @@ import (
"github.com/anyproto/any-sync/commonspace/object/acl/list"
"github.com/anyproto/any-sync/util/crypto"
"github.com/gogo/protobuf/proto"
"github.com/gogo/protobuf/types"
"github.com/ipfs/go-cid"
"github.com/mr-tron/base58/base58"
"go.uber.org/zap"
@ -114,17 +115,11 @@ func (a *aclService) Remove(ctx context.Context, spaceId string, identities []cr
}
func (a *aclService) CancelJoin(ctx context.Context, spaceId string) (err error) {
// TODO: finish this by implementing space offload for join canceled spaces (?)
sp, err := a.spaceService.Get(ctx, spaceId)
if err != nil {
return err
}
cl := sp.CommonSpace().AclClient()
err = cl.CancelRequest(ctx)
err = a.joiningClient.CancelJoin(ctx, spaceId)
if err != nil {
return fmt.Errorf("%w, %w", ErrAclRequestFailed, err)
}
return nil
return a.spaceService.Delete(ctx, spaceId)
}
func (a *aclService) Decline(ctx context.Context, spaceId string, identity crypto.PubKey) (err error) {
@ -242,13 +237,12 @@ func (a *aclService) Join(ctx context.Context, spaceId string, inviteCid cid.Cid
if err != nil {
return fmt.Errorf("get invite payload: %w", err)
}
inviteKey, err := crypto.UnmarshalEd25519PrivateKeyProto(invitePayload.InviteKey)
if err != nil {
return fmt.Errorf("unmarshal invite key: %w", err)
}
err = a.joiningClient.RequestJoin(ctx, spaceId, list.RequestJoinPayload{
aclHeadId, err := a.joiningClient.RequestJoin(ctx, spaceId, list.RequestJoinPayload{
InviteKey: inviteKey,
Metadata: a.spaceService.AccountMetadataPayload(),
})
@ -262,7 +256,14 @@ func (a *aclService) Join(ctx context.Context, spaceId string, inviteCid cid.Cid
}
return fmt.Errorf("%w, %w", ErrAclRequestFailed, err)
}
return a.spaceService.Join(ctx, spaceId)
err = a.spaceService.Join(ctx, spaceId, aclHeadId)
if err != nil {
return err
}
return a.spaceService.TechSpace().SpaceViewSetData(ctx, spaceId, &types.Struct{Fields: map[string]*types.Value{
bundle.RelationKeyName.String(): pbtypes.String(invitePayload.SpaceName),
bundle.RelationKeyIconImage.String(): pbtypes.String(invitePayload.SpaceIconCid),
}})
}
type InviteView struct {

View file

@ -7,6 +7,7 @@ import (
"time"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/debugstat"
"github.com/anyproto/any-sync/commonfile/fileservice"
"github.com/anyproto/any-sync/commonspace"
"github.com/anyproto/any-sync/commonspace/acl/aclclient"
@ -189,6 +190,7 @@ func Bootstrap(a *app.App, components ...app.Component) {
a.
// Data storages
Register(clientds.New()).
Register(debugstat.New()).
Register(ftsearch.New()).
Register(objectstore.New()).
Register(backlinks.New()).

View file

@ -85,10 +85,13 @@ func (p *Page) Init(ctx *smartblock.InitContext) (err error) {
}
if p.isRelationDeleted(ctx) {
err = p.deleteRelationOptions(ctx)
if err != nil {
return err
}
// todo: move this to separate component
go func() {
err = p.deleteRelationOptions(p.SpaceID(), pbtypes.GetString(p.Details(), bundle.RelationKeyRelationKey.String()))
if err != nil {
log.With("err", err).Error("failed to delete relation options")
}
}()
}
return nil
}
@ -98,8 +101,7 @@ func (p *Page) isRelationDeleted(ctx *smartblock.InitContext) bool {
pbtypes.GetBool(ctx.State.Details(), bundle.RelationKeyIsUninstalled.String())
}
func (p *Page) deleteRelationOptions(ctx *smartblock.InitContext) error {
relationKey := pbtypes.GetString(ctx.State.Details(), bundle.RelationKeyRelationKey.String())
func (p *Page) deleteRelationOptions(spaceID string, relationKey string) error {
relationOptions, _, err := p.objectStore.QueryObjectIDs(database.Query{
Filters: []*model.BlockContentDataviewFilter{
{
@ -117,7 +119,7 @@ func (p *Page) deleteRelationOptions(ctx *smartblock.InitContext) error {
if err != nil {
return err
}
spaceID := p.Space().Id()
for _, id := range relationOptions {
err := p.objectDeleter.DeleteObjectByFullID(domain.FullID{SpaceID: spaceID, ObjectID: id})
if err != nil {

View file

@ -16,11 +16,14 @@ import (
"github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/core/files/fileobject"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/logging"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/space/spaceinfo"
"github.com/anyproto/anytype-heart/util/pbtypes"
)
var spaceViewLog = logging.Logger("core.block.editor.spaceview")
var ErrIncorrectSpaceInfo = errors.New("space info is incorrect")
type spaceService interface {
@ -33,6 +36,7 @@ type SpaceView struct {
smartblock.SmartBlock
spaceService spaceService
fileObjectService fileobject.Service
log *logging.Sugared
}
// newSpaceView creates a new SpaceView with given deps
@ -40,6 +44,7 @@ func (f *ObjectFactory) newSpaceView(sb smartblock.SmartBlock) *SpaceView {
return &SpaceView{
SmartBlock: sb,
spaceService: f.spaceService,
log: spaceViewLog,
fileObjectService: f.fileObjectService,
}
}
@ -53,6 +58,7 @@ func (s *SpaceView) Init(ctx *smartblock.InitContext) (err error) {
if err != nil {
return
}
s.log = s.log.With("spaceId", spaceID)
s.DisableLayouts()
info := s.getSpaceInfo(ctx.State)
@ -138,14 +144,18 @@ func (s *SpaceView) setSpaceLocalInfo(st *state.State, info spaceinfo.SpaceLocal
st.SetLocalDetail(bundle.RelationKeyTargetSpaceId.String(), pbtypes.String(info.SpaceID))
st.SetLocalDetail(bundle.RelationKeySpaceLocalStatus.String(), pbtypes.Int64(int64(info.LocalStatus)))
st.SetLocalDetail(bundle.RelationKeySpaceRemoteStatus.String(), pbtypes.Int64(int64(info.RemoteStatus)))
s.log.Infof("set space local status: %s, remote status: %s", info.LocalStatus.String(), info.RemoteStatus.String())
}
func (s *SpaceView) setSpacePersistentInfo(st *state.State, info spaceinfo.SpacePersistentInfo) {
st.SetLocalDetail(bundle.RelationKeyTargetSpaceId.String(), pbtypes.String(info.SpaceID))
st.SetDetail(bundle.RelationKeySpaceAccountStatus.String(), pbtypes.Int64(int64(info.AccountStatus)))
log := s.log
if info.AclHeadId != "" {
log = log.With("aclHeadId", info.AclHeadId)
st.SetDetail(bundle.RelationKeyLatestAclHeadId.String(), pbtypes.String(info.AclHeadId))
}
log.Infof("set space account status: %s", info.AccountStatus.String())
}
// targetSpaceID returns space id from the root of space object's tree

View file

@ -21,7 +21,7 @@ func ExtractFileTimes(fileName string) (int64, int64) {
}
if stat, ok := fileInfo.Sys().(*syscall.Stat_t); ok {
creationTime := time.Unix(stat.Ctim.Sec, stat.Ctim.Nsec)
creationTime := time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec))
modTime := fileInfo.ModTime().Unix()
return creationTime.Unix(), modTime
}

View file

@ -101,6 +101,21 @@ func (mw *Middleware) DebugSpaceSummary(cctx context.Context, req *pb.RpcDebugSp
return response(nil, spaceSummary)
}
func (mw *Middleware) DebugStat(ctx context.Context, request *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse {
debugService := mw.applicationService.GetApp().MustComponent(debug.CName).(debug.Debug)
debugStat, err := debugService.DebugStat()
code := mapErrorCode(err,
errToCode(err, pb.RpcDebugStatResponseError_UNKNOWN_ERROR),
)
return &pb.RpcDebugStatResponse{
JsonStat: debugStat,
Error: &pb.RpcDebugStatResponseError{
Code: code,
Description: getErrorDescription(err),
},
}
}
func (mw *Middleware) DebugStackGoroutines(_ context.Context, req *pb.RpcDebugStackGoroutinesRequest) *pb.RpcDebugStackGoroutinesResponse {
response := func(err error) (res *pb.RpcDebugStackGoroutinesResponse) {
res = &pb.RpcDebugStackGoroutinesResponse{

View file

@ -3,6 +3,7 @@ package debug
import (
"archive/zip"
"context"
"encoding/json"
"fmt"
"io"
"net/http"
@ -13,6 +14,7 @@ import (
"time"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/debugstat"
"github.com/anyproto/any-sync/commonspace/objecttreebuilder"
"github.com/go-chi/chi/v5"
"github.com/gogo/protobuf/jsonpb"
@ -36,6 +38,7 @@ func New() Debug {
type Debug interface {
app.Component
DebugStat() (string, error)
DumpTree(ctx context.Context, objectID string, path string, anonymize bool, withSvg bool) (filename string, err error)
DumpLocalstore(ctx context.Context, spaceID string, objectIds []string, path string) (filename string, err error)
SpaceSummary(ctx context.Context, spaceID string) (summary SpaceSummary, err error)
@ -47,6 +50,7 @@ type debug struct {
store objectstore.ObjectStore
spaceService space.Service
resolver idresolver.Resolver
statService debugstat.StatService
server *http.Server
}
@ -60,7 +64,10 @@ func (d *debug) Init(a *app.App) (err error) {
d.block = a.MustComponent(block.CName).(*block.Service)
d.spaceService = app.MustComponent[space.Service](a)
d.resolver = app.MustComponent[idresolver.Resolver](a)
d.statService, _ = a.Component(debugstat.CName).(debugstat.StatService)
if d.statService == nil {
d.statService = debugstat.NewNoOp()
}
d.initHandlers(a)
return nil
}
@ -139,6 +146,15 @@ func (d *debug) SpaceSummary(ctx context.Context, spaceID string) (summary Space
return
}
func (d *debug) DebugStat() (string, error) {
stats := d.statService.GetStat()
marshaled, err := json.Marshal(stats)
if err != nil {
return "", err
}
return string(marshaled), nil
}
func (d *debug) TreeHeads(ctx context.Context, id string) (info TreeInfo, err error) {
spcID, err := d.resolver.ResolveSpaceID(id)
if err != nil {

View file

@ -29,7 +29,7 @@ type fixture struct {
coordinatorClient *inMemoryIdentityRepo
}
const testObserverPeriod = 5 * time.Millisecond
const testObserverPeriod = 1 * time.Millisecond
func newFixture(t *testing.T) *fixture {
ctx := context.Background()
@ -188,7 +188,7 @@ func TestObservers(t *testing.T) {
})
require.NoError(t, err)
time.Sleep(testObserverPeriod)
time.Sleep(testObserverPeriod * 2)
err = fx.identityRepoClient.IdentityRepoPut(context.Background(), identity, []*identityrepoproto.Data{
{
@ -206,7 +206,7 @@ func TestObservers(t *testing.T) {
}
wantData2 := marshalProfile(t, wantProfile2, profileSymKey)
time.Sleep(testObserverPeriod)
time.Sleep(testObserverPeriod * 2)
err = fx.identityRepoClient.IdentityRepoPut(context.Background(), identity, []*identityrepoproto.Data{
{
Kind: identityRepoDataKind,

View file

@ -36,7 +36,7 @@ const (
// ForceIdxRebuildCounter erases localstore indexes and reindex all type of objects
// (no need to increase ForceObjectsReindexCounter & ForceFilesReindexCounter)
ForceIdxRebuildCounter int32 = 63
ForceIdxRebuildCounter int32 = 62
// ForceFulltextIndexCounter performs fulltext indexing for all type of objects (useful when we change fulltext config)
ForceFulltextIndexCounter int32 = 6

View file

@ -164,10 +164,17 @@ func (mw *Middleware) SpaceStopSharing(cctx context.Context, req *pb.RpcSpaceSto
}
func (mw *Middleware) SpaceJoinCancel(cctx context.Context, req *pb.RpcSpaceJoinCancelRequest) *pb.RpcSpaceJoinCancelResponse {
aclService := mw.applicationService.GetApp().MustComponent(acl.CName).(acl.AclService)
err := aclService.CancelJoin(cctx, req.SpaceId)
code := mapErrorCode(err,
errToCode(space.ErrSpaceDeleted, pb.RpcSpaceJoinCancelResponseError_SPACE_IS_DELETED),
errToCode(space.ErrSpaceNotExists, pb.RpcSpaceJoinCancelResponseError_NO_SUCH_SPACE),
errToCode(acl.ErrAclRequestFailed, pb.RpcSpaceJoinCancelResponseError_REQUEST_FAILED),
)
return &pb.RpcSpaceJoinCancelResponse{
Error: &pb.RpcSpaceJoinCancelResponseError{
Code: 1,
Description: getErrorDescription(fmt.Errorf("not implemented")),
Code: code,
Description: getErrorDescription(err),
},
}
}

View file

@ -541,6 +541,10 @@
- [Rpc.Debug.StackGoroutines.Request](#anytype-Rpc-Debug-StackGoroutines-Request)
- [Rpc.Debug.StackGoroutines.Response](#anytype-Rpc-Debug-StackGoroutines-Response)
- [Rpc.Debug.StackGoroutines.Response.Error](#anytype-Rpc-Debug-StackGoroutines-Response-Error)
- [Rpc.Debug.Stat](#anytype-Rpc-Debug-Stat)
- [Rpc.Debug.Stat.Request](#anytype-Rpc-Debug-Stat-Request)
- [Rpc.Debug.Stat.Response](#anytype-Rpc-Debug-Stat-Response)
- [Rpc.Debug.Stat.Response.Error](#anytype-Rpc-Debug-Stat-Response-Error)
- [Rpc.Debug.Subscriptions](#anytype-Rpc-Debug-Subscriptions)
- [Rpc.Debug.Subscriptions.Request](#anytype-Rpc-Debug-Subscriptions-Request)
- [Rpc.Debug.Subscriptions.Response](#anytype-Rpc-Debug-Subscriptions-Response)
@ -1170,6 +1174,7 @@
- [Rpc.Debug.Ping.Response.Error.Code](#anytype-Rpc-Debug-Ping-Response-Error-Code)
- [Rpc.Debug.SpaceSummary.Response.Error.Code](#anytype-Rpc-Debug-SpaceSummary-Response-Error-Code)
- [Rpc.Debug.StackGoroutines.Response.Error.Code](#anytype-Rpc-Debug-StackGoroutines-Response-Error-Code)
- [Rpc.Debug.Stat.Response.Error.Code](#anytype-Rpc-Debug-Stat-Response-Error-Code)
- [Rpc.Debug.Subscriptions.Response.Error.Code](#anytype-Rpc-Debug-Subscriptions-Response-Error-Code)
- [Rpc.Debug.Tree.Response.Error.Code](#anytype-Rpc-Debug-Tree-Response-Error-Code)
- [Rpc.Debug.TreeHeads.Response.Error.Code](#anytype-Rpc-Debug-TreeHeads-Response-Error-Code)
@ -1875,6 +1880,7 @@
| BlockLatexSetText | [Rpc.BlockLatex.SetText.Request](#anytype-Rpc-BlockLatex-SetText-Request) | [Rpc.BlockLatex.SetText.Response](#anytype-Rpc-BlockLatex-SetText-Response) | |
| ProcessCancel | [Rpc.Process.Cancel.Request](#anytype-Rpc-Process-Cancel-Request) | [Rpc.Process.Cancel.Response](#anytype-Rpc-Process-Cancel-Response) | |
| LogSend | [Rpc.Log.Send.Request](#anytype-Rpc-Log-Send-Request) | [Rpc.Log.Send.Response](#anytype-Rpc-Log-Send-Response) | |
| DebugStat | [Rpc.Debug.Stat.Request](#anytype-Rpc-Debug-Stat-Request) | [Rpc.Debug.Stat.Response](#anytype-Rpc-Debug-Stat-Response) | |
| DebugTree | [Rpc.Debug.Tree.Request](#anytype-Rpc-Debug-Tree-Request) | [Rpc.Debug.Tree.Response](#anytype-Rpc-Debug-Tree-Response) | |
| DebugTreeHeads | [Rpc.Debug.TreeHeads.Request](#anytype-Rpc-Debug-TreeHeads-Request) | [Rpc.Debug.TreeHeads.Response](#anytype-Rpc-Debug-TreeHeads-Response) | |
| DebugSpaceSummary | [Rpc.Debug.SpaceSummary.Request](#anytype-Rpc-Debug-SpaceSummary-Request) | [Rpc.Debug.SpaceSummary.Response](#anytype-Rpc-Debug-SpaceSummary-Response) | |
@ -9716,6 +9722,58 @@ Get marks list in the selected range in text block.
<a name="anytype-Rpc-Debug-Stat"></a>
### Rpc.Debug.Stat
<a name="anytype-Rpc-Debug-Stat-Request"></a>
### Rpc.Debug.Stat.Request
<a name="anytype-Rpc-Debug-Stat-Response"></a>
### Rpc.Debug.Stat.Response
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| error | [Rpc.Debug.Stat.Response.Error](#anytype-Rpc-Debug-Stat-Response-Error) | | |
| jsonStat | [string](#string) | | |
<a name="anytype-Rpc-Debug-Stat-Response-Error"></a>
### Rpc.Debug.Stat.Response.Error
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| code | [Rpc.Debug.Stat.Response.Error.Code](#anytype-Rpc-Debug-Stat-Response-Error-Code) | | |
| description | [string](#string) | | |
<a name="anytype-Rpc-Debug-Subscriptions"></a>
### Rpc.Debug.Subscriptions
@ -15509,8 +15567,6 @@ Available undo/redo operations
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| spaceId | [string](#string) | | |
| inviteCid | [string](#string) | | |
| inviteFileKey | [string](#string) | | |
@ -18708,6 +18764,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er
<a name="anytype-Rpc-Debug-Stat-Response-Error-Code"></a>
### Rpc.Debug.Stat.Response.Error.Code
| Name | Number | Description |
| ---- | ------ | ----------- |
| NULL | 0 | |
| UNKNOWN_ERROR | 1 | |
| BAD_INPUT | 2 | ... |
<a name="anytype-Rpc-Debug-Subscriptions-Response-Error-Code"></a>
### Rpc.Debug.Subscriptions.Response.Error.Code

27
go.mod
View file

@ -7,7 +7,7 @@ require (
github.com/PuerkitoBio/goquery v1.8.1
github.com/VividCortex/ewma v1.2.0
github.com/adrium/goheif v0.0.0-20230113233934-ca402e77a786
github.com/anyproto/any-sync v0.3.30
github.com/anyproto/any-sync v0.3.32
github.com/anyproto/go-naturaldate/v2 v2.0.2-0.20230524105841-9829cfd13438
github.com/araddon/dateparse v0.0.0-20210429162001-6b43995a97de
github.com/blevesearch/bleve/v2 v2.3.10
@ -33,7 +33,7 @@ require (
github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da
github.com/golang/snappy v0.0.5-0.20220116011046-fa5810519dcb
github.com/google/uuid v1.6.0
github.com/gosimple/slug v1.13.1
github.com/gosimple/slug v1.14.0
github.com/grokify/html-strip-tags-go v0.1.0
github.com/grpc-ecosystem/go-grpc-middleware v1.4.0
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
@ -71,12 +71,12 @@ require (
github.com/otiai10/copy v1.14.0
github.com/otiai10/opengraph/v2 v2.1.0
github.com/pkg/errors v0.9.1
github.com/prometheus/client_golang v1.18.0
github.com/prometheus/client_golang v1.19.0
github.com/pseudomuto/protoc-gen-doc v1.5.1
github.com/rwcarlsen/goexif v0.0.0-20190401172101-9e8deecbddbd
github.com/samber/lo v1.39.0
github.com/sasha-s/go-deadlock v0.3.1
github.com/shirou/gopsutil/v3 v3.24.1
github.com/shirou/gopsutil/v3 v3.24.2
github.com/stretchr/testify v1.8.4
github.com/uber/jaeger-client-go v2.30.0+incompatible
github.com/valyala/fastjson v1.6.4
@ -90,8 +90,8 @@ require (
golang.org/x/exp v0.0.0-20240205201215-2c58cdc269a3
golang.org/x/image v0.15.0
golang.org/x/mobile v0.0.0-20231006135142-2b44d11868fe
golang.org/x/net v0.21.0
golang.org/x/oauth2 v0.16.0
golang.org/x/net v0.22.0
golang.org/x/oauth2 v0.18.0
golang.org/x/text v0.14.0
google.golang.org/grpc v1.61.1
gopkg.in/Graylog2/go-gelf.v2 v2.0.0-20180125164251-1832d8546a9f
@ -202,7 +202,6 @@ require (
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 // indirect
github.com/mattn/go-colorable v0.1.13 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/miekg/dns v1.1.56 // indirect
github.com/miguelmota/go-ethereum-hdwallet v0.1.2 // indirect
github.com/minio/sha256-simd v1.0.1 // indirect
@ -227,7 +226,7 @@ require (
github.com/polydawn/refmt v0.89.0 // indirect
github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c // indirect
github.com/prometheus/client_model v0.5.0 // indirect
github.com/prometheus/common v0.45.0 // indirect
github.com/prometheus/common v0.48.0 // indirect
github.com/prometheus/procfs v0.12.0 // indirect
github.com/pseudomuto/protokit v0.2.1 // indirect
github.com/quic-go/qtls-go1-20 v0.4.1 // indirect
@ -253,24 +252,24 @@ require (
github.com/whyrusleeping/chunker v0.0.0-20181014151217-fe64bd25879f // indirect
github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f // indirect
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect
github.com/yusufpapurcu/wmi v1.2.3 // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
github.com/zeebo/blake3 v0.2.3 // indirect
github.com/zeebo/errs v1.3.0 // indirect
go.etcd.io/bbolt v1.3.7 // indirect
go.opencensus.io v0.24.0 // indirect
go.opentelemetry.io/otel v1.14.0 // indirect
go.opentelemetry.io/otel/trace v1.14.0 // indirect
golang.org/x/crypto v0.19.0 // indirect
golang.org/x/crypto v0.21.0 // indirect
golang.org/x/mod v0.15.0 // indirect
golang.org/x/sync v0.6.0 // indirect
golang.org/x/sys v0.17.0 // indirect
golang.org/x/term v0.17.0 // indirect
golang.org/x/sys v0.18.0 // indirect
golang.org/x/term v0.18.0 // indirect
golang.org/x/tools v0.17.0 // indirect
google.golang.org/appengine v1.6.8 // indirect
google.golang.org/genproto v0.0.0-20231106174013-bbf56f31fb17 // indirect
google.golang.org/genproto/googleapis/api v0.0.0-20231106174013-bbf56f31fb17 // indirect
google.golang.org/genproto/googleapis/rpc v0.0.0-20231106174013-bbf56f31fb17 // indirect
google.golang.org/protobuf v1.31.0 // indirect
google.golang.org/protobuf v1.32.0 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
lukechampine.com/blake3 v1.2.1 // indirect
@ -280,7 +279,7 @@ require (
replace github.com/dgraph-io/badger/v4 => github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580
replace github.com/dgraph-io/ristretto => github.com/anyproto/ristretto v0.1.2-0.20240206201651-43b6ac4c41bf
replace github.com/dgraph-io/ristretto => github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c
replace github.com/libp2p/zeroconf/v2 => github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d

54
go.sum
View file

@ -85,8 +85,8 @@ github.com/andybalholm/cascadia v1.2.0/go.mod h1:YCyR8vOZT9aZ1CHEd8ap0gMVm2aFgxB
github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss=
github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU=
github.com/anyproto/any-sync v0.3.30 h1:mTZeYGkI9WzgCgbm1+gXRsKM8F8+BMPr8NM8sKgpzGk=
github.com/anyproto/any-sync v0.3.30/go.mod h1:q7O3a4p3DwhFzIACjh6I6rv2RzgqPQesZNZv27B8Xdo=
github.com/anyproto/any-sync v0.3.32 h1:SKSzA4YOCVPwdT6Mf9p0yKnRE3xkvax/EUflspd5pbY=
github.com/anyproto/any-sync v0.3.32/go.mod h1:q7O3a4p3DwhFzIACjh6I6rv2RzgqPQesZNZv27B8Xdo=
github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580 h1:Ba80IlCCxkZ9H1GF+7vFu/TSpPvbpDCxXJ5ogc4euYc=
github.com/anyproto/badger/v4 v4.2.1-0.20240110160636-80743fa3d580/go.mod h1:T/uWAYxrXdaXw64ihI++9RMbKTCpKd/yE9+saARew7k=
github.com/anyproto/go-chash v0.1.0 h1:I9meTPjXFRfXZHRJzjOHC/XF7Q5vzysKkiT/grsogXY=
@ -107,8 +107,8 @@ github.com/anyproto/html-to-markdown v0.0.0-20231025221133-830bf0a6f139 h1:Wp9z0
github.com/anyproto/html-to-markdown v0.0.0-20231025221133-830bf0a6f139/go.mod h1:1zaDDQVWTRwNksmTUTkcVXqgNF28YHiEUIm8FL9Z+II=
github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38 h1:80jke82/c+bNQQpnx4VO3Mi/lAxARyyfUpZvFaPxdzE=
github.com/anyproto/protobuf v1.3.3-0.20240201225420-6e325cf0ac38/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
github.com/anyproto/ristretto v0.1.2-0.20240206201651-43b6ac4c41bf h1:4M5223J0RSOelU4UPyaru8qEVTtdRoLwNd6ZVTPACq4=
github.com/anyproto/ristretto v0.1.2-0.20240206201651-43b6ac4c41bf/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA=
github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c h1:GicoaTUyB2mtCIl3YMrO0OzysqRT5GA4vuvDsqEkhSM=
github.com/anyproto/ristretto v0.1.2-0.20240221153107-2b23839cc50c/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA=
github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d h1:5bj7nX/AS8sxGpTIrapE7PC4oPlhkHMwMqXlJbUHBlg=
github.com/anyproto/zeroconf/v2 v2.2.1-0.20240228113933-f90a5cc4439d/go.mod h1:fuJqLnUwZTshS3U/bMRJ3+ow/v9oid1n0DmyYyNO1Xs=
github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ=
@ -518,8 +518,8 @@ github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoA
github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
github.com/gosimple/slug v1.13.1 h1:bQ+kpX9Qa6tHRaK+fZR0A0M2Kd7Pa5eHPPsb1JpHD+Q=
github.com/gosimple/slug v1.13.1/go.mod h1:UiRaFH+GEilHstLUmcBgWcI42viBN7mAb818JrYOeFQ=
github.com/gosimple/slug v1.14.0 h1:RtTL/71mJNDfpUbCOmnf/XFkzKRtD6wL6Uy+3akm4Es=
github.com/gosimple/slug v1.14.0/go.mod h1:UiRaFH+GEilHstLUmcBgWcI42viBN7mAb818JrYOeFQ=
github.com/gosimple/unidecode v1.0.1 h1:hZzFTMMqSswvf0LBJZCZgThIZrpDHFXux9KeGmn6T/o=
github.com/gosimple/unidecode v1.0.1/go.mod h1:CP0Cr1Y1kogOtx0bJblKzsVWrqYaqfNOnHzpgWw4Awc=
github.com/grokify/html-strip-tags-go v0.1.0 h1:03UrQLjAny8xci+R+qjCce/MYnpNXCtgzltlQbOBae4=
@ -982,8 +982,6 @@ github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzp
github.com/mattn/go-runewidth v0.0.10/go.mod h1:RAqKPSqVFrSLVXbA8x7dzmKdmGzieGRCM46jaSJTDAk=
github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
github.com/mb0/diff v0.0.0-20131118162322-d8d9a906c24d h1:eAS2t2Vy+6psf9LZ4T5WXWsbkBt3Tu5PWekJy5AGyEU=
github.com/mb0/diff v0.0.0-20131118162322-d8d9a906c24d/go.mod h1:3YMHqrw2Qu3Liy82v4QdAG17e9k91HZ7w3hqlpWqhDo=
github.com/mehanizm/dateparse v0.0.0-20210806203422-f82c8742c9f8 h1:SA/3Lk2gFZilCejaXeCTkA3+MHt9uI9ogzx45F/nOFE=
@ -1179,8 +1177,8 @@ github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDf
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.3.0/go.mod h1:hJaj2vgQTGQmVCsAACORcieXFeDPbaTKGT+JTgUa3og=
github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M=
github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
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.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
@ -1196,8 +1194,8 @@ github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y8
github.com/prometheus/common v0.7.0/go.mod h1:DjGbpBbp5NYNiECxcL/VnbXCCaQpKd3tt26CguLLsqA=
github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo=
github.com/prometheus/common v0.15.0/go.mod h1:U+gB1OBLb1lF3O42bTCL+FK18tX9Oar16Clt/msog/s=
github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
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.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
@ -1249,8 +1247,8 @@ github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNX
github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ=
github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM=
github.com/shirou/gopsutil v3.21.4-0.20210419000835-c7a38de76ee5+incompatible h1:Bn1aCHHRnjv4Bl16T8rcaFjYSrGrIZvpiGO6P3Q4GpU=
github.com/shirou/gopsutil/v3 v3.24.1 h1:R3t6ondCEvmARp3wxODhXMTLC/klMa87h2PHUw5m7QI=
github.com/shirou/gopsutil/v3 v3.24.1/go.mod h1:UU7a2MSBQa+kW1uuDq8DeEBS8kmrnQwsv2b5O513rwU=
github.com/shirou/gopsutil/v3 v3.24.2 h1:kcR0erMbLg5/3LcInpw0X/rrPSqq4CDPyI6A6ZRC18Y=
github.com/shirou/gopsutil/v3 v3.24.2/go.mod h1:tSg/594BcA+8UdQU2XcW803GWYgdtauFFPgJCJKZlVk=
github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM=
github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ=
github.com/shoenig/test v0.6.4 h1:kVTaSd7WLz5WZ2IaoM0RSzRsUD+m8wRR+5qvntpn4LU=
@ -1389,8 +1387,8 @@ github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5t
github.com/yuin/goldmark v1.5.5/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yuin/goldmark v1.7.0 h1:EfOIvIMZIzHdB/R/zVrikYLPPwJlfMcNczJFMs1m6sA=
github.com/yuin/goldmark v1.7.0/go.mod h1:uzxRWxtg69N339t3louHJ7+O03ezfj6PlliRlaOzY1E=
github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw=
github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/yusufpapurcu/wmi v1.2.4 h1:zFUKzehAFReQwLys1b/iSMl+JQGSCSjtVqQn9bBrPo0=
github.com/yusufpapurcu/wmi v1.2.4/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
github.com/zeebo/assert v1.1.0/go.mod h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
github.com/zeebo/assert v1.3.0 h1:g7C04CbJuIDKNPFHmsk4hwZDO5O+kntRxzaUoNXj+IQ=
github.com/zeebo/blake3 v0.2.3 h1:TFoLXsjeXqRNFxSbk35Dk4YtszE/MQQGK10BH4ptoTg=
@ -1474,8 +1472,8 @@ golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw=
golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo=
golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
golang.org/x/crypto v0.21.0 h1:X31++rzVUdKhX5sWmSOFZxx8UW/ldWx55cbf08iNAMA=
golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@ -1588,8 +1586,8 @@ golang.org/x/net v0.7.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.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI=
golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4=
golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
golang.org/x/net v0.22.0 h1:9sGLhx7iRIHEiX0oAJ3MRZMUCElJgy7Br1nO+AMN3Tc=
golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@ -1599,8 +1597,8 @@ golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ
golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A=
golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ=
golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o=
golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI=
golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@ -1707,9 +1705,9 @@ golang.org/x/sys v0.6.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.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 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y=
golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/sys v0.18.0 h1:DBdB3niSjOA/O0blCZBqDefyWNYveAYMNF1Wum0DYQ4=
golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
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=
@ -1717,8 +1715,8 @@ 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.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU=
golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U=
golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk=
golang.org/x/term v0.18.0 h1:FcHjZXDMxI8mM3nwhX9HlKop4C0YQvCVCdwYl2wOtE8=
golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@ -1925,8 +1923,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
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.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I=
google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=

File diff suppressed because it is too large Load diff

View file

@ -262,8 +262,6 @@ message Rpc {
message JoinCancel {
message Request {
string spaceId = 1;
string inviteCid = 2;
string inviteFileKey = 3;
}
message Response {
@ -5983,6 +5981,28 @@ message Rpc {
repeated string headIds = 2;
}
message Stat {
message Request {
}
message Response {
Error error = 1;
string jsonStat = 2;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message TreeHeads {
message Request {
string treeId = 1;

View file

@ -291,6 +291,7 @@ service ClientCommands {
rpc LogSend (anytype.Rpc.Log.Send.Request) returns (anytype.Rpc.Log.Send.Response);
rpc DebugStat (anytype.Rpc.Debug.Stat.Request) returns (anytype.Rpc.Debug.Stat.Response);
rpc DebugTree (anytype.Rpc.Debug.Tree.Request) returns (anytype.Rpc.Debug.Tree.Response);
rpc DebugTreeHeads (anytype.Rpc.Debug.TreeHeads.Request) returns (anytype.Rpc.Debug.TreeHeads.Response);
rpc DebugSpaceSummary (anytype.Rpc.Debug.SpaceSummary.Request) returns (anytype.Rpc.Debug.SpaceSummary.Response);

View file

@ -26,282 +26,283 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
// 4396 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdb, 0x6f, 0x1c, 0x59,
0x5a, 0xc0, 0xa7, 0x5f, 0x18, 0xa8, 0x65, 0x07, 0xe8, 0x85, 0x61, 0x36, 0xec, 0x3a, 0x99, 0x4c,
0x62, 0x27, 0x71, 0xdc, 0xce, 0x24, 0x73, 0x59, 0x76, 0x91, 0x90, 0x63, 0xc7, 0x1e, 0xb3, 0x89,
0x63, 0xdc, 0x9d, 0x44, 0x1a, 0x09, 0x89, 0x72, 0xf5, 0x49, 0xbb, 0x70, 0x75, 0x9d, 0xda, 0xaa,
0xd3, 0x6d, 0x37, 0x08, 0x04, 0x02, 0x81, 0xb8, 0x09, 0xc4, 0xed, 0x85, 0x07, 0x24, 0xfe, 0x14,
0x9e, 0x78, 0x9c, 0x47, 0x1e, 0xd1, 0xcc, 0x3f, 0xb2, 0xaa, 0x73, 0x4e, 0x9d, 0xcb, 0x57, 0xdf,
0x77, 0xaa, 0x7a, 0x9e, 0x12, 0xf5, 0xf7, 0xfb, 0x2e, 0xa7, 0xce, 0xed, 0x3b, 0x97, 0x2a, 0x47,
0x37, 0x8b, 0xf3, 0xdd, 0xa2, 0xe4, 0x82, 0x57, 0xbb, 0x15, 0x2b, 0x97, 0x69, 0xc2, 0x9a, 0x7f,
0x47, 0xf2, 0xe7, 0xe1, 0xbb, 0x71, 0xbe, 0x12, 0xab, 0x82, 0xdd, 0xf8, 0xc0, 0x92, 0x09, 0x9f,
0xcf, 0xe3, 0x7c, 0x5a, 0x29, 0xe4, 0xc6, 0xfb, 0x56, 0xc2, 0x96, 0x2c, 0x17, 0xfa, 0xf7, 0xc7,
0x7f, 0xff, 0x3f, 0x83, 0xe8, 0xbd, 0xfd, 0x2c, 0x65, 0xb9, 0xd8, 0xd7, 0x1a, 0xc3, 0x2f, 0xa3,
0xef, 0xee, 0x15, 0xc5, 0x11, 0x13, 0xaf, 0x59, 0x59, 0xa5, 0x3c, 0x1f, 0x7e, 0x34, 0xd2, 0x0e,
0x46, 0x67, 0x45, 0x32, 0xda, 0x2b, 0x8a, 0x91, 0x15, 0x8e, 0xce, 0xd8, 0xcf, 0x16, 0xac, 0x12,
0x37, 0xee, 0x84, 0xa1, 0xaa, 0xe0, 0x79, 0xc5, 0x86, 0x6f, 0xa3, 0x5f, 0xdb, 0x2b, 0x8a, 0x31,
0x13, 0x07, 0xac, 0x2e, 0xc0, 0x58, 0xc4, 0x82, 0x0d, 0xb7, 0x5a, 0xaa, 0x3e, 0x60, 0x7c, 0xdc,
0xeb, 0x06, 0xb5, 0x9f, 0x49, 0xf4, 0x9d, 0xda, 0xcf, 0xc5, 0x42, 0x4c, 0xf9, 0x55, 0x3e, 0xfc,
0xb0, 0xad, 0xa8, 0x45, 0xc6, 0xf6, 0xed, 0x10, 0xa2, 0xad, 0xbe, 0x89, 0x7e, 0xf9, 0x4d, 0x9c,
0x65, 0x4c, 0xec, 0x97, 0xac, 0x0e, 0xdc, 0xd7, 0x51, 0xa2, 0x91, 0x92, 0x19, 0xbb, 0x1f, 0x05,
0x19, 0x6d, 0xf8, 0xcb, 0xe8, 0xbb, 0x4a, 0x72, 0xc6, 0x12, 0xbe, 0x64, 0xe5, 0x10, 0xd5, 0xd2,
0x42, 0xe2, 0x91, 0xb7, 0x20, 0x68, 0x7b, 0x9f, 0xe7, 0x4b, 0x56, 0x0a, 0xdc, 0xb6, 0x16, 0x86,
0x6d, 0x5b, 0x48, 0xdb, 0xfe, 0xdb, 0x41, 0xf4, 0x83, 0xbd, 0x24, 0xe1, 0x8b, 0x5c, 0x3c, 0xe7,
0x49, 0x9c, 0x3d, 0x4f, 0xf3, 0xcb, 0x13, 0x76, 0xb5, 0x7f, 0x51, 0xf3, 0xf9, 0x8c, 0x0d, 0x9f,
0xf8, 0x4f, 0x55, 0xa1, 0x23, 0xc3, 0x8e, 0x5c, 0xd8, 0xf8, 0xfe, 0x64, 0x3d, 0x25, 0x1d, 0xcb,
0x3f, 0x0d, 0xa2, 0x0d, 0x18, 0xcb, 0x98, 0x67, 0x4b, 0x66, 0xa3, 0xf9, 0xb4, 0xc3, 0xb0, 0x8f,
0x9b, 0x78, 0x3e, 0x5b, 0x57, 0x4d, 0x47, 0x94, 0x45, 0xdf, 0x73, 0x9b, 0xcb, 0x98, 0x55, 0xb2,
0x3b, 0xdd, 0xa7, 0x5b, 0x84, 0x46, 0x8c, 0xe7, 0x07, 0x7d, 0x50, 0xed, 0x2d, 0x8d, 0x86, 0xda,
0x5b, 0xc6, 0x2b, 0xe3, 0xec, 0x1e, 0x6a, 0xc1, 0x21, 0x8c, 0xaf, 0xfb, 0x3d, 0x48, 0xed, 0xea,
0x0f, 0xa3, 0x5f, 0x79, 0xc3, 0xcb, 0xcb, 0xaa, 0x88, 0x13, 0xa6, 0xbb, 0xc2, 0x5d, 0x5f, 0xbb,
0x91, 0xc2, 0xde, 0xb0, 0xd9, 0x85, 0x39, 0x8d, 0xb6, 0x11, 0xbe, 0x2c, 0x18, 0x1c, 0x83, 0xac,
0x62, 0x2d, 0xa4, 0x1a, 0x2d, 0x84, 0xb4, 0xed, 0xcb, 0x68, 0x68, 0x6d, 0x9f, 0xff, 0x11, 0x4b,
0xc4, 0xde, 0x74, 0x0a, 0x6b, 0xc5, 0xea, 0x4a, 0x62, 0xb4, 0x37, 0x9d, 0x52, 0xb5, 0x82, 0xa3,
0xda, 0xd9, 0x55, 0xf4, 0x3e, 0x70, 0xf6, 0x3c, 0xad, 0xa4, 0xc3, 0x9d, 0xb0, 0x15, 0x8d, 0x19,
0xa7, 0xa3, 0xbe, 0xb8, 0x76, 0xfc, 0xe7, 0x83, 0xe8, 0xfb, 0x88, 0xe7, 0x33, 0x36, 0xe7, 0x4b,
0x36, 0x7c, 0xd4, 0x6d, 0x4d, 0x91, 0xc6, 0xff, 0xc7, 0x6b, 0x68, 0x20, 0xcd, 0x64, 0xcc, 0x32,
0x96, 0x08, 0xb2, 0x99, 0x28, 0x71, 0x67, 0x33, 0x31, 0x98, 0xd3, 0xc3, 0x1a, 0xe1, 0x11, 0x13,
0xfb, 0x8b, 0xb2, 0x64, 0xb9, 0x20, 0xeb, 0xd2, 0x22, 0x9d, 0x75, 0xe9, 0xa1, 0x48, 0x79, 0x8e,
0x98, 0xd8, 0xcb, 0x32, 0xb2, 0x3c, 0x4a, 0xdc, 0x59, 0x1e, 0x83, 0x69, 0x0f, 0x49, 0xf4, 0xab,
0xce, 0x13, 0x13, 0xc7, 0xf9, 0x5b, 0x3e, 0xa4, 0x9f, 0x85, 0x94, 0x1b, 0x1f, 0x5b, 0x9d, 0x1c,
0x52, 0x8c, 0x67, 0xd7, 0x05, 0x2f, 0xe9, 0x6a, 0x51, 0xe2, 0xce, 0x62, 0x18, 0x4c, 0x7b, 0xf8,
0x83, 0xe8, 0x3d, 0x3d, 0x4a, 0x36, 0xf3, 0xd9, 0x1d, 0x74, 0x08, 0x85, 0x13, 0xda, 0xdd, 0x0e,
0xca, 0x0e, 0x0e, 0x5a, 0xa6, 0x07, 0x9f, 0x8f, 0x50, 0x3d, 0x30, 0xf4, 0xdc, 0x09, 0x43, 0x2d,
0xdb, 0x07, 0x2c, 0x63, 0xa4, 0x6d, 0x25, 0xec, 0xb0, 0x6d, 0x20, 0x6d, 0xbb, 0x8c, 0x7e, 0xc3,
0x3c, 0x96, 0x7a, 0x1e, 0x95, 0xf2, 0x7a, 0x90, 0xde, 0x26, 0xca, 0xed, 0x42, 0xc6, 0xd7, 0xc3,
0x7e, 0x70, 0xab, 0x3c, 0xba, 0x07, 0xe2, 0xe5, 0x01, 0xfd, 0xef, 0x4e, 0x18, 0xd2, 0xb6, 0xff,
0x6e, 0x10, 0xfd, 0x50, 0xcb, 0x9e, 0xe5, 0xf1, 0x79, 0xc6, 0xe4, 0x94, 0x78, 0xc2, 0xc4, 0x15,
0x2f, 0x2f, 0xc7, 0xab, 0x3c, 0x21, 0xa6, 0x7f, 0x1c, 0xee, 0x98, 0xfe, 0x49, 0x25, 0x27, 0xe3,
0xd3, 0x05, 0x15, 0xbc, 0x80, 0x19, 0x5f, 0x53, 0x02, 0xc1, 0x0b, 0x2a, 0xe3, 0xf3, 0x91, 0x96,
0xd5, 0x17, 0xf5, 0xb0, 0x89, 0x5b, 0x7d, 0xe1, 0x8e, 0x93, 0xb7, 0x43, 0x88, 0x1d, 0xb6, 0x9a,
0x06, 0xcc, 0xf3, 0xb7, 0xe9, 0xec, 0x55, 0x31, 0xad, 0x9b, 0xf1, 0x7d, 0xbc, 0x85, 0x3a, 0x08,
0x31, 0x6c, 0x11, 0xa8, 0xf6, 0xf6, 0x8f, 0x36, 0x31, 0xd2, 0x5d, 0xe9, 0xb0, 0xe4, 0xf3, 0xe7,
0x6c, 0x16, 0x27, 0x2b, 0xdd, 0xff, 0x3f, 0x09, 0x75, 0x3c, 0x48, 0x9b, 0x20, 0x3e, 0x5d, 0x53,
0x4b, 0xc7, 0xf3, 0x5f, 0x83, 0xe8, 0x4e, 0x53, 0xfc, 0x8b, 0x38, 0x9f, 0x31, 0x5d, 0x9f, 0x2a,
0xfa, 0xbd, 0x7c, 0x7a, 0xc6, 0x2a, 0x11, 0x97, 0x62, 0xf8, 0x63, 0xbc, 0x90, 0x21, 0x1d, 0x13,
0xdb, 0x4f, 0xbe, 0x95, 0xae, 0xad, 0xf5, 0x71, 0x3d, 0xb0, 0xe9, 0x21, 0xc0, 0xaf, 0x75, 0x29,
0x81, 0x03, 0xc0, 0xed, 0x10, 0x62, 0x6b, 0x5d, 0x0a, 0x8e, 0xf3, 0x65, 0x2a, 0xd8, 0x11, 0xcb,
0x59, 0xd9, 0xae, 0x75, 0xa5, 0xea, 0x23, 0x44, 0xad, 0x13, 0xa8, 0x1d, 0x6c, 0x3c, 0x6f, 0x66,
0x72, 0xdc, 0x0e, 0x18, 0x69, 0x4d, 0x8f, 0x0f, 0xfb, 0xc1, 0x76, 0x75, 0xe7, 0xf8, 0x3c, 0x63,
0x4b, 0x7e, 0x09, 0x57, 0x77, 0xae, 0x09, 0x05, 0x10, 0xab, 0x3b, 0x14, 0xb4, 0x33, 0x98, 0xe3,
0xe7, 0x75, 0xca, 0xae, 0xc0, 0x0c, 0xe6, 0x2a, 0xd7, 0x62, 0x62, 0x06, 0x43, 0x30, 0xed, 0xe1,
0x24, 0xfa, 0x25, 0x29, 0xfc, 0x3d, 0x9e, 0xe6, 0xc3, 0x9b, 0x88, 0x52, 0x2d, 0x30, 0x56, 0x6f,
0xd1, 0x00, 0x88, 0xb8, 0xfe, 0x75, 0x3f, 0xce, 0x13, 0x96, 0xa1, 0x11, 0x5b, 0x71, 0x30, 0x62,
0x0f, 0x03, 0x11, 0x3f, 0xbb, 0x4e, 0x05, 0x1a, 0x71, 0x2d, 0x08, 0x46, 0xac, 0x01, 0x9b, 0x8a,
0xc8, 0x9f, 0xeb, 0xf1, 0x70, 0x7c, 0x11, 0x97, 0x69, 0x3e, 0x1b, 0x62, 0xb1, 0x38, 0x72, 0x22,
0x15, 0xc1, 0x38, 0xd0, 0x25, 0xb4, 0xe2, 0x5e, 0x51, 0x94, 0xf5, 0x30, 0x8b, 0x75, 0x09, 0x1f,
0x09, 0x76, 0x89, 0x16, 0x8a, 0x7b, 0x3b, 0x60, 0x49, 0x96, 0xe6, 0x41, 0x6f, 0x1a, 0xe9, 0xe3,
0xcd, 0xa2, 0xda, 0xdb, 0x22, 0x7a, 0x5f, 0x02, 0xa7, 0x71, 0x29, 0xd2, 0x24, 0x2d, 0xe2, 0xbc,
0x49, 0xbe, 0xb1, 0x4e, 0xd5, 0xa2, 0x8c, 0xcf, 0x9d, 0x9e, 0xb4, 0x76, 0xfb, 0x1f, 0x83, 0xe8,
0x43, 0xe8, 0xf7, 0x94, 0x95, 0xf3, 0x54, 0xae, 0xe1, 0x2a, 0x35, 0x02, 0x0e, 0x3f, 0x0f, 0x1b,
0x6d, 0x29, 0x98, 0x68, 0x7e, 0xb4, 0xbe, 0xa2, 0x0e, 0xec, 0xf7, 0xa3, 0x48, 0xad, 0x15, 0xe4,
0x7a, 0xce, 0x6f, 0x80, 0x7a, 0x11, 0xe1, 0x2d, 0xe6, 0x3e, 0x0c, 0x10, 0x76, 0x9c, 0x56, 0xbf,
0xcb, 0x65, 0xea, 0x10, 0xd5, 0x90, 0x22, 0x62, 0x9c, 0x06, 0x08, 0x0c, 0x74, 0x7c, 0xc1, 0xaf,
0xf0, 0x40, 0x6b, 0x49, 0x38, 0x50, 0x4d, 0xd8, 0x8d, 0x23, 0x1d, 0x28, 0xb6, 0x71, 0xd4, 0x84,
0x11, 0xda, 0x38, 0x82, 0x8c, 0x36, 0xcc, 0xa3, 0x5f, 0x77, 0x0d, 0x3f, 0xe5, 0xfc, 0x72, 0x1e,
0x97, 0x97, 0xc3, 0x07, 0xb4, 0x72, 0xc3, 0x18, 0x47, 0xdb, 0xbd, 0x58, 0xdb, 0x87, 0x5c, 0x87,
0xf5, 0x2c, 0xff, 0xaa, 0xcc, 0x40, 0x1f, 0xf2, 0x6c, 0x68, 0x84, 0xe8, 0x43, 0x04, 0x6a, 0x87,
0x4d, 0xd7, 0xdb, 0x98, 0xc1, 0xa5, 0x8a, 0xa7, 0x3e, 0x66, 0xd4, 0x52, 0x05, 0xc1, 0x60, 0x13,
0x3a, 0x2a, 0xe3, 0xe2, 0x02, 0x6f, 0x42, 0x52, 0x14, 0x6e, 0x42, 0x0d, 0x02, 0xeb, 0x7b, 0xcc,
0xe2, 0x32, 0xb9, 0xc0, 0xeb, 0x5b, 0xc9, 0xc2, 0xf5, 0x6d, 0x18, 0x3b, 0xab, 0xbb, 0x86, 0xc7,
0x8b, 0xf3, 0x2a, 0x29, 0xd3, 0x73, 0x36, 0xdc, 0xa6, 0xb5, 0x0d, 0x44, 0xcc, 0xea, 0x24, 0x6c,
0x37, 0x96, 0xb4, 0xcf, 0x46, 0x76, 0x3c, 0xad, 0xc0, 0xc6, 0x52, 0x63, 0xc3, 0x21, 0x88, 0x8d,
0x25, 0x9c, 0x84, 0xc5, 0x3b, 0x2a, 0xf9, 0xa2, 0xa8, 0x3a, 0x8a, 0x07, 0xa0, 0x70, 0xf1, 0xda,
0xb0, 0xf6, 0x79, 0x1d, 0xfd, 0xa6, 0xfb, 0x48, 0x5f, 0xe5, 0x95, 0xf1, 0xba, 0x43, 0x3f, 0x27,
0x07, 0x23, 0xb6, 0x68, 0x02, 0xb8, 0x9d, 0x62, 0x1b, 0xcf, 0xe2, 0x80, 0x89, 0x38, 0xcd, 0xaa,
0xe1, 0x26, 0x6e, 0xa3, 0x91, 0x13, 0x53, 0x2c, 0xc6, 0xc1, 0x2e, 0x74, 0xb0, 0x28, 0xb2, 0x34,
0x69, 0xef, 0xd5, 0x69, 0x5d, 0x23, 0x0e, 0x77, 0x21, 0x17, 0x83, 0x43, 0xc2, 0x98, 0x09, 0xf5,
0x9f, 0xc9, 0xaa, 0x60, 0xf8, 0x90, 0xe0, 0x21, 0xe1, 0x21, 0x01, 0xa2, 0xb0, 0x3c, 0x63, 0x26,
0x9e, 0xc7, 0x2b, 0xbe, 0x20, 0x86, 0x04, 0x23, 0x0e, 0x97, 0xc7, 0xc5, 0xec, 0xc4, 0x6d, 0x3c,
0x1c, 0xe7, 0x82, 0x95, 0x79, 0x9c, 0x1d, 0x66, 0xf1, 0xac, 0x1a, 0x12, 0xfd, 0xc6, 0xa7, 0x88,
0x89, 0x9b, 0xa6, 0x91, 0xc7, 0x78, 0x5c, 0x1d, 0xc6, 0x4b, 0x5e, 0xa6, 0x82, 0x7e, 0x8c, 0x16,
0xe9, 0x7c, 0x8c, 0x1e, 0x8a, 0x7a, 0xdb, 0x2b, 0x93, 0x8b, 0x74, 0xc9, 0xa6, 0x01, 0x6f, 0x0d,
0xd2, 0xc3, 0x9b, 0x83, 0x22, 0x95, 0x36, 0xe6, 0x8b, 0x32, 0x61, 0x64, 0xa5, 0x29, 0x71, 0x67,
0xa5, 0x19, 0x4c, 0x7b, 0xf8, 0xab, 0x41, 0xf4, 0x5b, 0x4a, 0xea, 0x6e, 0xa0, 0x1d, 0xc4, 0xd5,
0xc5, 0x39, 0x8f, 0xcb, 0xe9, 0xf0, 0x63, 0xcc, 0x0e, 0x8a, 0x1a, 0xd7, 0x8f, 0xd7, 0x51, 0x81,
0x8f, 0xf5, 0x79, 0x5a, 0x39, 0x3d, 0x0e, 0x7d, 0xac, 0x1e, 0x12, 0x7e, 0xac, 0x10, 0x85, 0x03,
0x88, 0x94, 0xab, 0xc5, 0xea, 0x26, 0xa9, 0xef, 0xaf, 0x58, 0xb7, 0x3a, 0x39, 0x38, 0x3e, 0xd6,
0x42, 0xbf, 0xb5, 0xec, 0x50, 0x36, 0xf0, 0x16, 0x33, 0xea, 0x8b, 0x93, 0x9e, 0x4d, 0xaf, 0x08,
0x7b, 0x6e, 0xf5, 0x8c, 0x51, 0x5f, 0x9c, 0xf0, 0xec, 0x0c, 0x6b, 0x21, 0xcf, 0xc8, 0xd0, 0x36,
0xea, 0x8b, 0xc3, 0x06, 0xb4, 0x57, 0x14, 0xd9, 0x6a, 0xc2, 0xe6, 0x45, 0x46, 0x36, 0x20, 0x0f,
0x09, 0x37, 0x20, 0x88, 0xc2, 0xec, 0x67, 0xc2, 0xeb, 0xdc, 0x0a, 0xcd, 0x7e, 0xa4, 0x28, 0x9c,
0xfd, 0x34, 0x08, 0x4c, 0x18, 0x26, 0x7c, 0x9f, 0x67, 0x19, 0x4b, 0x44, 0xfb, 0x24, 0xca, 0x68,
0x5a, 0x22, 0x9c, 0x30, 0x00, 0xd2, 0xee, 0x38, 0x34, 0xb9, 0x7a, 0x5c, 0xb2, 0xa7, 0xab, 0xe7,
0x69, 0x7e, 0x39, 0xc4, 0xe7, 0x46, 0x0b, 0x10, 0x3b, 0x0e, 0x28, 0x08, 0xd7, 0x04, 0xaf, 0xf2,
0x29, 0xc7, 0xd7, 0x04, 0xb5, 0x24, 0xbc, 0x26, 0xd0, 0x04, 0x34, 0x79, 0xc6, 0x28, 0x93, 0xb5,
0x24, 0x6c, 0x52, 0x13, 0xd8, 0x78, 0xa0, 0xb7, 0xf6, 0xc8, 0xf1, 0x00, 0x6c, 0xe6, 0x6d, 0x75,
0x72, 0xb0, 0x85, 0x36, 0x8b, 0x83, 0x43, 0x26, 0x92, 0x0b, 0xbc, 0x85, 0x7a, 0x48, 0xb8, 0x85,
0x42, 0x14, 0x16, 0x69, 0xc2, 0xcd, 0xe2, 0x66, 0x13, 0x6f, 0x1f, 0xad, 0x85, 0xcd, 0x56, 0x27,
0x07, 0xd3, 0xf5, 0xe3, 0xb9, 0x7c, 0x66, 0x68, 0x23, 0x57, 0xb2, 0x70, 0xba, 0x6e, 0x18, 0x18,
0xbd, 0x12, 0xd4, 0x8f, 0x13, 0x8f, 0xde, 0xca, 0xc3, 0xd1, 0x7b, 0x9c, 0x76, 0xf2, 0x6f, 0x83,
0xe8, 0xa6, 0xeb, 0xe5, 0x84, 0xd7, 0x7d, 0xe4, 0x75, 0x9c, 0xa5, 0xd3, 0x58, 0xb0, 0x09, 0xbf,
0x64, 0x39, 0x58, 0xef, 0xfb, 0xd1, 0x2a, 0x7e, 0xe4, 0x29, 0x10, 0xeb, 0xfd, 0x5e, 0x8a, 0xb0,
0x9d, 0x28, 0xfa, 0x55, 0xc5, 0xf6, 0xe3, 0x8a, 0x18, 0xc9, 0x3c, 0x24, 0xdc, 0x4e, 0x20, 0x0a,
0x93, 0x36, 0x25, 0x7f, 0x76, 0x5d, 0xb0, 0x32, 0x65, 0x79, 0xc2, 0xf0, 0xa4, 0x0d, 0x52, 0xe1,
0xa4, 0x0d, 0xa1, 0x5b, 0xcb, 0x61, 0x33, 0x38, 0xb5, 0x0f, 0x93, 0x21, 0x11, 0x38, 0x4c, 0x26,
0x50, 0x58, 0x48, 0x0b, 0xa0, 0x5b, 0x4a, 0x2d, 0x2b, 0xc1, 0x2d, 0x25, 0x9a, 0x6e, 0x6d, 0x32,
0x18, 0x66, 0x5c, 0x77, 0x93, 0x8e, 0xd0, 0xc7, 0x6e, 0x77, 0xd9, 0xee, 0xc5, 0xe2, 0xbb, 0x1a,
0x67, 0x2c, 0x8b, 0xe5, 0x14, 0x12, 0xd8, 0x3a, 0x68, 0x98, 0x3e, 0xbb, 0x1a, 0x0e, 0xab, 0x1d,
0xfe, 0xc5, 0x20, 0xba, 0x81, 0x79, 0x7c, 0x59, 0x48, 0xbf, 0x8f, 0xba, 0x6d, 0x29, 0x92, 0x38,
0x2d, 0x0f, 0x6b, 0xe8, 0x18, 0xfe, 0x24, 0xfa, 0xa0, 0x11, 0xd9, 0xc3, 0x74, 0x1d, 0x80, 0x9f,
0x45, 0x98, 0xf8, 0x21, 0x67, 0xdc, 0xef, 0xf6, 0xe6, 0x6d, 0x82, 0xee, 0xc7, 0x55, 0x81, 0x04,
0xdd, 0xd8, 0xd0, 0x62, 0x22, 0x41, 0x47, 0x30, 0x38, 0x53, 0x37, 0x48, 0xdd, 0x4f, 0xb0, 0x31,
0xce, 0x98, 0x70, 0x7b, 0xc9, 0xbd, 0x6e, 0x10, 0xb6, 0x9d, 0x46, 0xac, 0xf3, 0xe2, 0x07, 0x21,
0x0b, 0x20, 0x37, 0xde, 0xee, 0xc5, 0x6a, 0x87, 0x7f, 0x16, 0x7d, 0xbf, 0x55, 0xb0, 0x43, 0x16,
0x8b, 0x45, 0xc9, 0xa6, 0xc3, 0xdd, 0x8e, 0xb8, 0x1b, 0xd0, 0xb8, 0x7e, 0xd4, 0x5f, 0x41, 0xfb,
0xff, 0x9b, 0x41, 0xf4, 0x03, 0x9f, 0x53, 0x55, 0x6c, 0x62, 0x78, 0x1c, 0x32, 0xe9, 0xb3, 0x26,
0x8c, 0x27, 0x6b, 0xe9, 0xb4, 0xd6, 0x60, 0x6e, 0x43, 0xde, 0x5b, 0xc6, 0x69, 0x16, 0x9f, 0x67,
0x0c, 0x5d, 0x83, 0x79, 0x6d, 0xd3, 0xa0, 0xc1, 0x35, 0x18, 0xa9, 0xd2, 0x1a, 0x25, 0x65, 0x7f,
0x73, 0x72, 0xf7, 0x87, 0x74, 0xaf, 0x44, 0x52, 0xf7, 0x9d, 0x9e, 0xb4, 0x76, 0x2b, 0x9a, 0xbd,
0xab, 0xfa, 0x67, 0xb7, 0x91, 0x63, 0x5e, 0xb5, 0x2a, 0xd2, 0xd2, 0x77, 0x7a, 0xd2, 0xda, 0xeb,
0x9f, 0x46, 0x1f, 0xb4, 0xbd, 0xea, 0x49, 0x61, 0xb7, 0xd3, 0x14, 0x98, 0x17, 0x1e, 0xf5, 0x57,
0xb0, 0xa9, 0xfe, 0x17, 0x69, 0x25, 0x78, 0xb9, 0x1a, 0x5f, 0xf0, 0xab, 0xe6, 0xc2, 0xa8, 0xdf,
0x5b, 0x35, 0x30, 0x72, 0x08, 0x22, 0xd5, 0xc7, 0xc9, 0x96, 0x2b, 0x7b, 0xb1, 0xb4, 0x22, 0x5c,
0x39, 0x44, 0x87, 0x2b, 0x9f, 0xb4, 0x63, 0x55, 0x53, 0x2a, 0x7b, 0x0b, 0x76, 0x0b, 0x0f, 0xb5,
0x7d, 0x13, 0xf6, 0x5e, 0x37, 0x68, 0x97, 0x5f, 0x87, 0x69, 0xc6, 0x5e, 0xbe, 0x7d, 0x9b, 0xf1,
0x78, 0x0a, 0x96, 0x5f, 0xb5, 0x64, 0xa4, 0x45, 0xc4, 0xf2, 0x0b, 0x20, 0x36, 0xe9, 0xac, 0x05,
0xf2, 0x6c, 0xa6, 0x31, 0xbd, 0xd9, 0xd6, 0x73, 0xe5, 0x44, 0xd2, 0x89, 0x71, 0x76, 0xc2, 0xa8,
0xa5, 0x75, 0x17, 0x6c, 0x7c, 0xdc, 0x6d, 0xeb, 0x3a, 0x62, 0x62, 0xc2, 0x40, 0x30, 0xbb, 0x3e,
0xaa, 0x85, 0xaf, 0x0a, 0x69, 0xfc, 0x56, 0x5b, 0x4b, 0x49, 0x88, 0xf5, 0x91, 0x4f, 0xd8, 0x3c,
0xbf, 0xfe, 0xfd, 0x80, 0x5f, 0xe5, 0xd2, 0x28, 0xf2, 0x34, 0x1b, 0x19, 0x91, 0xe7, 0x43, 0x46,
0x1b, 0xfe, 0x69, 0xf4, 0x8b, 0xd2, 0x70, 0xc9, 0x8b, 0xe1, 0x06, 0xa2, 0x50, 0x3a, 0xd7, 0x4e,
0x6e, 0x92, 0x72, 0x7b, 0x7b, 0xca, 0xd4, 0xdf, 0xab, 0x2a, 0x9e, 0x31, 0x70, 0x7b, 0xca, 0xd6,
0x8a, 0x94, 0x12, 0xb7, 0xa7, 0xda, 0x94, 0xbd, 0x11, 0x54, 0xcb, 0x4e, 0xf8, 0x54, 0x5b, 0x47,
0x4a, 0x68, 0x84, 0xc4, 0x8d, 0xa0, 0x16, 0x64, 0xf7, 0xef, 0x4f, 0xe2, 0x65, 0x3a, 0x33, 0x83,
0xbf, 0x1a, 0x43, 0x2a, 0xb0, 0x7f, 0x6f, 0x99, 0x91, 0x03, 0x11, 0xfb, 0xf7, 0x24, 0xac, 0x7d,
0xfe, 0xeb, 0x20, 0xba, 0x65, 0x99, 0xa3, 0x66, 0x5b, 0xe5, 0x38, 0x7f, 0xcb, 0xdf, 0xa4, 0xe2,
0xa2, 0x5e, 0xc7, 0x57, 0xc3, 0xcf, 0x28, 0x93, 0x38, 0x6f, 0x42, 0xf9, 0x7c, 0x6d, 0x3d, 0x9b,
0xcd, 0x35, 0xdb, 0x2d, 0xf6, 0x6c, 0x4b, 0x69, 0x80, 0x6c, 0xce, 0xec, 0xca, 0x40, 0x8e, 0xc8,
0xe6, 0x42, 0xbc, 0xad, 0x62, 0xe3, 0x3c, 0xe3, 0x39, 0xac, 0x62, 0x6b, 0xa1, 0x16, 0x12, 0x55,
0xdc, 0x82, 0xec, 0xd8, 0xd8, 0x88, 0xd4, 0xce, 0xc0, 0x5e, 0x96, 0x81, 0xb1, 0xd1, 0xa8, 0x1a,
0x80, 0x18, 0x1b, 0x51, 0x50, 0xfb, 0x39, 0x8b, 0xbe, 0x53, 0x3f, 0xd2, 0xd3, 0x92, 0x2d, 0x53,
0x06, 0x8f, 0x61, 0x1d, 0x09, 0xd1, 0xff, 0x7d, 0xc2, 0xf6, 0xac, 0x57, 0x79, 0x55, 0x64, 0x71,
0x75, 0xa1, 0x0f, 0xe6, 0xfc, 0x32, 0x37, 0x42, 0x78, 0x34, 0x77, 0xb7, 0x83, 0xb2, 0x03, 0x6f,
0x23, 0x33, 0x43, 0xcc, 0x26, 0xae, 0xda, 0x1a, 0x66, 0xb6, 0x3a, 0x39, 0xbb, 0x35, 0x79, 0x14,
0x67, 0x19, 0x2b, 0x57, 0x8d, 0xec, 0x45, 0x9c, 0xa7, 0x6f, 0x59, 0x25, 0xc0, 0xd6, 0xa4, 0xa6,
0x46, 0x10, 0x23, 0xb6, 0x26, 0x03, 0xb8, 0xcd, 0xac, 0x81, 0xe7, 0xe3, 0x7c, 0xca, 0xae, 0x41,
0x66, 0x0d, 0xed, 0x48, 0x86, 0xc8, 0xac, 0x29, 0xd6, 0x4e, 0x8f, 0x4f, 0x33, 0x9e, 0x5c, 0xea,
0x29, 0xc0, 0xaf, 0x60, 0x29, 0x81, 0x73, 0xc0, 0xed, 0x10, 0x62, 0x27, 0x01, 0x29, 0x38, 0x63,
0x45, 0x16, 0x27, 0xf0, 0x2c, 0x5e, 0xe9, 0x68, 0x19, 0x31, 0x09, 0x40, 0x06, 0x84, 0xab, 0xcf,
0xf8, 0xb1, 0x70, 0xc1, 0x11, 0xff, 0xed, 0x10, 0x62, 0xa7, 0x41, 0x29, 0x18, 0x17, 0x59, 0x2a,
0x40, 0x37, 0x50, 0x1a, 0x52, 0x42, 0x74, 0x03, 0x9f, 0x00, 0x26, 0x5f, 0xb0, 0x72, 0xc6, 0x50,
0x93, 0x52, 0x12, 0x34, 0xd9, 0x10, 0xf6, 0xf6, 0x91, 0x2a, 0x3b, 0x2f, 0x56, 0xe0, 0xf6, 0x91,
0x2e, 0x16, 0x2f, 0x56, 0xc4, 0xed, 0x23, 0x0f, 0x00, 0x21, 0x9e, 0xc6, 0x95, 0xc0, 0x43, 0x94,
0x92, 0x60, 0x88, 0x0d, 0x61, 0xe7, 0x68, 0x15, 0xe2, 0x42, 0x80, 0x39, 0x5a, 0x07, 0xe0, 0x1c,
0x15, 0xde, 0x24, 0xe5, 0x76, 0x24, 0x51, 0xb5, 0xc2, 0xc4, 0x61, 0xca, 0xb2, 0x69, 0x05, 0x46,
0x12, 0xfd, 0xdc, 0x1b, 0x29, 0x31, 0x92, 0xb4, 0x29, 0xd0, 0x94, 0xf4, 0x1e, 0x2e, 0x56, 0x3a,
0xb0, 0x7d, 0x7b, 0x3b, 0x84, 0xd8, 0xf1, 0xa9, 0x09, 0x7a, 0x3f, 0x2e, 0xcb, 0xb4, 0x9e, 0xfc,
0x37, 0xf1, 0x80, 0x1a, 0x39, 0x31, 0x3e, 0x61, 0x1c, 0xe8, 0x5e, 0xcd, 0xc0, 0x8d, 0x05, 0x06,
0x87, 0xee, 0x8f, 0x82, 0x8c, 0xcd, 0x38, 0xa5, 0xc4, 0x39, 0xeb, 0xc2, 0x9e, 0x26, 0x72, 0xd4,
0xb5, 0xd9, 0x85, 0x39, 0xf7, 0x99, 0x8d, 0x8b, 0x17, 0x7c, 0xc9, 0x26, 0xfc, 0xd9, 0x75, 0x5a,
0x89, 0x34, 0x9f, 0xe9, 0x99, 0xfb, 0x09, 0x61, 0x09, 0x83, 0x89, 0xfb, 0xcc, 0x9d, 0x4a, 0x36,
0x81, 0x00, 0xb1, 0x9c, 0xb0, 0x2b, 0x34, 0x81, 0x80, 0x16, 0x0d, 0x47, 0x24, 0x10, 0x21, 0xde,
0xee, 0x69, 0x18, 0xe7, 0xfa, 0xa5, 0xaf, 0x09, 0x6f, 0x72, 0x39, 0xca, 0x1a, 0x04, 0x89, 0x65,
0x65, 0x50, 0xc1, 0xae, 0xf5, 0x8c, 0x7f, 0xdb, 0xc5, 0xee, 0x11, 0x76, 0xda, 0xdd, 0xec, 0x7e,
0x0f, 0x12, 0x71, 0x65, 0x0f, 0x6c, 0x29, 0x57, 0xed, 0xf3, 0xda, 0xfb, 0x3d, 0x48, 0x67, 0x7f,
0xc4, 0x2d, 0xd6, 0xd3, 0x38, 0xb9, 0x9c, 0x95, 0x7c, 0x91, 0x4f, 0xf7, 0x79, 0xc6, 0x4b, 0xb0,
0x3f, 0xe2, 0x45, 0x0d, 0x50, 0x62, 0x7f, 0xa4, 0x43, 0xc5, 0x66, 0x70, 0x6e, 0x14, 0x7b, 0x59,
0x3a, 0x83, 0xab, 0x5b, 0xcf, 0x90, 0x04, 0x88, 0x0c, 0x0e, 0x05, 0x91, 0x46, 0xa4, 0x56, 0xbf,
0x22, 0x4d, 0xe2, 0x4c, 0xf9, 0xdb, 0xa5, 0xcd, 0x78, 0x60, 0x67, 0x23, 0x42, 0x14, 0x90, 0x72,
0x4e, 0x16, 0x65, 0x7e, 0x9c, 0x0b, 0x4e, 0x96, 0xb3, 0x01, 0x3a, 0xcb, 0xe9, 0x80, 0x60, 0x58,
0x9d, 0xb0, 0xeb, 0x3a, 0x9a, 0xfa, 0x1f, 0x6c, 0x58, 0xad, 0x7f, 0x1f, 0x69, 0x79, 0x68, 0x58,
0x05, 0x1c, 0x28, 0x8c, 0x76, 0xa2, 0x1a, 0x4c, 0x40, 0xdb, 0x6f, 0x26, 0xf7, 0xba, 0x41, 0xdc,
0xcf, 0x58, 0xac, 0x32, 0x16, 0xf2, 0x23, 0x81, 0x3e, 0x7e, 0x1a, 0xd0, 0x1e, 0x9c, 0x78, 0xe5,
0xb9, 0x60, 0xc9, 0x65, 0xeb, 0xfe, 0x89, 0x1f, 0xa8, 0x42, 0x88, 0x83, 0x13, 0x02, 0xc5, 0xab,
0xe8, 0x38, 0xe1, 0x79, 0xa8, 0x8a, 0x6a, 0x79, 0x9f, 0x2a, 0xd2, 0x9c, 0x5d, 0xfc, 0x1a, 0xa9,
0x6e, 0x99, 0xaa, 0x9a, 0xb6, 0x09, 0x0b, 0x2e, 0x44, 0x2c, 0x7e, 0x49, 0xd8, 0xe6, 0xe4, 0xd0,
0xe7, 0x8b, 0xf6, 0xfd, 0xcf, 0x96, 0x95, 0x17, 0xf4, 0xfd, 0x4f, 0x8a, 0xa5, 0x0b, 0xa9, 0xda,
0x48, 0x87, 0x15, 0xbf, 0x9d, 0x3c, 0xec, 0x07, 0xdb, 0x25, 0x8f, 0xe7, 0x73, 0x3f, 0x63, 0x71,
0xa9, 0xbc, 0xee, 0x04, 0x0c, 0x59, 0x8c, 0x58, 0xf2, 0x04, 0x70, 0x30, 0x84, 0x79, 0x9e, 0xf7,
0x79, 0x2e, 0x58, 0x2e, 0xb0, 0x21, 0xcc, 0x37, 0xa6, 0xc1, 0xd0, 0x10, 0x46, 0x29, 0x80, 0x76,
0x2b, 0xf7, 0x83, 0x98, 0x38, 0x89, 0xe7, 0x68, 0xc6, 0xa6, 0xf6, 0x7a, 0x94, 0x3c, 0xd4, 0x6e,
0x01, 0x07, 0xba, 0xfc, 0xf1, 0x3c, 0x9e, 0x19, 0x2f, 0x88, 0xb6, 0x94, 0xb7, 0xdc, 0xdc, 0xeb,
0x06, 0x81, 0x9f, 0xd7, 0xe9, 0x94, 0xf1, 0x80, 0x1f, 0x29, 0xef, 0xe3, 0x07, 0x82, 0x20, 0x73,
0xaa, 0x4b, 0xab, 0x56, 0x53, 0x7b, 0xf9, 0x54, 0xaf, 0x21, 0x47, 0xc4, 0x43, 0x01, 0x5c, 0x28,
0x73, 0x22, 0x78, 0xd0, 0x3f, 0x9a, 0xcd, 0xd1, 0x50, 0xff, 0x30, 0x7b, 0x9f, 0x7d, 0xfa, 0x07,
0x06, 0x6b, 0x9f, 0x7f, 0xac, 0xfb, 0xc7, 0x41, 0x2c, 0xe2, 0x3a, 0x67, 0x7e, 0x9d, 0xb2, 0x2b,
0xbd, 0x08, 0x45, 0xca, 0xdb, 0x50, 0x23, 0xf9, 0xc6, 0x0b, 0x58, 0x91, 0xee, 0xf6, 0xe6, 0x03,
0xbe, 0x75, 0x76, 0xde, 0xe9, 0x1b, 0xa4, 0xe9, 0xbb, 0xbd, 0xf9, 0x80, 0x6f, 0xfd, 0x2a, 0x5d,
0xa7, 0x6f, 0xf0, 0x3e, 0xdd, 0x6e, 0x6f, 0x5e, 0xfb, 0xfe, 0xcb, 0x41, 0x74, 0xa3, 0xe5, 0xbc,
0xce, 0x81, 0x12, 0x91, 0x2e, 0x19, 0x96, 0xca, 0xf9, 0xf6, 0x0c, 0x1a, 0x4a, 0xe5, 0x68, 0x15,
0xe7, 0xfb, 0x0b, 0x58, 0x14, 0xa7, 0xbc, 0x4a, 0xe5, 0xc1, 0xf1, 0x93, 0x1e, 0x46, 0x1b, 0x38,
0xb4, 0x60, 0x09, 0x29, 0xd9, 0x63, 0x37, 0x0f, 0xb5, 0x57, 0x3d, 0x1f, 0x06, 0xec, 0xb5, 0x6f,
0x7c, 0xee, 0xf4, 0xa4, 0xed, 0x01, 0x98, 0xc7, 0xb8, 0x27, 0x6f, 0xa1, 0x5a, 0x45, 0x0f, 0xdf,
0x1e, 0xf5, 0x57, 0xd0, 0xee, 0xff, 0xba, 0xc9, 0xe9, 0xa1, 0x7f, 0xdd, 0x09, 0x1e, 0xf7, 0xb1,
0x08, 0x3a, 0xc2, 0x93, 0xb5, 0x74, 0x74, 0x20, 0xff, 0x39, 0x88, 0x6e, 0xa3, 0x81, 0xf8, 0x67,
0xb0, 0xbf, 0xdd, 0xc7, 0x36, 0x7e, 0x16, 0xfb, 0xe3, 0x6f, 0xa3, 0xaa, 0xa3, 0xfb, 0x87, 0x66,
0x69, 0xdd, 0x68, 0xc8, 0xeb, 0xf8, 0x2f, 0xcb, 0x29, 0x2b, 0x75, 0x8f, 0x0d, 0x35, 0x3a, 0x0b,
0xc3, 0x7e, 0xfb, 0xe9, 0x9a, 0x5a, 0xce, 0xb7, 0x42, 0x3c, 0x58, 0xbf, 0x99, 0xe4, 0xc4, 0x13,
0xb2, 0xec, 0xd0, 0x30, 0xa0, 0xcf, 0xd6, 0x55, 0xa3, 0x7a, 0xb2, 0x03, 0xcb, 0x57, 0x8f, 0x9f,
0xf4, 0x34, 0xec, 0xbd, 0x8c, 0xfc, 0xc9, 0x7a, 0x4a, 0x3a, 0x96, 0xff, 0x1e, 0x44, 0x77, 0x3d,
0xd6, 0x9e, 0x34, 0x80, 0xfd, 0x90, 0x9f, 0x04, 0xec, 0x53, 0x4a, 0x26, 0xb8, 0xdf, 0xf9, 0x76,
0xca, 0xf6, 0xc3, 0x1a, 0x9e, 0xca, 0x61, 0x9a, 0x09, 0x56, 0xb6, 0x3f, 0xac, 0xe1, 0xdb, 0x55,
0xd4, 0x88, 0xfe, 0xb0, 0x46, 0x00, 0x77, 0x3e, 0xac, 0x81, 0x78, 0x46, 0x3f, 0xac, 0x81, 0x5a,
0x0b, 0x7e, 0x58, 0x23, 0xac, 0x41, 0x4d, 0x3e, 0x4d, 0x08, 0x6a, 0x47, 0xbb, 0x97, 0x45, 0x7f,
0x83, 0xfb, 0xf1, 0x3a, 0x2a, 0xc4, 0xf4, 0xab, 0x38, 0x79, 0x33, 0xac, 0xc7, 0x33, 0xf5, 0x6e,
0x87, 0xed, 0xf6, 0xe6, 0xb5, 0xef, 0x9f, 0xe9, 0x75, 0x8f, 0x99, 0x6c, 0x78, 0x29, 0x3f, 0xaa,
0xb2, 0x1d, 0x9a, 0x3c, 0x6a, 0x0b, 0x6e, 0xcd, 0x3f, 0xec, 0x07, 0x13, 0xc5, 0xad, 0x09, 0x5d,
0xe9, 0xa3, 0x2e, 0x43, 0xa0, 0xca, 0x77, 0x7b, 0xf3, 0xc4, 0x24, 0xa7, 0x7c, 0xab, 0xda, 0xee,
0x61, 0xcc, 0xaf, 0xeb, 0x47, 0xfd, 0x15, 0xec, 0xd5, 0x96, 0x96, 0x7b, 0x59, 0xcf, 0x9d, 0x4f,
0xd0, 0xab, 0xe5, 0x9d, 0x9e, 0x74, 0x28, 0xb9, 0x71, 0xa7, 0xf7, 0xae, 0xe4, 0x06, 0x9d, 0xe2,
0x3f, 0x59, 0x4f, 0x49, 0xc7, 0xf2, 0x2f, 0x83, 0xe8, 0x26, 0x19, 0x8b, 0x6e, 0x05, 0x9f, 0xf5,
0xb5, 0x0c, 0x5a, 0xc3, 0xe7, 0x6b, 0xeb, 0xe9, 0xa0, 0xfe, 0x7d, 0x10, 0xdd, 0x0a, 0x04, 0xa5,
0x9a, 0xc7, 0x1a, 0xd6, 0xfd, 0x66, 0xf2, 0xa3, 0xf5, 0x15, 0xa9, 0xc9, 0xde, 0xc5, 0xc7, 0xed,
0xef, 0x4d, 0x04, 0x6c, 0x8f, 0xe9, 0xef, 0x4d, 0x74, 0x6b, 0xc1, 0xcd, 0x9f, 0x3a, 0x25, 0xd1,
0xeb, 0x22, 0x6c, 0xf3, 0x47, 0x66, 0x2c, 0x60, 0x3d, 0xb4, 0xd5, 0xc9, 0x61, 0x4e, 0x9e, 0x5d,
0x17, 0x71, 0x3e, 0xa5, 0x9d, 0x28, 0x79, 0xb7, 0x13, 0xc3, 0xc1, 0x4d, 0xb3, 0x5a, 0x7a, 0xc6,
0x9b, 0x45, 0xde, 0x7d, 0x4a, 0xdf, 0x20, 0xc1, 0x4d, 0xb3, 0x16, 0x4a, 0x78, 0xd3, 0x19, 0x6d,
0xc8, 0x1b, 0x48, 0x64, 0x1f, 0xf4, 0x41, 0xc1, 0xf2, 0xc1, 0x78, 0x33, 0x7b, 0xf1, 0x0f, 0x43,
0x56, 0x5a, 0xfb, 0xf1, 0x3b, 0x3d, 0x69, 0xc2, 0xed, 0x98, 0x89, 0x2f, 0x58, 0x3c, 0x65, 0x65,
0xd0, 0xad, 0xa1, 0x7a, 0xb9, 0x75, 0x69, 0xcc, 0xed, 0x3e, 0xcf, 0x16, 0xf3, 0x5c, 0x57, 0x26,
0xe9, 0xd6, 0xa5, 0xba, 0xdd, 0x02, 0x1a, 0x6e, 0x17, 0x5a, 0xb7, 0x32, 0xb9, 0x7c, 0x10, 0x36,
0xe3, 0xe5, 0x94, 0xdb, 0xbd, 0x58, 0xba, 0x9c, 0xba, 0x19, 0x75, 0x94, 0x13, 0xb4, 0xa4, 0x9d,
0x9e, 0x34, 0xdc, 0xb7, 0x73, 0xdc, 0x9a, 0xf6, 0xb4, 0xdb, 0x61, 0xab, 0xd5, 0xa4, 0x1e, 0xf5,
0x57, 0x80, 0xbb, 0xa4, 0xba, 0x55, 0xd5, 0xab, 0xa2, 0xc3, 0x34, 0xcb, 0x86, 0xdb, 0x81, 0x66,
0xd2, 0x40, 0xc1, 0x5d, 0x52, 0x04, 0x26, 0x5a, 0x72, 0xb3, 0xab, 0x98, 0x0f, 0xbb, 0xec, 0x48,
0xaa, 0x57, 0x4b, 0x76, 0x69, 0xb0, 0xdb, 0xe6, 0x3c, 0x6a, 0x53, 0xda, 0x51, 0xf8, 0xc1, 0xb5,
0x0a, 0xbc, 0xdb, 0x9b, 0x07, 0xc7, 0xf0, 0x92, 0x92, 0x33, 0xcb, 0x1d, 0xca, 0x84, 0x37, 0x93,
0xdc, 0xed, 0xa0, 0xc0, 0x8e, 0xa5, 0xea, 0x46, 0x6f, 0xd2, 0xe9, 0x8c, 0x09, 0xf4, 0x04, 0xc9,
0x05, 0x82, 0x27, 0x48, 0x00, 0x04, 0x55, 0xa7, 0x7e, 0x1f, 0x33, 0x31, 0x89, 0xcb, 0x19, 0x13,
0xc7, 0x53, 0xac, 0xea, 0xb4, 0xb2, 0x43, 0x85, 0xaa, 0x0e, 0xa5, 0xc1, 0x68, 0x60, 0xdc, 0xea,
0xf7, 0xa9, 0x1f, 0x84, 0xcc, 0x80, 0x97, 0xaa, 0xb7, 0x7b, 0xb1, 0x60, 0x46, 0xb1, 0x0e, 0xd3,
0x79, 0x2a, 0xb0, 0x19, 0xc5, 0xb1, 0x51, 0x23, 0xa1, 0x19, 0xa5, 0x8d, 0x52, 0xc5, 0xab, 0x73,
0x84, 0xe3, 0x69, 0xb8, 0x78, 0x8a, 0xe9, 0x57, 0x3c, 0xc3, 0xb6, 0x0e, 0x3c, 0x73, 0xd3, 0x64,
0xc4, 0x85, 0x5e, 0x2a, 0x23, 0x6d, 0x5b, 0xbe, 0x62, 0x08, 0xc1, 0xd0, 0xa8, 0x43, 0x29, 0x38,
0x6f, 0xb1, 0x18, 0xae, 0x39, 0x93, 0x2d, 0x0a, 0x16, 0x97, 0x71, 0x9e, 0xa0, 0x4b, 0x53, 0x69,
0xb0, 0x45, 0x86, 0x96, 0xa6, 0xa4, 0x06, 0x38, 0x4e, 0xf7, 0x5f, 0x0e, 0x44, 0xba, 0x82, 0x79,
0x0b, 0xcf, 0x7f, 0x37, 0xf0, 0x7e, 0x0f, 0x12, 0x1e, 0xa7, 0x37, 0x80, 0xd9, 0x94, 0x57, 0x4e,
0x3f, 0x0e, 0x98, 0xf2, 0xd1, 0xd0, 0x32, 0x98, 0x56, 0x01, 0x8d, 0xda, 0x24, 0xb8, 0x4c, 0xfc,
0x94, 0xad, 0xb0, 0x46, 0x6d, 0xf3, 0x53, 0x89, 0x84, 0x1a, 0x75, 0x1b, 0x05, 0x79, 0xa6, 0xbb,
0x0e, 0xda, 0x0c, 0xe8, 0xbb, 0x4b, 0x9f, 0xad, 0x4e, 0x0e, 0xf4, 0x9c, 0x83, 0x74, 0xe9, 0x9d,
0x61, 0x20, 0x81, 0x1e, 0xa4, 0x4b, 0xfc, 0x08, 0x63, 0xbb, 0x17, 0x0b, 0x8f, 0xea, 0x63, 0xc1,
0xae, 0x9b, 0x33, 0x74, 0x24, 0x5c, 0x29, 0x6f, 0x1d, 0xa2, 0xdf, 0xeb, 0x06, 0xed, 0xc5, 0xd8,
0xd3, 0x92, 0x27, 0xac, 0xaa, 0xf4, 0x47, 0xb8, 0xfc, 0x9b, 0x47, 0x5a, 0x36, 0x02, 0x9f, 0xe0,
0xba, 0x13, 0x86, 0xb4, 0xed, 0x2f, 0xa2, 0x77, 0x9f, 0xf3, 0xd9, 0x98, 0xe5, 0xd3, 0xe1, 0x0f,
0xfd, 0xab, 0xa8, 0x7c, 0x36, 0xaa, 0x7f, 0x36, 0xf6, 0x36, 0x28, 0xb1, 0xbd, 0x4c, 0x77, 0xc0,
0xce, 0x17, 0xb3, 0x49, 0xc9, 0x18, 0xb8, 0x4c, 0x27, 0x7f, 0x1f, 0xd5, 0x02, 0xe2, 0x32, 0x9d,
0x07, 0xd8, 0x59, 0xd2, 0xd8, 0xab, 0x13, 0x51, 0x78, 0x59, 0xcd, 0xea, 0x48, 0x29, 0x31, 0x4b,
0xb6, 0x29, 0x5b, 0x79, 0x52, 0xa6, 0x3e, 0x17, 0xb6, 0x98, 0xcf, 0xe3, 0x72, 0x05, 0x2a, 0x4f,
0xe9, 0xba, 0x00, 0x51, 0x79, 0x28, 0x68, 0x5b, 0xa5, 0xf2, 0x23, 0xe2, 0xe4, 0xf2, 0x88, 0x97,
0x7c, 0x21, 0xd2, 0x9c, 0x55, 0xa0, 0x55, 0x6a, 0x0b, 0x3e, 0x43, 0xb4, 0x4a, 0x8a, 0xb5, 0x59,
0x9c, 0x24, 0xd4, 0x3d, 0x3a, 0xf9, 0xe9, 0xc9, 0x4a, 0xf0, 0x12, 0x9e, 0xe5, 0x29, 0x2b, 0x10,
0x22, 0xb2, 0x38, 0x12, 0x06, 0x75, 0x7f, 0x9a, 0xe6, 0x33, 0xb4, 0xee, 0x4f, 0xdd, 0x0f, 0xad,
0xdd, 0xa2, 0x01, 0x3b, 0x1e, 0xab, 0x87, 0xa6, 0x3e, 0x3f, 0xa3, 0xdf, 0xed, 0x43, 0x1f, 0xba,
0x4b, 0x10, 0xe3, 0x31, 0x4e, 0x02, 0x57, 0x2f, 0x0b, 0x96, 0xb3, 0x69, 0x73, 0x5b, 0x0c, 0x73,
0xe5, 0x11, 0x41, 0x57, 0x90, 0xb4, 0x4d, 0xe1, 0x05, 0x13, 0x65, 0x9a, 0x54, 0x63, 0x26, 0x4e,
0xe3, 0x32, 0x9e, 0x33, 0xc1, 0x4a, 0xd8, 0x14, 0x34, 0x32, 0xf2, 0x18, 0xa2, 0x29, 0x50, 0xac,
0x76, 0xf8, 0xbb, 0xd1, 0xf7, 0xea, 0x91, 0x8b, 0xe5, 0xfa, 0x5b, 0xd8, 0xcf, 0xe4, 0x47, 0xf4,
0x87, 0xef, 0x1b, 0x1b, 0x63, 0x51, 0xb2, 0x78, 0xde, 0xd8, 0x7e, 0xcf, 0xfc, 0x2e, 0xc1, 0x47,
0x83, 0x7a, 0xdc, 0x3e, 0xe1, 0x22, 0x7d, 0x5b, 0x2f, 0x14, 0xf4, 0xa1, 0x0c, 0x18, 0xb7, 0x5d,
0xf1, 0x28, 0xf0, 0x26, 0x38, 0xc6, 0xd9, 0x9e, 0xe8, 0x4a, 0xcf, 0x58, 0x91, 0xc1, 0x9e, 0xe8,
0x69, 0x4b, 0x80, 0xe8, 0x89, 0x28, 0x68, 0x27, 0x21, 0x57, 0x3c, 0x61, 0xe1, 0xc2, 0x4c, 0x58,
0xbf, 0xc2, 0x4c, 0xbc, 0xeb, 0xe6, 0xf5, 0x1a, 0xaa, 0xe4, 0xf1, 0x34, 0x89, 0x2b, 0x71, 0x1a,
0xaf, 0x32, 0x1e, 0x4f, 0xe5, 0xc3, 0x84, 0x6b, 0xa8, 0x86, 0x19, 0xb9, 0x10, 0xb5, 0x86, 0xa2,
0x60, 0xe5, 0xf3, 0xe9, 0x87, 0xff, 0xfb, 0xf5, 0xc6, 0xe0, 0xab, 0xaf, 0x37, 0x06, 0xff, 0xff,
0xf5, 0xc6, 0xe0, 0x9f, 0xbf, 0xd9, 0x78, 0xe7, 0xab, 0x6f, 0x36, 0xde, 0xf9, 0xbf, 0x6f, 0x36,
0xde, 0xf9, 0xf2, 0x5d, 0xfd, 0x27, 0x17, 0xce, 0x7f, 0x41, 0xfe, 0xe1, 0x84, 0x27, 0x3f, 0x0f,
0x00, 0x00, 0xff, 0xff, 0x3d, 0x79, 0x12, 0xf6, 0x96, 0x61, 0x00, 0x00,
// 4410 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9d, 0xdd, 0x6f, 0x1d, 0x49,
0x56, 0xc0, 0xe7, 0xbe, 0x30, 0xd0, 0xcb, 0x0e, 0x70, 0x17, 0x86, 0xd9, 0xb0, 0xeb, 0x64, 0x32,
0x89, 0x9d, 0xc4, 0xf1, 0x75, 0x26, 0x99, 0x8f, 0x65, 0x17, 0x09, 0x39, 0x76, 0xec, 0x31, 0x9b,
0x38, 0xc6, 0xd7, 0x49, 0xa4, 0x91, 0x90, 0x68, 0xf7, 0xad, 0x5c, 0x37, 0x6e, 0x77, 0xf5, 0x76,
0xd7, 0xf5, 0x07, 0x08, 0x04, 0x02, 0x81, 0x40, 0x20, 0x10, 0x5f, 0x2f, 0x3c, 0x20, 0xf1, 0xa7,
0xf0, 0xc4, 0xe3, 0x3c, 0x22, 0xf1, 0x82, 0x66, 0xfe, 0x91, 0x55, 0x57, 0x9f, 0xae, 0x8f, 0xd3,
0xe7, 0x54, 0xf7, 0x9d, 0xa7, 0x19, 0xf9, 0xfc, 0xce, 0x47, 0x75, 0x9d, 0xaa, 0x3a, 0x55, 0xd5,
0xb7, 0x13, 0xdd, 0x2c, 0x4e, 0x36, 0x8b, 0x52, 0x2a, 0x59, 0x6d, 0x56, 0xa2, 0xbc, 0x48, 0x13,
0xd1, 0xfe, 0x77, 0xa2, 0xff, 0x3c, 0x7e, 0x37, 0xce, 0xaf, 0xd5, 0x75, 0x21, 0x6e, 0x7c, 0x60,
0xc9, 0x44, 0x9e, 0x9f, 0xc7, 0xf9, 0xac, 0x6a, 0x90, 0x1b, 0xef, 0x5b, 0x89, 0xb8, 0x10, 0xb9,
0x82, 0xbf, 0x3f, 0xfe, 0xbf, 0xff, 0x1e, 0x45, 0xef, 0x6d, 0x67, 0xa9, 0xc8, 0xd5, 0x36, 0x68,
0x8c, 0xbf, 0x8c, 0xbe, 0xbb, 0x55, 0x14, 0x7b, 0x42, 0xbd, 0x16, 0x65, 0x95, 0xca, 0x7c, 0xfc,
0xd1, 0x04, 0x1c, 0x4c, 0x8e, 0x8a, 0x64, 0xb2, 0x55, 0x14, 0x13, 0x2b, 0x9c, 0x1c, 0x89, 0x9f,
0x2d, 0x44, 0xa5, 0x6e, 0xdc, 0x09, 0x43, 0x55, 0x21, 0xf3, 0x4a, 0x8c, 0xdf, 0x46, 0xbf, 0xb6,
0x55, 0x14, 0x53, 0xa1, 0x76, 0x44, 0xdd, 0x80, 0xa9, 0x8a, 0x95, 0x18, 0xaf, 0x75, 0x54, 0x7d,
0xc0, 0xf8, 0xb8, 0xd7, 0x0f, 0x82, 0x9f, 0xe3, 0xe8, 0x3b, 0xb5, 0x9f, 0xd3, 0x85, 0x9a, 0xc9,
0xcb, 0x7c, 0xfc, 0x61, 0x57, 0x11, 0x44, 0xc6, 0xf6, 0xed, 0x10, 0x02, 0x56, 0xdf, 0x44, 0xbf,
0xfc, 0x26, 0xce, 0x32, 0xa1, 0xb6, 0x4b, 0x51, 0x07, 0xee, 0xeb, 0x34, 0xa2, 0x49, 0x23, 0x33,
0x76, 0x3f, 0x0a, 0x32, 0x60, 0xf8, 0xcb, 0xe8, 0xbb, 0x8d, 0xe4, 0x48, 0x24, 0xf2, 0x42, 0x94,
0x63, 0x52, 0x0b, 0x84, 0xcc, 0x23, 0xef, 0x40, 0xd8, 0xf6, 0xb6, 0xcc, 0x2f, 0x44, 0xa9, 0x68,
0xdb, 0x20, 0x0c, 0xdb, 0xb6, 0x10, 0xd8, 0xfe, 0xdb, 0x51, 0xf4, 0x83, 0xad, 0x24, 0x91, 0x8b,
0x5c, 0x3d, 0x97, 0x49, 0x9c, 0x3d, 0x4f, 0xf3, 0xb3, 0x03, 0x71, 0xb9, 0x7d, 0x5a, 0xf3, 0xf9,
0x5c, 0x8c, 0x9f, 0xf8, 0x4f, 0xb5, 0x41, 0x27, 0x86, 0x9d, 0xb8, 0xb0, 0xf1, 0xfd, 0xc9, 0x72,
0x4a, 0x10, 0xcb, 0x3f, 0x8e, 0xa2, 0x15, 0x1c, 0xcb, 0x54, 0x66, 0x17, 0xc2, 0x46, 0xf3, 0x69,
0x8f, 0x61, 0x1f, 0x37, 0xf1, 0x7c, 0xb6, 0xac, 0x1a, 0x44, 0x94, 0x45, 0xdf, 0x73, 0xd3, 0x65,
0x2a, 0x2a, 0x3d, 0x9c, 0xee, 0xf3, 0x19, 0x01, 0x88, 0xf1, 0xfc, 0x60, 0x08, 0x0a, 0xde, 0xd2,
0x68, 0x0c, 0xde, 0x32, 0x59, 0x19, 0x67, 0xf7, 0x48, 0x0b, 0x0e, 0x61, 0x7c, 0xdd, 0x1f, 0x40,
0x82, 0xab, 0x3f, 0x8c, 0x7e, 0xe5, 0x8d, 0x2c, 0xcf, 0xaa, 0x22, 0x4e, 0x04, 0x0c, 0x85, 0xbb,
0xbe, 0x76, 0x2b, 0xc5, 0xa3, 0x61, 0xb5, 0x0f, 0x73, 0x92, 0xb6, 0x15, 0xbe, 0x2c, 0x04, 0x9e,
0x83, 0xac, 0x62, 0x2d, 0xe4, 0x92, 0x16, 0x43, 0x60, 0xfb, 0x2c, 0x1a, 0x5b, 0xdb, 0x27, 0x7f,
0x24, 0x12, 0xb5, 0x35, 0x9b, 0xe1, 0x5e, 0xb1, 0xba, 0x9a, 0x98, 0x6c, 0xcd, 0x66, 0x5c, 0xaf,
0xd0, 0x28, 0x38, 0xbb, 0x8c, 0xde, 0x47, 0xce, 0x9e, 0xa7, 0x95, 0x76, 0xb8, 0x11, 0xb6, 0x02,
0x98, 0x71, 0x3a, 0x19, 0x8a, 0x83, 0xe3, 0x3f, 0x1f, 0x45, 0xdf, 0x27, 0x3c, 0x1f, 0x89, 0x73,
0x79, 0x21, 0xc6, 0x8f, 0xfa, 0xad, 0x35, 0xa4, 0xf1, 0xff, 0xf1, 0x12, 0x1a, 0x44, 0x9a, 0x4c,
0x45, 0x26, 0x12, 0xc5, 0xa6, 0x49, 0x23, 0xee, 0x4d, 0x13, 0x83, 0x39, 0x23, 0xac, 0x15, 0xee,
0x09, 0xb5, 0xbd, 0x28, 0x4b, 0x91, 0x2b, 0xb6, 0x2f, 0x2d, 0xd2, 0xdb, 0x97, 0x1e, 0x4a, 0xb4,
0x67, 0x4f, 0xa8, 0xad, 0x2c, 0x63, 0xdb, 0xd3, 0x88, 0x7b, 0xdb, 0x63, 0x30, 0xf0, 0x90, 0x44,
0xbf, 0xea, 0x3c, 0x31, 0xb5, 0x9f, 0xbf, 0x95, 0x63, 0xfe, 0x59, 0x68, 0xb9, 0xf1, 0xb1, 0xd6,
0xcb, 0x11, 0xcd, 0x78, 0x76, 0x55, 0xc8, 0x92, 0xef, 0x96, 0x46, 0xdc, 0xdb, 0x0c, 0x83, 0x81,
0x87, 0x3f, 0x88, 0xde, 0x83, 0x59, 0xb2, 0x5d, 0xcf, 0xee, 0x90, 0x53, 0x28, 0x5e, 0xd0, 0xee,
0xf6, 0x50, 0x76, 0x72, 0x00, 0x19, 0x4c, 0x3e, 0x1f, 0x91, 0x7a, 0x68, 0xea, 0xb9, 0x13, 0x86,
0x3a, 0xb6, 0x77, 0x44, 0x26, 0x58, 0xdb, 0x8d, 0xb0, 0xc7, 0xb6, 0x81, 0xc0, 0x76, 0x19, 0xfd,
0x86, 0x79, 0x2c, 0xf5, 0x3a, 0xaa, 0xe5, 0xf5, 0x24, 0xbd, 0xce, 0xb4, 0xdb, 0x85, 0x8c, 0xaf,
0x87, 0xc3, 0xe0, 0x4e, 0x7b, 0x60, 0x04, 0xd2, 0xed, 0x41, 0xe3, 0xef, 0x4e, 0x18, 0x02, 0xdb,
0x7f, 0x37, 0x8a, 0x7e, 0x08, 0xb2, 0x67, 0x79, 0x7c, 0x92, 0x09, 0xbd, 0x24, 0x1e, 0x08, 0x75,
0x29, 0xcb, 0xb3, 0xe9, 0x75, 0x9e, 0x30, 0xcb, 0x3f, 0x0d, 0xf7, 0x2c, 0xff, 0xac, 0x92, 0x53,
0xf1, 0x41, 0x43, 0x95, 0x2c, 0x70, 0xc5, 0xd7, 0xb6, 0x40, 0xc9, 0x82, 0xab, 0xf8, 0x7c, 0xa4,
0x63, 0xf5, 0x45, 0x3d, 0x6d, 0xd2, 0x56, 0x5f, 0xb8, 0xf3, 0xe4, 0xed, 0x10, 0x62, 0xa7, 0xad,
0x36, 0x81, 0x65, 0xfe, 0x36, 0x9d, 0xbf, 0x2a, 0x66, 0x75, 0x1a, 0xdf, 0xa7, 0x33, 0xd4, 0x41,
0x98, 0x69, 0x8b, 0x41, 0xc1, 0xdb, 0x3f, 0xd8, 0xc2, 0x08, 0x86, 0xd2, 0x6e, 0x29, 0xcf, 0x9f,
0x8b, 0x79, 0x9c, 0x5c, 0xc3, 0xf8, 0xff, 0x24, 0x34, 0xf0, 0x30, 0x6d, 0x82, 0xf8, 0x74, 0x49,
0x2d, 0x88, 0xe7, 0x3f, 0x47, 0xd1, 0x9d, 0xb6, 0xf9, 0xa7, 0x71, 0x3e, 0x17, 0xd0, 0x9f, 0x4d,
0xf4, 0x5b, 0xf9, 0xec, 0x48, 0x54, 0x2a, 0x2e, 0xd5, 0xf8, 0xc7, 0x74, 0x23, 0x43, 0x3a, 0x26,
0xb6, 0x9f, 0x7c, 0x2b, 0x5d, 0xdb, 0xeb, 0xd3, 0x7a, 0x62, 0x83, 0x29, 0xc0, 0xef, 0x75, 0x2d,
0xc1, 0x13, 0xc0, 0xed, 0x10, 0x62, 0x7b, 0x5d, 0x0b, 0xf6, 0xf3, 0x8b, 0x54, 0x89, 0x3d, 0x91,
0x8b, 0xb2, 0xdb, 0xeb, 0x8d, 0xaa, 0x8f, 0x30, 0xbd, 0xce, 0xa0, 0x76, 0xb2, 0xf1, 0xbc, 0x99,
0xc5, 0x71, 0x3d, 0x60, 0xa4, 0xb3, 0x3c, 0x3e, 0x1c, 0x06, 0xdb, 0xdd, 0x9d, 0xe3, 0xf3, 0x48,
0x5c, 0xc8, 0x33, 0xbc, 0xbb, 0x73, 0x4d, 0x34, 0x00, 0xb3, 0xbb, 0x23, 0x41, 0xbb, 0x82, 0x39,
0x7e, 0x5e, 0xa7, 0xe2, 0x12, 0xad, 0x60, 0xae, 0x72, 0x2d, 0x66, 0x56, 0x30, 0x02, 0x03, 0x0f,
0x07, 0xd1, 0x2f, 0x69, 0xe1, 0xef, 0xc9, 0x34, 0x1f, 0xdf, 0x24, 0x94, 0x6a, 0x81, 0xb1, 0x7a,
0x8b, 0x07, 0x50, 0xc4, 0xf5, 0x5f, 0xb7, 0xe3, 0x3c, 0x11, 0x19, 0x19, 0xb1, 0x15, 0x07, 0x23,
0xf6, 0x30, 0x14, 0xf1, 0xb3, 0xab, 0x54, 0x91, 0x11, 0xd7, 0x82, 0x60, 0xc4, 0x00, 0xd8, 0x52,
0x44, 0xff, 0xb9, 0x9e, 0x0f, 0xa7, 0xa7, 0x71, 0x99, 0xe6, 0xf3, 0x31, 0x15, 0x8b, 0x23, 0x67,
0x4a, 0x11, 0x8a, 0x43, 0x43, 0x02, 0x14, 0xb7, 0x8a, 0xa2, 0xac, 0xa7, 0x59, 0x6a, 0x48, 0xf8,
0x48, 0x70, 0x48, 0x74, 0x50, 0xda, 0xdb, 0x8e, 0x48, 0xb2, 0x34, 0x0f, 0x7a, 0x03, 0x64, 0x88,
0x37, 0x8b, 0x82, 0xb7, 0x45, 0xf4, 0xbe, 0x06, 0x0e, 0xe3, 0x52, 0xa5, 0x49, 0x5a, 0xc4, 0x79,
0x5b, 0x7c, 0x53, 0x83, 0xaa, 0x43, 0x19, 0x9f, 0x1b, 0x03, 0x69, 0x70, 0xfb, 0xef, 0xa3, 0xe8,
0x43, 0xec, 0xf7, 0x50, 0x94, 0xe7, 0xa9, 0xde, 0xc3, 0x55, 0xcd, 0x0c, 0x38, 0xfe, 0x3c, 0x6c,
0xb4, 0xa3, 0x60, 0xa2, 0xf9, 0xd1, 0xf2, 0x8a, 0x10, 0xd8, 0xef, 0x47, 0x51, 0xb3, 0x57, 0xd0,
0xfb, 0x39, 0x3f, 0x01, 0x61, 0x13, 0xe1, 0x6d, 0xe6, 0x3e, 0x0c, 0x10, 0x76, 0x9e, 0x6e, 0xfe,
0xae, 0xb7, 0xa9, 0x63, 0x52, 0x43, 0x8b, 0x98, 0x79, 0x1a, 0x21, 0x38, 0xd0, 0xe9, 0xa9, 0xbc,
0xa4, 0x03, 0xad, 0x25, 0xe1, 0x40, 0x81, 0xb0, 0x07, 0x47, 0x10, 0x28, 0x75, 0x70, 0xd4, 0x86,
0x11, 0x3a, 0x38, 0xc2, 0x0c, 0x18, 0x96, 0xd1, 0xaf, 0xbb, 0x86, 0x9f, 0x4a, 0x79, 0x76, 0x1e,
0x97, 0x67, 0xe3, 0x07, 0xbc, 0x72, 0xcb, 0x18, 0x47, 0xeb, 0x83, 0x58, 0x3b, 0x86, 0x5c, 0x87,
0xf5, 0x2a, 0xff, 0xaa, 0xcc, 0xd0, 0x18, 0xf2, 0x6c, 0x00, 0xc2, 0x8c, 0x21, 0x06, 0xb5, 0xd3,
0xa6, 0xeb, 0x6d, 0x2a, 0xf0, 0x56, 0xc5, 0x53, 0x9f, 0x0a, 0x6e, 0xab, 0x42, 0x60, 0x38, 0x85,
0xf6, 0xca, 0xb8, 0x38, 0xa5, 0x53, 0x48, 0x8b, 0xc2, 0x29, 0xd4, 0x22, 0xb8, 0xbf, 0xa7, 0x22,
0x2e, 0x93, 0x53, 0xba, 0xbf, 0x1b, 0x59, 0xb8, 0xbf, 0x0d, 0x63, 0x57, 0x75, 0xd7, 0xf0, 0x74,
0x71, 0x52, 0x25, 0x65, 0x7a, 0x22, 0xc6, 0xeb, 0xbc, 0xb6, 0x81, 0x98, 0x55, 0x9d, 0x85, 0xed,
0xc1, 0x12, 0xf8, 0x6c, 0x65, 0xfb, 0xb3, 0x0a, 0x1d, 0x2c, 0xb5, 0x36, 0x1c, 0x82, 0x39, 0x58,
0xa2, 0x49, 0xdc, 0xbc, 0xbd, 0x52, 0x2e, 0x8a, 0xaa, 0xa7, 0x79, 0x08, 0x0a, 0x37, 0xaf, 0x0b,
0x83, 0xcf, 0xab, 0xe8, 0x37, 0xdd, 0x47, 0xfa, 0x2a, 0xaf, 0x8c, 0xd7, 0x0d, 0xfe, 0x39, 0x39,
0x18, 0x73, 0x44, 0x13, 0xc0, 0xed, 0x12, 0xdb, 0x7a, 0x56, 0x3b, 0x42, 0xc5, 0x69, 0x56, 0x8d,
0x57, 0x69, 0x1b, 0xad, 0x9c, 0x59, 0x62, 0x29, 0x0e, 0x0f, 0xa1, 0x9d, 0x45, 0x91, 0xa5, 0x49,
0xf7, 0xac, 0x0e, 0x74, 0x8d, 0x38, 0x3c, 0x84, 0x5c, 0x0c, 0x4f, 0x09, 0x53, 0xa1, 0x9a, 0xff,
0x39, 0xbe, 0x2e, 0x04, 0x3d, 0x25, 0x78, 0x48, 0x78, 0x4a, 0xc0, 0x28, 0x6e, 0xcf, 0x54, 0xa8,
0xe7, 0xf1, 0xb5, 0x5c, 0x30, 0x53, 0x82, 0x11, 0x87, 0xdb, 0xe3, 0x62, 0x76, 0xe1, 0x36, 0x1e,
0xf6, 0x73, 0x25, 0xca, 0x3c, 0xce, 0x76, 0xb3, 0x78, 0x5e, 0x8d, 0x99, 0x71, 0xe3, 0x53, 0xcc,
0xc2, 0xcd, 0xd3, 0xc4, 0x63, 0xdc, 0xaf, 0x76, 0xe3, 0x0b, 0x59, 0xa6, 0x8a, 0x7f, 0x8c, 0x16,
0xe9, 0x7d, 0x8c, 0x1e, 0x4a, 0x7a, 0xdb, 0x2a, 0x93, 0xd3, 0xf4, 0x42, 0xcc, 0x02, 0xde, 0x5a,
0x64, 0x80, 0x37, 0x07, 0x25, 0x3a, 0x6d, 0x2a, 0x17, 0x65, 0x22, 0xd8, 0x4e, 0x6b, 0xc4, 0xbd,
0x9d, 0x66, 0x30, 0xf0, 0xf0, 0x57, 0xa3, 0xe8, 0xb7, 0x1a, 0xa9, 0x7b, 0x80, 0xb6, 0x13, 0x57,
0xa7, 0x27, 0x32, 0x2e, 0x67, 0xe3, 0x8f, 0x29, 0x3b, 0x24, 0x6a, 0x5c, 0x3f, 0x5e, 0x46, 0x05,
0x3f, 0xd6, 0xe7, 0x69, 0xe5, 0x8c, 0x38, 0xf2, 0xb1, 0x7a, 0x48, 0xf8, 0xb1, 0x62, 0x14, 0x4f,
0x20, 0x5a, 0xde, 0x6c, 0x56, 0x57, 0x59, 0x7d, 0x7f, 0xc7, 0xba, 0xd6, 0xcb, 0xe1, 0xf9, 0xb1,
0x16, 0xfa, 0xd9, 0xb2, 0xc1, 0xd9, 0xa0, 0x33, 0x66, 0x32, 0x14, 0x67, 0x3d, 0x9b, 0x51, 0x11,
0xf6, 0xdc, 0x19, 0x19, 0x93, 0xa1, 0x38, 0xe3, 0xd9, 0x99, 0xd6, 0x42, 0x9e, 0x89, 0xa9, 0x6d,
0x32, 0x14, 0xc7, 0x09, 0xb4, 0x55, 0x14, 0xd9, 0xf5, 0xb1, 0x38, 0x2f, 0x32, 0x36, 0x81, 0x3c,
0x24, 0x9c, 0x40, 0x18, 0xc5, 0xd5, 0xcf, 0xb1, 0xac, 0x6b, 0x2b, 0xb2, 0xfa, 0xd1, 0xa2, 0x70,
0xf5, 0xd3, 0x22, 0xb8, 0x60, 0x38, 0x96, 0xdb, 0x32, 0xcb, 0x44, 0xa2, 0xba, 0x37, 0x51, 0x46,
0xd3, 0x12, 0xe1, 0x82, 0x01, 0x91, 0xf6, 0xc4, 0xa1, 0xad, 0xd5, 0xe3, 0x52, 0x3c, 0xbd, 0x7e,
0x9e, 0xe6, 0x67, 0x63, 0x7a, 0x6d, 0xb4, 0x00, 0x73, 0xe2, 0x40, 0x82, 0x78, 0x4f, 0xf0, 0x2a,
0x9f, 0x49, 0x7a, 0x4f, 0x50, 0x4b, 0xc2, 0x7b, 0x02, 0x20, 0xb0, 0xc9, 0x23, 0xc1, 0x99, 0xac,
0x25, 0x61, 0x93, 0x40, 0x50, 0xf3, 0x01, 0x1c, 0xed, 0xb1, 0xf3, 0x01, 0x3a, 0xcc, 0x5b, 0xeb,
0xe5, 0x70, 0x86, 0xb6, 0x9b, 0x83, 0x5d, 0xa1, 0x92, 0x53, 0x3a, 0x43, 0x3d, 0x24, 0x9c, 0xa1,
0x18, 0xc5, 0x4d, 0x3a, 0x96, 0x66, 0x73, 0xb3, 0x4a, 0xe7, 0x47, 0x67, 0x63, 0xb3, 0xd6, 0xcb,
0xe1, 0x72, 0x7d, 0xff, 0x5c, 0x3f, 0x33, 0x32, 0xc9, 0x1b, 0x59, 0xb8, 0x5c, 0x37, 0x0c, 0x8e,
0xbe, 0x11, 0xd4, 0x8f, 0x93, 0x8e, 0xde, 0xca, 0xc3, 0xd1, 0x7b, 0x1c, 0x38, 0xf9, 0xd7, 0x51,
0x74, 0xd3, 0xf5, 0x72, 0x20, 0xeb, 0x31, 0xf2, 0x3a, 0xce, 0xd2, 0x59, 0xac, 0xc4, 0xb1, 0x3c,
0x13, 0x39, 0xda, 0xef, 0xfb, 0xd1, 0x36, 0xfc, 0xc4, 0x53, 0x60, 0xf6, 0xfb, 0x83, 0x14, 0x71,
0x9e, 0x34, 0xf4, 0xab, 0x4a, 0x6c, 0xc7, 0x15, 0x33, 0x93, 0x79, 0x48, 0x38, 0x4f, 0x30, 0x8a,
0x8b, 0xb6, 0x46, 0xfe, 0xec, 0xaa, 0x10, 0x65, 0x2a, 0xf2, 0x44, 0xd0, 0x45, 0x1b, 0xa6, 0xc2,
0x45, 0x1b, 0x41, 0x77, 0xb6, 0xc3, 0x66, 0x72, 0xea, 0x5e, 0x26, 0x63, 0x22, 0x70, 0x99, 0xcc,
0xa0, 0xb8, 0x91, 0x16, 0x20, 0x8f, 0x94, 0x3a, 0x56, 0x82, 0x47, 0x4a, 0x3c, 0xdd, 0x39, 0x64,
0x30, 0xcc, 0xb4, 0x1e, 0x26, 0x3d, 0xa1, 0x4f, 0xdd, 0xe1, 0xb2, 0x3e, 0x88, 0xa5, 0x4f, 0x35,
0x8e, 0x44, 0x16, 0xeb, 0x25, 0x24, 0x70, 0x74, 0xd0, 0x32, 0x43, 0x4e, 0x35, 0x1c, 0x16, 0x1c,
0xfe, 0xc5, 0x28, 0xba, 0x41, 0x79, 0x7c, 0x59, 0x68, 0xbf, 0x8f, 0xfa, 0x6d, 0x35, 0x24, 0x73,
0x5b, 0x1e, 0xd6, 0x80, 0x18, 0xfe, 0x24, 0xfa, 0xa0, 0x15, 0xd9, 0xcb, 0x74, 0x08, 0xc0, 0xaf,
0x22, 0x4c, 0xfc, 0x98, 0x33, 0xee, 0x37, 0x07, 0xf3, 0xb6, 0x40, 0xf7, 0xe3, 0xaa, 0x50, 0x81,
0x6e, 0x6c, 0x80, 0x98, 0x29, 0xd0, 0x09, 0x0c, 0xaf, 0xd4, 0x2d, 0x52, 0x8f, 0x13, 0x6a, 0x8e,
0x33, 0x26, 0xdc, 0x51, 0x72, 0xaf, 0x1f, 0xc4, 0xb9, 0xd3, 0x8a, 0xa1, 0x2e, 0x7e, 0x10, 0xb2,
0x80, 0x6a, 0xe3, 0xf5, 0x41, 0x2c, 0x38, 0xfc, 0xb3, 0xe8, 0xfb, 0x9d, 0x86, 0xed, 0x8a, 0x58,
0x2d, 0x4a, 0x31, 0x1b, 0x6f, 0xf6, 0xc4, 0xdd, 0x82, 0xc6, 0xf5, 0xa3, 0xe1, 0x0a, 0xe0, 0xff,
0x6f, 0x46, 0xd1, 0x0f, 0x7c, 0xae, 0xe9, 0x62, 0x13, 0xc3, 0xe3, 0x90, 0x49, 0x9f, 0x35, 0x61,
0x3c, 0x59, 0x4a, 0xa7, 0xb3, 0x07, 0x73, 0x13, 0x79, 0xeb, 0x22, 0x4e, 0xb3, 0xf8, 0x24, 0x13,
0xe4, 0x1e, 0xcc, 0xcb, 0x4d, 0x83, 0x06, 0xf7, 0x60, 0xac, 0x4a, 0x67, 0x96, 0xd4, 0xe3, 0xcd,
0xa9, 0xdd, 0x1f, 0xf2, 0xa3, 0x92, 0x28, 0xdd, 0x37, 0x06, 0xd2, 0xe0, 0x56, 0xb5, 0x67, 0x57,
0xf5, 0x9f, 0xdd, 0x24, 0xa7, 0xbc, 0x82, 0x2a, 0x91, 0xe9, 0x1b, 0x03, 0x69, 0xf0, 0xfa, 0xa7,
0xd1, 0x07, 0x5d, 0xaf, 0xb0, 0x28, 0x6c, 0xf6, 0x9a, 0x42, 0xeb, 0xc2, 0xa3, 0xe1, 0x0a, 0xb6,
0xd4, 0xff, 0x22, 0xad, 0x94, 0x2c, 0xaf, 0xa7, 0xa7, 0xf2, 0xb2, 0x7d, 0x61, 0xd4, 0x1f, 0xad,
0x00, 0x4c, 0x1c, 0x82, 0x29, 0xf5, 0x69, 0xb2, 0xe3, 0xca, 0xbe, 0x58, 0x5a, 0x31, 0xae, 0x1c,
0xa2, 0xc7, 0x95, 0x4f, 0xda, 0xb9, 0xaa, 0x6d, 0x95, 0x7d, 0x0b, 0x76, 0x8d, 0x0e, 0xb5, 0xfb,
0x26, 0xec, 0xbd, 0x7e, 0xd0, 0x6e, 0xbf, 0x76, 0xd3, 0x4c, 0xbc, 0x7c, 0xfb, 0x36, 0x93, 0xf1,
0x0c, 0x6d, 0xbf, 0x6a, 0xc9, 0x04, 0x44, 0xcc, 0xf6, 0x0b, 0x21, 0xb6, 0xe8, 0xac, 0x05, 0xfa,
0x6e, 0xa6, 0x35, 0xbd, 0xda, 0xd5, 0x73, 0xe5, 0x4c, 0xd1, 0x49, 0x71, 0x76, 0xc1, 0xa8, 0xa5,
0xf5, 0x10, 0x6c, 0x7d, 0xdc, 0xed, 0xea, 0x3a, 0x62, 0x66, 0xc1, 0x20, 0x30, 0xbb, 0x3f, 0xaa,
0x85, 0xaf, 0x0a, 0x6d, 0xfc, 0x56, 0x57, 0xab, 0x91, 0x30, 0xfb, 0x23, 0x9f, 0xb0, 0x75, 0x7e,
0xfd, 0xf7, 0x1d, 0x79, 0x99, 0x6b, 0xa3, 0xc4, 0xd3, 0x6c, 0x65, 0x4c, 0x9d, 0x8f, 0x19, 0x30,
0xfc, 0xd3, 0xe8, 0x17, 0xb5, 0xe1, 0x52, 0x16, 0xe3, 0x15, 0x42, 0xa1, 0x74, 0x5e, 0x3b, 0xb9,
0xc9, 0xca, 0xed, 0xdb, 0x53, 0xa6, 0xff, 0x5e, 0x55, 0xf1, 0x5c, 0xa0, 0xb7, 0xa7, 0x6c, 0xaf,
0x68, 0x29, 0xf3, 0xf6, 0x54, 0x97, 0xb2, 0x6f, 0x04, 0xd5, 0xb2, 0x03, 0x39, 0x03, 0xeb, 0x44,
0x0b, 0x8d, 0x90, 0x79, 0x23, 0xa8, 0x03, 0xd9, 0xf3, 0xfb, 0x83, 0xf8, 0x22, 0x9d, 0x9b, 0xc9,
0xbf, 0x99, 0x43, 0x2a, 0x74, 0x7e, 0x6f, 0x99, 0x89, 0x03, 0x31, 0xe7, 0xf7, 0x2c, 0x0c, 0x3e,
0xff, 0x65, 0x14, 0xdd, 0xb2, 0xcc, 0x5e, 0x7b, 0xac, 0xb2, 0x9f, 0xbf, 0x95, 0x6f, 0x52, 0x75,
0x5a, 0xef, 0xe3, 0xab, 0xf1, 0x67, 0x9c, 0x49, 0x9a, 0x37, 0xa1, 0x7c, 0xbe, 0xb4, 0x9e, 0xad,
0xe6, 0xda, 0xe3, 0x16, 0x7b, 0xb7, 0xd5, 0x68, 0xa0, 0x6a, 0xce, 0x9c, 0xca, 0x60, 0x8e, 0xa9,
0xe6, 0x42, 0xbc, 0xed, 0x62, 0xe3, 0x3c, 0x93, 0x39, 0xee, 0x62, 0x6b, 0xa1, 0x16, 0x32, 0x5d,
0xdc, 0x81, 0xec, 0xdc, 0xd8, 0x8a, 0x9a, 0x93, 0x81, 0xad, 0x2c, 0x43, 0x73, 0xa3, 0x51, 0x35,
0x00, 0x33, 0x37, 0x92, 0x20, 0xf8, 0x39, 0x8a, 0xbe, 0x53, 0x3f, 0xd2, 0xc3, 0x52, 0x5c, 0xa4,
0x02, 0x5f, 0xc3, 0x3a, 0x12, 0x66, 0xfc, 0xfb, 0x84, 0x1d, 0x59, 0xaf, 0xf2, 0xaa, 0xc8, 0xe2,
0xea, 0x14, 0x2e, 0xe6, 0xfc, 0x36, 0xb7, 0x42, 0x7c, 0x35, 0x77, 0xb7, 0x87, 0xb2, 0x13, 0x6f,
0x2b, 0x33, 0x53, 0xcc, 0x2a, 0xad, 0xda, 0x99, 0x66, 0xd6, 0x7a, 0x39, 0x7b, 0x34, 0xb9, 0x17,
0x67, 0x99, 0x28, 0xaf, 0x5b, 0xd9, 0x8b, 0x38, 0x4f, 0xdf, 0x8a, 0x4a, 0xa1, 0xa3, 0x49, 0xa0,
0x26, 0x18, 0x63, 0x8e, 0x26, 0x03, 0xb8, 0xad, 0xac, 0x91, 0xe7, 0xfd, 0x7c, 0x26, 0xae, 0x50,
0x65, 0x8d, 0xed, 0x68, 0x86, 0xa9, 0xac, 0x39, 0xd6, 0x2e, 0x8f, 0x4f, 0x33, 0x99, 0x9c, 0xc1,
0x12, 0xe0, 0x77, 0xb0, 0x96, 0xe0, 0x35, 0xe0, 0x76, 0x08, 0xb1, 0x8b, 0x80, 0x16, 0x1c, 0x89,
0x22, 0x8b, 0x13, 0x7c, 0x17, 0xdf, 0xe8, 0x80, 0x8c, 0x59, 0x04, 0x30, 0x83, 0xc2, 0x85, 0x3b,
0x7e, 0x2a, 0x5c, 0x74, 0xc5, 0x7f, 0x3b, 0x84, 0xd8, 0x65, 0x50, 0x0b, 0xa6, 0x45, 0x96, 0x2a,
0x34, 0x0c, 0x1a, 0x0d, 0x2d, 0x61, 0x86, 0x81, 0x4f, 0x20, 0x93, 0x2f, 0x44, 0x39, 0x17, 0xa4,
0x49, 0x2d, 0x09, 0x9a, 0x6c, 0x09, 0xfb, 0xf6, 0x51, 0xd3, 0x76, 0x59, 0x5c, 0xa3, 0xb7, 0x8f,
0xa0, 0x59, 0xb2, 0xb8, 0x66, 0xde, 0x3e, 0xf2, 0x00, 0x14, 0xe2, 0x61, 0x5c, 0x29, 0x3a, 0x44,
0x2d, 0x09, 0x86, 0xd8, 0x12, 0x76, 0x8d, 0x6e, 0x42, 0x5c, 0x28, 0xb4, 0x46, 0x43, 0x00, 0xce,
0x55, 0xe1, 0x4d, 0x56, 0x6e, 0x67, 0x92, 0xa6, 0x57, 0x84, 0xda, 0x4d, 0x45, 0x36, 0xab, 0xd0,
0x4c, 0x02, 0xcf, 0xbd, 0x95, 0x32, 0x33, 0x49, 0x97, 0x42, 0xa9, 0x04, 0x67, 0xb8, 0x54, 0xeb,
0xd0, 0xf1, 0xed, 0xed, 0x10, 0x62, 0xe7, 0xa7, 0x36, 0xe8, 0xed, 0xb8, 0x2c, 0xd3, 0x7a, 0xf1,
0x5f, 0xa5, 0x03, 0x6a, 0xe5, 0xcc, 0xfc, 0x44, 0x71, 0x68, 0x78, 0xb5, 0x13, 0x37, 0x15, 0x18,
0x9e, 0xba, 0x3f, 0x0a, 0x32, 0xb6, 0xe2, 0xd4, 0x12, 0xe7, 0xae, 0x8b, 0x7a, 0x9a, 0xc4, 0x55,
0xd7, 0x6a, 0x1f, 0xe6, 0xbc, 0xcf, 0x6c, 0x5c, 0xbc, 0x90, 0x17, 0xe2, 0x58, 0x3e, 0xbb, 0x4a,
0x2b, 0x95, 0xe6, 0x73, 0x58, 0xb9, 0x9f, 0x30, 0x96, 0x28, 0x98, 0x79, 0x9f, 0xb9, 0x57, 0xc9,
0x16, 0x10, 0x28, 0x96, 0x03, 0x71, 0x49, 0x16, 0x10, 0xd8, 0xa2, 0xe1, 0x98, 0x02, 0x22, 0xc4,
0xdb, 0x33, 0x0d, 0xe3, 0x1c, 0x7e, 0xf4, 0x75, 0x2c, 0xdb, 0x5a, 0x8e, 0xb3, 0x86, 0x41, 0x66,
0x5b, 0x19, 0x54, 0xb0, 0x7b, 0x3d, 0xe3, 0xdf, 0x0e, 0xb1, 0x7b, 0x8c, 0x9d, 0xee, 0x30, 0xbb,
0x3f, 0x80, 0x24, 0x5c, 0xd9, 0x0b, 0x5b, 0xce, 0x55, 0xf7, 0xbe, 0xf6, 0xfe, 0x00, 0xd2, 0x39,
0x1f, 0x71, 0x9b, 0xf5, 0x34, 0x4e, 0xce, 0xe6, 0xa5, 0x5c, 0xe4, 0xb3, 0x6d, 0x99, 0xc9, 0x12,
0x9d, 0x8f, 0x78, 0x51, 0x23, 0x94, 0x39, 0x1f, 0xe9, 0x51, 0xb1, 0x15, 0x9c, 0x1b, 0xc5, 0x56,
0x96, 0xce, 0xf1, 0xee, 0xd6, 0x33, 0xa4, 0x01, 0xa6, 0x82, 0x23, 0x41, 0x22, 0x89, 0x9a, 0xdd,
0xaf, 0x4a, 0x93, 0x38, 0x6b, 0xfc, 0x6d, 0xf2, 0x66, 0x3c, 0xb0, 0x37, 0x89, 0x08, 0x05, 0xa2,
0x9d, 0xc7, 0x8b, 0x32, 0xdf, 0xcf, 0x95, 0x64, 0xdb, 0xd9, 0x02, 0xbd, 0xed, 0x74, 0x40, 0x34,
0xad, 0x1e, 0x8b, 0xab, 0x3a, 0x9a, 0xfa, 0x3f, 0xd4, 0xb4, 0x5a, 0xff, 0x7d, 0x02, 0xf2, 0xd0,
0xb4, 0x8a, 0x38, 0xd4, 0x18, 0x70, 0xd2, 0x24, 0x4c, 0x40, 0xdb, 0x4f, 0x93, 0x7b, 0xfd, 0x20,
0xed, 0x67, 0xaa, 0xae, 0x33, 0x11, 0xf2, 0xa3, 0x81, 0x21, 0x7e, 0x5a, 0xd0, 0x5e, 0x9c, 0x78,
0xed, 0x39, 0x15, 0xc9, 0x59, 0xe7, 0xfd, 0x13, 0x3f, 0xd0, 0x06, 0x61, 0x2e, 0x4e, 0x18, 0x94,
0xee, 0xa2, 0xfd, 0x44, 0xe6, 0xa1, 0x2e, 0xaa, 0xe5, 0x43, 0xba, 0x08, 0x38, 0xbb, 0xf9, 0x35,
0x52, 0xc8, 0xcc, 0xa6, 0x9b, 0xd6, 0x19, 0x0b, 0x2e, 0xc4, 0x6c, 0x7e, 0x59, 0xd8, 0xd6, 0xe4,
0xd8, 0xe7, 0x8b, 0xee, 0xfb, 0x9f, 0x1d, 0x2b, 0x2f, 0xf8, 0xf7, 0x3f, 0x39, 0x96, 0x6f, 0x64,
0x93, 0x23, 0x3d, 0x56, 0xfc, 0x3c, 0x79, 0x38, 0x0c, 0xb6, 0x5b, 0x1e, 0xcf, 0xe7, 0x76, 0x26,
0xe2, 0xb2, 0xf1, 0xba, 0x11, 0x30, 0x64, 0x31, 0x66, 0xcb, 0x13, 0xc0, 0xd1, 0x14, 0xe6, 0x79,
0xde, 0x96, 0xb9, 0x12, 0xb9, 0xa2, 0xa6, 0x30, 0xdf, 0x18, 0x80, 0xa1, 0x29, 0x8c, 0x53, 0x40,
0x79, 0xab, 0xcf, 0x83, 0x84, 0x3a, 0x88, 0xcf, 0xc9, 0x8a, 0xad, 0x39, 0xeb, 0x69, 0xe4, 0xa1,
0xbc, 0x45, 0x1c, 0x1a, 0xf2, 0xfb, 0xe7, 0xf1, 0xdc, 0x78, 0x21, 0xb4, 0xb5, 0xbc, 0xe3, 0xe6,
0x5e, 0x3f, 0x88, 0xfc, 0xbc, 0x4e, 0x67, 0x42, 0x06, 0xfc, 0x68, 0xf9, 0x10, 0x3f, 0x18, 0x44,
0x95, 0x53, 0xdd, 0xda, 0x66, 0x37, 0xb5, 0x95, 0xcf, 0x60, 0x0f, 0x39, 0x61, 0x1e, 0x0a, 0xe2,
0x42, 0x95, 0x13, 0xc3, 0xa3, 0xf1, 0xd1, 0x1e, 0x8e, 0x86, 0xc6, 0x87, 0x39, 0xfb, 0x1c, 0x32,
0x3e, 0x28, 0x18, 0x7c, 0xfe, 0x31, 0x8c, 0x8f, 0x9d, 0x58, 0xc5, 0x75, 0xcd, 0xfc, 0x3a, 0x15,
0x97, 0xb0, 0x09, 0x25, 0xda, 0xdb, 0x52, 0x13, 0xfd, 0x8b, 0x17, 0xb4, 0x23, 0xdd, 0x1c, 0xcc,
0x07, 0x7c, 0x43, 0x75, 0xde, 0xeb, 0x1b, 0x95, 0xe9, 0x9b, 0x83, 0xf9, 0x80, 0x6f, 0xf8, 0x29,
0x5d, 0xaf, 0x6f, 0xf4, 0x7b, 0xba, 0xcd, 0xc1, 0x3c, 0xf8, 0xfe, 0xcb, 0x51, 0x74, 0xa3, 0xe3,
0xbc, 0xae, 0x81, 0x12, 0x95, 0x5e, 0x08, 0xaa, 0x94, 0xf3, 0xed, 0x19, 0x34, 0x54, 0xca, 0xf1,
0x2a, 0xce, 0xf7, 0x17, 0xa8, 0x28, 0x0e, 0x65, 0x95, 0xea, 0x8b, 0xe3, 0x27, 0x03, 0x8c, 0xb6,
0x70, 0x68, 0xc3, 0x12, 0x52, 0xb2, 0xd7, 0x6e, 0x1e, 0x6a, 0x5f, 0xf5, 0x7c, 0x18, 0xb0, 0xd7,
0x7d, 0xe3, 0x73, 0x63, 0x20, 0x6d, 0x2f, 0xc0, 0x3c, 0xc6, 0xbd, 0x79, 0x0b, 0xf5, 0x2a, 0x79,
0xf9, 0xf6, 0x68, 0xb8, 0x02, 0xb8, 0xff, 0xeb, 0xb6, 0xa6, 0xc7, 0xfe, 0x61, 0x10, 0x3c, 0x1e,
0x62, 0x11, 0x0d, 0x84, 0x27, 0x4b, 0xe9, 0x40, 0x20, 0xff, 0x31, 0x8a, 0x6e, 0x93, 0x81, 0xf8,
0x77, 0xb0, 0xbf, 0x3d, 0xc4, 0x36, 0x7d, 0x17, 0xfb, 0xe3, 0x6f, 0xa3, 0x0a, 0xd1, 0xfd, 0x7d,
0xbb, 0xb5, 0x6e, 0x35, 0xf4, 0xeb, 0xf8, 0x2f, 0xcb, 0x99, 0x28, 0x61, 0xc4, 0x86, 0x92, 0xce,
0xc2, 0x78, 0xdc, 0x7e, 0xba, 0xa4, 0x96, 0xf3, 0xad, 0x10, 0x0f, 0x86, 0x5f, 0x26, 0x39, 0xf1,
0x84, 0x2c, 0x3b, 0x34, 0x0e, 0xe8, 0xb3, 0x65, 0xd5, 0xb8, 0x91, 0xec, 0xc0, 0xfa, 0xa7, 0xc7,
0x4f, 0x06, 0x1a, 0xf6, 0x7e, 0x8c, 0xfc, 0xc9, 0x72, 0x4a, 0x10, 0xcb, 0x7f, 0x8d, 0xa2, 0xbb,
0x1e, 0x6b, 0x6f, 0x1a, 0xd0, 0x79, 0xc8, 0x4f, 0x02, 0xf6, 0x39, 0x25, 0x13, 0xdc, 0xef, 0x7c,
0x3b, 0x65, 0xfb, 0x61, 0x0d, 0x4f, 0x65, 0x37, 0xcd, 0x94, 0x28, 0xbb, 0x1f, 0xd6, 0xf0, 0xed,
0x36, 0xd4, 0x84, 0xff, 0xb0, 0x46, 0x00, 0x77, 0x3e, 0xac, 0x41, 0x78, 0x26, 0x3f, 0xac, 0x41,
0x5a, 0x0b, 0x7e, 0x58, 0x23, 0xac, 0xc1, 0x2d, 0x3e, 0x6d, 0x08, 0xcd, 0x89, 0xf6, 0x20, 0x8b,
0xfe, 0x01, 0xf7, 0xe3, 0x65, 0x54, 0x98, 0xe5, 0xb7, 0xe1, 0xf4, 0x9b, 0x61, 0x03, 0x9e, 0xa9,
0xf7, 0x76, 0xd8, 0xe6, 0x60, 0x1e, 0x7c, 0xff, 0x0c, 0xf6, 0x3d, 0x66, 0xb1, 0x91, 0xa5, 0xfe,
0xa8, 0xca, 0x7a, 0x68, 0xf1, 0xa8, 0x2d, 0xb8, 0x3d, 0xff, 0x70, 0x18, 0xcc, 0x34, 0xb7, 0x26,
0xa0, 0xd3, 0x27, 0x7d, 0x86, 0x50, 0x97, 0x6f, 0x0e, 0xe6, 0x99, 0x45, 0xae, 0xf1, 0xdd, 0xf4,
0xf6, 0x00, 0x63, 0x7e, 0x5f, 0x3f, 0x1a, 0xae, 0x60, 0x5f, 0x6d, 0xe9, 0xb8, 0xd7, 0xfd, 0xdc,
0xfb, 0x04, 0xbd, 0x5e, 0xde, 0x18, 0x48, 0x87, 0x8a, 0x1b, 0x77, 0x79, 0xef, 0x2b, 0x6e, 0xc8,
0x25, 0xfe, 0x93, 0xe5, 0x94, 0x20, 0x96, 0x7f, 0x1e, 0x45, 0x37, 0xd9, 0x58, 0x20, 0x0b, 0x3e,
0x1b, 0x6a, 0x19, 0x65, 0xc3, 0xe7, 0x4b, 0xeb, 0x41, 0x50, 0xff, 0x36, 0x8a, 0x6e, 0x05, 0x82,
0x6a, 0xd2, 0x63, 0x09, 0xeb, 0x7e, 0x9a, 0xfc, 0x68, 0x79, 0x45, 0x6e, 0xb1, 0x77, 0xf1, 0x69,
0xf7, 0x7b, 0x13, 0x01, 0xdb, 0x53, 0xfe, 0x7b, 0x13, 0xfd, 0x5a, 0xf8, 0xf0, 0xa7, 0x2e, 0x49,
0x60, 0x5f, 0x44, 0x1d, 0xfe, 0xe8, 0x8a, 0x05, 0xed, 0x87, 0xd6, 0x7a, 0x39, 0xca, 0xc9, 0xb3,
0xab, 0x22, 0xce, 0x67, 0xbc, 0x93, 0x46, 0xde, 0xef, 0xc4, 0x70, 0xf8, 0xd0, 0xac, 0x96, 0x1e,
0xc9, 0x76, 0x93, 0x77, 0x9f, 0xd3, 0x37, 0x48, 0xf0, 0xd0, 0xac, 0x83, 0x32, 0xde, 0xa0, 0xa2,
0x0d, 0x79, 0x43, 0x85, 0xec, 0x83, 0x21, 0x28, 0xda, 0x3e, 0x18, 0x6f, 0xe6, 0x2c, 0xfe, 0x61,
0xc8, 0x4a, 0xe7, 0x3c, 0x7e, 0x63, 0x20, 0xcd, 0xb8, 0x9d, 0x0a, 0xf5, 0x85, 0x88, 0x67, 0xa2,
0x0c, 0xba, 0x35, 0xd4, 0x20, 0xb7, 0x2e, 0x4d, 0xb9, 0xdd, 0x96, 0xd9, 0xe2, 0x3c, 0x87, 0xce,
0x64, 0xdd, 0xba, 0x54, 0xbf, 0x5b, 0x44, 0xe3, 0xe3, 0x42, 0xeb, 0x56, 0x17, 0x97, 0x0f, 0xc2,
0x66, 0xbc, 0x9a, 0x72, 0x7d, 0x10, 0xcb, 0xb7, 0x13, 0xd2, 0xa8, 0xa7, 0x9d, 0x28, 0x93, 0x36,
0x06, 0xd2, 0xf8, 0xdc, 0xce, 0x71, 0x6b, 0xf2, 0x69, 0xb3, 0xc7, 0x56, 0x27, 0xa5, 0x1e, 0x0d,
0x57, 0xc0, 0xa7, 0xa4, 0x90, 0x55, 0xf5, 0xae, 0x68, 0x37, 0xcd, 0xb2, 0xf1, 0x7a, 0x20, 0x4d,
0x5a, 0x28, 0x78, 0x4a, 0x4a, 0xc0, 0x4c, 0x26, 0xb7, 0xa7, 0x8a, 0xf9, 0xb8, 0xcf, 0x8e, 0xa6,
0x06, 0x65, 0xb2, 0x4b, 0xa3, 0xd3, 0x36, 0xe7, 0x51, 0x9b, 0xd6, 0x4e, 0xc2, 0x0f, 0xae, 0xd3,
0xe0, 0xcd, 0xc1, 0x3c, 0xba, 0x86, 0xd7, 0x94, 0x5e, 0x59, 0xee, 0x70, 0x26, 0xbc, 0x95, 0xe4,
0x6e, 0x0f, 0x85, 0x4e, 0x2c, 0x9b, 0x61, 0xf4, 0x26, 0x9d, 0xcd, 0x85, 0x22, 0x6f, 0x90, 0x5c,
0x20, 0x78, 0x83, 0x84, 0x40, 0xd4, 0x75, 0xcd, 0xdf, 0xa7, 0x42, 0x1d, 0xc7, 0xe5, 0x5c, 0xa8,
0xfd, 0x19, 0xd5, 0x75, 0xa0, 0xec, 0x50, 0xa1, 0xae, 0x23, 0x69, 0x34, 0x1b, 0x18, 0xb7, 0xf0,
0x7b, 0xea, 0x07, 0x21, 0x33, 0xe8, 0x47, 0xd5, 0xeb, 0x83, 0x58, 0xb4, 0xa2, 0x58, 0x87, 0xe9,
0x79, 0xaa, 0xa8, 0x15, 0xc5, 0xb1, 0x51, 0x23, 0xa1, 0x15, 0xa5, 0x8b, 0x72, 0xcd, 0xab, 0x6b,
0x84, 0xfd, 0x59, 0xb8, 0x79, 0x0d, 0x33, 0xac, 0x79, 0x86, 0xed, 0x5c, 0x78, 0xe6, 0x26, 0x65,
0xd4, 0x29, 0x6c, 0x95, 0x89, 0xdc, 0xd6, 0x3f, 0x31, 0xc4, 0x60, 0x68, 0xd6, 0xe1, 0x14, 0x9c,
0x5f, 0xb1, 0x18, 0xae, 0xbd, 0x93, 0x2d, 0x0a, 0x11, 0x97, 0x71, 0x9e, 0x90, 0x5b, 0x53, 0x6d,
0xb0, 0x43, 0x86, 0xb6, 0xa6, 0xac, 0x06, 0xba, 0x4e, 0xf7, 0x7f, 0x1c, 0x48, 0x0c, 0x05, 0xf3,
0x2b, 0x3c, 0xff, 0xb7, 0x81, 0xf7, 0x07, 0x90, 0xf8, 0x3a, 0xbd, 0x05, 0xcc, 0xa1, 0x7c, 0xe3,
0xf4, 0xe3, 0x80, 0x29, 0x1f, 0x0d, 0x6d, 0x83, 0x79, 0x15, 0x94, 0xd4, 0xa6, 0xc0, 0x15, 0xea,
0xa7, 0xe2, 0x9a, 0x4a, 0x6a, 0x5b, 0x9f, 0x6a, 0x24, 0x94, 0xd4, 0x5d, 0x14, 0xd5, 0x99, 0xee,
0x3e, 0x68, 0x35, 0xa0, 0xef, 0x6e, 0x7d, 0xd6, 0x7a, 0x39, 0x34, 0x72, 0x76, 0xd2, 0x0b, 0xef,
0x0e, 0x83, 0x08, 0x74, 0x27, 0xbd, 0xa0, 0xaf, 0x30, 0xd6, 0x07, 0xb1, 0xf8, 0xaa, 0x3e, 0x56,
0xe2, 0xaa, 0xbd, 0x43, 0x27, 0xc2, 0xd5, 0xf2, 0xce, 0x25, 0xfa, 0xbd, 0x7e, 0xd0, 0xbe, 0x18,
0x7b, 0x58, 0xca, 0x44, 0x54, 0x15, 0x7c, 0x84, 0xcb, 0x7f, 0xf3, 0x08, 0x64, 0x13, 0xf4, 0x09,
0xae, 0x3b, 0x61, 0x08, 0x6c, 0x7f, 0x11, 0xbd, 0xfb, 0x5c, 0xce, 0xa7, 0x22, 0x9f, 0x8d, 0x7f,
0xe8, 0xbf, 0x8a, 0x2a, 0xe7, 0x93, 0xfa, 0xcf, 0xc6, 0xde, 0x0a, 0x27, 0xb6, 0x2f, 0xd3, 0xed,
0x88, 0x93, 0xc5, 0x7c, 0xaa, 0x62, 0xfc, 0x29, 0x2f, 0xfd, 0xf7, 0x49, 0x2d, 0x60, 0x5e, 0xa6,
0xf3, 0x00, 0x64, 0xef, 0xb8, 0x14, 0x82, 0xb4, 0x57, 0x0b, 0x82, 0xf6, 0x00, 0xb0, 0xab, 0xae,
0xb1, 0x57, 0x17, 0xb6, 0xf8, 0xe5, 0x37, 0xab, 0xa3, 0xa5, 0xcc, 0xaa, 0xdb, 0xa5, 0x6c, 0x32,
0x34, 0xcd, 0xd7, 0x9f, 0x59, 0x58, 0x9c, 0x9f, 0xc7, 0xe5, 0x35, 0x4a, 0x06, 0x68, 0xa5, 0x03,
0x30, 0xc9, 0x40, 0x82, 0x36, 0xcb, 0xdb, 0xc7, 0x9c, 0x9c, 0xed, 0xc9, 0x52, 0x2e, 0x54, 0x9a,
0x8b, 0x0a, 0x65, 0xb9, 0x79, 0xa0, 0x2e, 0xc3, 0x64, 0x39, 0xc7, 0xda, 0xaa, 0x50, 0x13, 0xcd,
0x7b, 0x79, 0xfa, 0x53, 0x96, 0x95, 0x92, 0x25, 0xbe, 0x1b, 0x6c, 0xac, 0x60, 0x88, 0xa9, 0x0a,
0x59, 0x18, 0xf5, 0xfd, 0x61, 0x9a, 0xcf, 0xc9, 0xbe, 0x3f, 0x74, 0x3f, 0xdc, 0x76, 0x8b, 0x07,
0xec, 0xfc, 0xde, 0x3c, 0xb4, 0xe6, 0x73, 0x36, 0xf0, 0x5b, 0x41, 0xf2, 0xa1, 0xbb, 0x04, 0x33,
0xbf, 0xd3, 0x24, 0x72, 0xf5, 0xb2, 0x10, 0xb9, 0x98, 0xb5, 0x6f, 0x9f, 0x51, 0xae, 0x3c, 0x22,
0xe8, 0x0a, 0x93, 0x36, 0x15, 0x5e, 0x08, 0x55, 0xa6, 0x49, 0x35, 0x15, 0xea, 0x30, 0x2e, 0xe3,
0x73, 0xa1, 0x44, 0x89, 0x53, 0x01, 0x90, 0x89, 0xc7, 0x30, 0xa9, 0xc0, 0xb1, 0xe0, 0xf0, 0x77,
0xa3, 0xef, 0xd5, 0x33, 0xa1, 0xc8, 0xe1, 0xdb, 0xda, 0xcf, 0xf4, 0x47, 0xf9, 0xc7, 0xef, 0x1b,
0x1b, 0x53, 0x55, 0x8a, 0xf8, 0xbc, 0xb5, 0xfd, 0x9e, 0xf9, 0xbb, 0x06, 0x1f, 0x8d, 0xea, 0x75,
0xe0, 0x40, 0xaa, 0xf4, 0x6d, 0xbd, 0xf1, 0x80, 0x4b, 0x1e, 0xb4, 0x0e, 0xb8, 0xe2, 0x49, 0xe0,
0x97, 0xe5, 0x14, 0x67, 0x47, 0xa2, 0x2b, 0x3d, 0x12, 0x45, 0x86, 0x47, 0xa2, 0xa7, 0xad, 0x01,
0x66, 0x24, 0x92, 0xa0, 0x5d, 0xd4, 0x5c, 0xf1, 0xb1, 0x08, 0x37, 0xe6, 0x58, 0x0c, 0x6b, 0xcc,
0xb1, 0xf7, 0xfa, 0x7a, 0xbd, 0x27, 0x2b, 0x65, 0x3c, 0x4b, 0xe2, 0x4a, 0x1d, 0xc6, 0xd7, 0x99,
0x8c, 0x67, 0xfa, 0x61, 0xe2, 0x3d, 0x59, 0xcb, 0x4c, 0x5c, 0x88, 0xdb, 0x93, 0x71, 0x70, 0xe3,
0xf3, 0xe9, 0x87, 0xff, 0xf3, 0xf5, 0xca, 0xe8, 0xab, 0xaf, 0x57, 0x46, 0xff, 0xff, 0xf5, 0xca,
0xe8, 0x9f, 0xbe, 0x59, 0x79, 0xe7, 0xab, 0x6f, 0x56, 0xde, 0xf9, 0xdf, 0x6f, 0x56, 0xde, 0xf9,
0xf2, 0x5d, 0xf8, 0x27, 0x1c, 0x4e, 0x7e, 0x41, 0xff, 0x43, 0x0c, 0x4f, 0x7e, 0x1e, 0x00, 0x00,
0xff, 0xff, 0xad, 0xa3, 0x91, 0xda, 0xe6, 0x61, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@ -568,6 +569,7 @@ type ClientCommandsClient interface {
BlockLatexSetText(ctx context.Context, in *pb.RpcBlockLatexSetTextRequest, opts ...grpc.CallOption) (*pb.RpcBlockLatexSetTextResponse, error)
ProcessCancel(ctx context.Context, in *pb.RpcProcessCancelRequest, opts ...grpc.CallOption) (*pb.RpcProcessCancelResponse, error)
LogSend(ctx context.Context, in *pb.RpcLogSendRequest, opts ...grpc.CallOption) (*pb.RpcLogSendResponse, error)
DebugStat(ctx context.Context, in *pb.RpcDebugStatRequest, opts ...grpc.CallOption) (*pb.RpcDebugStatResponse, error)
DebugTree(ctx context.Context, in *pb.RpcDebugTreeRequest, opts ...grpc.CallOption) (*pb.RpcDebugTreeResponse, error)
DebugTreeHeads(ctx context.Context, in *pb.RpcDebugTreeHeadsRequest, opts ...grpc.CallOption) (*pb.RpcDebugTreeHeadsResponse, error)
DebugSpaceSummary(ctx context.Context, in *pb.RpcDebugSpaceSummaryRequest, opts ...grpc.CallOption) (*pb.RpcDebugSpaceSummaryResponse, error)
@ -2501,6 +2503,15 @@ func (c *clientCommandsClient) LogSend(ctx context.Context, in *pb.RpcLogSendReq
return out, nil
}
func (c *clientCommandsClient) DebugStat(ctx context.Context, in *pb.RpcDebugStatRequest, opts ...grpc.CallOption) (*pb.RpcDebugStatResponse, error) {
out := new(pb.RpcDebugStatResponse)
err := c.cc.Invoke(ctx, "/anytype.ClientCommands/DebugStat", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *clientCommandsClient) DebugTree(ctx context.Context, in *pb.RpcDebugTreeRequest, opts ...grpc.CallOption) (*pb.RpcDebugTreeResponse, error) {
out := new(pb.RpcDebugTreeResponse)
err := c.cc.Invoke(ctx, "/anytype.ClientCommands/DebugTree", in, out, opts...)
@ -2904,6 +2915,7 @@ type ClientCommandsServer interface {
BlockLatexSetText(context.Context, *pb.RpcBlockLatexSetTextRequest) *pb.RpcBlockLatexSetTextResponse
ProcessCancel(context.Context, *pb.RpcProcessCancelRequest) *pb.RpcProcessCancelResponse
LogSend(context.Context, *pb.RpcLogSendRequest) *pb.RpcLogSendResponse
DebugStat(context.Context, *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse
DebugTree(context.Context, *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse
DebugTreeHeads(context.Context, *pb.RpcDebugTreeHeadsRequest) *pb.RpcDebugTreeHeadsResponse
DebugSpaceSummary(context.Context, *pb.RpcDebugSpaceSummaryRequest) *pb.RpcDebugSpaceSummaryResponse
@ -3561,6 +3573,9 @@ func (*UnimplementedClientCommandsServer) ProcessCancel(ctx context.Context, req
func (*UnimplementedClientCommandsServer) LogSend(ctx context.Context, req *pb.RpcLogSendRequest) *pb.RpcLogSendResponse {
return nil
}
func (*UnimplementedClientCommandsServer) DebugStat(ctx context.Context, req *pb.RpcDebugStatRequest) *pb.RpcDebugStatResponse {
return nil
}
func (*UnimplementedClientCommandsServer) DebugTree(ctx context.Context, req *pb.RpcDebugTreeRequest) *pb.RpcDebugTreeResponse {
return nil
}
@ -7424,6 +7439,24 @@ func _ClientCommands_LogSend_Handler(srv interface{}, ctx context.Context, dec f
return interceptor(ctx, in, info, handler)
}
func _ClientCommands_DebugStat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(pb.RpcDebugStatRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(ClientCommandsServer).DebugStat(ctx, in), nil
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/anytype.ClientCommands/DebugStat",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(ClientCommandsServer).DebugStat(ctx, req.(*pb.RpcDebugStatRequest)), nil
}
return interceptor(ctx, in, info, handler)
}
func _ClientCommands_DebugTree_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(pb.RpcDebugTreeRequest)
if err := dec(in); err != nil {
@ -8532,6 +8565,10 @@ var _ClientCommands_serviceDesc = grpc.ServiceDesc{
MethodName: "LogSend",
Handler: _ClientCommands_LogSend_Handler,
},
{
MethodName: "DebugStat",
Handler: _ClientCommands_DebugStat_Handler,
},
{
MethodName: "DebugTree",
Handler: _ClientCommands_DebugTree_Handler,

View file

@ -9,7 +9,7 @@ import (
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
)
const RelationChecksum = "15ce7e760c03abd6582ca7d20c4a04cc31f315cd6067149b32a9966e4f07b3fa"
const RelationChecksum = "182c2b3268428bd633d4a92322070958e778a9c54d4dfd9b66d8ca416f80ca17"
const (
RelationKeyTag domain.RelationKey = "tag"
RelationKeyCamera domain.RelationKey = "camera"
@ -567,13 +567,13 @@ var (
DataSource: model.Relation_derived,
Description: "Human which created this object",
Format: model.RelationFormat_object,
Hidden: true,
Id: "_brcreator",
Key: "creator",
MaxCount: 1,
Name: "Created by",
ReadOnly: true,
ReadOnlyRelation: true,
Revision: 1,
Scope: model.Relation_type,
},
RelationKeyDateOfBirth: {

View file

@ -564,12 +564,13 @@
{
"description": "Human which created this object",
"format": "object",
"hidden": true,
"hidden": false,
"key": "creator",
"maxCount": 1,
"name": "Created by",
"readonly": true,
"source": "derived"
"source": "derived",
"revision": 1
},
{
"description": "Recommended layout for new templates and objects of specific objec",

View file

@ -11,7 +11,7 @@ import (
"github.com/anyproto/anytype-heart/util/vcs"
)
const DefaultLogLevels = "common.commonspace.headsync=INFO;*=WARN"
const DefaultLogLevels = "common.commonspace.headsync=INFO;core.block.editor.spaceview=INFO;*=WARN"
var DefaultCfg = logger.Config{
Production: false,

View file

@ -5,6 +5,7 @@ import (
"sync"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/debugstat"
"github.com/anyproto/any-sync/app/logger"
"github.com/anyproto/any-sync/commonspace"
"github.com/anyproto/any-sync/commonspace/object/acl/aclrecordproto"
@ -53,6 +54,7 @@ type aclObjectManager struct {
modifier dependencies.DetailsModifier
identityService dependencies.IdentityService
indexer dependencies.SpaceIndexer
statService debugstat.StatService
started bool
notificationService aclnotifications.AclNotification
@ -62,6 +64,26 @@ type aclObjectManager struct {
addedParticipants map[string]struct{}
}
func (a *aclObjectManager) ProvideStat() any {
select {
case <-a.waitLoad:
if a.loadErr != nil {
return parseAcl(nil, a.status.SpaceId())
}
return parseAcl(a.sp.CommonSpace().Acl(), a.status.SpaceId())
default:
return parseAcl(nil, a.status.SpaceId())
}
}
func (a *aclObjectManager) StatId() string {
return a.status.SpaceId()
}
func (a *aclObjectManager) StatType() string {
return CName
}
func (a *aclObjectManager) UpdateAcl(aclList list.AclList) {
err := a.processAcl()
if err != nil {
@ -76,6 +98,11 @@ func (a *aclObjectManager) Init(ap *app.App) (err error) {
a.indexer = app.MustComponent[dependencies.SpaceIndexer](ap)
a.status = app.MustComponent[spacestatus.SpaceStatus](ap)
a.notificationService = app.MustComponent[aclnotifications.AclNotification](ap)
a.statService, _ = ap.Component(debugstat.CName).(debugstat.StatService)
if a.statService == nil {
a.statService = debugstat.NewNoOp()
}
a.statService.AddProvider(a)
a.waitLoad = make(chan struct{})
a.wait = make(chan struct{})
return nil
@ -104,6 +131,7 @@ func (a *aclObjectManager) Close(ctx context.Context) (err error) {
a.cancel()
<-a.wait
a.identityService.UnregisterIdentitiesInSpace(a.status.SpaceId())
a.statService.RemoveProvider(a)
return
}

View file

@ -0,0 +1,83 @@
package aclobjectmanager
import "github.com/anyproto/any-sync/commonspace/object/acl/list"
type accountStatus struct {
Permission string `json:"permission"`
Status string `json:"status"`
Identity string `json:"identity"`
}
type aclStat struct {
TotalRecords int `json:"totalRecords"`
Loaded bool `json:"loaded"`
AclHeadId string `json:"aclHeadId"`
SpaceId string `json:"spaceId"`
AclId string
Statuses []accountStatus `json:"statuses"`
}
func parseAcl(acl list.AclList, spaceId string) aclStat {
if acl == nil {
return aclStat{
Loaded: false,
SpaceId: spaceId,
}
}
acl.RLock()
defer acl.RUnlock()
statuses := make([]accountStatus, 0, len(acl.AclState().CurrentAccounts()))
for _, acc := range acl.AclState().CurrentAccounts() {
statuses = append(statuses, accountStatus{
Permission: convPermissionToString(acc.Permissions),
Status: convStatusToString(acc.Status),
Identity: acc.PubKey.Account(),
})
}
totalRecs := len(acl.Records())
headId := acl.Head().Id
return aclStat{
TotalRecords: totalRecs,
Loaded: true,
SpaceId: spaceId,
AclHeadId: headId,
Statuses: statuses,
AclId: acl.Id(),
}
}
func convPermissionToString(perm list.AclPermissions) string {
switch perm {
case list.AclPermissionsNone:
return "none"
case list.AclPermissionsReader:
return "read"
case list.AclPermissionsWriter:
return "write"
case list.AclPermissionsAdmin:
return "admin"
case list.AclPermissionsOwner:
return "owner"
}
return "unknown"
}
func convStatusToString(status list.AclStatus) string {
switch status {
case list.StatusJoining:
return "joining"
case list.StatusActive:
return "active"
case list.StatusDeclined:
return "declined"
case list.StatusRemoved:
return "removed"
case list.StatusRemoving:
return "removing"
case list.StatusCanceled:
return "canceled"
case list.StatusNone:
return "none"
}
return "unknown"
}

View file

@ -5,6 +5,7 @@ import (
"sync"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/app/debugstat"
"github.com/anyproto/anytype-heart/space/internal/techspace"
"github.com/anyproto/anytype-heart/space/spaceinfo"
@ -13,7 +14,7 @@ import (
const CName = "client.components.spacestatus"
type SpaceStatus interface {
app.Component
app.ComponentRunnable
sync.Locker
SpaceId() string
GetLocalStatus() spaceinfo.LocalStatus
@ -38,6 +39,25 @@ type spaceStatus struct {
remoteStatus spaceinfo.RemoteStatus
latestAclHeadId string
techSpace techspace.TechSpace
statService debugstat.StatService
}
func (s *spaceStatus) ProvideStat() any {
return spaceStatusStat{
SpaceId: s.spaceId,
AccountStatus: s.accountStatus.String(),
LocalStatus: s.localStatus.String(),
RemoteStatus: s.remoteStatus.String(),
AclHeadId: s.latestAclHeadId,
}
}
func (s *spaceStatus) StatId() string {
return s.spaceId
}
func (s *spaceStatus) StatType() string {
return CName
}
func New(spaceId string, accountStatus spaceinfo.AccountStatus, aclHeadId string) SpaceStatus {
@ -50,6 +70,20 @@ func New(spaceId string, accountStatus spaceinfo.AccountStatus, aclHeadId string
func (s *spaceStatus) Init(a *app.App) (err error) {
s.techSpace = a.MustComponent(techspace.CName).(techspace.TechSpace)
s.statService, _ = a.Component(debugstat.CName).(debugstat.StatService)
if s.statService == nil {
s.statService = debugstat.NewNoOp()
}
s.statService.AddProvider(s)
return nil
}
func (s *spaceStatus) Run(ctx context.Context) (err error) {
return nil
}
func (s *spaceStatus) Close(ctx context.Context) (err error) {
s.statService.RemoveProvider(s)
return nil
}
@ -144,3 +178,11 @@ func (s *spaceStatus) setCurrentLocalInfo(ctx context.Context) (err error) {
func (s *spaceStatus) SetAccessType(ctx context.Context, acc spaceinfo.AccessType) (err error) {
return s.techSpace.SetAccessType(ctx, s.spaceId, acc)
}
type spaceStatusStat struct {
SpaceId string `json:"spaceId"`
AccountStatus string `json:"accountStatus"`
LocalStatus string `json:"localStatus"`
RemoteStatus string `json:"remoteStatus"`
AclHeadId string `json:"aclHeadId"`
}

View file

@ -53,7 +53,7 @@ func (s *spaceController) Start(ctx context.Context) (err error) {
err = s.loader.Start(ctx)
// This could happen for old accounts
if errors.Is(err, spaceloader.ErrSpaceNotExists) {
err = s.techSpace.SpaceViewCreate(ctx, s.spaceId, false, spaceinfo.AccountStatusUnknown)
err = s.techSpace.SpaceViewCreate(ctx, s.spaceId, false, spaceinfo.SpacePersistentInfo{AccountStatus: spaceinfo.AccountStatusUnknown})
if err != nil {
return
}

View file

@ -36,6 +36,14 @@ type spaceStatusMock struct {
persistentUpdater func(status spaceinfo.AccountStatus)
}
func (s *spaceStatusMock) Run(ctx context.Context) (err error) {
return
}
func (s *spaceStatusMock) Close(ctx context.Context) (err error) {
return
}
func (s *spaceStatusMock) LatestAclHeadId() string {
return ""
}

View file

@ -30,21 +30,41 @@ type Params struct {
func New(app *app.App, params Params) Joiner {
child := app.ChildApp()
params.Status.Lock()
joinHeadId := params.Status.LatestAclHeadId()
params.Status.Unlock()
child.Register(params.Status).
Register(newStatusChanger()).
Register(aclwaiter.New(params.SpaceId, func(acl list.AclList) error {
params.Status.Lock()
defer params.Status.Unlock()
err := params.Status.SetPersistentInfo(context.Background(), spaceinfo.SpacePersistentInfo{
SpaceID: params.SpaceId,
AccountStatus: spaceinfo.AccountStatusActive,
AclHeadId: acl.Head().Id,
})
if err != nil {
params.Log.Error("failed to set persistent status", zap.Error(err))
}
return err
}))
Register(aclwaiter.New(params.SpaceId,
joinHeadId,
// onFinish
func(acl list.AclList) error {
params.Status.Lock()
defer params.Status.Unlock()
err := params.Status.SetPersistentInfo(context.Background(), spaceinfo.SpacePersistentInfo{
SpaceID: params.SpaceId,
AccountStatus: spaceinfo.AccountStatusActive,
AclHeadId: acl.Head().Id,
})
if err != nil {
params.Log.Error("failed to set persistent status", zap.Error(err))
}
return err
},
// onReject
func(acl list.AclList) error {
params.Status.Lock()
defer params.Status.Unlock()
err := params.Status.SetPersistentInfo(context.Background(), spaceinfo.SpacePersistentInfo{
SpaceID: params.SpaceId,
AccountStatus: spaceinfo.AccountStatusDeleted,
AclHeadId: acl.Head().Id,
})
if err != nil {
params.Log.Error("failed to set persistent status", zap.Error(err))
}
return err
}))
return &joiner{
app: child,
}

View file

@ -356,17 +356,17 @@ func (_c *MockTechSpace_SetPersistentInfo_Call) RunAndReturn(run func(context.Co
return _c
}
// SpaceViewCreate provides a mock function with given fields: ctx, spaceId, force, status
func (_m *MockTechSpace) SpaceViewCreate(ctx context.Context, spaceId string, force bool, status spaceinfo.AccountStatus) error {
ret := _m.Called(ctx, spaceId, force, status)
// SpaceViewCreate provides a mock function with given fields: ctx, spaceId, force, info
func (_m *MockTechSpace) SpaceViewCreate(ctx context.Context, spaceId string, force bool, info spaceinfo.SpacePersistentInfo) error {
ret := _m.Called(ctx, spaceId, force, info)
if len(ret) == 0 {
panic("no return value specified for SpaceViewCreate")
}
var r0 error
if rf, ok := ret.Get(0).(func(context.Context, string, bool, spaceinfo.AccountStatus) error); ok {
r0 = rf(ctx, spaceId, force, status)
if rf, ok := ret.Get(0).(func(context.Context, string, bool, spaceinfo.SpacePersistentInfo) error); ok {
r0 = rf(ctx, spaceId, force, info)
} else {
r0 = ret.Error(0)
}
@ -383,14 +383,14 @@ type MockTechSpace_SpaceViewCreate_Call struct {
// - ctx context.Context
// - spaceId string
// - force bool
// - status spaceinfo.AccountStatus
func (_e *MockTechSpace_Expecter) SpaceViewCreate(ctx interface{}, spaceId interface{}, force interface{}, status interface{}) *MockTechSpace_SpaceViewCreate_Call {
return &MockTechSpace_SpaceViewCreate_Call{Call: _e.mock.On("SpaceViewCreate", ctx, spaceId, force, status)}
// - info spaceinfo.SpacePersistentInfo
func (_e *MockTechSpace_Expecter) SpaceViewCreate(ctx interface{}, spaceId interface{}, force interface{}, info interface{}) *MockTechSpace_SpaceViewCreate_Call {
return &MockTechSpace_SpaceViewCreate_Call{Call: _e.mock.On("SpaceViewCreate", ctx, spaceId, force, info)}
}
func (_c *MockTechSpace_SpaceViewCreate_Call) Run(run func(ctx context.Context, spaceId string, force bool, status spaceinfo.AccountStatus)) *MockTechSpace_SpaceViewCreate_Call {
func (_c *MockTechSpace_SpaceViewCreate_Call) Run(run func(ctx context.Context, spaceId string, force bool, info spaceinfo.SpacePersistentInfo)) *MockTechSpace_SpaceViewCreate_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(string), args[2].(bool), args[3].(spaceinfo.AccountStatus))
run(args[0].(context.Context), args[1].(string), args[2].(bool), args[3].(spaceinfo.SpacePersistentInfo))
})
return _c
}
@ -400,7 +400,7 @@ func (_c *MockTechSpace_SpaceViewCreate_Call) Return(err error) *MockTechSpace_S
return _c
}
func (_c *MockTechSpace_SpaceViewCreate_Call) RunAndReturn(run func(context.Context, string, bool, spaceinfo.AccountStatus) error) *MockTechSpace_SpaceViewCreate_Call {
func (_c *MockTechSpace_SpaceViewCreate_Call) RunAndReturn(run func(context.Context, string, bool, spaceinfo.SpacePersistentInfo) error) *MockTechSpace_SpaceViewCreate_Call {
_c.Call.Return(run)
return _c
}

View file

@ -42,7 +42,7 @@ type TechSpace interface {
Close(ctx context.Context) (err error)
TechSpaceId() string
SpaceViewCreate(ctx context.Context, spaceId string, force bool, status spaceinfo.AccountStatus) (err error)
SpaceViewCreate(ctx context.Context, spaceId string, force bool, info spaceinfo.SpacePersistentInfo) (err error)
SpaceViewExists(ctx context.Context, spaceId string) (exists bool, err error)
SetLocalInfo(ctx context.Context, info spaceinfo.SpaceLocalInfo) (err error)
SetAccessType(ctx context.Context, spaceId string, acc spaceinfo.AccessType) (err error)
@ -136,9 +136,9 @@ func (s *techSpace) SetPersistentInfo(ctx context.Context, info spaceinfo.SpaceP
})
}
func (s *techSpace) SpaceViewCreate(ctx context.Context, spaceId string, force bool, status spaceinfo.AccountStatus) (err error) {
func (s *techSpace) SpaceViewCreate(ctx context.Context, spaceId string, force bool, info spaceinfo.SpacePersistentInfo) (err error) {
if force {
return s.spaceViewCreate(ctx, spaceId, status)
return s.spaceViewCreate(ctx, spaceId, info)
}
viewId, err := s.getViewIdLocked(ctx, spaceId)
if err != nil {
@ -146,7 +146,7 @@ func (s *techSpace) SpaceViewCreate(ctx context.Context, spaceId string, force b
}
_, err = s.objectCache.GetObject(ctx, viewId)
if err != nil { // TODO: check specific error
return s.spaceViewCreate(ctx, spaceId, status)
return s.spaceViewCreate(ctx, spaceId, info)
}
return ErrSpaceViewExists
}
@ -173,14 +173,17 @@ func (s *techSpace) SpaceViewId(spaceId string) (string, error) {
return s.getViewIdLocked(context.TODO(), spaceId)
}
func (s *techSpace) spaceViewCreate(ctx context.Context, spaceID string, status spaceinfo.AccountStatus) (err error) {
func (s *techSpace) spaceViewCreate(ctx context.Context, spaceID string, info spaceinfo.SpacePersistentInfo) (err error) {
uniqueKey, err := domain.NewUniqueKey(smartblock.SmartBlockTypeSpaceView, spaceID)
if err != nil {
return
}
initFunc := func(id string) *editorsb.InitContext {
st := state.NewDoc(id, nil).(*state.State)
st.SetDetail(bundle.RelationKeySpaceAccountStatus.String(), pbtypes.Int64(int64(status)))
st.SetDetail(bundle.RelationKeySpaceAccountStatus.String(), pbtypes.Int64(int64(info.AccountStatus)))
if info.AclHeadId != "" {
st.SetDetail(bundle.RelationKeyLatestAclHeadId.String(), pbtypes.String(info.AclHeadId))
}
return &editorsb.InitContext{Ctx: ctx, SpaceID: s.techCore.Id(), State: st}
}
_, err = s.objectCache.DeriveTreeObject(ctx, objectcache.TreeDerivationParams{

View file

@ -78,7 +78,7 @@ func TestTechSpace_SpaceViewCreate(t *testing.T) {
fx.objectCache.EXPECT().GetObject(ctx, viewId).Return(nil, fmt.Errorf("not found"))
fx.objectCache.EXPECT().DeriveTreeObject(ctx, mock.Anything).Return(view, nil)
require.NoError(t, fx.SpaceViewCreate(ctx, spaceId, false, spaceinfo.AccountStatusUnknown))
require.NoError(t, fx.SpaceViewCreate(ctx, spaceId, false, spaceinfo.SpacePersistentInfo{AccountStatus: spaceinfo.AccountStatusUnknown}))
})
t.Run("err spaceView exists", func(t *testing.T) {
@ -88,7 +88,7 @@ func TestTechSpace_SpaceViewCreate(t *testing.T) {
fx.expectDeriveTreePayload(viewId)
fx.objectCache.EXPECT().GetObject(ctx, viewId).Return(view, nil)
assert.EqualError(t, fx.SpaceViewCreate(ctx, spaceId, false, spaceinfo.AccountStatusUnknown), ErrSpaceViewExists.Error())
assert.EqualError(t, fx.SpaceViewCreate(ctx, spaceId, false, spaceinfo.SpacePersistentInfo{AccountStatus: spaceinfo.AccountStatusUnknown}), ErrSpaceViewExists.Error())
})
}

View file

@ -7,7 +7,7 @@ import (
"github.com/anyproto/anytype-heart/space/spaceinfo"
)
func (s *service) Join(ctx context.Context, id string) error {
func (s *service) Join(ctx context.Context, id, aclHeadId string) error {
s.mu.Lock()
waiter, exists := s.waiting[id]
if exists {
@ -23,6 +23,7 @@ func (s *service) Join(ctx context.Context, id string) error {
return ctrl.SetInfo(ctx, spaceinfo.SpacePersistentInfo{
SpaceID: id,
AccountStatus: spaceinfo.AccountStatusJoining,
AclHeadId: aclHeadId,
})
}
return nil
@ -32,7 +33,7 @@ func (s *service) Join(ctx context.Context, id string) error {
wait: wait,
}
s.mu.Unlock()
ctrl, err := s.factory.CreateInvitingSpace(ctx, id)
ctrl, err := s.factory.CreateInvitingSpace(ctx, id, aclHeadId)
if err != nil {
s.mu.Lock()
close(wait)

View file

@ -539,17 +539,17 @@ func (_c *MockService_Init_Call) RunAndReturn(run func(*app.App) error) *MockSer
return _c
}
// Join provides a mock function with given fields: ctx, id
func (_m *MockService) Join(ctx context.Context, id string) error {
ret := _m.Called(ctx, id)
// Join provides a mock function with given fields: ctx, id, aclHeadId
func (_m *MockService) Join(ctx context.Context, id string, aclHeadId string) error {
ret := _m.Called(ctx, id, aclHeadId)
if len(ret) == 0 {
panic("no return value specified for Join")
}
var r0 error
if rf, ok := ret.Get(0).(func(context.Context, string) error); ok {
r0 = rf(ctx, id)
if rf, ok := ret.Get(0).(func(context.Context, string, string) error); ok {
r0 = rf(ctx, id, aclHeadId)
} else {
r0 = ret.Error(0)
}
@ -565,23 +565,24 @@ type MockService_Join_Call struct {
// Join is a helper method to define mock.On call
// - ctx context.Context
// - id string
func (_e *MockService_Expecter) Join(ctx interface{}, id interface{}) *MockService_Join_Call {
return &MockService_Join_Call{Call: _e.mock.On("Join", ctx, id)}
// - aclHeadId string
func (_e *MockService_Expecter) Join(ctx interface{}, id interface{}, aclHeadId interface{}) *MockService_Join_Call {
return &MockService_Join_Call{Call: _e.mock.On("Join", ctx, id, aclHeadId)}
}
func (_c *MockService_Join_Call) Run(run func(ctx context.Context, id string)) *MockService_Join_Call {
func (_c *MockService_Join_Call) Run(run func(ctx context.Context, id string, aclHeadId string)) *MockService_Join_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(string))
run(args[0].(context.Context), args[1].(string), args[2].(string))
})
return _c
}
func (_c *MockService_Join_Call) Return(err error) *MockService_Join_Call {
_c.Call.Return(err)
func (_c *MockService_Join_Call) Return(_a0 error) *MockService_Join_Call {
_c.Call.Return(_a0)
return _c
}
func (_c *MockService_Join_Call) RunAndReturn(run func(context.Context, string) error) *MockService_Join_Call {
func (_c *MockService_Join_Call) RunAndReturn(run func(context.Context, string, string) error) *MockService_Join_Call {
_c.Call.Return(run)
return _c
}
@ -733,6 +734,53 @@ func (_c *MockService_SpaceViewId_Call) RunAndReturn(run func(string) (string, e
return _c
}
// TechSpace provides a mock function with given fields:
func (_m *MockService) TechSpace() *clientspace.TechSpace {
ret := _m.Called()
if len(ret) == 0 {
panic("no return value specified for TechSpace")
}
var r0 *clientspace.TechSpace
if rf, ok := ret.Get(0).(func() *clientspace.TechSpace); ok {
r0 = rf()
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*clientspace.TechSpace)
}
}
return r0
}
// MockService_TechSpace_Call is a *mock.Call that shadows Run/Return methods with type explicit version for method 'TechSpace'
type MockService_TechSpace_Call struct {
*mock.Call
}
// TechSpace is a helper method to define mock.On call
func (_e *MockService_Expecter) TechSpace() *MockService_TechSpace_Call {
return &MockService_TechSpace_Call{Call: _e.mock.On("TechSpace")}
}
func (_c *MockService_TechSpace_Call) Run(run func()) *MockService_TechSpace_Call {
_c.Call.Run(func(args mock.Arguments) {
run()
})
return _c
}
func (_c *MockService_TechSpace_Call) Return(_a0 *clientspace.TechSpace) *MockService_TechSpace_Call {
_c.Call.Return(_a0)
return _c
}
func (_c *MockService_TechSpace_Call) RunAndReturn(run func() *clientspace.TechSpace) *MockService_TechSpace_Call {
_c.Call.Return(run)
return _c
}
// TechSpaceId provides a mock function with given fields:
func (_m *MockService) TechSpaceId() string {
ret := _m.Called()

View file

@ -49,11 +49,12 @@ type isNewAccount interface {
type Service interface {
Create(ctx context.Context) (space clientspace.Space, err error)
Join(ctx context.Context, id string) (err error)
Join(ctx context.Context, id, aclHeadId string) error
CancelLeave(ctx context.Context, id string) (err error)
Get(ctx context.Context, id string) (space clientspace.Space, err error)
Delete(ctx context.Context, id string) (err error)
TechSpaceId() string
TechSpace() *clientspace.TechSpace
GetPersonalSpace(ctx context.Context) (space clientspace.Space, err error)
GetTechSpace(ctx context.Context) (space clientspace.Space, err error)
SpaceViewId(spaceId string) (spaceViewId string, err error)
@ -103,6 +104,10 @@ func (s *service) Delete(ctx context.Context, id string) (err error) {
return nil
}
func (s *service) TechSpace() *clientspace.TechSpace {
return s.techSpace
}
func (s *service) Init(a *app.App) (err error) {
s.newAccount = app.MustComponent[isNewAccount](a).IsNewAccount()
s.factory = app.MustComponent[spacefactory.SpaceFactory](a)

View file

@ -86,9 +86,9 @@ func (_c *MockSpaceFactory_CreateAndSetTechSpace_Call) RunAndReturn(run func(con
return _c
}
// CreateInvitingSpace provides a mock function with given fields: ctx, id
func (_m *MockSpaceFactory) CreateInvitingSpace(ctx context.Context, id string) (spacecontroller.SpaceController, error) {
ret := _m.Called(ctx, id)
// CreateInvitingSpace provides a mock function with given fields: ctx, id, aclHeadId
func (_m *MockSpaceFactory) CreateInvitingSpace(ctx context.Context, id string, aclHeadId string) (spacecontroller.SpaceController, error) {
ret := _m.Called(ctx, id, aclHeadId)
if len(ret) == 0 {
panic("no return value specified for CreateInvitingSpace")
@ -96,19 +96,19 @@ func (_m *MockSpaceFactory) CreateInvitingSpace(ctx context.Context, id string)
var r0 spacecontroller.SpaceController
var r1 error
if rf, ok := ret.Get(0).(func(context.Context, string) (spacecontroller.SpaceController, error)); ok {
return rf(ctx, id)
if rf, ok := ret.Get(0).(func(context.Context, string, string) (spacecontroller.SpaceController, error)); ok {
return rf(ctx, id, aclHeadId)
}
if rf, ok := ret.Get(0).(func(context.Context, string) spacecontroller.SpaceController); ok {
r0 = rf(ctx, id)
if rf, ok := ret.Get(0).(func(context.Context, string, string) spacecontroller.SpaceController); ok {
r0 = rf(ctx, id, aclHeadId)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(spacecontroller.SpaceController)
}
}
if rf, ok := ret.Get(1).(func(context.Context, string) error); ok {
r1 = rf(ctx, id)
if rf, ok := ret.Get(1).(func(context.Context, string, string) error); ok {
r1 = rf(ctx, id, aclHeadId)
} else {
r1 = ret.Error(1)
}
@ -124,13 +124,14 @@ type MockSpaceFactory_CreateInvitingSpace_Call struct {
// CreateInvitingSpace is a helper method to define mock.On call
// - ctx context.Context
// - id string
func (_e *MockSpaceFactory_Expecter) CreateInvitingSpace(ctx interface{}, id interface{}) *MockSpaceFactory_CreateInvitingSpace_Call {
return &MockSpaceFactory_CreateInvitingSpace_Call{Call: _e.mock.On("CreateInvitingSpace", ctx, id)}
// - aclHeadId string
func (_e *MockSpaceFactory_Expecter) CreateInvitingSpace(ctx interface{}, id interface{}, aclHeadId interface{}) *MockSpaceFactory_CreateInvitingSpace_Call {
return &MockSpaceFactory_CreateInvitingSpace_Call{Call: _e.mock.On("CreateInvitingSpace", ctx, id, aclHeadId)}
}
func (_c *MockSpaceFactory_CreateInvitingSpace_Call) Run(run func(ctx context.Context, id string)) *MockSpaceFactory_CreateInvitingSpace_Call {
func (_c *MockSpaceFactory_CreateInvitingSpace_Call) Run(run func(ctx context.Context, id string, aclHeadId string)) *MockSpaceFactory_CreateInvitingSpace_Call {
_c.Call.Run(func(args mock.Arguments) {
run(args[0].(context.Context), args[1].(string))
run(args[0].(context.Context), args[1].(string), args[2].(string))
})
return _c
}
@ -140,7 +141,7 @@ func (_c *MockSpaceFactory_CreateInvitingSpace_Call) Return(sp spacecontroller.S
return _c
}
func (_c *MockSpaceFactory_CreateInvitingSpace_Call) RunAndReturn(run func(context.Context, string) (spacecontroller.SpaceController, error)) *MockSpaceFactory_CreateInvitingSpace_Call {
func (_c *MockSpaceFactory_CreateInvitingSpace_Call) RunAndReturn(run func(context.Context, string, string) (spacecontroller.SpaceController, error)) *MockSpaceFactory_CreateInvitingSpace_Call {
_c.Call.Return(run)
return _c
}

View file

@ -29,7 +29,7 @@ type SpaceFactory interface {
NewShareableSpace(ctx context.Context, id string, info spaceinfo.SpacePersistentInfo) (spacecontroller.SpaceController, error)
CreateMarketplaceSpace(ctx context.Context) (sp spacecontroller.SpaceController, err error)
CreateAndSetTechSpace(ctx context.Context) (*clientspace.TechSpace, error)
CreateInvitingSpace(ctx context.Context, id string) (sp spacecontroller.SpaceController, err error)
CreateInvitingSpace(ctx context.Context, id, aclHeadId string) (sp spacecontroller.SpaceController, err error)
}
const CName = "client.space.spacefactory"
@ -74,7 +74,7 @@ func (s *spaceFactory) CreatePersonalSpace(ctx context.Context, metadata []byte)
if err != nil {
return
}
if err := s.techSpace.SpaceViewCreate(ctx, coreSpace.Id(), true, spaceinfo.AccountStatusUnknown); err != nil {
if err := s.techSpace.SpaceViewCreate(ctx, coreSpace.Id(), true, spaceinfo.SpacePersistentInfo{AccountStatus: spaceinfo.AccountStatusUnknown}); err != nil {
if errors.Is(err, techspace.ErrSpaceViewExists) {
return s.NewPersonalSpace(ctx, metadata)
}
@ -131,17 +131,24 @@ func (s *spaceFactory) NewShareableSpace(ctx context.Context, id string, info sp
return ctrl, err
}
func (s *spaceFactory) CreateInvitingSpace(ctx context.Context, id string) (sp spacecontroller.SpaceController, err error) {
func (s *spaceFactory) CreateInvitingSpace(ctx context.Context, id, aclHeadId string) (sp spacecontroller.SpaceController, err error) {
exists, err := s.techSpace.SpaceViewExists(ctx, id)
if err != nil {
return
}
if !exists {
if err := s.techSpace.SpaceViewCreate(ctx, id, true, spaceinfo.AccountStatusJoining); err != nil {
if err := s.techSpace.SpaceViewCreate(ctx, id, true, spaceinfo.SpacePersistentInfo{
AccountStatus: spaceinfo.AccountStatusJoining,
AclHeadId: aclHeadId,
}); err != nil {
return nil, err
}
}
ctrl, err := shareablespace.NewSpaceController(id, spaceinfo.SpacePersistentInfo{SpaceID: id, AccountStatus: spaceinfo.AccountStatusJoining}, s.app)
ctrl, err := shareablespace.NewSpaceController(id, spaceinfo.SpacePersistentInfo{
SpaceID: id,
AccountStatus: spaceinfo.AccountStatusJoining,
AclHeadId: aclHeadId,
}, s.app)
if err != nil {
return nil, err
}
@ -154,7 +161,7 @@ func (s *spaceFactory) CreateShareableSpace(ctx context.Context, id string) (sp
if err != nil {
return
}
if err := s.techSpace.SpaceViewCreate(ctx, id, true, spaceinfo.AccountStatusUnknown); err != nil {
if err := s.techSpace.SpaceViewCreate(ctx, id, true, spaceinfo.SpacePersistentInfo{AccountStatus: spaceinfo.AccountStatusUnknown}); err != nil {
return nil, err
}
ctrl, err := shareablespace.NewSpaceController(id, spaceinfo.SpacePersistentInfo{SpaceID: id, AccountStatus: spaceinfo.AccountStatusUnknown}, s.app)

View file

@ -11,6 +11,20 @@ const (
LocalStatusMissing = LocalStatus(model.SpaceStatus_Missing)
)
func (l LocalStatus) String() string {
switch l {
case LocalStatusUnknown:
return "Unknown"
case LocalStatusLoading:
return "Loading"
case LocalStatusOk:
return "Ok"
case LocalStatusMissing:
return "Missing"
}
return ""
}
type RemoteStatus int
const (
@ -25,6 +39,22 @@ func (r RemoteStatus) IsDeleted() bool {
return r == RemoteStatusDeleted || r == RemoteStatusWaitingDeletion
}
func (r RemoteStatus) String() string {
switch r {
case RemoteStatusUnknown:
return "Unknown"
case RemoteStatusOk:
return "Ok"
case RemoteStatusWaitingDeletion:
return "WaitingDeletion"
case RemoteStatusDeleted:
return "Deleted"
case RemoteStatusError:
return "Error"
}
return ""
}
type AccountStatus int
const (
@ -35,6 +65,22 @@ const (
AccountStatusRemoving = AccountStatus(model.SpaceStatus_SpaceRemoving)
)
func (a AccountStatus) String() string {
switch a {
case AccountStatusUnknown:
return "Unknown"
case AccountStatusDeleted:
return "Deleted"
case AccountStatusJoining:
return "Joining"
case AccountStatusActive:
return "Active"
case AccountStatusRemoving:
return "Removing"
}
return ""
}
type SpaceLocalInfo struct {
SpaceID string
LocalStatus LocalStatus