1
0
Fork 0
mirror of https://github.com/anyproto/anytype-heart.git synced 2025-06-11 18:20:33 +09:00

GO-2584: add ObjectCreateFromUrl command

Signed-off-by: AnastasiaShemyakinskaya <shem98a@mail.ru>
This commit is contained in:
AnastasiaShemyakinskaya 2023-12-27 15:30:17 +03:00
parent d660425cc5
commit 1504c5ccbc
No known key found for this signature in database
GPG key ID: CCD60ED83B103281
19 changed files with 2803 additions and 1670 deletions

View file

@ -25,258 +25,259 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
func init() { proto.RegisterFile("pb/protos/service/service.proto", fileDescriptor_93a29dc403579097) }
var fileDescriptor_93a29dc403579097 = []byte{
// 4002 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9c, 0xdd, 0x6f, 0x1d, 0x47,
0xd9, 0xc0, 0x7b, 0x6e, 0xde, 0xbe, 0xef, 0xf6, 0x6d, 0x29, 0x5b, 0x08, 0x6d, 0x68, 0x9d, 0x34,
0x4d, 0x6c, 0x27, 0x8e, 0x8f, 0xdd, 0x24, 0xfd, 0xa0, 0x45, 0x42, 0x8e, 0x1d, 0xa7, 0x56, 0x63,
0x27, 0xf8, 0x38, 0x89, 0x54, 0x09, 0x89, 0xf5, 0x9e, 0xf1, 0xf1, 0xe2, 0x3d, 0x3b, 0xdb, 0xdd,
0x39, 0x76, 0x0c, 0x02, 0x81, 0x40, 0x20, 0x10, 0x08, 0xc4, 0xc7, 0x15, 0x17, 0x48, 0xfc, 0x05,
0xfc, 0x19, 0x5c, 0xf6, 0x92, 0x4b, 0x68, 0xff, 0x11, 0xb4, 0x3b, 0xcf, 0xce, 0xc7, 0xb3, 0xf3,
0xcc, 0xee, 0xe9, 0x55, 0xa2, 0xf3, 0xfc, 0x9e, 0x8f, 0xd9, 0x79, 0x66, 0xe6, 0x99, 0x99, 0x5d,
0x07, 0x97, 0xf2, 0xc3, 0xb5, 0xbc, 0xe0, 0x82, 0x97, 0x6b, 0x25, 0x2b, 0x4e, 0x93, 0x98, 0x35,
0xff, 0x0e, 0xeb, 0x9f, 0xc3, 0xe7, 0xa3, 0xec, 0x5c, 0x9c, 0xe7, 0xec, 0xe2, 0xab, 0x9a, 0x8c,
0xf9, 0x74, 0x1a, 0x65, 0xe3, 0x52, 0x22, 0x17, 0x2f, 0x68, 0x09, 0x3b, 0x65, 0x99, 0x80, 0xdf,
0x6f, 0xfd, 0xe7, 0x1f, 0x83, 0xe0, 0xa5, 0xcd, 0x34, 0x61, 0x99, 0xd8, 0x04, 0x8d, 0xf0, 0x93,
0xe0, 0xc5, 0x8d, 0x3c, 0xbf, 0xcf, 0xc4, 0x13, 0x56, 0x94, 0x09, 0xcf, 0xc2, 0xb7, 0x86, 0xe0,
0x60, 0xb8, 0x9f, 0xc7, 0xc3, 0x8d, 0x3c, 0x1f, 0x6a, 0xe1, 0x70, 0x9f, 0x7d, 0x3a, 0x63, 0xa5,
0xb8, 0x78, 0xd5, 0x0f, 0x95, 0x39, 0xcf, 0x4a, 0x16, 0x1e, 0x05, 0x5f, 0xdd, 0xc8, 0xf3, 0x11,
0x13, 0x5b, 0xac, 0x6a, 0xc0, 0x48, 0x44, 0x82, 0x85, 0x4b, 0x2d, 0x55, 0x1b, 0x50, 0x3e, 0x96,
0xbb, 0x41, 0xf0, 0x73, 0x10, 0xbc, 0x50, 0xf9, 0x39, 0x9e, 0x89, 0x31, 0x3f, 0xcb, 0xc2, 0x37,
0xdb, 0x8a, 0x20, 0x52, 0xb6, 0xaf, 0xf8, 0x10, 0xb0, 0xfa, 0x34, 0xf8, 0xff, 0xa7, 0x51, 0x9a,
0x32, 0xb1, 0x59, 0xb0, 0x2a, 0x70, 0x5b, 0x47, 0x8a, 0x86, 0x52, 0xa6, 0xec, 0xbe, 0xe5, 0x65,
0xc0, 0xf0, 0x27, 0xc1, 0x8b, 0x52, 0xb2, 0xcf, 0x62, 0x7e, 0xca, 0x8a, 0xd0, 0xa9, 0x05, 0x42,
0xe2, 0x91, 0xb7, 0x20, 0x6c, 0x7b, 0x93, 0x67, 0xa7, 0xac, 0x10, 0x6e, 0xdb, 0x20, 0xf4, 0xdb,
0xd6, 0x10, 0xd8, 0x4e, 0x83, 0x57, 0xcc, 0x07, 0x32, 0x62, 0x65, 0x9d, 0x30, 0xd7, 0xe9, 0x36,
0x03, 0xa2, 0xfc, 0xdc, 0xe8, 0x83, 0x82, 0xb7, 0x24, 0x08, 0xc1, 0x5b, 0xca, 0x4b, 0xe5, 0x6c,
0xd9, 0x69, 0xc1, 0x20, 0x94, 0xaf, 0xeb, 0x3d, 0x48, 0x70, 0xf5, 0xfd, 0xe0, 0x2b, 0x4f, 0x79,
0x71, 0x52, 0xe6, 0x51, 0xcc, 0xa0, 0xb3, 0xaf, 0xd9, 0xda, 0x8d, 0x14, 0xf7, 0xf7, 0x62, 0x17,
0x66, 0x74, 0x4b, 0x23, 0x7c, 0x98, 0x33, 0x3c, 0xca, 0xb4, 0x62, 0x25, 0xa4, 0xba, 0x05, 0x43,
0x60, 0xfb, 0x24, 0x08, 0xb5, 0xed, 0xc3, 0x1f, 0xb0, 0x58, 0x6c, 0x8c, 0xc7, 0xb8, 0x57, 0xb4,
0x6e, 0x4d, 0x0c, 0x37, 0xc6, 0x63, 0xaa, 0x57, 0xdc, 0x28, 0x38, 0x3b, 0x0b, 0x2e, 0x20, 0x67,
0x0f, 0x92, 0xb2, 0x76, 0xb8, 0xea, 0xb7, 0x02, 0x98, 0x72, 0x3a, 0xec, 0x8b, 0x83, 0xe3, 0x9f,
0x0e, 0x82, 0xd7, 0x1c, 0x9e, 0xf7, 0xd9, 0x94, 0x9f, 0xb2, 0x70, 0xbd, 0xdb, 0x9a, 0x24, 0x95,
0xff, 0xb7, 0xe7, 0xd0, 0x70, 0xa4, 0xc9, 0x88, 0xa5, 0x2c, 0x16, 0x64, 0x9a, 0x48, 0x71, 0x67,
0x9a, 0x28, 0xcc, 0x18, 0x61, 0x8d, 0xf0, 0x3e, 0x13, 0x9b, 0xb3, 0xa2, 0x60, 0x99, 0x20, 0xfb,
0x52, 0x23, 0x9d, 0x7d, 0x69, 0xa1, 0x8e, 0xf6, 0xdc, 0x67, 0x62, 0x23, 0x4d, 0xc9, 0xf6, 0x48,
0x71, 0x67, 0x7b, 0x14, 0x06, 0x1e, 0xe2, 0xe0, 0x65, 0xe3, 0x89, 0x89, 0x9d, 0xec, 0x88, 0x87,
0xf4, 0xb3, 0xa8, 0xe5, 0xca, 0xc7, 0x52, 0x27, 0xe7, 0x68, 0xc6, 0xbd, 0x67, 0x39, 0x2f, 0xe8,
0x6e, 0x91, 0xe2, 0xce, 0x66, 0x28, 0x0c, 0x3c, 0x7c, 0x2f, 0x78, 0x69, 0x23, 0x8e, 0xf9, 0x2c,
0x53, 0x33, 0x36, 0x5a, 0xff, 0xa4, 0xb0, 0x35, 0x65, 0x5f, 0xeb, 0xa0, 0xf4, 0xe4, 0x00, 0x32,
0x98, 0x7c, 0xde, 0x72, 0xea, 0xa1, 0xa9, 0xe7, 0xaa, 0x1f, 0x6a, 0xd9, 0xde, 0x62, 0x29, 0x23,
0x6d, 0x4b, 0x61, 0x87, 0x6d, 0x05, 0x81, 0xed, 0x22, 0xf8, 0xba, 0x7a, 0x2c, 0xd5, 0x4a, 0x51,
0xcb, 0xab, 0x49, 0x7a, 0x85, 0x68, 0xb7, 0x09, 0x29, 0x5f, 0x37, 0xfb, 0xc1, 0xad, 0xf6, 0xc0,
0x08, 0x74, 0xb7, 0x07, 0x8d, 0xbf, 0xab, 0x7e, 0x08, 0x6c, 0xff, 0x66, 0x10, 0xbc, 0x01, 0xb2,
0x7b, 0x59, 0x74, 0x98, 0xb2, 0x07, 0x3c, 0x8e, 0xd2, 0x3d, 0x26, 0xce, 0x78, 0x71, 0x32, 0x3a,
0xcf, 0xe2, 0xf0, 0xb6, 0xd3, 0x8e, 0x1b, 0x56, 0xce, 0xef, 0xcc, 0xa7, 0x64, 0xd4, 0x34, 0xd0,
0x50, 0xc1, 0x73, 0x5c, 0xd3, 0x34, 0x2d, 0x10, 0x3c, 0xa7, 0x6a, 0x1a, 0x1b, 0x69, 0x59, 0xdd,
0xad, 0xa6, 0x4d, 0xb7, 0xd5, 0x5d, 0x73, 0x9e, 0xbc, 0xe2, 0x43, 0xf4, 0xb4, 0xd5, 0x24, 0x30,
0xcf, 0x8e, 0x92, 0xc9, 0xe3, 0x7c, 0x5c, 0xa5, 0xf1, 0x75, 0x77, 0x86, 0x1a, 0x08, 0x31, 0x6d,
0x11, 0x28, 0x78, 0xfb, 0xdd, 0x20, 0x58, 0xb0, 0x87, 0xe3, 0x76, 0xc1, 0xa7, 0x0f, 0xd8, 0x24,
0x8a, 0xcf, 0x61, 0xfc, 0xdf, 0xf1, 0x0d, 0x3c, 0x4c, 0xab, 0x20, 0xde, 0x99, 0x53, 0x0b, 0xe2,
0xf9, 0xdb, 0x20, 0xb8, 0xda, 0x34, 0xff, 0x38, 0xca, 0x26, 0x0c, 0xfa, 0x53, 0x46, 0xbf, 0x91,
0x8d, 0xf7, 0x59, 0x29, 0xa2, 0x42, 0x84, 0x1f, 0xb8, 0x1b, 0xe9, 0xd3, 0x51, 0xb1, 0x7d, 0xf8,
0xa5, 0x74, 0x75, 0xaf, 0x8f, 0xaa, 0x89, 0x0d, 0xa6, 0x00, 0xbb, 0xd7, 0x6b, 0x09, 0x9e, 0x00,
0xae, 0xf8, 0x10, 0xb0, 0xfa, 0xdd, 0x20, 0x90, 0x8b, 0x65, 0x5d, 0xd0, 0x5c, 0xb6, 0x34, 0x60,
0x15, 0xb5, 0xaa, 0x99, 0x37, 0x3d, 0x84, 0x0e, 0x54, 0xfe, 0x5e, 0xd7, 0x69, 0xa1, 0x53, 0xa3,
0x16, 0x11, 0x81, 0x22, 0x04, 0x07, 0x3a, 0x3a, 0xe6, 0x67, 0xee, 0x40, 0x2b, 0x89, 0x3f, 0x50,
0x20, 0xf4, 0xde, 0x00, 0x02, 0x75, 0xed, 0x0d, 0x9a, 0x30, 0x7c, 0x7b, 0x03, 0xcc, 0x80, 0x61,
0x1e, 0x7c, 0xcd, 0x34, 0x7c, 0x97, 0xf3, 0x93, 0x69, 0x54, 0x9c, 0x84, 0x37, 0x68, 0xe5, 0x86,
0x51, 0x8e, 0x56, 0x7a, 0xb1, 0x7a, 0xf5, 0x34, 0x1d, 0x8e, 0x18, 0x5e, 0x3d, 0x2d, 0xfd, 0x11,
0xa3, 0x56, 0x4f, 0x07, 0x86, 0x3b, 0xf5, 0x7e, 0x11, 0xe5, 0xc7, 0xee, 0x4e, 0xad, 0x45, 0xfe,
0x4e, 0x6d, 0x10, 0xdc, 0x03, 0x23, 0x16, 0x15, 0xf1, 0xb1, 0xbb, 0x07, 0xa4, 0xcc, 0xdf, 0x03,
0x8a, 0xd1, 0xab, 0x9a, 0x69, 0x78, 0x34, 0x3b, 0x2c, 0xe3, 0x22, 0x39, 0x64, 0xe1, 0x0a, 0xad,
0xad, 0x20, 0x62, 0x55, 0x23, 0x61, 0xbd, 0xd7, 0x01, 0x9f, 0x8d, 0x6c, 0x67, 0x5c, 0xa2, 0xbd,
0x4e, 0x63, 0xc3, 0x20, 0x88, 0xbd, 0x8e, 0x9b, 0xc4, 0xcd, 0xbb, 0x5f, 0xf0, 0x59, 0x5e, 0x76,
0x34, 0x0f, 0x41, 0xfe, 0xe6, 0xb5, 0x61, 0xf0, 0xf9, 0x2c, 0xf8, 0x86, 0xf9, 0x48, 0x1f, 0x67,
0xa5, 0xf2, 0xba, 0x4a, 0x3f, 0x27, 0x03, 0x23, 0x76, 0x0d, 0x1e, 0x5c, 0x17, 0xa0, 0x8d, 0x67,
0xb1, 0xc5, 0x44, 0x94, 0xa4, 0x65, 0xb8, 0xe8, 0xb6, 0xd1, 0xc8, 0x89, 0x02, 0xd4, 0xc5, 0xe1,
0x21, 0xb4, 0x35, 0xcb, 0xd3, 0x24, 0x6e, 0x6f, 0x1f, 0x41, 0x57, 0x89, 0xfd, 0x43, 0xc8, 0xc4,
0xf4, 0x02, 0xab, 0x9a, 0x21, 0xff, 0x73, 0x70, 0x9e, 0xe3, 0x05, 0x56, 0x47, 0xa8, 0x11, 0x62,
0x81, 0x25, 0x50, 0xdc, 0x9e, 0x11, 0x13, 0x0f, 0xa2, 0x73, 0x3e, 0x23, 0xa6, 0x04, 0x25, 0xf6,
0xb7, 0xc7, 0xc4, 0xc0, 0xc3, 0x2c, 0xb8, 0xa0, 0x3c, 0xec, 0x64, 0x82, 0x15, 0x59, 0x94, 0x6e,
0xa7, 0xd1, 0xa4, 0x0c, 0x89, 0x71, 0x63, 0x53, 0xca, 0xdf, 0x6a, 0x4f, 0xda, 0xf1, 0x18, 0x77,
0xca, 0xed, 0xe8, 0x94, 0x17, 0x89, 0xa0, 0x1f, 0xa3, 0x46, 0x3a, 0x1f, 0xa3, 0x85, 0x3a, 0xbd,
0x6d, 0x14, 0xf1, 0x71, 0x72, 0xca, 0xc6, 0x1e, 0x6f, 0x0d, 0xd2, 0xc3, 0x9b, 0x81, 0x3a, 0x3a,
0x6d, 0xc4, 0x67, 0x45, 0xcc, 0xc8, 0x4e, 0x93, 0xe2, 0xce, 0x4e, 0x53, 0x18, 0x78, 0xf8, 0xc5,
0x20, 0xf8, 0xa6, 0x94, 0x9a, 0x7b, 0xba, 0xad, 0xa8, 0x3c, 0x3e, 0xe4, 0x51, 0x31, 0x0e, 0xdf,
0x76, 0xd9, 0x71, 0xa2, 0xca, 0xf5, 0xad, 0x79, 0x54, 0xf0, 0x63, 0xad, 0xb6, 0xe8, 0x7a, 0xc4,
0x39, 0x1f, 0xab, 0x85, 0xf8, 0x1f, 0x2b, 0x46, 0xf1, 0x04, 0x52, 0xcb, 0x65, 0xfd, 0xb4, 0x48,
0xea, 0xdb, 0x45, 0xd4, 0x52, 0x27, 0x87, 0xe7, 0xc7, 0x4a, 0x68, 0x67, 0xcb, 0x2a, 0x65, 0xc3,
0x9d, 0x31, 0xc3, 0xbe, 0x38, 0xe9, 0x59, 0x8d, 0x0a, 0xbf, 0xe7, 0xd6, 0xc8, 0x18, 0xf6, 0xc5,
0x09, 0xcf, 0xc6, 0xb4, 0xe6, 0xf3, 0xec, 0x98, 0xda, 0x86, 0x7d, 0x71, 0x9c, 0x40, 0x1b, 0x79,
0x9e, 0x9e, 0x1f, 0xb0, 0x69, 0x9e, 0x92, 0x09, 0x64, 0x21, 0xfe, 0x04, 0xc2, 0x28, 0xae, 0x7e,
0x0e, 0x78, 0x55, 0x5b, 0x39, 0xab, 0x9f, 0x5a, 0xe4, 0xaf, 0x7e, 0x1a, 0x04, 0x17, 0x0c, 0x07,
0x7c, 0x93, 0xa7, 0xd5, 0x36, 0xb6, 0x7d, 0x38, 0xaa, 0x34, 0x35, 0xe1, 0x2f, 0x18, 0x10, 0xa9,
0x0f, 0xf1, 0x9b, 0xea, 0x39, 0x2a, 0xd8, 0xdd, 0xf3, 0x07, 0x49, 0x76, 0x12, 0xba, 0xd7, 0x46,
0x0d, 0x10, 0x87, 0xf8, 0x4e, 0x10, 0x57, 0xe9, 0x8f, 0xb3, 0x31, 0x77, 0x57, 0xe9, 0x95, 0xc4,
0x5f, 0xa5, 0x03, 0x81, 0x4d, 0xee, 0x33, 0xca, 0x64, 0x25, 0xf1, 0x9b, 0x04, 0xc2, 0x35, 0x1f,
0xc0, 0x6e, 0x93, 0x9c, 0x0f, 0xd0, 0xfe, 0x72, 0xa9, 0x93, 0xc3, 0x19, 0xda, 0x94, 0xeb, 0xdb,
0x4c, 0xc4, 0xc7, 0xee, 0x0c, 0xb5, 0x10, 0x7f, 0x86, 0x62, 0x14, 0x37, 0xe9, 0x80, 0xab, 0xed,
0xc6, 0xa2, 0x3b, 0x3f, 0x5a, 0x5b, 0x8d, 0xa5, 0x4e, 0x0e, 0x97, 0xeb, 0x3b, 0xd3, 0xfa, 0x99,
0x39, 0x93, 0x5c, 0xca, 0xfc, 0xe5, 0xba, 0x62, 0x70, 0xf4, 0x52, 0x50, 0x3d, 0x4e, 0x77, 0xf4,
0x5a, 0xee, 0x8f, 0xde, 0xe2, 0xc0, 0xc9, 0x9f, 0x07, 0xc1, 0x25, 0xd3, 0xcb, 0x1e, 0xaf, 0xc6,
0xc8, 0x93, 0x28, 0x4d, 0xc6, 0x91, 0x60, 0x07, 0xfc, 0x84, 0x65, 0xe1, 0x7b, 0x9e, 0x68, 0x25,
0x3f, 0xb4, 0x14, 0x54, 0x14, 0xef, 0xcf, 0xaf, 0x88, 0xf3, 0x44, 0xd2, 0x8f, 0x4b, 0xb6, 0x19,
0x95, 0xc4, 0x4c, 0x66, 0x21, 0xfe, 0x3c, 0xc1, 0x28, 0x2e, 0xda, 0xa4, 0xfc, 0xde, 0xb3, 0x9c,
0x15, 0x09, 0xcb, 0x62, 0xe6, 0x2e, 0xda, 0x30, 0xe5, 0x2f, 0xda, 0x1c, 0x34, 0x6e, 0xa4, 0x9e,
0x9c, 0xda, 0xf7, 0x1b, 0x98, 0xf0, 0xdc, 0x6f, 0x10, 0x28, 0x6e, 0xa4, 0x06, 0xe0, 0x8a, 0xe1,
0xa6, 0xdf, 0x0a, 0xba, 0x5e, 0x58, 0xed, 0x49, 0xb7, 0xb6, 0xfd, 0x8a, 0x19, 0x55, 0xc3, 0xa4,
0x23, 0xf4, 0x91, 0x39, 0x5c, 0x56, 0x7a, 0xb1, 0xee, 0x73, 0x86, 0x7d, 0x96, 0x46, 0xf5, 0x12,
0xe2, 0x39, 0x67, 0x68, 0x98, 0x3e, 0xe7, 0x0c, 0x06, 0x0b, 0x0e, 0x7f, 0x36, 0x08, 0x2e, 0xba,
0x3c, 0x3e, 0xcc, 0x6b, 0xbf, 0xeb, 0xdd, 0xb6, 0x24, 0x49, 0x5c, 0xe0, 0xf8, 0x35, 0x20, 0x86,
0x1f, 0x05, 0xaf, 0x36, 0x22, 0x7d, 0xbf, 0x03, 0x01, 0xd8, 0x55, 0x84, 0x8a, 0x1f, 0x73, 0xca,
0xfd, 0x5a, 0x6f, 0x5e, 0x17, 0xe8, 0x76, 0x5c, 0x25, 0x2a, 0xd0, 0x95, 0x0d, 0x10, 0x13, 0x05,
0xba, 0x03, 0xc3, 0x2b, 0x75, 0x83, 0x54, 0xe3, 0xc4, 0x35, 0xc7, 0x29, 0x13, 0xe6, 0x28, 0x59,
0xee, 0x06, 0x71, 0xee, 0x34, 0x62, 0xa8, 0x8b, 0x6f, 0xf8, 0x2c, 0xa0, 0xda, 0x78, 0xa5, 0x17,
0x0b, 0x0e, 0x7f, 0x12, 0xbc, 0xd6, 0x6a, 0xd8, 0x36, 0x8b, 0xc4, 0xac, 0x60, 0xe3, 0x70, 0xad,
0x23, 0xee, 0x06, 0x54, 0xae, 0xd7, 0xfb, 0x2b, 0x80, 0xff, 0x5f, 0x0d, 0x82, 0xd7, 0x6d, 0x4e,
0x76, 0xb1, 0x8a, 0xe1, 0x96, 0xcf, 0xa4, 0xcd, 0xaa, 0x30, 0x6e, 0xcf, 0xa5, 0xd3, 0xda, 0x83,
0x99, 0x89, 0xbc, 0x71, 0x1a, 0x25, 0x69, 0x74, 0x98, 0x32, 0xe7, 0x1e, 0xcc, 0xca, 0x4d, 0x85,
0x7a, 0xf7, 0x60, 0xa4, 0x4a, 0x6b, 0x96, 0xac, 0xc7, 0x9b, 0x51, 0xbb, 0xdf, 0xa4, 0x47, 0xa5,
0xa3, 0x74, 0x5f, 0xed, 0x49, 0x83, 0x5b, 0xd1, 0x9c, 0x5d, 0x55, 0x3f, 0x9b, 0x49, 0xee, 0xf2,
0x0a, 0xaa, 0x8e, 0x4c, 0x5f, 0xed, 0x49, 0x83, 0xd7, 0x1f, 0x07, 0xaf, 0xb6, 0xbd, 0xc2, 0xa2,
0xb0, 0xd6, 0x69, 0x0a, 0xad, 0x0b, 0xeb, 0xfd, 0x15, 0x74, 0xa9, 0xff, 0x51, 0x52, 0x0a, 0x5e,
0x9c, 0x8f, 0x8e, 0xf9, 0x59, 0xf3, 0x96, 0x8e, 0x3d, 0x5a, 0x01, 0x18, 0x1a, 0x04, 0x51, 0xea,
0xbb, 0xc9, 0x96, 0x2b, 0xfd, 0x36, 0x4f, 0x49, 0xb8, 0x32, 0x88, 0x0e, 0x57, 0x36, 0xa9, 0xe7,
0xaa, 0xa6, 0x55, 0xfa, 0xd5, 0xa3, 0x25, 0x77, 0xa8, 0xed, 0xd7, 0x8f, 0x96, 0xbb, 0x41, 0xbd,
0xfd, 0xda, 0x4e, 0x52, 0xf6, 0xf0, 0xe8, 0x28, 0xe5, 0xd1, 0x18, 0x6d, 0xbf, 0x2a, 0xc9, 0x10,
0x44, 0xc4, 0xf6, 0x0b, 0x21, 0x7a, 0x2e, 0xaf, 0x04, 0xd5, 0xe8, 0x68, 0x2c, 0x5f, 0x6b, 0xab,
0x19, 0x62, 0x62, 0x2e, 0x77, 0x60, 0x7a, 0xeb, 0x52, 0x09, 0x1f, 0xe7, 0xb5, 0xf1, 0xcb, 0x6d,
0x2d, 0x29, 0x21, 0xb6, 0x2e, 0x36, 0xa1, 0x4b, 0xf0, 0xea, 0xf7, 0x2d, 0x7e, 0x96, 0xd5, 0x46,
0x1d, 0x0d, 0x6d, 0x64, 0x44, 0x09, 0x8e, 0x19, 0x30, 0xfc, 0x71, 0xf0, 0xbf, 0xb5, 0xe1, 0x82,
0xe7, 0xe1, 0x82, 0x43, 0xa1, 0x30, 0x2e, 0x29, 0x2f, 0x91, 0x72, 0x7d, 0xd7, 0x5e, 0xfd, 0x5a,
0x5f, 0x39, 0x3d, 0x2e, 0xa3, 0x09, 0x43, 0x77, 0xed, 0xb5, 0x8a, 0x96, 0x12, 0x77, 0xed, 0x6d,
0x4a, 0xdf, 0x1f, 0x57, 0xb2, 0x3d, 0x3e, 0x06, 0xeb, 0x8e, 0x16, 0x2a, 0x21, 0x71, 0x7f, 0xdc,
0x82, 0xf4, 0xd1, 0xfa, 0x5e, 0x74, 0x9a, 0x4c, 0xd4, 0xbc, 0x2c, 0x87, 0x77, 0x89, 0x8e, 0xd6,
0x35, 0x33, 0x34, 0x20, 0xe2, 0x68, 0x9d, 0x84, 0xc1, 0xe7, 0x9f, 0x06, 0xc1, 0x65, 0xcd, 0xdc,
0x6f, 0x4e, 0x3c, 0x76, 0xb2, 0x23, 0xfe, 0x34, 0x11, 0xc7, 0xd5, 0x16, 0xbb, 0x0c, 0xdf, 0xa5,
0x4c, 0xba, 0x79, 0x15, 0xca, 0x7b, 0x73, 0xeb, 0xe9, 0x42, 0xab, 0x39, 0x09, 0x91, 0xb3, 0xf9,
0x76, 0xc1, 0xa7, 0x52, 0x03, 0x15, 0x5a, 0xea, 0xc0, 0x04, 0x73, 0x44, 0xa1, 0xe5, 0xe3, 0x75,
0x17, 0x2b, 0xe7, 0x29, 0xcf, 0x70, 0x17, 0x6b, 0x0b, 0x95, 0x90, 0xe8, 0xe2, 0x16, 0xa4, 0xa7,
0xad, 0x46, 0x24, 0x37, 0xed, 0x1b, 0x69, 0x8a, 0xa6, 0x2d, 0xa5, 0xaa, 0x00, 0x62, 0xda, 0x72,
0x82, 0xe0, 0x67, 0x3f, 0x78, 0xa1, 0x7a, 0xa4, 0x8f, 0x0a, 0x76, 0x9a, 0x30, 0x7c, 0x67, 0x69,
0x48, 0x88, 0xf1, 0x6f, 0x13, 0x7a, 0x64, 0x3d, 0xce, 0xca, 0x3c, 0x8d, 0xca, 0x63, 0xb8, 0x33,
0xb3, 0xdb, 0xdc, 0x08, 0xf1, 0xad, 0xd9, 0xb5, 0x0e, 0x4a, 0x6f, 0xc4, 0x1b, 0x99, 0x9a, 0x62,
0x16, 0xdd, 0xaa, 0xad, 0x69, 0x66, 0xa9, 0x93, 0x03, 0x27, 0x51, 0xf0, 0x72, 0xf3, 0xe3, 0x6e,
0x94, 0x25, 0x47, 0xac, 0xc4, 0x77, 0x13, 0x58, 0x4c, 0xcc, 0xbc, 0x0e, 0x4c, 0xaf, 0x18, 0x77,
0x53, 0x1e, 0x9f, 0xc0, 0xd4, 0x6b, 0x3f, 0xd8, 0x5a, 0x82, 0xe7, 0xde, 0x2b, 0x3e, 0x44, 0x4f,
0xbe, 0xb5, 0x60, 0x9f, 0xe5, 0x69, 0x14, 0xe3, 0x0b, 0x63, 0xa9, 0x03, 0x32, 0x62, 0xf2, 0xc5,
0x0c, 0x0a, 0x17, 0x2e, 0xa2, 0x5d, 0xe1, 0xa2, 0x7b, 0xe8, 0x2b, 0x3e, 0x44, 0x2f, 0x3f, 0xb5,
0x60, 0x94, 0xa7, 0x89, 0x40, 0xe9, 0x27, 0x35, 0x6a, 0x09, 0x91, 0x7e, 0x36, 0x81, 0x4c, 0xee,
0xb2, 0x62, 0xc2, 0x9c, 0x26, 0x6b, 0x89, 0xd7, 0x64, 0x43, 0x80, 0xc9, 0xbd, 0xe0, 0xff, 0x64,
0xdb, 0x79, 0x7e, 0x1e, 0x5e, 0x72, 0x35, 0x8b, 0xe7, 0xe7, 0xca, 0xe0, 0x65, 0x1a, 0x40, 0x21,
0x3e, 0x8a, 0x4a, 0xe1, 0x0e, 0xb1, 0x96, 0x78, 0x43, 0x6c, 0x08, 0xbd, 0x36, 0xca, 0x10, 0x67,
0x02, 0xad, 0x8d, 0x10, 0x80, 0x71, 0x7b, 0x76, 0x89, 0x94, 0xeb, 0x11, 0x2c, 0x7b, 0x85, 0x89,
0xed, 0x84, 0xa5, 0xe3, 0x12, 0x8d, 0x60, 0x78, 0xee, 0x8d, 0x94, 0x18, 0xc1, 0x6d, 0x0a, 0xa5,
0x12, 0x1c, 0x6b, 0xba, 0x5a, 0x87, 0x4e, 0x34, 0xaf, 0xf8, 0x10, 0x3d, 0x2f, 0x34, 0x41, 0x6f,
0x46, 0x45, 0x91, 0x54, 0x8b, 0xee, 0xa2, 0x3b, 0xa0, 0x46, 0x4e, 0xcc, 0x0b, 0x2e, 0x4e, 0x17,
0x64, 0xb5, 0xd4, 0xb8, 0xa5, 0x71, 0x35, 0xda, 0x71, 0x49, 0xb3, 0xd8, 0x85, 0x19, 0x2f, 0x87,
0x29, 0x17, 0xbb, 0xfc, 0x94, 0x1d, 0xf0, 0x7b, 0xcf, 0x92, 0x52, 0x24, 0xd9, 0x04, 0x16, 0xb6,
0xdb, 0x84, 0x25, 0x17, 0x4c, 0xbc, 0x1c, 0xd6, 0xa9, 0xa4, 0xd7, 0x57, 0x14, 0xcb, 0x1e, 0x3b,
0x73, 0xae, 0xaf, 0xd8, 0xa2, 0xe2, 0x88, 0xf5, 0xd5, 0xc7, 0xeb, 0xdd, 0xb8, 0x72, 0x0e, 0xef,
0x88, 0x1f, 0xf0, 0xa6, 0xd4, 0xa1, 0xac, 0x61, 0x90, 0xd8, 0x10, 0x79, 0x15, 0xf4, 0x2e, 0x45,
0xf9, 0xd7, 0x23, 0x61, 0x99, 0xb0, 0xd3, 0x1e, 0x0d, 0xd7, 0x7b, 0x90, 0x0e, 0x57, 0xfa, 0xaa,
0x91, 0x72, 0xd5, 0xbe, 0x69, 0xbc, 0xde, 0x83, 0x34, 0x76, 0xf6, 0x66, 0xb3, 0xee, 0x46, 0xf1,
0xc9, 0xa4, 0xe0, 0xb3, 0x6c, 0xbc, 0xc9, 0x53, 0x5e, 0xa0, 0x9d, 0xbd, 0x15, 0x35, 0x42, 0x89,
0x9d, 0x7d, 0x87, 0x8a, 0x2e, 0x70, 0xcc, 0x28, 0x36, 0xd2, 0x64, 0x82, 0xf7, 0x65, 0x96, 0xa1,
0x1a, 0x20, 0x0a, 0x1c, 0x27, 0xe8, 0x48, 0x22, 0xb9, 0x6f, 0x13, 0x49, 0x1c, 0xa5, 0xd2, 0xdf,
0x1a, 0x6d, 0xc6, 0x02, 0x3b, 0x93, 0xc8, 0xa1, 0xe0, 0x68, 0xe7, 0xc1, 0xac, 0xc8, 0x76, 0x32,
0xc1, 0xc9, 0x76, 0x36, 0x40, 0x67, 0x3b, 0x0d, 0x10, 0xcd, 0x7e, 0x07, 0xec, 0x59, 0x15, 0x4d,
0xf5, 0x8f, 0x6b, 0xf6, 0xab, 0x7e, 0x1f, 0x82, 0xdc, 0x37, 0xfb, 0x21, 0x0e, 0x35, 0x06, 0x9c,
0xc8, 0x84, 0xf1, 0x68, 0xdb, 0x69, 0xb2, 0xdc, 0x0d, 0xba, 0xfd, 0x8c, 0xc4, 0x79, 0xca, 0x7c,
0x7e, 0x6a, 0xa0, 0x8f, 0x9f, 0x06, 0xd4, 0x47, 0xfe, 0x56, 0x7b, 0x8e, 0x59, 0x7c, 0xd2, 0x7a,
0x73, 0xc2, 0x0e, 0x54, 0x22, 0xc4, 0x91, 0x3f, 0x81, 0xba, 0xbb, 0x68, 0x27, 0xe6, 0x99, 0xaf,
0x8b, 0x2a, 0x79, 0x9f, 0x2e, 0x02, 0x4e, 0xef, 0x0d, 0x95, 0x14, 0x32, 0x53, 0x76, 0xd3, 0x0a,
0x61, 0xc1, 0x84, 0x88, 0xbd, 0x21, 0x09, 0xeb, 0x73, 0x5a, 0xec, 0x73, 0xb7, 0xfd, 0x2e, 0x61,
0xcb, 0xca, 0x2e, 0xfd, 0x2e, 0x21, 0xc5, 0xd2, 0x8d, 0x94, 0x39, 0xd2, 0x61, 0xc5, 0xce, 0x93,
0x9b, 0xfd, 0x60, 0xfd, 0x1e, 0x81, 0xe5, 0x73, 0x33, 0x65, 0x51, 0x21, 0xbd, 0xae, 0x7a, 0x0c,
0x69, 0x8c, 0x78, 0x8f, 0xc0, 0x83, 0xa3, 0x29, 0xcc, 0xf2, 0xbc, 0xc9, 0x33, 0xc1, 0x32, 0xe1,
0x9a, 0xc2, 0x6c, 0x63, 0x00, 0xfa, 0xa6, 0x30, 0x4a, 0x01, 0xe5, 0x6d, 0x7d, 0x5c, 0xc2, 0xc4,
0x5e, 0x34, 0x75, 0x16, 0x56, 0xf2, 0x28, 0x44, 0xca, 0x7d, 0x79, 0x8b, 0x38, 0x34, 0xe4, 0x77,
0xa6, 0xd1, 0x44, 0x79, 0x71, 0x68, 0xd7, 0xf2, 0x96, 0x9b, 0xe5, 0x6e, 0x10, 0xf9, 0x79, 0x92,
0x8c, 0x19, 0xf7, 0xf8, 0xa9, 0xe5, 0x7d, 0xfc, 0x60, 0x10, 0x55, 0x4e, 0x55, 0x6b, 0xe5, 0xa6,
0x67, 0x23, 0x1b, 0xc3, 0x56, 0x6f, 0x48, 0x3c, 0x14, 0xc4, 0xf9, 0x2a, 0x27, 0x82, 0x47, 0xe3,
0xa3, 0x39, 0x3b, 0xf4, 0x8d, 0x0f, 0x75, 0x34, 0xd8, 0x67, 0x7c, 0xb8, 0x60, 0xf0, 0xf9, 0x43,
0x18, 0x1f, 0x5b, 0x91, 0x88, 0x4e, 0x13, 0x76, 0xf6, 0x24, 0x61, 0x67, 0xb0, 0x57, 0x74, 0xb4,
0xb7, 0xa1, 0x86, 0x15, 0x86, 0x37, 0x8e, 0x6b, 0xbd, 0x79, 0x8f, 0x6f, 0xa8, 0xce, 0x3b, 0x7d,
0xa3, 0x32, 0x7d, 0xad, 0x37, 0xef, 0xf1, 0x0d, 0xdf, 0x25, 0x74, 0xfa, 0x46, 0x1f, 0x27, 0xac,
0xf5, 0xe6, 0xc1, 0xf7, 0xcf, 0x07, 0xc1, 0xc5, 0x96, 0xf3, 0xaa, 0x06, 0x8a, 0x45, 0x72, 0xca,
0x5c, 0xa5, 0x9c, 0x6d, 0x4f, 0xa1, 0xbe, 0x52, 0x8e, 0x56, 0x81, 0x28, 0x7e, 0x3d, 0x08, 0x5e,
0x77, 0x45, 0xf1, 0x88, 0x97, 0x49, 0x7d, 0xe5, 0x79, 0xbb, 0x87, 0xd1, 0x06, 0xf6, 0x6d, 0x58,
0x7c, 0x4a, 0xfa, 0xc2, 0xc8, 0x42, 0xf5, 0x4b, 0x8a, 0x37, 0x3d, 0xf6, 0xda, 0xef, 0x2a, 0xae,
0xf6, 0xa4, 0xf5, 0xd5, 0x8d, 0xc5, 0x98, 0x77, 0x46, 0xbe, 0x5e, 0x75, 0x5e, 0x1b, 0xad, 0xf7,
0x57, 0x00, 0xf7, 0xbf, 0x6c, 0x6a, 0x7a, 0xec, 0x1f, 0x06, 0xc1, 0xad, 0x3e, 0x16, 0xd1, 0x40,
0xb8, 0x3d, 0x97, 0x0e, 0x04, 0xf2, 0xd7, 0x41, 0x70, 0xc5, 0x19, 0x88, 0x7d, 0x7b, 0xf8, 0xad,
0x3e, 0xb6, 0xdd, 0xb7, 0x88, 0x1f, 0x7c, 0x19, 0x55, 0x88, 0xee, 0xb7, 0xcd, 0xd6, 0xba, 0xd1,
0xa8, 0x5f, 0x24, 0x7f, 0x58, 0x8c, 0x59, 0x01, 0x23, 0xd6, 0x97, 0x74, 0x1a, 0xc6, 0xe3, 0xf6,
0x9d, 0x39, 0xb5, 0x20, 0x9c, 0xdf, 0x0f, 0x82, 0x05, 0x0b, 0x86, 0xaf, 0x5c, 0x8c, 0x78, 0x7c,
0x96, 0x0d, 0x1a, 0x07, 0xf4, 0xee, 0xbc, 0x6a, 0xd4, 0x48, 0x36, 0xe0, 0xfa, 0x3b, 0xae, 0xdb,
0x3d, 0x0d, 0x5b, 0x5f, 0x76, 0xdd, 0x99, 0x4f, 0x09, 0x62, 0xf9, 0xfb, 0x20, 0xb8, 0x66, 0xb1,
0xfa, 0x20, 0x1e, 0x9d, 0x87, 0x7c, 0xe8, 0xb1, 0x4f, 0x29, 0xa9, 0xe0, 0xbe, 0xfd, 0xe5, 0x94,
0xf5, 0x57, 0xca, 0x96, 0xca, 0x76, 0x92, 0x0a, 0x56, 0xb4, 0xbf, 0x52, 0xb6, 0xed, 0x4a, 0x6a,
0x48, 0x7f, 0xa5, 0xec, 0xc1, 0x8d, 0xaf, 0x94, 0x1d, 0x9e, 0x9d, 0x5f, 0x29, 0x3b, 0xad, 0x79,
0xbf, 0x52, 0xf6, 0x6b, 0x50, 0x8b, 0x4f, 0x13, 0x82, 0x3c, 0x78, 0xee, 0x65, 0xd1, 0x3e, 0x87,
0xbe, 0x35, 0x8f, 0x0a, 0xb1, 0xfc, 0x4a, 0xae, 0x7e, 0xa7, 0xa9, 0xc7, 0x33, 0xb5, 0xde, 0x6b,
0x5a, 0xeb, 0xcd, 0x83, 0xef, 0x4f, 0x61, 0xdf, 0xa3, 0x16, 0x1b, 0x5e, 0xd4, 0x5f, 0xa8, 0xaf,
0xf8, 0x16, 0x8f, 0xca, 0x82, 0xd9, 0xf3, 0x37, 0xfb, 0xc1, 0x44, 0x73, 0x2b, 0x02, 0x3a, 0x7d,
0xd8, 0x65, 0x08, 0x75, 0xf9, 0x5a, 0x6f, 0x9e, 0x58, 0xe4, 0xa4, 0x6f, 0xd9, 0xdb, 0x3d, 0x8c,
0xd9, 0x7d, 0xbd, 0xde, 0x5f, 0x41, 0xbf, 0x94, 0xd1, 0x72, 0x5f, 0xf7, 0x73, 0xe7, 0x13, 0xb4,
0x7a, 0x79, 0xb5, 0x27, 0xed, 0x2b, 0x6e, 0xcc, 0xe5, 0xbd, 0xab, 0xb8, 0x71, 0x2e, 0xf1, 0x77,
0xe6, 0x53, 0x82, 0x58, 0xfe, 0x38, 0x08, 0x2e, 0x91, 0xb1, 0x40, 0x16, 0xbc, 0xdb, 0xd7, 0x32,
0xca, 0x86, 0xf7, 0xe6, 0xd6, 0x83, 0xa0, 0xfe, 0x32, 0x08, 0x2e, 0x7b, 0x82, 0x92, 0xe9, 0x31,
0x87, 0x75, 0x3b, 0x4d, 0xde, 0x9f, 0x5f, 0x91, 0x5a, 0xec, 0x4d, 0x7c, 0xd4, 0xfe, 0x78, 0xd7,
0x63, 0x7b, 0x44, 0x7f, 0xbc, 0xdb, 0xad, 0x85, 0x0f, 0x7f, 0xaa, 0x92, 0x04, 0xf6, 0x45, 0xae,
0xc3, 0x9f, 0xba, 0x62, 0x41, 0xfb, 0xa1, 0xa5, 0x4e, 0xce, 0xe5, 0xe4, 0xde, 0xb3, 0x3c, 0xca,
0xc6, 0xb4, 0x13, 0x29, 0xef, 0x76, 0xa2, 0x38, 0x7c, 0x68, 0x56, 0x49, 0xf7, 0x79, 0xb3, 0xc9,
0xbb, 0x4e, 0xe9, 0x2b, 0xc4, 0x7b, 0x68, 0xd6, 0x42, 0x09, 0x6f, 0x50, 0xd1, 0xfa, 0xbc, 0xa1,
0x42, 0xf6, 0x46, 0x1f, 0x14, 0x6d, 0x1f, 0x94, 0x37, 0x75, 0x16, 0x7f, 0xd3, 0x67, 0xa5, 0x75,
0x1e, 0xbf, 0xda, 0x93, 0x26, 0xdc, 0x8e, 0x98, 0xf8, 0x88, 0x45, 0x63, 0x56, 0x78, 0xdd, 0x2a,
0xaa, 0x97, 0x5b, 0x93, 0x76, 0xb9, 0xdd, 0xe4, 0xe9, 0x6c, 0x9a, 0x41, 0x67, 0x92, 0x6e, 0x4d,
0xaa, 0xdb, 0x2d, 0xa2, 0xf1, 0x71, 0xa1, 0x76, 0x5b, 0x17, 0x97, 0x37, 0xfc, 0x66, 0xac, 0x9a,
0x72, 0xa5, 0x17, 0x4b, 0xb7, 0x13, 0xd2, 0xa8, 0xa3, 0x9d, 0x28, 0x93, 0x56, 0x7b, 0xd2, 0xf8,
0xdc, 0xce, 0x70, 0xab, 0xf2, 0x69, 0xad, 0xc3, 0x56, 0x2b, 0xa5, 0xd6, 0xfb, 0x2b, 0xe0, 0x53,
0x52, 0xc8, 0xaa, 0x6a, 0x57, 0xb4, 0x9d, 0xa4, 0x69, 0xb8, 0xe2, 0x49, 0x93, 0x06, 0xf2, 0x9e,
0x92, 0x3a, 0x60, 0x22, 0x93, 0x9b, 0x53, 0xc5, 0x2c, 0xec, 0xb2, 0x53, 0x53, 0xbd, 0x32, 0xd9,
0xa4, 0xd1, 0x69, 0x9b, 0xf1, 0xa8, 0x55, 0x6b, 0x87, 0xfe, 0x07, 0xd7, 0x6a, 0xf0, 0x5a, 0x6f,
0x1e, 0xdd, 0x96, 0xd7, 0x54, 0xbd, 0xb2, 0x5c, 0xa5, 0x4c, 0x58, 0x2b, 0xc9, 0xb5, 0x0e, 0x0a,
0x9d, 0x58, 0xca, 0x61, 0xf4, 0x34, 0x19, 0x4f, 0x98, 0x70, 0xde, 0x20, 0x99, 0x80, 0xf7, 0x06,
0x09, 0x81, 0xa8, 0xeb, 0xe4, 0xef, 0x23, 0x26, 0x0e, 0xa2, 0x62, 0xc2, 0xc4, 0xce, 0xd8, 0xd5,
0x75, 0xa0, 0x6c, 0x50, 0xbe, 0xae, 0x73, 0xd2, 0x68, 0x36, 0x50, 0x6e, 0xe1, 0x4b, 0xe0, 0x1b,
0x3e, 0x33, 0xe8, 0x73, 0xe0, 0x95, 0x5e, 0x2c, 0x5a, 0x51, 0xb4, 0xc3, 0x64, 0x9a, 0x08, 0xd7,
0x8a, 0x62, 0xd8, 0xa8, 0x10, 0xdf, 0x8a, 0xd2, 0x46, 0xa9, 0xe6, 0x55, 0x35, 0xc2, 0xce, 0xd8,
0xdf, 0x3c, 0xc9, 0xf4, 0x6b, 0x9e, 0x62, 0x5b, 0x17, 0x9e, 0x99, 0x4a, 0x19, 0x71, 0x0c, 0x5b,
0x65, 0x47, 0x6e, 0xd7, 0x1f, 0xc7, 0x61, 0xd0, 0x37, 0xeb, 0x50, 0x0a, 0xc6, 0xf7, 0x17, 0x8a,
0x6b, 0xee, 0x64, 0xf3, 0x9c, 0x45, 0x45, 0x94, 0xc5, 0xce, 0xad, 0x69, 0x6d, 0xb0, 0x45, 0xfa,
0xb6, 0xa6, 0xa4, 0x06, 0xba, 0x4e, 0xb7, 0x3f, 0x6b, 0x73, 0x0c, 0x05, 0xf5, 0xfd, 0x98, 0xfd,
0x55, 0xdb, 0xf5, 0x1e, 0x24, 0xbe, 0x4e, 0x6f, 0x00, 0x75, 0x28, 0x2f, 0x9d, 0xbe, 0xed, 0x31,
0x65, 0xa3, 0xbe, 0x6d, 0x30, 0xad, 0x82, 0x92, 0x5a, 0x15, 0xb8, 0x4c, 0x7c, 0xcc, 0xce, 0x5d,
0x49, 0xad, 0xeb, 0xd3, 0x1a, 0xf1, 0x25, 0x75, 0x1b, 0x45, 0x75, 0xa6, 0xb9, 0x0f, 0x5a, 0xf4,
0xe8, 0x9b, 0x5b, 0x9f, 0xa5, 0x4e, 0x0e, 0x8d, 0x9c, 0xad, 0xe4, 0xd4, 0xba, 0xc3, 0x70, 0x04,
0xba, 0x95, 0x9c, 0xba, 0xaf, 0x30, 0x56, 0x7a, 0xb1, 0xf8, 0xaa, 0x3e, 0x12, 0xec, 0x59, 0x73,
0x87, 0xee, 0x08, 0xb7, 0x96, 0xb7, 0x2e, 0xd1, 0x97, 0xbb, 0x41, 0xfd, 0xde, 0xe8, 0xa3, 0x82,
0xc7, 0xac, 0x2c, 0x37, 0xab, 0xb4, 0x4d, 0xd1, 0x7b, 0xa3, 0x20, 0x1b, 0x4a, 0x21, 0xf1, 0xde,
0x68, 0x0b, 0x02, 0xdb, 0x1f, 0x05, 0xcf, 0x3f, 0xe0, 0x93, 0x11, 0xcb, 0xc6, 0xe1, 0x1b, 0xf6,
0x9b, 0x9a, 0x7c, 0x32, 0xac, 0x7e, 0x56, 0xf6, 0x16, 0x28, 0xb1, 0x7e, 0xe7, 0x6d, 0x8b, 0x1d,
0xce, 0x26, 0x07, 0x05, 0x63, 0xe8, 0x9d, 0xb7, 0xfa, 0xf7, 0x61, 0x25, 0x20, 0xde, 0x79, 0xb3,
0x00, 0xbd, 0x4a, 0x2a, 0x7b, 0x55, 0x21, 0x8a, 0xdf, 0x29, 0xd3, 0x3a, 0xb5, 0x94, 0x58, 0x25,
0xdb, 0x94, 0xee, 0xbc, 0x5a, 0x56, 0xbf, 0x8b, 0x3d, 0x9a, 0x4d, 0xa7, 0x51, 0x71, 0x8e, 0x3a,
0x4f, 0xea, 0x9a, 0x00, 0xd1, 0x79, 0x4e, 0x50, 0x67, 0xa5, 0xf4, 0x23, 0xa2, 0xf8, 0xe4, 0x3e,
0x2f, 0xf8, 0x4c, 0x24, 0x19, 0x2b, 0x51, 0x56, 0x82, 0x05, 0x9b, 0x21, 0xb2, 0x92, 0x62, 0x75,
0x15, 0x57, 0x13, 0xf2, 0x75, 0xb7, 0xfa, 0xef, 0x78, 0x95, 0x82, 0x17, 0xf8, 0x2e, 0x4f, 0x5a,
0xc1, 0x10, 0x51, 0xc5, 0x91, 0x30, 0xea, 0xfb, 0x47, 0x49, 0x36, 0x71, 0xf6, 0x7d, 0x25, 0xf0,
0xf6, 0x3d, 0x00, 0x7a, 0x3e, 0x96, 0x0f, 0x4d, 0xfe, 0xe1, 0x14, 0xf8, 0x2a, 0xcd, 0xf9, 0xd0,
0x4d, 0x82, 0x98, 0x8f, 0xdd, 0x24, 0x72, 0xf5, 0x30, 0x67, 0x19, 0x1b, 0x37, 0x6f, 0x8b, 0xb9,
0x5c, 0x59, 0x84, 0xd7, 0x15, 0x26, 0x75, 0x2a, 0xec, 0x32, 0x51, 0x24, 0x71, 0x39, 0x62, 0xe2,
0x51, 0x54, 0x44, 0x53, 0x26, 0x58, 0x81, 0x53, 0x01, 0x90, 0xa1, 0xc5, 0x10, 0xa9, 0x40, 0xb1,
0xe0, 0xf0, 0x3b, 0xc1, 0x2b, 0xd5, 0xcc, 0xc5, 0x32, 0xf8, 0xc3, 0xa2, 0xf7, 0xea, 0xbf, 0xb9,
0x1b, 0x5e, 0x50, 0x36, 0x46, 0xa2, 0x60, 0xd1, 0xb4, 0xb1, 0xfd, 0x92, 0xfa, 0xbd, 0x06, 0xd7,
0x07, 0xd5, 0xbc, 0xbd, 0xc7, 0x45, 0x72, 0x54, 0x6d, 0x14, 0xe0, 0x52, 0x06, 0xcd, 0xdb, 0xa6,
0x78, 0xe8, 0xf9, 0x86, 0xd9, 0xc5, 0xe9, 0x91, 0x68, 0x4a, 0xf7, 0x59, 0x9e, 0xe2, 0x91, 0x68,
0x69, 0xd7, 0x00, 0x31, 0x12, 0x9d, 0xa0, 0xf4, 0x73, 0xf7, 0xcd, 0x7f, 0x7e, 0xbe, 0x30, 0xf8,
0xec, 0xf3, 0x85, 0xc1, 0xbf, 0x3f, 0x5f, 0x18, 0xfc, 0xe1, 0x8b, 0x85, 0xe7, 0x3e, 0xfb, 0x62,
0xe1, 0xb9, 0x7f, 0x7d, 0xb1, 0xf0, 0xdc, 0x27, 0xcf, 0xc3, 0x1f, 0x32, 0x3e, 0xfc, 0x9f, 0xfa,
0xcf, 0x11, 0xdf, 0xfe, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x65, 0x99, 0x84, 0x62, 0xec, 0x58,
0x00, 0x00,
// 4019 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x9c, 0x5f, 0x6f, 0xdc, 0xc6,
0xb5, 0xc0, 0xb3, 0x2f, 0x37, 0xf7, 0x32, 0x37, 0x69, 0xba, 0x69, 0xdd, 0xc4, 0x4d, 0x64, 0xc7,
0xb1, 0x25, 0xd9, 0xb2, 0x56, 0x8a, 0xed, 0xfc, 0x69, 0x52, 0xa0, 0x90, 0x25, 0xcb, 0x11, 0x62,
0xc9, 0xae, 0x56, 0xb2, 0x81, 0x00, 0x05, 0x4a, 0x71, 0x47, 0x2b, 0x56, 0x5c, 0x0e, 0x43, 0xce,
0xae, 0xa4, 0x16, 0x2d, 0x5a, 0xb4, 0x68, 0xd1, 0xa2, 0x45, 0x8b, 0xfe, 0x79, 0xea, 0x43, 0x81,
0x7e, 0x83, 0x7e, 0x8b, 0xbe, 0x35, 0x8f, 0x7d, 0x2c, 0x92, 0x2f, 0x52, 0x90, 0x73, 0x38, 0x7f,
0x0e, 0xe7, 0x0c, 0xb9, 0x79, 0xb2, 0xb1, 0xe7, 0x77, 0xce, 0x99, 0xe1, 0x9c, 0x99, 0x39, 0x67,
0x86, 0x54, 0x70, 0x25, 0x3b, 0x5a, 0xcb, 0x72, 0x2e, 0x78, 0xb1, 0x56, 0xb0, 0x7c, 0x16, 0x47,
0xac, 0xfe, 0x77, 0x50, 0xfd, 0xdc, 0x7f, 0x3e, 0x4c, 0x2f, 0xc4, 0x45, 0xc6, 0x2e, 0xbf, 0xaa,
0xc9, 0x88, 0x4f, 0x26, 0x61, 0x3a, 0x2a, 0x24, 0x72, 0xf9, 0x92, 0x96, 0xb0, 0x19, 0x4b, 0x05,
0xfc, 0x7e, 0xe7, 0x5f, 0xff, 0xe8, 0x05, 0x2f, 0x6d, 0x26, 0x31, 0x4b, 0xc5, 0x26, 0x68, 0xf4,
0x3f, 0x09, 0x5e, 0xdc, 0xc8, 0xb2, 0x87, 0x4c, 0x3c, 0x65, 0x79, 0x11, 0xf3, 0xb4, 0xff, 0xd6,
0x00, 0x1c, 0x0c, 0xf6, 0xb3, 0x68, 0xb0, 0x91, 0x65, 0x03, 0x2d, 0x1c, 0xec, 0xb3, 0x4f, 0xa7,
0xac, 0x10, 0x97, 0xaf, 0xfb, 0xa1, 0x22, 0xe3, 0x69, 0xc1, 0xfa, 0xc7, 0xc1, 0x57, 0x37, 0xb2,
0x6c, 0xc8, 0xc4, 0x16, 0x2b, 0x3b, 0x30, 0x14, 0xa1, 0x60, 0xfd, 0xa5, 0x86, 0xaa, 0x0d, 0x28,
0x1f, 0xcb, 0xed, 0x20, 0xf8, 0x39, 0x08, 0x5e, 0x28, 0xfd, 0x9c, 0x4c, 0xc5, 0x88, 0x9f, 0xa5,
0xfd, 0x37, 0x9b, 0x8a, 0x20, 0x52, 0xb6, 0xaf, 0xf9, 0x10, 0xb0, 0xfa, 0x2c, 0xf8, 0xff, 0x67,
0x61, 0x92, 0x30, 0xb1, 0x99, 0xb3, 0xb2, 0xe1, 0xb6, 0x8e, 0x14, 0x0d, 0xa4, 0x4c, 0xd9, 0x7d,
0xcb, 0xcb, 0x80, 0xe1, 0x4f, 0x82, 0x17, 0xa5, 0x64, 0x9f, 0x45, 0x7c, 0xc6, 0xf2, 0xbe, 0x53,
0x0b, 0x84, 0xc4, 0x23, 0x6f, 0x40, 0xd8, 0xf6, 0x26, 0x4f, 0x67, 0x2c, 0x17, 0x6e, 0xdb, 0x20,
0xf4, 0xdb, 0xd6, 0x10, 0xd8, 0x4e, 0x82, 0x57, 0xcc, 0x07, 0x32, 0x64, 0x45, 0x15, 0x30, 0x37,
0xe9, 0x3e, 0x03, 0xa2, 0xfc, 0xdc, 0xea, 0x82, 0x82, 0xb7, 0x38, 0xe8, 0x83, 0xb7, 0x84, 0x17,
0xca, 0xd9, 0xb2, 0xd3, 0x82, 0x41, 0x28, 0x5f, 0x37, 0x3b, 0x90, 0xe0, 0xea, 0xfb, 0xc1, 0x57,
0x9e, 0xf1, 0xfc, 0xb4, 0xc8, 0xc2, 0x88, 0xc1, 0x60, 0xdf, 0xb0, 0xb5, 0x6b, 0x29, 0x1e, 0xef,
0xc5, 0x36, 0xcc, 0x18, 0x96, 0x5a, 0xf8, 0x38, 0x63, 0x78, 0x96, 0x69, 0xc5, 0x52, 0x48, 0x0d,
0x0b, 0x86, 0xc0, 0xf6, 0x69, 0xd0, 0xd7, 0xb6, 0x8f, 0x7e, 0xc0, 0x22, 0xb1, 0x31, 0x1a, 0xe1,
0x51, 0xd1, 0xba, 0x15, 0x31, 0xd8, 0x18, 0x8d, 0xa8, 0x51, 0x71, 0xa3, 0xe0, 0xec, 0x2c, 0xb8,
0x84, 0x9c, 0x3d, 0x8a, 0x8b, 0xca, 0xe1, 0xaa, 0xdf, 0x0a, 0x60, 0xca, 0xe9, 0xa0, 0x2b, 0x0e,
0x8e, 0x7f, 0xda, 0x0b, 0x5e, 0x73, 0x78, 0xde, 0x67, 0x13, 0x3e, 0x63, 0xfd, 0xf5, 0x76, 0x6b,
0x92, 0x54, 0xfe, 0xdf, 0x9e, 0x43, 0xc3, 0x11, 0x26, 0x43, 0x96, 0xb0, 0x48, 0x90, 0x61, 0x22,
0xc5, 0xad, 0x61, 0xa2, 0x30, 0x63, 0x86, 0xd5, 0xc2, 0x87, 0x4c, 0x6c, 0x4e, 0xf3, 0x9c, 0xa5,
0x82, 0x1c, 0x4b, 0x8d, 0xb4, 0x8e, 0xa5, 0x85, 0x3a, 0xfa, 0xf3, 0x90, 0x89, 0x8d, 0x24, 0x21,
0xfb, 0x23, 0xc5, 0xad, 0xfd, 0x51, 0x18, 0x78, 0x88, 0x82, 0x97, 0x8d, 0x27, 0x26, 0x76, 0xd2,
0x63, 0xde, 0xa7, 0x9f, 0x45, 0x25, 0x57, 0x3e, 0x96, 0x5a, 0x39, 0x47, 0x37, 0x1e, 0x9c, 0x67,
0x3c, 0xa7, 0x87, 0x45, 0x8a, 0x5b, 0xbb, 0xa1, 0x30, 0xf0, 0xf0, 0xbd, 0xe0, 0xa5, 0x8d, 0x28,
0xe2, 0xd3, 0x54, 0xad, 0xd8, 0x68, 0xff, 0x93, 0xc2, 0xc6, 0x92, 0x7d, 0xa3, 0x85, 0xd2, 0x8b,
0x03, 0xc8, 0x60, 0xf1, 0x79, 0xcb, 0xa9, 0x87, 0x96, 0x9e, 0xeb, 0x7e, 0xa8, 0x61, 0x7b, 0x8b,
0x25, 0x8c, 0xb4, 0x2d, 0x85, 0x2d, 0xb6, 0x15, 0x04, 0xb6, 0xf3, 0xe0, 0xeb, 0xea, 0xb1, 0x94,
0x3b, 0x45, 0x25, 0x2f, 0x17, 0xe9, 0x15, 0xa2, 0xdf, 0x26, 0xa4, 0x7c, 0xdd, 0xee, 0x06, 0x37,
0xfa, 0x03, 0x33, 0xd0, 0xdd, 0x1f, 0x34, 0xff, 0xae, 0xfb, 0x21, 0xb0, 0xfd, 0x9b, 0x5e, 0xf0,
0x06, 0xc8, 0x1e, 0xa4, 0xe1, 0x51, 0xc2, 0x1e, 0xf1, 0x28, 0x4c, 0xf6, 0x98, 0x38, 0xe3, 0xf9,
0xe9, 0xf0, 0x22, 0x8d, 0xfa, 0x77, 0x9d, 0x76, 0xdc, 0xb0, 0x72, 0x7e, 0x6f, 0x3e, 0x25, 0x23,
0xa7, 0x81, 0x8e, 0x0a, 0x9e, 0xe1, 0x9c, 0xa6, 0xee, 0x81, 0xe0, 0x19, 0x95, 0xd3, 0xd8, 0x48,
0xc3, 0xea, 0x6e, 0xb9, 0x6c, 0xba, 0xad, 0xee, 0x9a, 0xeb, 0xe4, 0x35, 0x1f, 0xa2, 0x97, 0xad,
0x3a, 0x80, 0x79, 0x7a, 0x1c, 0x8f, 0x0f, 0xb3, 0x51, 0x19, 0xc6, 0x37, 0xdd, 0x11, 0x6a, 0x20,
0xc4, 0xb2, 0x45, 0xa0, 0xe0, 0xed, 0x77, 0xbd, 0x60, 0xc1, 0x9e, 0x8e, 0xdb, 0x39, 0x9f, 0x3c,
0x62, 0xe3, 0x30, 0xba, 0x80, 0xf9, 0x7f, 0xcf, 0x37, 0xf1, 0x30, 0xad, 0x1a, 0xf1, 0xce, 0x9c,
0x5a, 0xd0, 0x9e, 0xbf, 0xf5, 0x82, 0xeb, 0x75, 0xf7, 0x4f, 0xc2, 0x74, 0xcc, 0x60, 0x3c, 0x65,
0xeb, 0x37, 0xd2, 0xd1, 0x3e, 0x2b, 0x44, 0x98, 0x8b, 0xfe, 0x07, 0xee, 0x4e, 0xfa, 0x74, 0x54,
0xdb, 0x3e, 0xfc, 0x52, 0xba, 0x7a, 0xd4, 0x87, 0xe5, 0xc2, 0x06, 0x4b, 0x80, 0x3d, 0xea, 0x95,
0x04, 0x2f, 0x00, 0xd7, 0x7c, 0x08, 0x58, 0xfd, 0x6e, 0x10, 0xc8, 0xcd, 0xb2, 0x4a, 0x68, 0xae,
0x5a, 0x1a, 0xb0, 0x8b, 0x5a, 0xd9, 0xcc, 0x9b, 0x1e, 0x42, 0x37, 0x54, 0xfe, 0x5e, 0xe5, 0x69,
0x7d, 0xa7, 0x46, 0x25, 0x22, 0x1a, 0x8a, 0x10, 0xdc, 0xd0, 0xe1, 0x09, 0x3f, 0x73, 0x37, 0xb4,
0x94, 0xf8, 0x1b, 0x0a, 0x84, 0xae, 0x0d, 0xa0, 0xa1, 0xae, 0xda, 0xa0, 0x6e, 0x86, 0xaf, 0x36,
0xc0, 0x0c, 0x18, 0xe6, 0xc1, 0xd7, 0x4c, 0xc3, 0xf7, 0x39, 0x3f, 0x9d, 0x84, 0xf9, 0x69, 0xff,
0x16, 0xad, 0x5c, 0x33, 0xca, 0xd1, 0x4a, 0x27, 0x56, 0xcf, 0x5d, 0xd3, 0x61, 0x19, 0xe6, 0x87,
0x79, 0x82, 0xe6, 0xae, 0x65, 0x03, 0x10, 0x62, 0xee, 0x12, 0xa8, 0xde, 0xab, 0x4d, 0x6f, 0x43,
0x86, 0xf7, 0x6a, 0x4b, 0x7d, 0xc8, 0xa8, 0xbd, 0xda, 0x81, 0xe1, 0x10, 0x7a, 0x98, 0x87, 0xd9,
0x89, 0x3b, 0x84, 0x2a, 0x91, 0x3f, 0x84, 0x6a, 0x04, 0x8f, 0xf7, 0x90, 0x85, 0x79, 0x74, 0xe2,
0x1e, 0x6f, 0x29, 0xf3, 0x8f, 0xb7, 0x62, 0xf4, 0x1e, 0x6a, 0x1a, 0x1e, 0x4e, 0x8f, 0x8a, 0x28,
0x8f, 0x8f, 0x58, 0x7f, 0x85, 0xd6, 0x56, 0x10, 0xb1, 0x87, 0x92, 0xb0, 0xae, 0xac, 0xc0, 0x67,
0x2d, 0xdb, 0x19, 0x15, 0xa8, 0xb2, 0xaa, 0x6d, 0x18, 0x04, 0x51, 0x59, 0xb9, 0x49, 0xdc, 0xbd,
0x87, 0x39, 0x9f, 0x66, 0x45, 0x4b, 0xf7, 0x10, 0xe4, 0xef, 0x5e, 0x13, 0x06, 0x9f, 0xe7, 0xc1,
0x37, 0xcc, 0x47, 0x7a, 0x98, 0x16, 0xca, 0xeb, 0x2a, 0xfd, 0x9c, 0x0c, 0x8c, 0xa8, 0x51, 0x3c,
0xb8, 0x4e, 0x77, 0x6b, 0xcf, 0x62, 0x8b, 0x89, 0x30, 0x4e, 0x8a, 0xfe, 0xa2, 0xdb, 0x46, 0x2d,
0x27, 0xd2, 0x5d, 0x17, 0x87, 0xa7, 0xd0, 0xd6, 0x34, 0x4b, 0xe2, 0xa8, 0x59, 0xac, 0x82, 0xae,
0x12, 0xfb, 0xa7, 0x90, 0x89, 0xe1, 0x25, 0x61, 0xc8, 0x84, 0xfc, 0xcf, 0xc1, 0x45, 0xc6, 0xdc,
0x4b, 0x82, 0x85, 0xf8, 0x97, 0x04, 0x8c, 0xe2, 0xfe, 0x0c, 0x99, 0x78, 0x14, 0x5e, 0xf0, 0x29,
0xb1, 0x24, 0x28, 0xb1, 0xbf, 0x3f, 0x26, 0x06, 0x1e, 0xa6, 0xc1, 0x25, 0xe5, 0x61, 0x27, 0x15,
0x2c, 0x4f, 0xc3, 0x64, 0x3b, 0x09, 0xc7, 0x45, 0x9f, 0x98, 0x37, 0x36, 0xa5, 0xfc, 0xad, 0x76,
0xa4, 0x1d, 0x8f, 0x71, 0xa7, 0xd8, 0x0e, 0x67, 0x3c, 0x8f, 0x05, 0xfd, 0x18, 0x35, 0xd2, 0xfa,
0x18, 0x2d, 0xd4, 0xe9, 0x6d, 0x23, 0x8f, 0x4e, 0xe2, 0x19, 0x1b, 0x79, 0xbc, 0xd5, 0x48, 0x07,
0x6f, 0x06, 0xea, 0x18, 0xb4, 0x21, 0x9f, 0xe6, 0x11, 0x23, 0x07, 0x4d, 0x8a, 0x5b, 0x07, 0x4d,
0x61, 0xe0, 0xe1, 0x17, 0xbd, 0xe0, 0x9b, 0x52, 0x6a, 0x56, 0x90, 0x5b, 0x61, 0x71, 0x72, 0xc4,
0xc3, 0x7c, 0xd4, 0x7f, 0xdb, 0x65, 0xc7, 0x89, 0x2a, 0xd7, 0x77, 0xe6, 0x51, 0xc1, 0x8f, 0xf5,
0x51, 0x5c, 0x18, 0x33, 0xce, 0xf9, 0x58, 0x2d, 0xc4, 0xff, 0x58, 0x31, 0x8a, 0x17, 0x90, 0x4a,
0x2e, 0xb3, 0xb5, 0x45, 0x52, 0xdf, 0x4e, 0xd9, 0x96, 0x5a, 0x39, 0xbc, 0x3e, 0x96, 0x42, 0x3b,
0x5a, 0x56, 0x29, 0x1b, 0xee, 0x88, 0x19, 0x74, 0xc5, 0x49, 0xcf, 0x6a, 0x56, 0xf8, 0x3d, 0x37,
0x66, 0xc6, 0xa0, 0x2b, 0x4e, 0x78, 0x36, 0x96, 0x35, 0x9f, 0x67, 0xc7, 0xd2, 0x36, 0xe8, 0x8a,
0xe3, 0x00, 0xda, 0xc8, 0xb2, 0xe4, 0xe2, 0x80, 0x4d, 0xb2, 0x84, 0x0c, 0x20, 0x0b, 0xf1, 0x07,
0x10, 0x46, 0x71, 0xf6, 0x73, 0xc0, 0xcb, 0xdc, 0xca, 0x99, 0xfd, 0x54, 0x22, 0x7f, 0xf6, 0x53,
0x23, 0x38, 0x61, 0x38, 0xe0, 0x9b, 0x3c, 0x29, 0x8b, 0xe6, 0xe6, 0x51, 0xac, 0xd2, 0xd4, 0x84,
0x3f, 0x61, 0x40, 0xa4, 0xbe, 0x32, 0xa8, 0x73, 0xf5, 0x30, 0x67, 0xf7, 0x2f, 0x1e, 0xc5, 0xe9,
0x69, 0xdf, 0xbd, 0x37, 0x6a, 0x80, 0xb8, 0x32, 0x70, 0x82, 0xb8, 0x26, 0x38, 0x4c, 0x47, 0xdc,
0x5d, 0x13, 0x94, 0x12, 0x7f, 0x4d, 0x00, 0x04, 0x36, 0xb9, 0xcf, 0x28, 0x93, 0xa5, 0xc4, 0x6f,
0x12, 0x08, 0xd7, 0x7a, 0x00, 0xb5, 0x2d, 0xb9, 0x1e, 0xa0, 0x6a, 0x76, 0xa9, 0x95, 0xc3, 0x11,
0x5a, 0x17, 0x07, 0xdb, 0x4c, 0x44, 0x27, 0xee, 0x08, 0xb5, 0x10, 0x7f, 0x84, 0x62, 0x14, 0x77,
0xe9, 0x80, 0xab, 0xe2, 0x66, 0xd1, 0x1d, 0x1f, 0x8d, 0xc2, 0x66, 0xa9, 0x95, 0xc3, 0xe9, 0xfa,
0xce, 0xa4, 0x7a, 0x66, 0xce, 0x20, 0x97, 0x32, 0x7f, 0xba, 0xae, 0x18, 0xdc, 0x7a, 0x29, 0x28,
0x1f, 0xa7, 0xbb, 0xf5, 0x5a, 0xee, 0x6f, 0xbd, 0xc5, 0x81, 0x93, 0x3f, 0xf7, 0x82, 0x2b, 0xa6,
0x97, 0x3d, 0x5e, 0xce, 0x91, 0xa7, 0x61, 0x12, 0x8f, 0x42, 0xc1, 0x0e, 0xf8, 0x29, 0x4b, 0xfb,
0xef, 0x79, 0x5a, 0x2b, 0xf9, 0x81, 0xa5, 0xa0, 0x5a, 0xf1, 0xfe, 0xfc, 0x8a, 0x38, 0x4e, 0x24,
0x7d, 0x58, 0xb0, 0xcd, 0xb0, 0x20, 0x56, 0x32, 0x0b, 0xf1, 0xc7, 0x09, 0x46, 0x71, 0xd2, 0x26,
0xe5, 0x0f, 0xce, 0x33, 0x96, 0xc7, 0x2c, 0x8d, 0x98, 0x3b, 0x69, 0xc3, 0x94, 0x3f, 0x69, 0x73,
0xd0, 0x8d, 0x72, 0x58, 0x2d, 0x4e, 0xcd, 0xdb, 0x14, 0x4c, 0x78, 0x6e, 0x53, 0x08, 0x14, 0x77,
0x52, 0x03, 0x70, 0xa1, 0x71, 0xdb, 0x6f, 0x05, 0x5d, 0x66, 0xac, 0x76, 0xa4, 0x1b, 0x87, 0x0c,
0x8a, 0x19, 0x96, 0xd3, 0xa4, 0xa5, 0xe9, 0x43, 0x73, 0xba, 0xac, 0x74, 0x62, 0xdd, 0xa7, 0x1a,
0xfb, 0x2c, 0x09, 0xab, 0x2d, 0xc4, 0x73, 0x74, 0x50, 0x33, 0x5d, 0x4e, 0x35, 0x0c, 0x16, 0x1c,
0xfe, 0xac, 0x17, 0x5c, 0x76, 0x79, 0x7c, 0x9c, 0x55, 0x7e, 0xd7, 0xdb, 0x6d, 0x49, 0x92, 0xb8,
0x2e, 0xf2, 0x6b, 0x40, 0x1b, 0x7e, 0x14, 0xbc, 0x5a, 0x8b, 0xf4, 0x6d, 0x12, 0x34, 0xc0, 0xce,
0x22, 0x54, 0xfb, 0x31, 0xa7, 0xdc, 0xaf, 0x75, 0xe6, 0x75, 0x82, 0x6e, 0xb7, 0xab, 0x40, 0x09,
0xba, 0xb2, 0x01, 0x62, 0x22, 0x41, 0x77, 0x60, 0x78, 0xa7, 0xae, 0x91, 0x72, 0x9e, 0xb8, 0xd6,
0x38, 0x65, 0xc2, 0x9c, 0x25, 0xcb, 0xed, 0x20, 0x8e, 0x9d, 0x5a, 0x0c, 0x79, 0xf1, 0x2d, 0x9f,
0x05, 0x94, 0x1b, 0xaf, 0x74, 0x62, 0xc1, 0xe1, 0x4f, 0x82, 0xd7, 0x1a, 0x1d, 0xdb, 0x66, 0xa1,
0x98, 0xe6, 0x6c, 0xd4, 0x5f, 0x6b, 0x69, 0x77, 0x0d, 0x2a, 0xd7, 0xeb, 0xdd, 0x15, 0xc0, 0xff,
0xaf, 0x7a, 0xc1, 0xeb, 0x36, 0x27, 0x87, 0x58, 0xb5, 0xe1, 0x8e, 0xcf, 0xa4, 0xcd, 0xaa, 0x66,
0xdc, 0x9d, 0x4b, 0xa7, 0x51, 0x83, 0x99, 0x81, 0xbc, 0x31, 0x0b, 0xe3, 0x24, 0x3c, 0x4a, 0x98,
0xb3, 0x06, 0xb3, 0x62, 0x53, 0xa1, 0xde, 0x1a, 0x8c, 0x54, 0x69, 0xac, 0x92, 0xd5, 0x7c, 0x33,
0x72, 0xf7, 0xdb, 0xf4, 0xac, 0x74, 0xa4, 0xee, 0xab, 0x1d, 0x69, 0x70, 0x2b, 0xea, 0xb3, 0xab,
0xf2, 0x67, 0x33, 0xc8, 0x5d, 0x5e, 0x41, 0xd5, 0x11, 0xe9, 0xab, 0x1d, 0x69, 0xf0, 0xfa, 0xe3,
0xe0, 0xd5, 0xa6, 0x57, 0xd8, 0x14, 0xd6, 0x5a, 0x4d, 0xa1, 0x7d, 0x61, 0xbd, 0xbb, 0x82, 0x4e,
0xf5, 0x3f, 0x8a, 0x0b, 0xc1, 0xf3, 0x8b, 0xe1, 0x09, 0x3f, 0xab, 0xdf, 0x09, 0xb2, 0x67, 0x2b,
0x00, 0x03, 0x83, 0x20, 0x52, 0x7d, 0x37, 0xd9, 0x70, 0xa5, 0xdf, 0x1d, 0x2a, 0x08, 0x57, 0x06,
0xd1, 0xe2, 0xca, 0x26, 0xf5, 0x5a, 0x55, 0xf7, 0x4a, 0xbf, 0xe8, 0xb4, 0xe4, 0x6e, 0x6a, 0xf3,
0x65, 0xa7, 0xe5, 0x76, 0x50, 0x97, 0x5f, 0xdb, 0x71, 0xc2, 0x1e, 0x1f, 0x1f, 0x27, 0x3c, 0x1c,
0xa1, 0xf2, 0xab, 0x94, 0x0c, 0x40, 0x44, 0x94, 0x5f, 0x08, 0xd1, 0x6b, 0x79, 0x29, 0x28, 0x67,
0x47, 0x6d, 0xf9, 0x46, 0x53, 0xcd, 0x10, 0x13, 0x6b, 0xb9, 0x03, 0xd3, 0xa5, 0x4b, 0x29, 0x3c,
0xcc, 0x2a, 0xe3, 0x57, 0x9b, 0x5a, 0x52, 0x42, 0x94, 0x2e, 0x36, 0xa1, 0x53, 0xf0, 0xf2, 0xf7,
0x2d, 0x7e, 0x96, 0x56, 0x46, 0x1d, 0x1d, 0xad, 0x65, 0x44, 0x0a, 0x8e, 0x19, 0x30, 0xfc, 0x71,
0xf0, 0xbf, 0x95, 0xe1, 0x9c, 0x67, 0xfd, 0x05, 0x87, 0x42, 0x6e, 0x5c, 0x89, 0x5e, 0x21, 0xe5,
0xfa, 0x66, 0xbf, 0xfc, 0xb5, 0xba, 0xe0, 0x3a, 0x2c, 0xc2, 0x31, 0x43, 0x37, 0xfb, 0x95, 0x8a,
0x96, 0x12, 0x37, 0xfb, 0x4d, 0x4a, 0xdf, 0x56, 0x97, 0xb2, 0x3d, 0x3e, 0x02, 0xeb, 0x8e, 0x1e,
0x2a, 0x21, 0x71, 0x5b, 0xdd, 0x80, 0xf4, 0xd1, 0xfa, 0x5e, 0x38, 0x8b, 0xc7, 0x6a, 0x5d, 0x96,
0xd3, 0xbb, 0x40, 0x47, 0xeb, 0x9a, 0x19, 0x18, 0x10, 0x71, 0xb4, 0x4e, 0xc2, 0xe0, 0xf3, 0x4f,
0xbd, 0xe0, 0xaa, 0x66, 0x1e, 0xd6, 0x27, 0x1e, 0x3b, 0xe9, 0x31, 0x7f, 0x16, 0x8b, 0x93, 0xb2,
0xc4, 0x2e, 0xfa, 0xef, 0x52, 0x26, 0xdd, 0xbc, 0x6a, 0xca, 0x7b, 0x73, 0xeb, 0xe9, 0x44, 0xab,
0x3e, 0x09, 0xd1, 0xd7, 0x4e, 0x52, 0x03, 0x25, 0x5a, 0xea, 0xc0, 0x04, 0x73, 0x44, 0xa2, 0xe5,
0xe3, 0xf5, 0x10, 0x2b, 0xe7, 0x09, 0x4f, 0xf1, 0x10, 0x6b, 0x0b, 0xa5, 0x90, 0x18, 0xe2, 0x06,
0xa4, 0x97, 0xad, 0x5a, 0x24, 0x8b, 0xf6, 0x8d, 0x24, 0x41, 0xcb, 0x96, 0x52, 0x55, 0x00, 0xb1,
0x6c, 0x39, 0x41, 0xf0, 0xb3, 0x1f, 0xbc, 0x50, 0x3e, 0xd2, 0x27, 0x39, 0x9b, 0xc5, 0x0c, 0xdf,
0x90, 0x1a, 0x12, 0x62, 0xfe, 0xdb, 0x84, 0x9e, 0x59, 0x87, 0x69, 0x91, 0x25, 0x61, 0x71, 0x02,
0x77, 0x66, 0x76, 0x9f, 0x6b, 0x21, 0xbe, 0x35, 0xbb, 0xd1, 0x42, 0xe9, 0x42, 0xbc, 0x96, 0xa9,
0x25, 0x66, 0xd1, 0xad, 0xda, 0x58, 0x66, 0x96, 0x5a, 0x39, 0x70, 0x12, 0x06, 0x2f, 0xd7, 0x3f,
0xee, 0x86, 0x69, 0x7c, 0xcc, 0x0a, 0x7c, 0x37, 0x81, 0xc5, 0xc4, 0xca, 0xeb, 0xc0, 0xf4, 0x8e,
0x71, 0x3f, 0xe1, 0xd1, 0x29, 0x2c, 0xbd, 0xf6, 0x83, 0xad, 0x24, 0x78, 0xed, 0xbd, 0xe6, 0x43,
0xf4, 0xe2, 0x5b, 0x09, 0xf6, 0x59, 0x96, 0x84, 0x11, 0xbe, 0x9e, 0x96, 0x3a, 0x20, 0x23, 0x16,
0x5f, 0xcc, 0xa0, 0xe6, 0xc2, 0xb5, 0xb7, 0xab, 0xb9, 0xe8, 0xd6, 0xfb, 0x9a, 0x0f, 0xd1, 0xdb,
0x4f, 0x25, 0x18, 0x66, 0x49, 0x2c, 0x50, 0xf8, 0x49, 0x8d, 0x4a, 0x42, 0x84, 0x9f, 0x4d, 0x20,
0x93, 0xbb, 0x2c, 0x1f, 0x33, 0xa7, 0xc9, 0x4a, 0xe2, 0x35, 0x59, 0x13, 0x60, 0x72, 0x2f, 0xf8,
0x3f, 0xd9, 0x77, 0x9e, 0x5d, 0xf4, 0xaf, 0xb8, 0xba, 0xc5, 0xb3, 0x0b, 0x65, 0xf0, 0x2a, 0x0d,
0xa0, 0x26, 0x3e, 0x09, 0x0b, 0xe1, 0x6e, 0x62, 0x25, 0xf1, 0x36, 0xb1, 0x26, 0xf4, 0xde, 0x28,
0x9b, 0x38, 0x15, 0x68, 0x6f, 0x84, 0x06, 0x18, 0xb7, 0x67, 0x57, 0x48, 0xb9, 0x9e, 0xc1, 0x72,
0x54, 0x98, 0xd8, 0x8e, 0x59, 0x32, 0x2a, 0xd0, 0x0c, 0x86, 0xe7, 0x5e, 0x4b, 0x89, 0x19, 0xdc,
0xa4, 0x50, 0x28, 0xc1, 0xb1, 0xa6, 0xab, 0x77, 0xe8, 0x44, 0xf3, 0x9a, 0x0f, 0xd1, 0xeb, 0x42,
0xdd, 0xe8, 0xcd, 0x30, 0xcf, 0xe3, 0x72, 0xd3, 0x5d, 0x74, 0x37, 0xa8, 0x96, 0x13, 0xeb, 0x82,
0x8b, 0xd3, 0x09, 0x59, 0x25, 0x35, 0x6e, 0x69, 0x5c, 0x9d, 0x76, 0x5c, 0xd2, 0x2c, 0xb6, 0x61,
0xc6, 0xab, 0x68, 0xca, 0xc5, 0x2e, 0x9f, 0xb1, 0x03, 0xfe, 0xe0, 0x3c, 0x2e, 0x44, 0x9c, 0x8e,
0x61, 0x63, 0xbb, 0x4b, 0x58, 0x72, 0xc1, 0xc4, 0xab, 0x68, 0xad, 0x4a, 0x7a, 0x7f, 0x45, 0x6d,
0xd9, 0x63, 0x67, 0xce, 0xfd, 0x15, 0x5b, 0x54, 0x1c, 0xb1, 0xbf, 0xfa, 0x78, 0x5d, 0x8d, 0x2b,
0xe7, 0xf0, 0x46, 0xfa, 0x01, 0xaf, 0x53, 0x1d, 0xca, 0x1a, 0x06, 0x89, 0x82, 0xc8, 0xab, 0xa0,
0xab, 0x14, 0xe5, 0x5f, 0xcf, 0x84, 0x65, 0xc2, 0x4e, 0x73, 0x36, 0xdc, 0xec, 0x40, 0x3a, 0x5c,
0xe9, 0xab, 0x46, 0xca, 0x55, 0xf3, 0xa6, 0xf1, 0x66, 0x07, 0xd2, 0xa8, 0xec, 0xcd, 0x6e, 0xdd,
0x0f, 0xa3, 0xd3, 0x71, 0xce, 0xa7, 0xe9, 0x68, 0x93, 0x27, 0x3c, 0x47, 0x95, 0xbd, 0xd5, 0x6a,
0x84, 0x12, 0x95, 0x7d, 0x8b, 0x8a, 0x4e, 0x70, 0xcc, 0x56, 0x6c, 0x24, 0xf1, 0x18, 0xd7, 0x65,
0x96, 0xa1, 0x0a, 0x20, 0x12, 0x1c, 0x27, 0xe8, 0x08, 0x22, 0x59, 0xb7, 0x89, 0x38, 0x0a, 0x13,
0xe9, 0x6f, 0x8d, 0x36, 0x63, 0x81, 0xad, 0x41, 0xe4, 0x50, 0x70, 0xf4, 0xf3, 0x60, 0x9a, 0xa7,
0x3b, 0xa9, 0xe0, 0x64, 0x3f, 0x6b, 0xa0, 0xb5, 0x9f, 0x06, 0x88, 0x56, 0xbf, 0x03, 0x76, 0x5e,
0xb6, 0xa6, 0xfc, 0xc7, 0xb5, 0xfa, 0x95, 0xbf, 0x0f, 0x40, 0xee, 0x5b, 0xfd, 0x10, 0x87, 0x3a,
0x03, 0x4e, 0x64, 0xc0, 0x78, 0xb4, 0xed, 0x30, 0x59, 0x6e, 0x07, 0xdd, 0x7e, 0x86, 0xe2, 0x22,
0x61, 0x3e, 0x3f, 0x15, 0xd0, 0xc5, 0x4f, 0x0d, 0xea, 0x23, 0x7f, 0xab, 0x3f, 0x27, 0x2c, 0x3a,
0x6d, 0xbc, 0x39, 0x61, 0x37, 0x54, 0x22, 0xc4, 0x91, 0x3f, 0x81, 0xba, 0x87, 0x68, 0x27, 0xe2,
0xa9, 0x6f, 0x88, 0x4a, 0x79, 0x97, 0x21, 0x02, 0x4e, 0xd7, 0x86, 0x4a, 0x0a, 0x91, 0x29, 0x87,
0x69, 0x85, 0xb0, 0x60, 0x42, 0x44, 0x6d, 0x48, 0xc2, 0xfa, 0x9c, 0x16, 0xfb, 0xdc, 0x6d, 0xbe,
0xb9, 0xd8, 0xb0, 0xb2, 0x4b, 0xbf, 0xb9, 0x48, 0xb1, 0x74, 0x27, 0x65, 0x8c, 0xb4, 0x58, 0xb1,
0xe3, 0xe4, 0x76, 0x37, 0x58, 0xbf, 0x47, 0x60, 0xf9, 0xdc, 0x4c, 0x58, 0x98, 0x4b, 0xaf, 0xab,
0x1e, 0x43, 0x1a, 0x23, 0xde, 0x23, 0xf0, 0xe0, 0x68, 0x09, 0xb3, 0x3c, 0x6f, 0xf2, 0x54, 0xb0,
0x54, 0xb8, 0x96, 0x30, 0xdb, 0x18, 0x80, 0xbe, 0x25, 0x8c, 0x52, 0x40, 0x71, 0x5b, 0x1d, 0x97,
0x30, 0xb1, 0x17, 0x4e, 0x9c, 0x89, 0x95, 0x3c, 0x0a, 0x91, 0x72, 0x5f, 0xdc, 0x22, 0x0e, 0x4d,
0xf9, 0x9d, 0x49, 0x38, 0x56, 0x5e, 0x1c, 0xda, 0x95, 0xbc, 0xe1, 0x66, 0xb9, 0x1d, 0x44, 0x7e,
0x9e, 0xc6, 0x23, 0xc6, 0x3d, 0x7e, 0x2a, 0x79, 0x17, 0x3f, 0x18, 0x44, 0x99, 0x53, 0xd9, 0x5b,
0x59, 0xf4, 0x6c, 0xa4, 0x23, 0x28, 0xf5, 0x06, 0xc4, 0x43, 0x41, 0x9c, 0x2f, 0x73, 0x22, 0x78,
0x34, 0x3f, 0xea, 0xb3, 0x43, 0xdf, 0xfc, 0x50, 0x47, 0x83, 0x5d, 0xe6, 0x87, 0x0b, 0x06, 0x9f,
0x3f, 0x84, 0xf9, 0xb1, 0x15, 0x8a, 0x70, 0x16, 0xb3, 0xb3, 0xa7, 0x31, 0x3b, 0x83, 0x5a, 0xd1,
0xd1, 0xdf, 0x9a, 0x1a, 0x94, 0x18, 0x2e, 0x1c, 0xd7, 0x3a, 0xf3, 0x1e, 0xdf, 0x90, 0x9d, 0xb7,
0xfa, 0x46, 0x69, 0xfa, 0x5a, 0x67, 0xde, 0xe3, 0x1b, 0xbe, 0x82, 0x68, 0xf5, 0x8d, 0x3e, 0x85,
0x58, 0xeb, 0xcc, 0x83, 0xef, 0x9f, 0xf7, 0x82, 0xcb, 0x0d, 0xe7, 0x65, 0x0e, 0x14, 0x89, 0x78,
0xc6, 0x5c, 0xa9, 0x9c, 0x6d, 0x4f, 0xa1, 0xbe, 0x54, 0x8e, 0x56, 0x81, 0x56, 0xfc, 0xba, 0x17,
0xbc, 0xee, 0x6a, 0xc5, 0x13, 0x5e, 0xc4, 0xd5, 0x95, 0xe7, 0xdd, 0x0e, 0x46, 0x6b, 0xd8, 0x57,
0xb0, 0xf8, 0x94, 0xf4, 0x85, 0x91, 0x85, 0xea, 0x97, 0x14, 0x6f, 0x7b, 0xec, 0x35, 0xdf, 0x55,
0x5c, 0xed, 0x48, 0xeb, 0xab, 0x1b, 0x8b, 0x31, 0xef, 0x8c, 0x7c, 0xa3, 0xea, 0xbc, 0x36, 0x5a,
0xef, 0xae, 0x00, 0xee, 0x7f, 0x59, 0xe7, 0xf4, 0xd8, 0x3f, 0x4c, 0x82, 0x3b, 0x5d, 0x2c, 0xa2,
0x89, 0x70, 0x77, 0x2e, 0x1d, 0x68, 0xc8, 0x5f, 0x7b, 0xc1, 0x35, 0x67, 0x43, 0xec, 0xdb, 0xc3,
0x6f, 0x75, 0xb1, 0xed, 0xbe, 0x45, 0xfc, 0xe0, 0xcb, 0xa8, 0x42, 0xeb, 0x7e, 0x5b, 0x97, 0xd6,
0xb5, 0x46, 0xf5, 0x22, 0xf9, 0xe3, 0x7c, 0xc4, 0x72, 0x98, 0xb1, 0xbe, 0xa0, 0xd3, 0x30, 0x9e,
0xb7, 0xef, 0xcc, 0xa9, 0x05, 0xcd, 0xf9, 0x7d, 0x2f, 0x58, 0xb0, 0x60, 0xf8, 0xa6, 0xc6, 0x68,
0x8f, 0xcf, 0xb2, 0x41, 0xe3, 0x06, 0xbd, 0x3b, 0xaf, 0x1a, 0x35, 0x93, 0x0d, 0xb8, 0xfa, 0x6a,
0xec, 0x6e, 0x47, 0xc3, 0xd6, 0x77, 0x64, 0xf7, 0xe6, 0x53, 0x82, 0xb6, 0xfc, 0xbd, 0x17, 0xdc,
0xb0, 0x58, 0x7d, 0x10, 0x8f, 0xce, 0x43, 0x3e, 0xf4, 0xd8, 0xa7, 0x94, 0x54, 0xe3, 0xbe, 0xfd,
0xe5, 0x94, 0xf5, 0x37, 0xd1, 0x96, 0xca, 0x76, 0x9c, 0x08, 0x96, 0x37, 0xbf, 0x89, 0xb6, 0xed,
0x4a, 0x6a, 0x40, 0x7f, 0x13, 0xed, 0xc1, 0x8d, 0x6f, 0xa2, 0x1d, 0x9e, 0x9d, 0xdf, 0x44, 0x3b,
0xad, 0x79, 0xbf, 0x89, 0xf6, 0x6b, 0x50, 0x9b, 0x4f, 0xdd, 0x04, 0x79, 0xf0, 0xdc, 0xc9, 0xa2,
0x7d, 0x0e, 0x7d, 0x67, 0x1e, 0x15, 0x62, 0xfb, 0x95, 0x5c, 0xf5, 0x4e, 0x53, 0x87, 0x67, 0x6a,
0xbd, 0xd7, 0xb4, 0xd6, 0x99, 0x07, 0xdf, 0x9f, 0x42, 0xdd, 0xa3, 0x36, 0x1b, 0x9e, 0x57, 0xdf,
0xc3, 0xaf, 0xf8, 0x36, 0x8f, 0xd2, 0x82, 0x39, 0xf2, 0xb7, 0xbb, 0xc1, 0x44, 0x77, 0x4b, 0x02,
0x06, 0x7d, 0xd0, 0x66, 0x08, 0x0d, 0xf9, 0x5a, 0x67, 0x9e, 0xd8, 0xe4, 0xa4, 0x6f, 0x39, 0xda,
0x1d, 0x8c, 0xd9, 0x63, 0xbd, 0xde, 0x5d, 0x41, 0xbf, 0x94, 0xd1, 0x70, 0x5f, 0x8d, 0x73, 0xeb,
0x13, 0xb4, 0x46, 0x79, 0xb5, 0x23, 0xed, 0x4b, 0x6e, 0xcc, 0xed, 0xbd, 0x2d, 0xb9, 0x71, 0x6e,
0xf1, 0xf7, 0xe6, 0x53, 0x82, 0xb6, 0xfc, 0xb1, 0x17, 0x5c, 0x21, 0xdb, 0x02, 0x51, 0xf0, 0x6e,
0x57, 0xcb, 0x28, 0x1a, 0xde, 0x9b, 0x5b, 0x0f, 0x1a, 0xf5, 0x97, 0x5e, 0x70, 0xd5, 0xd3, 0x28,
0x19, 0x1e, 0x73, 0x58, 0xb7, 0xc3, 0xe4, 0xfd, 0xf9, 0x15, 0xa9, 0xcd, 0xde, 0xc4, 0x87, 0xcd,
0x4f, 0x85, 0x3d, 0xb6, 0x87, 0xf4, 0xa7, 0xc2, 0xed, 0x5a, 0xf8, 0xf0, 0xa7, 0x4c, 0x49, 0xa0,
0x2e, 0x72, 0x1d, 0xfe, 0x54, 0x19, 0x0b, 0xaa, 0x87, 0x96, 0x5a, 0x39, 0x97, 0x93, 0x07, 0xe7,
0x59, 0x98, 0x8e, 0x68, 0x27, 0x52, 0xde, 0xee, 0x44, 0x71, 0xf8, 0xd0, 0xac, 0x94, 0xee, 0xf3,
0xba, 0xc8, 0xbb, 0x49, 0xe9, 0x2b, 0xc4, 0x7b, 0x68, 0xd6, 0x40, 0x09, 0x6f, 0x90, 0xd1, 0xfa,
0xbc, 0xa1, 0x44, 0xf6, 0x56, 0x17, 0x14, 0x95, 0x0f, 0xca, 0x9b, 0x3a, 0x8b, 0xbf, 0xed, 0xb3,
0xd2, 0x38, 0x8f, 0x5f, 0xed, 0x48, 0x13, 0x6e, 0x87, 0x4c, 0x7c, 0xc4, 0xc2, 0x11, 0xcb, 0xbd,
0x6e, 0x15, 0xd5, 0xc9, 0xad, 0x49, 0xbb, 0xdc, 0x6e, 0xf2, 0x64, 0x3a, 0x49, 0x61, 0x30, 0x49,
0xb7, 0x26, 0xd5, 0xee, 0x16, 0xd1, 0xf8, 0xb8, 0x50, 0xbb, 0xad, 0x92, 0xcb, 0x5b, 0x7e, 0x33,
0x56, 0x4e, 0xb9, 0xd2, 0x89, 0xa5, 0xfb, 0x09, 0x61, 0xd4, 0xd2, 0x4f, 0x14, 0x49, 0xab, 0x1d,
0x69, 0x7c, 0x6e, 0x67, 0xb8, 0x55, 0xf1, 0xb4, 0xd6, 0x62, 0xab, 0x11, 0x52, 0xeb, 0xdd, 0x15,
0xf0, 0x29, 0x29, 0x44, 0x55, 0x59, 0x15, 0x6d, 0xc7, 0x49, 0xd2, 0x5f, 0xf1, 0x84, 0x49, 0x0d,
0x79, 0x4f, 0x49, 0x1d, 0x30, 0x11, 0xc9, 0xf5, 0xa9, 0x62, 0xda, 0x6f, 0xb3, 0x53, 0x51, 0x9d,
0x22, 0xd9, 0xa4, 0xd1, 0x69, 0x9b, 0xf1, 0xa8, 0x55, 0x6f, 0x07, 0xfe, 0x07, 0xd7, 0xe8, 0xf0,
0x5a, 0x67, 0x1e, 0xdd, 0x96, 0x57, 0x54, 0xb5, 0xb3, 0x5c, 0xa7, 0x4c, 0x58, 0x3b, 0xc9, 0x8d,
0x16, 0x0a, 0x9d, 0x58, 0xca, 0x69, 0xf4, 0x2c, 0x1e, 0x8d, 0x99, 0x70, 0xde, 0x20, 0x99, 0x80,
0xf7, 0x06, 0x09, 0x81, 0x68, 0xe8, 0xe4, 0xef, 0x43, 0x26, 0x0e, 0xc2, 0x7c, 0xcc, 0xc4, 0xce,
0xc8, 0x35, 0x74, 0xa0, 0x6c, 0x50, 0xbe, 0xa1, 0x73, 0xd2, 0x68, 0x35, 0x50, 0x6e, 0xe1, 0x4b,
0xe0, 0x5b, 0x3e, 0x33, 0xe8, 0x73, 0xe0, 0x95, 0x4e, 0x2c, 0xda, 0x51, 0xb4, 0xc3, 0x78, 0x12,
0x0b, 0xd7, 0x8e, 0x62, 0xd8, 0x28, 0x11, 0xdf, 0x8e, 0xd2, 0x44, 0xa9, 0xee, 0x95, 0x39, 0xc2,
0xce, 0xc8, 0xdf, 0x3d, 0xc9, 0x74, 0xeb, 0x9e, 0x62, 0x1b, 0x17, 0x9e, 0xa9, 0x0a, 0x19, 0x71,
0x02, 0xa5, 0xb2, 0x23, 0xb6, 0xab, 0x8f, 0xe3, 0x30, 0xe8, 0x5b, 0x75, 0x28, 0x05, 0xe3, 0xfb,
0x0b, 0xc5, 0xd5, 0x77, 0xb2, 0x59, 0xc6, 0xc2, 0x3c, 0x4c, 0x23, 0x67, 0x69, 0x5a, 0x19, 0x6c,
0x90, 0xbe, 0xd2, 0x94, 0xd4, 0x40, 0xd7, 0xe9, 0xf6, 0x67, 0x6d, 0x8e, 0xa9, 0xa0, 0xbe, 0x1f,
0xb3, 0xbf, 0x6a, 0xbb, 0xd9, 0x81, 0xc4, 0xd7, 0xe9, 0x35, 0xa0, 0x0e, 0xe5, 0xa5, 0xd3, 0xb7,
0x3d, 0xa6, 0x6c, 0xd4, 0x57, 0x06, 0xd3, 0x2a, 0x28, 0xa8, 0x55, 0x82, 0xcb, 0xc4, 0xc7, 0xec,
0xc2, 0x15, 0xd4, 0x3a, 0x3f, 0xad, 0x10, 0x5f, 0x50, 0x37, 0x51, 0x94, 0x67, 0x9a, 0x75, 0xd0,
0xa2, 0x47, 0xdf, 0x2c, 0x7d, 0x96, 0x5a, 0x39, 0x34, 0x73, 0xb6, 0xe2, 0x99, 0x75, 0x87, 0xe1,
0x68, 0xe8, 0x56, 0x3c, 0x73, 0x5f, 0x61, 0xac, 0x74, 0x62, 0xf1, 0x55, 0x7d, 0x28, 0xd8, 0x79,
0x7d, 0x87, 0xee, 0x68, 0x6e, 0x25, 0x6f, 0x5c, 0xa2, 0x2f, 0xb7, 0x83, 0xfa, 0xbd, 0xd1, 0x27,
0x39, 0x8f, 0x58, 0x51, 0x6c, 0x96, 0x61, 0x9b, 0xa0, 0xf7, 0x46, 0x41, 0x36, 0x90, 0x42, 0xe2,
0xbd, 0xd1, 0x06, 0x04, 0xb6, 0x3f, 0x0a, 0x9e, 0x7f, 0xc4, 0xc7, 0x43, 0x96, 0x8e, 0xfa, 0x6f,
0xd8, 0x6f, 0x6a, 0xf2, 0xf1, 0xa0, 0xfc, 0x59, 0xd9, 0x5b, 0xa0, 0xc4, 0xfa, 0x9d, 0xb7, 0x2d,
0x76, 0x34, 0x1d, 0x1f, 0xe4, 0x8c, 0xa1, 0x77, 0xde, 0xaa, 0xdf, 0x07, 0xa5, 0x80, 0x78, 0xe7,
0xcd, 0x02, 0xf4, 0x2e, 0xa9, 0xec, 0x95, 0x89, 0x28, 0x7e, 0xa7, 0x4c, 0xeb, 0x54, 0x52, 0x62,
0x97, 0x6c, 0x52, 0x7a, 0xf0, 0x2a, 0x59, 0xf5, 0x2e, 0xf6, 0x70, 0x3a, 0x99, 0x84, 0xf9, 0x05,
0x1a, 0x3c, 0xa9, 0x6b, 0x02, 0xc4, 0xe0, 0x39, 0x41, 0x1d, 0x95, 0xd2, 0x8f, 0x08, 0xa3, 0xd3,
0x87, 0x3c, 0xe7, 0x53, 0x11, 0xa7, 0xac, 0x40, 0x51, 0x09, 0x16, 0x6c, 0x86, 0x88, 0x4a, 0x8a,
0xd5, 0x59, 0x5c, 0x45, 0xc8, 0xd7, 0xdd, 0xaa, 0xbf, 0x1a, 0x56, 0x08, 0x9e, 0xe3, 0xbb, 0x3c,
0x69, 0x05, 0x43, 0x44, 0x16, 0x47, 0xc2, 0x68, 0xec, 0x9f, 0xc4, 0xe9, 0xd8, 0x39, 0xf6, 0xa5,
0xc0, 0x3b, 0xf6, 0x00, 0xe8, 0xf5, 0x58, 0x3e, 0x34, 0xf9, 0x87, 0x53, 0xe0, 0xab, 0x34, 0xe7,
0x43, 0x37, 0x09, 0x62, 0x3d, 0x76, 0x93, 0xc8, 0xd5, 0xe3, 0x8c, 0xa5, 0x6c, 0x54, 0xbf, 0x2d,
0xe6, 0x72, 0x65, 0x11, 0x5e, 0x57, 0x98, 0xd4, 0xa1, 0xb0, 0xcb, 0x44, 0x1e, 0x47, 0xc5, 0x90,
0x89, 0x27, 0x61, 0x1e, 0x4e, 0x98, 0x60, 0x39, 0x0e, 0x05, 0x40, 0x06, 0x16, 0x43, 0x84, 0x02,
0xc5, 0x82, 0xc3, 0xef, 0x04, 0xaf, 0x94, 0x2b, 0x17, 0x4b, 0xe1, 0xcf, 0x98, 0x3e, 0xa8, 0xfe,
0xc2, 0x6f, 0xff, 0x92, 0xb2, 0x31, 0x14, 0x39, 0x0b, 0x27, 0xb5, 0xed, 0x97, 0xd4, 0xef, 0x15,
0xb8, 0xde, 0x2b, 0xd7, 0xed, 0x3d, 0x2e, 0xe2, 0xe3, 0xb2, 0x50, 0x80, 0x4b, 0x19, 0xb4, 0x6e,
0x9b, 0xe2, 0x81, 0xe7, 0x1b, 0x66, 0x17, 0xa7, 0x67, 0xa2, 0x29, 0xdd, 0x67, 0x59, 0x82, 0x67,
0xa2, 0xa5, 0x5d, 0x01, 0xc4, 0x4c, 0x74, 0x82, 0xd2, 0xcf, 0xfd, 0x37, 0xff, 0xf9, 0xf9, 0x42,
0xef, 0xb3, 0xcf, 0x17, 0x7a, 0xff, 0xf9, 0x7c, 0xa1, 0xf7, 0x87, 0x2f, 0x16, 0x9e, 0xfb, 0xec,
0x8b, 0x85, 0xe7, 0xfe, 0xfd, 0xc5, 0xc2, 0x73, 0x9f, 0x3c, 0x0f, 0x7f, 0x36, 0xf9, 0xe8, 0x7f,
0xaa, 0x3f, 0x7e, 0x7c, 0xf7, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd7, 0x7a, 0x27, 0x94, 0x5a,
0x59, 0x00, 0x00,
}
// This is a compile-time assertion to ensure that this generated file
@ -332,6 +333,7 @@ type ClientCommandsHandler interface {
// ObjectCreate just creates the new page, without adding the link to it from some other page
ObjectCreate(context.Context, *pb.RpcObjectCreateRequest) *pb.RpcObjectCreateResponse
ObjectCreateBookmark(context.Context, *pb.RpcObjectCreateBookmarkRequest) *pb.RpcObjectCreateBookmarkResponse
ObjectCreateFromUrl(context.Context, *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
ObjectCreateSet(context.Context, *pb.RpcObjectCreateSetRequest) *pb.RpcObjectCreateSetResponse
ObjectGraph(context.Context, *pb.RpcObjectGraphRequest) *pb.RpcObjectGraphResponse
@ -1239,6 +1241,26 @@ func ObjectCreateBookmark(b []byte) (resp []byte) {
return resp
}
func ObjectCreateFromUrl(b []byte) (resp []byte) {
defer func() {
if PanicHandler != nil {
if r := recover(); r != nil {
resp, _ = (&pb.RpcObjectCreateFromUrlResponse{Error: &pb.RpcObjectCreateFromUrlResponseError{Code: pb.RpcObjectCreateFromUrlResponseError_UNKNOWN_ERROR, Description: "panic recovered"}}).Marshal()
PanicHandler(r)
}
}
}()
in := new(pb.RpcObjectCreateFromUrlRequest)
if err := in.Unmarshal(b); err != nil {
resp, _ = (&pb.RpcObjectCreateFromUrlResponse{Error: &pb.RpcObjectCreateFromUrlResponseError{Code: pb.RpcObjectCreateFromUrlResponseError_BAD_INPUT, Description: err.Error()}}).Marshal()
return resp
}
resp, _ = clientCommandsHandler.ObjectCreateFromUrl(context.Background(), in).Marshal()
return resp
}
func ObjectCreateSet(b []byte) (resp []byte) {
defer func() {
if PanicHandler != nil {
@ -4715,6 +4737,8 @@ func CommandAsync(cmd string, data []byte, callback func(data []byte)) {
cd = ObjectCreate(data)
case "ObjectCreateBookmark":
cd = ObjectCreateBookmark(data)
case "ObjectCreateFromUrl":
cd = ObjectCreateFromUrl(data)
case "ObjectCreateSet":
cd = ObjectCreateSet(data)
case "ObjectGraph":

View file

@ -16,6 +16,7 @@ import (
"github.com/gogo/protobuf/types"
"github.com/anyproto/anytype-heart/core/block/editor/state"
"github.com/anyproto/anytype-heart/core/block/import/markdown/anymark"
"github.com/anyproto/anytype-heart/core/block/simple/bookmark"
"github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/core/files"
@ -35,15 +36,15 @@ import (
const CName = "bookmark"
// ContentFuture represents asynchronous result of getting bookmark content
type ContentFuture func() *model.BlockContentBookmark
type ContentFuture func() *bookmark.ObjectContent
type Service interface {
CreateBookmarkObject(ctx context.Context, spaceID string, details *types.Struct, getContent ContentFuture) (objectId string, newDetails *types.Struct, err error)
UpdateBookmarkObject(objectId string, getContent ContentFuture) error
UpdateObject(objectId string, getContent *bookmark.ObjectContent) error
// TODO Maybe Fetch and FetchBookmarkContent do the same thing differently?
FetchAsync(spaceID string, blockID string, params bookmark.FetchParams)
FetchBookmarkContent(spaceID string, url string) ContentFuture
ContentUpdaters(spaceID string, url string) (chan func(contentBookmark *model.BlockContentBookmark), error)
FetchBookmarkContent(spaceID string, url string, parseBlock bool) ContentFuture
ContentUpdaters(spaceID string, url string, parseBlock bool) (chan func(contentBookmark *bookmark.ObjectContent), error)
app.Component
}
@ -147,7 +148,7 @@ func (s *service) CreateBookmarkObject(ctx context.Context, spaceID string, deta
if url != "" {
go func() {
if err := s.UpdateBookmarkObject(objectId, getContent); err != nil {
if err := s.UpdateObject(objectId, getContent()); err != nil {
log.Errorf("update bookmark object %s: %s", objectId, err)
return
@ -158,18 +159,18 @@ func (s *service) CreateBookmarkObject(ctx context.Context, spaceID string, deta
return objectId, objectDetails, nil
}
func detailsFromContent(content *model.BlockContentBookmark) map[string]*types.Value {
func detailsFromContent(content *bookmark.ObjectContent) map[string]*types.Value {
return map[string]*types.Value{
bundle.RelationKeyName.String(): pbtypes.String(content.Title),
bundle.RelationKeyDescription.String(): pbtypes.String(content.Description),
bundle.RelationKeySource.String(): pbtypes.String(content.Url),
bundle.RelationKeyPicture.String(): pbtypes.String(content.ImageHash),
bundle.RelationKeyIconImage.String(): pbtypes.String(content.FaviconHash),
bundle.RelationKeyName.String(): pbtypes.String(content.BookmarkContent.Title),
bundle.RelationKeyDescription.String(): pbtypes.String(content.BookmarkContent.Description),
bundle.RelationKeySource.String(): pbtypes.String(content.BookmarkContent.Url),
bundle.RelationKeyPicture.String(): pbtypes.String(content.BookmarkContent.ImageHash),
bundle.RelationKeyIconImage.String(): pbtypes.String(content.BookmarkContent.FaviconHash),
}
}
func (s *service) UpdateBookmarkObject(objectId string, getContent ContentFuture) error {
detailsMap := detailsFromContent(getContent())
func (s *service) UpdateObject(objectId string, getContent *bookmark.ObjectContent) error {
detailsMap := detailsFromContent(getContent)
details := make([]*pb.RpcObjectSetDetailsDetail, 0, len(detailsMap))
for k, v := range detailsMap {
@ -193,15 +194,15 @@ func (s *service) FetchAsync(spaceID string, blockID string, params bookmark.Fet
}()
}
func (s *service) FetchBookmarkContent(spaceID string, url string) ContentFuture {
contentCh := make(chan *model.BlockContentBookmark, 1)
func (s *service) FetchBookmarkContent(spaceID string, url string, parseBlock bool) ContentFuture {
contentCh := make(chan *bookmark.ObjectContent, 1)
go func() {
defer close(contentCh)
content := &model.BlockContentBookmark{
Url: url,
content := &bookmark.ObjectContent{
BookmarkContent: &model.BlockContentBookmark{Url: url},
}
updaters, err := s.ContentUpdaters(spaceID, url)
updaters, err := s.ContentUpdaters(spaceID, url, parseBlock)
if err != nil {
log.Errorf("fetch bookmark content: %s", err)
}
@ -211,40 +212,46 @@ func (s *service) FetchBookmarkContent(spaceID string, url string) ContentFuture
contentCh <- content
}()
return func() *model.BlockContentBookmark {
return func() *bookmark.ObjectContent {
return <-contentCh
}
}
func (s *service) ContentUpdaters(spaceID string, url string) (chan func(contentBookmark *model.BlockContentBookmark), error) {
func (s *service) ContentUpdaters(spaceID string, url string, parseBlock bool) (chan func(contentBookmark *bookmark.ObjectContent), error) {
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
defer cancel()
updaters := make(chan func(contentBookmark *model.BlockContentBookmark), 1)
updaters := make(chan func(contentBookmark *bookmark.ObjectContent), 1)
data, err := s.linkPreview.Fetch(ctx, url)
data, body, err := s.linkPreview.Fetch(ctx, url)
if err != nil {
updaters <- func(c *model.BlockContentBookmark) {
c.State = model.BlockContentBookmark_Done
c.Url = url
updaters <- func(c *bookmark.ObjectContent) {
if c.BookmarkContent == nil {
c.BookmarkContent = &model.BlockContentBookmark{}
}
c.BookmarkContent.State = model.BlockContentBookmark_Done
c.BookmarkContent.Url = url
}
close(updaters)
return updaters, fmt.Errorf("bookmark: can't fetch link: %w", err)
}
updaters <- func(c *model.BlockContentBookmark) {
c.State = model.BlockContentBookmark_Done
updaters <- func(c *bookmark.ObjectContent) {
c.BookmarkContent.State = model.BlockContentBookmark_Done
}
var wg sync.WaitGroup
wg.Add(1)
go func() {
defer wg.Done()
updaters <- func(c *model.BlockContentBookmark) {
c.Url = data.Url
c.Title = data.Title
c.Description = data.Description
c.Type = data.Type
updaters <- func(c *bookmark.ObjectContent) {
if c.BookmarkContent == nil {
c.BookmarkContent = &model.BlockContentBookmark{}
}
c.BookmarkContent.Url = data.Url
c.BookmarkContent.Title = data.Title
c.BookmarkContent.Description = data.Description
c.BookmarkContent.Type = data.Type
}
}()
@ -257,8 +264,11 @@ func (s *service) ContentUpdaters(spaceID string, url string) (chan func(content
log.Errorf("load image: %s", err)
return
}
updaters <- func(c *model.BlockContentBookmark) {
c.ImageHash = hash
updaters <- func(c *bookmark.ObjectContent) {
if c.BookmarkContent == nil {
c.BookmarkContent = &model.BlockContentBookmark{}
}
c.BookmarkContent.ImageHash = hash
}
}()
}
@ -271,12 +281,29 @@ func (s *service) ContentUpdaters(spaceID string, url string) (chan func(content
log.Errorf("load favicon: %s", err)
return
}
updaters <- func(c *model.BlockContentBookmark) {
c.FaviconHash = hash
updaters <- func(c *bookmark.ObjectContent) {
if c.BookmarkContent == nil {
c.BookmarkContent = &model.BlockContentBookmark{}
}
c.BookmarkContent.FaviconHash = hash
}
}()
}
if parseBlock {
wg.Add(1)
go func() {
defer wg.Done()
updaters <- func(c *bookmark.ObjectContent) {
blocks, _, err := anymark.HTMLToBlocks(body)
if err != nil {
log.Errorf("parse blocks: %s", err)
return
}
c.Blocks = blocks
}
}()
}
go func() {
wg.Wait()
close(updaters)
@ -285,12 +312,12 @@ func (s *service) ContentUpdaters(spaceID string, url string) (chan func(content
}
func (s *service) fetcher(spaceID string, blockID string, params bookmark.FetchParams) error {
updaters, err := s.ContentUpdaters(spaceID, params.Url)
updaters, err := s.ContentUpdaters(spaceID, params.Url, false)
if err != nil {
log.Errorf("can't get updates for %s: %s", blockID, err)
}
var upds []func(*model.BlockContentBookmark)
upds := make([]func(content *bookmark.ObjectContent), 0, len(updaters))
for u := range updaters {
upds = append(upds, u)
}

View file

@ -50,7 +50,7 @@ func (bd *BookmarkImporterDecorator) CreateBookmarkObject(ctx context.Context, s
).Error(err)
return bd.Service.CreateBookmarkObject(ctx, spaceID, details, getContent)
}
err = bd.Service.UpdateBookmarkObject(objectId, getContent)
err = bd.Service.UpdateObject(objectId, getContent())
if err != nil {
return "", nil, err
}

View file

@ -144,15 +144,18 @@ func (b *sbookmark) updateBlock(_ session.Context, block bookmark.Block, apply f
}
content := block.GetContent()
pageID, _, err := b.bookmarkSvc.CreateBookmarkObject(context.Background(), b.SpaceID(), block.ToDetails(origin), func() *model.BlockContentBookmark {
return content
pageID, _, err := b.bookmarkSvc.CreateBookmarkObject(context.Background(), b.SpaceID(), block.ToDetails(origin), func() *bookmark.ObjectContent {
return &bookmark.ObjectContent{BookmarkContent: content}
})
if err != nil {
return fmt.Errorf("create bookmark object: %w", err)
}
block.UpdateContent(func(content *model.BlockContentBookmark) {
content.TargetObjectId = pageID
block.UpdateContent(func(content *bookmark.ObjectContent) {
if content.BookmarkContent == nil {
content.BookmarkContent = &model.BlockContentBookmark{}
}
content.BookmarkContent.TargetObjectId = pageID
})
return nil
}

View file

@ -7,9 +7,9 @@ import (
"github.com/gogo/protobuf/types"
"github.com/anyproto/anytype-heart/core/block/bookmark"
simpleBookmark "github.com/anyproto/anytype-heart/core/block/simple/bookmark"
"github.com/anyproto/anytype-heart/pb"
"github.com/anyproto/anytype-heart/pkg/lib/bundle"
"github.com/anyproto/anytype-heart/pkg/lib/pb/model"
"github.com/anyproto/anytype-heart/util/pbtypes"
"github.com/anyproto/anytype-heart/util/uri"
)
@ -23,9 +23,9 @@ func (s *service) ObjectCreateBookmark(ctx context.Context, spaceId string, req
if err != nil {
return "", nil, fmt.Errorf("process uri: %w", err)
}
res = s.bookmark.FetchBookmarkContent(req.SpaceId, u)
res = s.bookmark.FetchBookmarkContent(req.SpaceId, u, false)
} else {
res = func() *model.BlockContentBookmark {
res = func() *simpleBookmark.ObjectContent {
return nil
}
}

View file

@ -10,6 +10,7 @@ import (
"github.com/anyproto/any-sync/accountservice"
"github.com/anyproto/any-sync/app"
"github.com/anyproto/any-sync/commonspace/object/tree/treestorage"
"github.com/globalsign/mgo/bson"
"github.com/gogo/protobuf/types"
"github.com/hashicorp/go-multierror"
"github.com/samber/lo"
@ -29,6 +30,7 @@ import (
"github.com/anyproto/anytype-heart/core/block/process"
"github.com/anyproto/anytype-heart/core/block/restriction"
"github.com/anyproto/anytype-heart/core/block/simple"
"github.com/anyproto/anytype-heart/core/block/simple/bookmark"
"github.com/anyproto/anytype-heart/core/block/source"
"github.com/anyproto/anytype-heart/core/domain"
"github.com/anyproto/anytype-heart/core/event"
@ -726,9 +728,9 @@ func (s *Service) ObjectBookmarkFetch(req pb.RpcObjectBookmarkFetchRequest) (err
if err != nil {
return fmt.Errorf("process uri: %w", err)
}
res := s.bookmark.FetchBookmarkContent(spaceID, url)
res := s.bookmark.FetchBookmarkContent(spaceID, url, false)
go func() {
if err := s.bookmark.UpdateBookmarkObject(req.ContextId, res); err != nil {
if err := s.bookmark.UpdateObject(req.ContextId, res()); err != nil {
log.Errorf("update bookmark object %s: %s", req.ContextId, err)
}
}()
@ -773,6 +775,58 @@ func (s *Service) ObjectToBookmark(ctx context.Context, id string, url string) (
return
}
func (s *Service) CreateObjectFromUrl(ctx context.Context, req *pb.RpcObjectCreateFromUrlRequest) (id string, err error) {
url, err := uri.NormalizeURI(req.Url)
if err != nil {
return "", err
}
objectTypeKey, err := domain.GetTypeKeyFromRawUniqueKey(req.ObjectTypeUniqueKey)
if err != nil {
return "", err
}
createReq := objectcreator.CreateObjectRequest{
ObjectTypeKey: objectTypeKey,
}
id, _, err = s.objectCreator.CreateObject(ctx, req.SpaceId, createReq)
if err != nil {
return "", err
}
res := s.bookmark.FetchBookmarkContent(req.SpaceId, url, true)
content := res()
err = s.bookmark.UpdateObject(id, content)
if err != nil {
return "", err
}
if content != nil && len(content.Blocks) > 0 {
err := s.pasteBlocks(id, content)
if err != nil {
return "", err
}
}
return id, nil
}
func (s *Service) pasteBlocks(id string, content *bookmark.ObjectContent) error {
groupID := bson.NewObjectId().Hex()
_, uploadArr, _, _, err := s.Paste(nil, pb.RpcBlockPasteRequest{
ContextId: id,
AnySlot: content.Blocks,
}, groupID)
if err != nil {
return err
}
for _, r := range uploadArr {
r.ContextId = id
uploadReq := UploadRequest{RpcBlockUploadRequest: r}
if err = s.UploadBlockFile(nil, uploadReq, groupID); err != nil {
return err
}
}
return nil
}
func (s *Service) replaceLink(id, oldId, newId string) error {
return Do(s, id, func(b basic.CommonOperations) error {
return b.ReplaceLink(oldId, newId)

View file

@ -17,6 +17,11 @@ func init() {
simple.RegisterCreator(NewBookmark)
}
type ObjectContent struct {
BookmarkContent *model.BlockContentBookmark
Blocks []*model.Block
}
func NewBookmark(m *model.Block) simple.Block {
if bookmark := m.GetBookmark(); bookmark != nil {
return &Bookmark{
@ -33,7 +38,7 @@ type Block interface {
GetContent() *model.BlockContentBookmark
ToDetails(origin model.ObjectOrigin) *types.Struct
SetState(s model.BlockContentBookmarkState)
UpdateContent(func(content *model.BlockContentBookmark))
UpdateContent(func(content *ObjectContent))
ApplyEvent(e *pb.EventBlockSetBookmark) (err error)
}
@ -58,8 +63,8 @@ func (b *Bookmark) ToDetails(origin model.ObjectOrigin) *types.Struct {
return details
}
func (b *Bookmark) UpdateContent(updater func(bookmark *model.BlockContentBookmark)) {
updater(b.content)
func (b *Bookmark) UpdateContent(updater func(content *ObjectContent)) {
updater(&ObjectContent{BookmarkContent: b.content})
}
func (b *Bookmark) SetState(s model.BlockContentBookmarkState) {

View file

@ -13,11 +13,11 @@ import (
)
func setLinkPreview(b Block, data model.LinkPreview) {
b.UpdateContent(func(c *model.BlockContentBookmark) {
c.Url = data.Url
c.Title = data.Title
c.Description = data.Description
c.Type = data.Type
b.UpdateContent(func(c *ObjectContent) {
c.BookmarkContent.Url = data.Url
c.BookmarkContent.Title = data.Title
c.BookmarkContent.Description = data.Description
c.BookmarkContent.Type = data.Type
})
}
@ -64,10 +64,10 @@ func TestBookmark_Diff(t *testing.T) {
b2 := testBlock()
setLinkPreview(b2, lp)
b2.UpdateContent(func(c *model.BlockContentBookmark) {
c.FaviconHash = "fh"
c.ImageHash = "ih"
c.TargetObjectId = "newobject"
b2.UpdateContent(func(c *ObjectContent) {
c.BookmarkContent.FaviconHash = "fh"
c.BookmarkContent.ImageHash = "ih"
c.BookmarkContent.TargetObjectId = "newobject"
})
diff, err := b1.Diff(b2)

View file

@ -181,3 +181,20 @@ func (mw *Middleware) ObjectCreateRelationOption(cctx context.Context, req *pb.R
id, newDetails, err := creator.CreateObject(cctx, req.SpaceId, createReq)
return response(id, newDetails, err)
}
func (mw *Middleware) ObjectCreateFromUrl(cctx context.Context, req *pb.RpcObjectCreateFromUrlRequest) *pb.RpcObjectCreateFromUrlResponse {
response := func(code pb.RpcObjectCreateFromUrlResponseErrorCode, id string, err error) *pb.RpcObjectCreateFromUrlResponse {
m := &pb.RpcObjectCreateFromUrlResponse{Error: &pb.RpcObjectCreateFromUrlResponseError{Code: code}, ObjectId: id}
if err != nil {
m.Error.Description = err.Error()
}
return m
}
bs := getService[*block.Service](mw)
id, err := bs.CreateObjectFromUrl(cctx, req)
if err != nil {
return response(pb.RpcObjectCreateFromUrlResponseError_UNKNOWN_ERROR, "", err)
}
return response(pb.RpcObjectCreateFromUrlResponseError_NULL, id, nil)
}

View file

@ -33,7 +33,7 @@ func (mw *Middleware) LinkPreview(cctx context.Context, req *pb.RpcLinkPreviewRe
}
}
lp := mw.applicationService.GetApp().MustComponent(linkpreview.CName).(linkpreview.LinkPreview)
data, err := lp.Fetch(ctx, u.String())
data, _, err := lp.Fetch(ctx, u.String())
if err != nil {
// trim the actual url from the error
errTrimmed := strings.Replace(err.Error(), u.String(), "<url>", -1)

View file

@ -639,6 +639,10 @@
- [Rpc.Object.CreateBookmark.Request](#anytype-Rpc-Object-CreateBookmark-Request)
- [Rpc.Object.CreateBookmark.Response](#anytype-Rpc-Object-CreateBookmark-Response)
- [Rpc.Object.CreateBookmark.Response.Error](#anytype-Rpc-Object-CreateBookmark-Response-Error)
- [Rpc.Object.CreateFromUrl](#anytype-Rpc-Object-CreateFromUrl)
- [Rpc.Object.CreateFromUrl.Request](#anytype-Rpc-Object-CreateFromUrl-Request)
- [Rpc.Object.CreateFromUrl.Response](#anytype-Rpc-Object-CreateFromUrl-Response)
- [Rpc.Object.CreateFromUrl.Response.Error](#anytype-Rpc-Object-CreateFromUrl-Response-Error)
- [Rpc.Object.CreateObjectType](#anytype-Rpc-Object-CreateObjectType)
- [Rpc.Object.CreateObjectType.Request](#anytype-Rpc-Object-CreateObjectType-Request)
- [Rpc.Object.CreateObjectType.Response](#anytype-Rpc-Object-CreateObjectType-Response)
@ -1109,6 +1113,7 @@
- [Rpc.Object.Close.Response.Error.Code](#anytype-Rpc-Object-Close-Response-Error-Code)
- [Rpc.Object.Create.Response.Error.Code](#anytype-Rpc-Object-Create-Response-Error-Code)
- [Rpc.Object.CreateBookmark.Response.Error.Code](#anytype-Rpc-Object-CreateBookmark-Response-Error-Code)
- [Rpc.Object.CreateFromUrl.Response.Error.Code](#anytype-Rpc-Object-CreateFromUrl-Response-Error-Code)
- [Rpc.Object.CreateObjectType.Response.Error.Code](#anytype-Rpc-Object-CreateObjectType-Response-Error-Code)
- [Rpc.Object.CreateRelation.Response.Error.Code](#anytype-Rpc-Object-CreateRelation-Response-Error-Code)
- [Rpc.Object.CreateRelationOption.Response.Error.Code](#anytype-Rpc-Object-CreateRelationOption-Response-Error-Code)
@ -1570,6 +1575,7 @@
| ObjectShow | [Rpc.Object.Show.Request](#anytype-Rpc-Object-Show-Request) | [Rpc.Object.Show.Response](#anytype-Rpc-Object-Show-Response) | |
| ObjectCreate | [Rpc.Object.Create.Request](#anytype-Rpc-Object-Create-Request) | [Rpc.Object.Create.Response](#anytype-Rpc-Object-Create-Response) | ObjectCreate just creates the new page, without adding the link to it from some other page |
| ObjectCreateBookmark | [Rpc.Object.CreateBookmark.Request](#anytype-Rpc-Object-CreateBookmark-Request) | [Rpc.Object.CreateBookmark.Response](#anytype-Rpc-Object-CreateBookmark-Response) | |
| ObjectCreateFromUrl | [Rpc.Object.CreateFromUrl.Request](#anytype-Rpc-Object-CreateFromUrl-Request) | [Rpc.Object.CreateFromUrl.Response](#anytype-Rpc-Object-CreateFromUrl-Response) | |
| ObjectCreateSet | [Rpc.Object.CreateSet.Request](#anytype-Rpc-Object-CreateSet-Request) | [Rpc.Object.CreateSet.Response](#anytype-Rpc-Object-CreateSet-Response) | ObjectCreateSet just creates the new set, without adding the link to it from some other page |
| ObjectGraph | [Rpc.Object.Graph.Request](#anytype-Rpc-Object-Graph-Request) | [Rpc.Object.Graph.Response](#anytype-Rpc-Object-Graph-Response) | |
| ObjectSearch | [Rpc.Object.Search.Request](#anytype-Rpc-Object-Search-Request) | [Rpc.Object.Search.Response](#anytype-Rpc-Object-Search-Response) | |
@ -10994,6 +11000,65 @@ Get the info for page alongside with info for all inbound and outbound links fro
<a name="anytype-Rpc-Object-CreateFromUrl"></a>
### Rpc.Object.CreateFromUrl
<a name="anytype-Rpc-Object-CreateFromUrl-Request"></a>
### Rpc.Object.CreateFromUrl.Request
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| spaceId | [string](#string) | | |
| objectTypeUniqueKey | [string](#string) | | |
| url | [string](#string) | | |
<a name="anytype-Rpc-Object-CreateFromUrl-Response"></a>
### Rpc.Object.CreateFromUrl.Response
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| error | [Rpc.Object.CreateFromUrl.Response.Error](#anytype-Rpc-Object-CreateFromUrl-Response-Error) | | |
| objectId | [string](#string) | | |
<a name="anytype-Rpc-Object-CreateFromUrl-Response-Error"></a>
### Rpc.Object.CreateFromUrl.Response.Error
| Field | Type | Label | Description |
| ----- | ---- | ----- | ----------- |
| code | [Rpc.Object.CreateFromUrl.Response.Error.Code](#anytype-Rpc-Object-CreateFromUrl-Response-Error-Code) | | |
| description | [string](#string) | | |
<a name="anytype-Rpc-Object-CreateObjectType"></a>
### Rpc.Object.CreateObjectType
@ -17658,6 +17723,19 @@ Middleware-to-front-end response, that can contain a NULL error or a non-NULL er
<a name="anytype-Rpc-Object-CreateFromUrl-Response-Error-Code"></a>
### Rpc.Object.CreateFromUrl.Response.Error.Code
| Name | Number | Description |
| ---- | ------ | ----------- |
| NULL | 0 | |
| UNKNOWN_ERROR | 1 | |
| BAD_INPUT | 2 | ... |
<a name="anytype-Rpc-Object-CreateObjectType-Response-Error-Code"></a>
### Rpc.Object.CreateObjectType.Response.Error.Code

File diff suppressed because it is too large Load diff

View file

@ -1120,6 +1120,31 @@ message Rpc {
}
}
message CreateFromUrl {
message Request {
string spaceId = 1;
string objectTypeUniqueKey = 2;
string url = 3;
}
message Response {
Error error = 1;
string objectId = 2;
message Error {
Code code = 1;
string description = 2;
enum Code {
NULL = 0;
UNKNOWN_ERROR = 1;
BAD_INPUT = 2;
// ...
}
}
}
}
message BookmarkFetch {
message Request {
string contextId = 1;

View file

@ -57,6 +57,7 @@ service ClientCommands {
// ObjectCreate just creates the new page, without adding the link to it from some other page
rpc ObjectCreate (anytype.Rpc.Object.Create.Request) returns (anytype.Rpc.Object.Create.Response);
rpc ObjectCreateBookmark (anytype.Rpc.Object.CreateBookmark.Request) returns (anytype.Rpc.Object.CreateBookmark.Response);
rpc ObjectCreateFromUrl (anytype.Rpc.Object.CreateFromUrl.Request) returns (anytype.Rpc.Object.CreateFromUrl.Response);
// ObjectCreateSet just creates the new set, without adding the link to it from some other page
rpc ObjectCreateSet (anytype.Rpc.Object.CreateSet.Request) returns (anytype.Rpc.Object.CreateSet.Response);

View file

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

View file

@ -32,11 +32,11 @@ func (c *cache) Name() string {
return CName
}
func (c *cache) Fetch(ctx context.Context, url string) (lp model.LinkPreview, err error) {
func (c *cache) Fetch(ctx context.Context, url string) (lp model.LinkPreview, body []byte, err error) {
if res, ok := c.cache.Get(url); ok {
return res.(model.LinkPreview), nil
return res.(model.LinkPreview), nil, nil
}
lp, err = c.lp.Fetch(ctx, url)
lp, body, err = c.lp.Fetch(ctx, url)
if err != nil {
return
}

View file

@ -14,7 +14,7 @@ func TestCache_Fetch(t *testing.T) {
ts := newTestServer("text/html", strings.NewReader(tetsHtml))
lp := NewWithCache()
lp.Init(nil)
info, err := lp.Fetch(ctx, ts.URL)
info, _, err := lp.Fetch(ctx, ts.URL)
require.NoError(t, err)
assert.Equal(t, model.LinkPreview{
Url: ts.URL,
@ -27,7 +27,7 @@ func TestCache_Fetch(t *testing.T) {
ts.Close()
info, err = lp.Fetch(ctx, ts.URL)
info, _, err = lp.Fetch(ctx, ts.URL)
require.NoError(t, err)
assert.Equal(t, model.LinkPreview{
Url: ts.URL,

View file

@ -33,7 +33,7 @@ const (
)
type LinkPreview interface {
Fetch(ctx context.Context, url string) (model.LinkPreview, error)
Fetch(ctx context.Context, url string) (model.LinkPreview, []byte, error)
app.Component
}
@ -50,7 +50,7 @@ func (l *linkPreview) Name() (name string) {
return CName
}
func (l *linkPreview) Fetch(ctx context.Context, fetchUrl string) (model.LinkPreview, error) {
func (l *linkPreview) Fetch(ctx context.Context, fetchUrl string) (model.LinkPreview, []byte, error) {
rt := &proxyRoundTripper{RoundTripper: http.DefaultTransport}
client := &http.Client{Transport: rt}
og := opengraph.New(fetchUrl)
@ -60,13 +60,17 @@ func (l *linkPreview) Fetch(ctx context.Context, fetchUrl string) (model.LinkPre
err := og.Fetch()
if err != nil {
if resp := rt.lastResponse; resp != nil && resp.StatusCode == http.StatusOK {
return l.makeNonHtml(fetchUrl, resp)
preview, err := l.makeNonHtml(fetchUrl, resp)
if err != nil {
return preview, nil, err
}
return preview, rt.lastBody, nil
}
return model.LinkPreview{}, err
return model.LinkPreview{}, nil, err
}
if resp := rt.lastResponse; resp != nil && resp.StatusCode != http.StatusOK {
return model.LinkPreview{}, fmt.Errorf("invalid http code %d", resp.StatusCode)
return model.LinkPreview{}, nil, fmt.Errorf("invalid http code %d", resp.StatusCode)
}
res := l.convertOGToInfo(fetchUrl, og)
if len(res.Description) == 0 {
@ -78,7 +82,7 @@ func (l *linkPreview) Fetch(ctx context.Context, fetchUrl string) (model.LinkPre
if !utf8.ValidString(res.Description) {
res.Description = ""
}
return res, nil
return res, rt.lastBody, nil
}
func (l *linkPreview) convertOGToInfo(fetchUrl string, og *opengraph.OpenGraph) (i model.LinkPreview) {

View file

@ -23,7 +23,7 @@ func TestLinkPreview_Fetch(t *testing.T) {
lp := New()
lp.Init(nil)
info, err := lp.Fetch(ctx, ts.URL)
info, _, err := lp.Fetch(ctx, ts.URL)
require.NoError(t, err)
assert.Equal(t, model.LinkPreview{
Url: ts.URL,
@ -41,7 +41,7 @@ func TestLinkPreview_Fetch(t *testing.T) {
lp := New()
lp.Init(nil)
info, err := lp.Fetch(ctx, ts.URL)
info, _, err := lp.Fetch(ctx, ts.URL)
require.NoError(t, err)
assert.Equal(t, model.LinkPreview{
Url: ts.URL,
@ -60,7 +60,7 @@ func TestLinkPreview_Fetch(t *testing.T) {
url := ts.URL + "/filename.jpg"
lp := New()
lp.Init(nil)
info, err := lp.Fetch(ctx, url)
info, _, err := lp.Fetch(ctx, url)
require.NoError(t, err)
assert.Equal(t, model.LinkPreview{
Url: url,
@ -78,7 +78,7 @@ func TestLinkPreview_Fetch(t *testing.T) {
url := ts.URL + "/filename.jpg"
lp := New()
lp.Init(nil)
info, err := lp.Fetch(ctx, url)
info, _, err := lp.Fetch(ctx, url)
require.NoError(t, err)
assert.Equal(t, model.LinkPreview{
Url: url,